From a239b82dad03ad942aaf5fbbda672e882968488c Mon Sep 17 00:00:00 2001 From: Frieder Schrempf Date: Thu, 27 Jun 2019 07:03:16 +0000 Subject: spl: atf: Fix uninitialized pointer to bl31_image_info The pointer to struct atf_image_info in bl31_params_mem.bl31_params.bl31_image_info is not initialized before being dereferenced. This can cause U-Boot to crash right before jumping to the BL31 ATF binary. Signed-off-by: Frieder Schrempf Fixes: bcc1726a7bdd ("spl: add support to booting with ATF") Reviewed-by: Kever Yang --- common/spl/spl_atf.c | 1 + 1 file changed, 1 insertion(+) diff --git a/common/spl/spl_atf.c b/common/spl/spl_atf.c index cddab6a7358..4715f9d3719 100644 --- a/common/spl/spl_atf.c +++ b/common/spl/spl_atf.c @@ -45,6 +45,7 @@ static struct bl31_params *bl2_plat_get_bl31_params(uintptr_t bl33_entry) SET_PARAM_HEAD(bl2_to_bl31_params, ATF_PARAM_BL31, ATF_VERSION_1, 0); /* Fill BL31 related information */ + bl2_to_bl31_params->bl31_image_info = &bl31_params_mem.bl31_image_info; SET_PARAM_HEAD(bl2_to_bl31_params->bl31_image_info, ATF_PARAM_IMAGE_BINARY, ATF_VERSION_1, 0); -- cgit v1.2.3 From 5a6d960b222203e60ab57e19b3eb7b41c24b564b Mon Sep 17 00:00:00 2001 From: Mark Kettenis Date: Fri, 21 Jun 2019 23:16:45 +0200 Subject: rockchip: dts: rk3399: rockpro64: Provide init voltage Add missing regulator-init-microvolt property to vdd_log regulator. Signed-off-by: Mark Kettenis Reviewed-by: Kever Yang (Rebase on latest u-boot-rockchip master) Signed-off-by: Kever Yang Change-Id: I13b24fb81e8ad269d7dbb0c7b67f5f4795d2e775 --- arch/arm/dts/rk3399-rockpro64-u-boot.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi b/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi index 7bddc3acdbb..50b0ca0df54 100644 --- a/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi +++ b/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi @@ -4,3 +4,7 @@ */ #include "rk3399-u-boot.dtsi" + +&vdd_log { + regulator-init-microvolt = <950000>; +}; -- cgit v1.2.3 From d18ca747b6264289579fbeb778f299eb03e479ed Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Tue, 2 Jul 2019 11:43:05 +0800 Subject: rockchip: rk3288: enable TPL configs to chip level More boards other than vyasa needs TPL, so enable the TPL configs at chip level instead of board level. Signed-off-by: Kever Yang --- arch/arm/mach-rockchip/Kconfig | 14 ++++++++++++++ arch/arm/mach-rockchip/rk3288/Kconfig | 14 -------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig index 1624b084b97..9d891ad5f1c 100644 --- a/arch/arm/mach-rockchip/Kconfig +++ b/arch/arm/mach-rockchip/Kconfig @@ -87,6 +87,20 @@ config ROCKCHIP_RK3288 select SPL_BOARD_INIT if SPL select SUPPORT_SPL select SPL + select SUPPORT_TPL + imply TPL_BOOTROM_SUPPORT + imply TPL_CLK + imply TPL_DM + imply TPL_DRIVERS_MISC_SUPPORT + imply TPL_LIBCOMMON_SUPPORT + imply TPL_LIBGENERIC_SUPPORT + imply TPL_NEEDS_SEPARATE_TEXT_BASE + imply TPL_OF_CONTROL + imply TPL_OF_PLATDATA + imply TPL_RAM + imply TPL_REGMAP + imply TPL_SERIAL_SUPPORT + imply TPL_SYSCON imply USB_FUNCTION_ROCKUSB imply CMD_ROCKUSB help diff --git a/arch/arm/mach-rockchip/rk3288/Kconfig b/arch/arm/mach-rockchip/rk3288/Kconfig index 50680ce606b..541301dfb8c 100644 --- a/arch/arm/mach-rockchip/rk3288/Kconfig +++ b/arch/arm/mach-rockchip/rk3288/Kconfig @@ -99,21 +99,7 @@ config TARGET_VYASA_RK3288 bool "Vyasa-RK3288" select BOARD_LATE_INIT select ROCKCHIP_BROM_HELPER - select SUPPORT_TPL select TPL - select TPL_BOOTROM_SUPPORT - select TPL_CLK - select TPL_DM - select TPL_DRIVERS_MISC_SUPPORT - select TPL_LIBCOMMON_SUPPORT - select TPL_LIBGENERIC_SUPPORT - select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL - select TPL_OF_CONTROL - select TPL_OF_PLATDATA - select TPL_RAM - select TPL_REGMAP - select TPL_SERIAL_SUPPORT - select TPL_SYSCON help Vyasa is a RK3288-based development board with 2 USB ports, HDMI, VGA, micro-SD card, audio, WiFi and Gigabit Ethernet, It -- cgit v1.2.3 From 45290847df4b093df717262f608e7b765f8990b3 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Tue, 2 Jul 2019 11:43:06 +0800 Subject: rockchip: rk3288: add separate TPL STACK address TPL is at SRAM while other stage is at SDRAM, so it needs separate STACK. Signed-off-by: Kever Yang Reviewed-by: Jagan Teki --- arch/arm/mach-rockchip/Kconfig | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig index 9d891ad5f1c..1090d21879c 100644 --- a/arch/arm/mach-rockchip/Kconfig +++ b/arch/arm/mach-rockchip/Kconfig @@ -95,6 +95,7 @@ config ROCKCHIP_RK3288 imply TPL_LIBCOMMON_SUPPORT imply TPL_LIBGENERIC_SUPPORT imply TPL_NEEDS_SEPARATE_TEXT_BASE + imply TPL_NEEDS_SEPARATE_STACK imply TPL_OF_CONTROL imply TPL_OF_PLATDATA imply TPL_RAM @@ -118,6 +119,9 @@ config TPL_TEXT_BASE config TPL_MAX_SIZE default 32768 +config TPL_STACK + default 0xff718000 + endif config ROCKCHIP_RK3328 -- cgit v1.2.3 From 590dc42620dbca57990077ca468399cd3bb3f8ed Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Mon, 1 Jul 2019 11:49:10 +0800 Subject: rockchip: dts: rk3288: move reloc tag into -u-boot dts Move all the tag "u-boot,dm-pre-reloc" from rk3288.dtsi into rk3288-u-boot.dtsi. Signed-off-by: Kever Yang --- arch/arm/dts/rk3288-u-boot.dtsi | 36 +++++++++++++++++++++++++++ arch/arm/dts/rk3288-veyron-speedy-u-boot.dtsi | 2 ++ arch/arm/dts/rk3288-vyasa-u-boot.dtsi | 2 ++ arch/arm/dts/rk3288.dtsi | 8 ------ 4 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 arch/arm/dts/rk3288-u-boot.dtsi diff --git a/arch/arm/dts/rk3288-u-boot.dtsi b/arch/arm/dts/rk3288-u-boot.dtsi new file mode 100644 index 00000000000..4cf75c75044 --- /dev/null +++ b/arch/arm/dts/rk3288-u-boot.dtsi @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2019 Rockchip Electronics Co., Ltd + */ + +&dmc { + u-boot,dm-pre-reloc; +}; + +&pmu { + u-boot,dm-pre-reloc; +}; + +&sgrf { + u-boot,dm-pre-reloc; +}; + +&cru { + u-boot,dm-pre-reloc; +}; + +&grf { + u-boot,dm-pre-reloc; +}; + +&vopb { + u-boot,dm-pre-reloc; +}; + +&vopl { + u-boot,dm-pre-reloc; +}; + +&noc { + u-boot,dm-pre-reloc; +}; diff --git a/arch/arm/dts/rk3288-veyron-speedy-u-boot.dtsi b/arch/arm/dts/rk3288-veyron-speedy-u-boot.dtsi index 22ba3490f28..eccc0693688 100644 --- a/arch/arm/dts/rk3288-veyron-speedy-u-boot.dtsi +++ b/arch/arm/dts/rk3288-veyron-speedy-u-boot.dtsi @@ -3,6 +3,8 @@ * Copyright 2015 Google, Inc */ +#include "rk3288-u-boot.dtsi" + &dmc { rockchip,pctl-timing = <0x215 0xc8 0x0 0x35 0x26 0x2 0x70 0x2000d 0x6 0x0 0x8 0x4 0x17 0x24 0xd 0x6 diff --git a/arch/arm/dts/rk3288-vyasa-u-boot.dtsi b/arch/arm/dts/rk3288-vyasa-u-boot.dtsi index 379b1e31890..7730d172288 100644 --- a/arch/arm/dts/rk3288-vyasa-u-boot.dtsi +++ b/arch/arm/dts/rk3288-vyasa-u-boot.dtsi @@ -3,6 +3,8 @@ * Copyright (C) 2017 Jagan Teki */ +#include "rk3288-u-boot.dtsi" + &dmc { rockchip,pctl-timing = <0x29a 0xc8 0x1f8 0x42 0x4e 0x4 0xea 0xa 0x5 0x0 0xa 0x7 0x19 0x24 0xa 0x7 diff --git a/arch/arm/dts/rk3288.dtsi b/arch/arm/dts/rk3288.dtsi index 487d22c9b01..866fc082152 100644 --- a/arch/arm/dts/rk3288.dtsi +++ b/arch/arm/dts/rk3288.dtsi @@ -468,7 +468,6 @@ }; dmc: dmc@ff610000 { - u-boot,dm-pre-reloc; compatible = "rockchip,rk3288-dmc", "syscon"; rockchip,cru = <&cru>; rockchip,grf = <&grf>; @@ -584,13 +583,11 @@ }; pmu: power-management@ff730000 { - u-boot,dm-pre-reloc; compatible = "rockchip,rk3288-pmu", "syscon"; reg = <0xff730000 0x100>; }; sgrf: syscon@ff740000 { - u-boot,dm-pre-reloc; compatible = "rockchip,rk3288-sgrf", "syscon"; reg = <0xff740000 0x1000>; }; @@ -599,7 +596,6 @@ compatible = "rockchip,rk3288-cru"; reg = <0xff760000 0x1000>; rockchip,grf = <&grf>; - u-boot,dm-pre-reloc; #clock-cells = <1>; #reset-cells = <1>; assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_CPLL>, @@ -615,7 +611,6 @@ }; grf: syscon@ff770000 { - u-boot,dm-pre-reloc; compatible = "rockchip,rk3288-grf", "syscon"; reg = <0xff770000 0x1000>; }; @@ -660,7 +655,6 @@ }; vopb: vop@ff930000 { - u-boot,dm-pre-reloc; compatible = "rockchip,rk3288-vop"; reg = <0xff930000 0x19c>; interrupts = ; @@ -715,7 +709,6 @@ iommus = <&vopl_mmu>; power-domains = <&power RK3288_PD_VIO>; status = "disabled"; - u-boot,dm-pre-reloc; vopl_out: port { #address-cells = <1>; #size-cells = <0>; @@ -911,7 +904,6 @@ }; noc: syscon@ffac0000 { - u-boot,dm-pre-reloc; compatible = "rockchip,rk3288-noc", "syscon"; reg = <0xffac0000 0x2000>; }; -- cgit v1.2.3 From 7e7f79207d5d702a6b0daccef03498540cf6df69 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Mon, 1 Jul 2019 11:49:11 +0800 Subject: rockchip: dts: tinker: migrate the dm-pre-reloc tag into -u-boot dts Migrate all the "u-boot,dm-pre-reloc" tag from rk3288-tinker.dts into rk3288-tinker-u-boot.dtsi. When both board level and soc level '-u-boot.dtsi' files exist, we need to include the soc level 'rk3288-u-boot.dtsi' manually. Signed-off-by: Kever Yang --- arch/arm/dts/rk3288-tinker-u-boot.dtsi | 30 ++++++++++++++++++++++++++++++ arch/arm/dts/rk3288-tinker.dts | 19 ------------------- 2 files changed, 30 insertions(+), 19 deletions(-) create mode 100644 arch/arm/dts/rk3288-tinker-u-boot.dtsi diff --git a/arch/arm/dts/rk3288-tinker-u-boot.dtsi b/arch/arm/dts/rk3288-tinker-u-boot.dtsi new file mode 100644 index 00000000000..cf961b3cda9 --- /dev/null +++ b/arch/arm/dts/rk3288-tinker-u-boot.dtsi @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2019 Rockchip Electronics Co., Ltd + */ + +#include "rk3288-u-boot.dtsi" + +&pinctrl { + u-boot,dm-pre-reloc; +}; + +&uart2 { + u-boot,dm-pre-reloc; +}; + +&sdmmc { + u-boot,dm-pre-reloc; +}; + +&emmc { + u-boot,dm-pre-reloc; +}; + +&gpio3 { + u-boot,dm-pre-reloc; +}; + +&gpio8 { + u-boot,dm-pre-reloc; +}; diff --git a/arch/arm/dts/rk3288-tinker.dts b/arch/arm/dts/rk3288-tinker.dts index 3edd21cc2f4..94c3afe8604 100644 --- a/arch/arm/dts/rk3288-tinker.dts +++ b/arch/arm/dts/rk3288-tinker.dts @@ -28,8 +28,6 @@ &pinctrl { - u-boot,dm-pre-reloc; - usb { host_vbus_drv: host-vbus-drv { rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>; @@ -42,7 +40,6 @@ }; &uart2 { - u-boot,dm-pre-reloc; reg-shift = <2>; }; @@ -51,22 +48,6 @@ status = "okay"; }; -&sdmmc { - u-boot,dm-pre-reloc; -}; - -&emmc { - u-boot,dm-pre-reloc; -}; - -&gpio3 { - u-boot,dm-pre-reloc; -}; - -&gpio8 { - u-boot,dm-pre-reloc; -}; - &i2c2 { m24c08@50 { compatible = "at,24c08", "i2c-eeprom"; -- cgit v1.2.3 From e3f9a93e5aeb2f60c7b0280fcc4c94c800e49e76 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Mon, 1 Jul 2019 11:49:12 +0800 Subject: rockchip: dts: rk3288-tinker: enable sdmmc pinctrl node in spl rockchip pinctrl driver has update to use dts, so we need to add the pinctrl config in SPL for sdmmc. Signed-off-by: Kever Yang --- arch/arm/dts/rk3288-tinker-u-boot.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/arch/arm/dts/rk3288-tinker-u-boot.dtsi b/arch/arm/dts/rk3288-tinker-u-boot.dtsi index cf961b3cda9..2efb309d6bd 100644 --- a/arch/arm/dts/rk3288-tinker-u-boot.dtsi +++ b/arch/arm/dts/rk3288-tinker-u-boot.dtsi @@ -28,3 +28,27 @@ &gpio8 { u-boot,dm-pre-reloc; }; + +&pcfg_pull_none_drv_8ma { + u-boot,dm-spl; +}; + +&pcfg_pull_up_drv_8ma { + u-boot,dm-spl; +}; + +&sdmmc_bus4 { + u-boot,dm-spl; +}; + +&sdmmc_clk { + u-boot,dm-spl; +}; + +&sdmmc_cmd { + u-boot,dm-spl; +}; + +&sdmmc_pwr { + u-boot,dm-spl; +}; -- cgit v1.2.3 From d79036c22dc680421c51e1be22d4e3e29fba0d25 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Mon, 1 Jul 2019 11:49:13 +0800 Subject: rockchip: config: update config for TPL support on tinker-rk3288 We need to update TEXT BASE for TPL/SPL/U-Boot; SPL no need relocate STACK after enable TPL, so remove it; Don't enable pinctrl names so that SPL can get pinctrl dts; Signed-off-by: Kever Yang --- configs/tinker-rk3288_defconfig | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/configs/tinker-rk3288_defconfig b/configs/tinker-rk3288_defconfig index 27a5fc0dfb0..482ee7d555b 100644 --- a/configs/tinker-rk3288_defconfig +++ b/configs/tinker-rk3288_defconfig @@ -1,13 +1,12 @@ CONFIG_ARM=y CONFIG_ARCH_ROCKCHIP=y -CONFIG_SYS_TEXT_BASE=0x00000000 +CONFIG_SYS_TEXT_BASE=0x01000000 CONFIG_SYS_MALLOC_F_LEN=0x2000 CONFIG_ROCKCHIP_RK3288=y -CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y +CONFIG_TPL_LDSCRIPT="arch/arm/mach-rockchip/u-boot-tpl.lds" CONFIG_TARGET_TINKER_RK3288=y CONFIG_NR_DRAM_BANKS=1 -CONFIG_SPL_SIZE_LIMIT=30720 -CONFIG_SPL_STACK_R_ADDR=0x80000 +CONFIG_SPL_SIZE_LIMIT=307200 CONFIG_DEBUG_UART_BASE=0xff690000 CONFIG_DEBUG_UART_CLOCK=24000000 CONFIG_DEBUG_UART=y @@ -17,9 +16,7 @@ CONFIG_CONSOLE_MUX=y CONFIG_DEFAULT_FDT_FILE="rk3288-tinker.dtb" # CONFIG_DISPLAY_CPUINFO is not set CONFIG_DISPLAY_BOARDINFO_LATE=y -CONFIG_SPL_TEXT_BASE=0xff704000 -CONFIG_SPL_STACK_R=y -CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x2000 +CONFIG_SPL_TEXT_BASE=0 CONFIG_CMD_GPIO=y CONFIG_CMD_GPT=y CONFIG_CMD_I2C=y @@ -37,7 +34,7 @@ CONFIG_CMD_REGULATOR=y CONFIG_SPL_PARTITION_UUIDS=y CONFIG_SPL_OF_CONTROL=y CONFIG_DEFAULT_DEVICE_TREE="rk3288-tinker" -CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" +CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" CONFIG_ENV_IS_IN_MMC=y CONFIG_REGMAP=y CONFIG_SPL_REGMAP=y -- cgit v1.2.3 From 6f3af24fd9367f63c5574f610de727bc5ac86f08 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Mon, 1 Jul 2019 11:49:14 +0800 Subject: rockchip: config: tiner-rk3288: extend CONFIG_SYS_MONITOR_LEN to 600KB The raw u-boot.bin for tinker board has been about 450KB without debug option, and 550KB with all debug on, and the default value is 200KB, which is not enough for run raw u-boot.bin. Signed-off-by: Kever Yang --- include/configs/tinker_rk3288.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/configs/tinker_rk3288.h b/include/configs/tinker_rk3288.h index 5adae68c91b..32057b3dbb3 100644 --- a/include/configs/tinker_rk3288.h +++ b/include/configs/tinker_rk3288.h @@ -18,5 +18,6 @@ func(DHCP, dchp, na) #define CONFIG_SYS_MMC_ENV_DEV 1 +#define CONFIG_SYS_MONITOR_LEN (600 * 1024) #endif -- cgit v1.2.3 From 665ebcadd69b8d3ebce946709e23f0df0bee7b56 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Mon, 1 Jul 2019 11:49:15 +0800 Subject: rockchip: rk3288: enable TPL for tinker-board All the config for TPL has been update, we can enable the TPL. Signed-off-by: Kever Yang --- arch/arm/mach-rockchip/rk3288/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/mach-rockchip/rk3288/Kconfig b/arch/arm/mach-rockchip/rk3288/Kconfig index 541301dfb8c..c5dcd061cfd 100644 --- a/arch/arm/mach-rockchip/rk3288/Kconfig +++ b/arch/arm/mach-rockchip/rk3288/Kconfig @@ -118,6 +118,7 @@ config TARGET_ROCK2 config TARGET_TINKER_RK3288 bool "Tinker-RK3288" select BOARD_LATE_INIT + select TPL help Tinker is a RK3288-based development board with 2 USB ports, HDMI, micro-SD card, audio, Gigabit Ethernet. It also includes on-board -- cgit v1.2.3