mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
board: samsung: add Samsung Galaxy S9/S9+(SM-G96x0) board
Samsung S9 SM-G9600 - Snapdragon SDM845 version of the phone, for China \ Hong Kong markets. Has unlockable bootloader, unlike SM-G960U (American market version), which allows running u-boot as a chain-loaded bootloader. Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com> Cc: Ramon Fried <rfried.dev@gmail.com> Cc: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
4cbc16ceb2
commit
80565ec6f0
12 changed files with 220 additions and 7 deletions
|
@ -477,6 +477,7 @@ dtb-$(CONFIG_TARGET_SL28) += fsl-ls1028a-kontron-sl28.dtb \
|
|||
|
||||
dtb-$(CONFIG_TARGET_DRAGONBOARD410C) += dragonboard410c.dtb
|
||||
dtb-$(CONFIG_TARGET_DRAGONBOARD820C) += dragonboard820c.dtb
|
||||
dtb-$(CONFIG_TARGET_STARQLTECHN) += starqltechn.dtb
|
||||
|
||||
dtb-$(CONFIG_TARGET_STEMMY) += ste-ux500-samsung-stemmy.dtb
|
||||
|
||||
|
|
39
arch/arm/dts/starqltechn-uboot.dtsi
Normal file
39
arch/arm/dts/starqltechn-uboot.dtsi
Normal file
|
@ -0,0 +1,39 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* U-Boot addition to handle Samsung S9 SM-G9600 (starqltechn) pins
|
||||
*
|
||||
* (C) Copyright 2021 Dzmitry Sankouski <dsankouski@gmail.com>
|
||||
*
|
||||
*/
|
||||
|
||||
/
|
||||
{
|
||||
soc {
|
||||
u-boot,dm-pre-reloc;
|
||||
gcc {
|
||||
clock-controller@100000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
serial@0xa84000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
gpio_north@3900000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
pinctrl@3900000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pm8998_pon {
|
||||
key_vol_down {
|
||||
gpios = <&pm8998_pon 1 0>;
|
||||
label = "key_vol_down";
|
||||
};
|
||||
key_power {
|
||||
gpios = <&pm8998_pon 0 0>;
|
||||
label = "key_power";
|
||||
};
|
||||
};
|
53
arch/arm/dts/starqltechn.dts
Normal file
53
arch/arm/dts/starqltechn.dts
Normal file
|
@ -0,0 +1,53 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Samsung S9 SM-G9600 (starqltechn) board device tree source
|
||||
*
|
||||
* (C) Copyright 2021 Dzmitry Sankouski <dsankouski@gmail.com>
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sdm845.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Samsung S9 (SM-G9600)";
|
||||
compatible = "qcom,sdm845-mtp", "qcom,sdm845", "qcom,mtp";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:921600n8";
|
||||
};
|
||||
|
||||
aliases {
|
||||
serial0 = &debug_uart;
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0 0x80000000 0 0xfe1bffff>;
|
||||
};
|
||||
|
||||
psci {
|
||||
compatible = "arm,psci-1.0";
|
||||
method = "smc";
|
||||
};
|
||||
|
||||
soc: soc {
|
||||
serial@0xa84000 {
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
pinctrl@3900000 {
|
||||
muic_i2c: muic_i2c {
|
||||
pins = "GPIO_33", "GPIO_34";
|
||||
drive-strength = <0x2>;
|
||||
function = "gpio";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#include "starqltechn-uboot.dtsi"
|
|
@ -12,6 +12,10 @@ config SPL_SYS_MALLOC_F_LEN
|
|||
config SDM845
|
||||
bool "Qualcomm Snapdragon 845 SoC"
|
||||
default n
|
||||
select LINUX_KERNEL_IMAGE_HEADER
|
||||
|
||||
config LNX_KRNL_IMG_TEXT_OFFSET_BASE
|
||||
default 0x80000000
|
||||
|
||||
choice
|
||||
prompt "Snapdragon board select"
|
||||
|
@ -40,9 +44,22 @@ config TARGET_DRAGONBOARD820C
|
|||
- 3GiB RAM
|
||||
- 32GiB UFS drive
|
||||
|
||||
config TARGET_STARQLTECHN
|
||||
bool "Samsung S9 SM-G9600(starqltechn)"
|
||||
help
|
||||
Support for Samsung S9 SM-G9600(starqltechn) board.
|
||||
Features:
|
||||
- Qualcomm Snapdragon SDM845 SoC
|
||||
- 4GiB RAM
|
||||
- 64GiB UFS drive
|
||||
select MISC_INIT_R
|
||||
select SDM845
|
||||
select DM_ETH if NET
|
||||
|
||||
endchoice
|
||||
|
||||
source "board/qualcomm/dragonboard410c/Kconfig"
|
||||
source "board/qualcomm/dragonboard820c/Kconfig"
|
||||
source "board/samsung/starqltechn/Kconfig"
|
||||
|
||||
endif
|
||||
|
|
22
board/samsung/starqltechn/Kconfig
Normal file
22
board/samsung/starqltechn/Kconfig
Normal file
|
@ -0,0 +1,22 @@
|
|||
if TARGET_STARQLTECHN
|
||||
|
||||
config SYS_BOARD
|
||||
default "starqltechn"
|
||||
help
|
||||
starqltechn is a production board for S9 and S9+ phones(SM-G96x0) phones based on SDM845 SoC.
|
||||
|
||||
config SYS_CONFIG_NAME
|
||||
string "Board configuration name"
|
||||
default "sdm845"
|
||||
help
|
||||
This option contains information about board configuration name.
|
||||
Based on this option include/configs/<CONFIG_SYS_CONFIG_NAME>.h header
|
||||
will be used for board configuration.
|
||||
|
||||
config SYS_VENDOR
|
||||
default "samsung"
|
||||
|
||||
config SYS_CONFIG_NAME
|
||||
default "starqltechn"
|
||||
|
||||
endif
|
6
board/samsung/starqltechn/MAINTAINERS
Normal file
6
board/samsung/starqltechn/MAINTAINERS
Normal file
|
@ -0,0 +1,6 @@
|
|||
Samsung S9 (SM-G9600)(starqltechn) Board
|
||||
M: Dzmitry Sankouski <dsankouski@gmail.com>
|
||||
S: Maintained
|
||||
F: board/samsung/starqltechn/
|
||||
F: include/configs/starqltechn.h
|
||||
F: configs/starqltechn_defconfig
|
9
board/samsung/starqltechn/Makefile
Normal file
9
board/samsung/starqltechn/Makefile
Normal file
|
@ -0,0 +1,9 @@
|
|||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
# (C) Copyright 2021 Dzmitry Sankouski <dsankouski@gmail.com>
|
||||
#
|
||||
# This empty file prevents make error.
|
||||
# Board logic defined in board/qualcomm/common/sdm845.c, no custom logic for starqltechn so far.
|
||||
#
|
||||
|
||||
obj-y += starqltechn.o
|
10
board/samsung/starqltechn/starqltechn.c
Normal file
10
board/samsung/starqltechn/starqltechn.c
Normal file
|
@ -0,0 +1,10 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* This empty file prevents make linking error.
|
||||
* No custom logic for starqltechn so far.
|
||||
*
|
||||
* (C) Copyright 2021 Dzmitry Sankouski <dsankouski@gmail.com>
|
||||
*
|
||||
*/
|
||||
|
||||
void nooop(void) {}
|
24
configs/starqltechn_defconfig
Normal file
24
configs/starqltechn_defconfig
Normal file
|
@ -0,0 +1,24 @@
|
|||
CONFIG_ARM=y
|
||||
CONFIG_SKIP_LOWLEVEL_INIT=y
|
||||
CONFIG_POSITION_INDEPENDENT=y
|
||||
CONFIG_ARCH_SNAPDRAGON=y
|
||||
CONFIG_SYS_TEXT_BASE=0x80000000
|
||||
CONFIG_SYS_MALLOC_LEN=0x81f000
|
||||
CONFIG_DEFAULT_DEVICE_TREE="starqltechn"
|
||||
CONFIG_TARGET_STARQLTECHN=y
|
||||
CONFIG_IDENT_STRING="\nSamsung S9 SM-G9600"
|
||||
CONFIG_SYS_LOAD_ADDR=0x80000000
|
||||
CONFIG_USE_PREBOOT=y
|
||||
# CONFIG_DISPLAY_CPUINFO is not set
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_CMD_GPIO=y
|
||||
# CONFIG_NET is not set
|
||||
# CONFIG_DM_STDIO is not set
|
||||
CONFIG_CLK=y
|
||||
CONFIG_MSM_GPIO=y
|
||||
CONFIG_PM8916_GPIO=y
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_DM_PMIC=y
|
||||
CONFIG_PMIC_PM8916=y
|
||||
CONFIG_MSM_GENI_SERIAL=y
|
||||
CONFIG_SPMI_MSM=y
|
|
@ -7,3 +7,4 @@ Qualcomm
|
|||
:maxdepth: 2
|
||||
|
||||
dragonboard410c
|
||||
sdm845
|
||||
|
|
38
doc/board/qualcomm/sdm845.rst
Normal file
38
doc/board/qualcomm/sdm845.rst
Normal file
|
@ -0,0 +1,38 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0+
|
||||
.. sectionauthor:: Dzmitry Sankouski <dsankouski@gmail.com>
|
||||
|
||||
Snapdragon 845
|
||||
================
|
||||
|
||||
About this
|
||||
----------
|
||||
This document describes the information about Qualcomm Snapdragon 845
|
||||
supported boards and it's usage steps.
|
||||
|
||||
SDM845 - hi-end qualcomm chip, introduced in late 2017.
|
||||
Mostly used in flagship phones and tablets of 2018.
|
||||
|
||||
U-Boot can be used as a replacement for Qualcomm's original ABL (UEFI) bootloader.
|
||||
It is loaded as an Android boot image through ABL
|
||||
|
||||
Installation
|
||||
------------
|
||||
First, setup ``CROSS_COMPILE`` for aarch64. Then, build U-Boot for your board::
|
||||
|
||||
$ export CROSS_COMPILE=<aarch64 toolchain prefix>
|
||||
$ make <your board name here, see Boards section>_defconfig
|
||||
$ make
|
||||
|
||||
This will build ``u-boot.bin`` in the configured output directory.
|
||||
|
||||
Boards
|
||||
------------
|
||||
starqlte
|
||||
^^^^^^^^^^^^
|
||||
|
||||
The starqltechn is a production board for Samsung S9 (SM-G9600) phone,
|
||||
based on the Qualcomm SDM845 SoC.
|
||||
|
||||
More information can be found on the `Samsung S9 page`_.
|
||||
|
||||
.. _Samsung S9 page: https://en.wikipedia.org/wiki/Samsung_Galaxy_S9
|
|
@ -11,19 +11,12 @@
|
|||
#include <linux/sizes.h>
|
||||
#include <asm/arch/sysmap-sdm845.h>
|
||||
|
||||
#define CONFIG_SYS_LOAD_ADDR 0x80000000
|
||||
#define CONFIG_SYS_BAUDRATE_TABLE { 115200, 230400, 460800, 921600 }
|
||||
|
||||
/* Generic Timer Definitions */
|
||||
#define COUNTER_FREQUENCY 19000000
|
||||
|
||||
#define EXTRA_ENV_SETTINGS \
|
||||
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"loadaddr=0x80000000\0"
|
||||
|
||||
/* Size of malloc() pool */
|
||||
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + SZ_8M)
|
||||
#define CONFIG_SYS_BOOTM_LEN SZ_64M
|
||||
|
||||
/* Monitor Command Prompt */
|
||||
|
|
Loading…
Reference in a new issue