Support OF_PLATDATA in TPL, enable RK3368 DRAM init and add RK3368-uQ7
Get series with b4
b4 am 2590116.09N9GbK5LB@diegoVersions newest first
- v1 Latest1 of 52 patches 0 repliesNew
1 of 52 patches is in this archive. The cover letter announces 52.
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 26/52 | rockchip: rk3368: define CONFIG_SYS_SDRAM_BASE | +0 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [U-Boot] [PATCH 00/52] Support OF_PLATDATA in TPL, enable RK3368 DRAM init and add RK3368-uQ7
Am Montag, 24. Juli 2017, 16:38:52 CEST schrieb Andy Yan:
Quoted 38 lines
Hi Philipp:
Quoted 35 lines · Dr. Philipp Tomsich
Quoted 25 lines · Andy Yan
Hi:
Quoted 20 lines · Philipp Tomsich
Here's a series that has a lot going on, but I didn't want to split it to allow everyone to understand the motivation between some of the changes to the SPL/TPL framework. The short summary of this is "enablement for DRAM init on the RK3368 with everything else that's necessary to do it using
OF_PLATDATAin TPL".Enabling the RK3368 created a few more challenges that I'd expected:
- I needed different stack locations, text addresses and sizes forTPL and SPL
- the TPL stage was to use
OF_PLATDATAand SPL was to use fullOF_CONTROL
- with the RK3368 TPL stage, there was a need to extend the back-to-bootromsupport for Rockchip to AArch64
- I wanted to start folding some of the Rockchip specific SPL support
Quoted 8 lines
Quoted 2 lines
(i.e. back-to-bootrom) back into the general SPL framework to allow using it as a general boot method
I have a confusion here: according to the README.TPL, TPL is Third Program Loader, which loaded by the SPL. So I think it should run after the SPL. But from RK3188 and RK3368 TPL implementation , they all run before SPL.Maybe it is my misunderstanding, hope to get some guidance.:-)>
I think you are right and most Rockchip boards have been using this the wrong way around.
Actually at first I also had the ordering of SPL -> TPL -> uboot for rk3188 but after discussions with Simon and Tom Rini, the opinion was that TPL stands for "tiny" program loader and should run before the full SPL.
So I switched that stuff around on rk3188.
Heiko
Quoted 209 lines
Only RK3188 uses TPL now.
Quoted 207 lines
With the fine-grained configurability that I created for the RK3368, it will be easy enough to switch this around on the RK3368. However, this will then also be done for the other RK3xxx devices to restore consistency.
I would prefer to first add the RK3368 support with the “backwards TPL/SPL” (i.e. TPL before SPL) to remain consistent with current mach-rockchip usage of the TPL/SPL terminology. Once this is merged, we can then switch this around for each board individually.>
Quoted 198 lines
Quoted 198 lines
So I ended up separating quite a bit of features between SPL and TPL while keeping things transparent to the few other boards using TPL (at least I hope that things are transparent, as we didn't have any of those in our lab to test on)...
Tested with: RK3368-uQ7, Debian 9, Linux 4.13-rc1.
Just one final remark: the DMC driver for the RK3368 currently covers the configuration we use on the RK3368-uQ7 (i.e. 32bit wide, 2 ranks) and is stress-tested (including 8-way SPEC runs) at all 3 supported speeds. I've built a bit of infrastructure (e.g. the way the memory-schedule is determined) that I hope will be a useful starting-point in unifying the drivers for the various closely related DRAM controllers (e.g. for the RK3288) for Rockchip devices in the future.
Klaus Goger (1):
rockchip: board:puma_rk3399: rename ATF firmwarePhilipp Tomsich (51):
spl: add a 'return to bootrom' boot method
spl: configure 'return to bootrom' separately for SPL and TPL
rockchip: back-to-bootrom: add 'back-to-bootrom' support for AArch64
rockchip: back-to-bootrom: splitBACK_TO_BOOTROMfor TPL/SPL
rockchip: back-to-bootrom: simplify the #ifdef-check for LIBGENERIC inTPL/SPL
spl: dm:
Kconfig: use more specific prereqs forSPL_REGMAPand
SPL_SYSCONspl: dm:
Kconfig: split REGMAP/SYSCON support for TPL from SPL
spl: dm:Kconfig:SPL_RAMdepends onSPL_DM
spl: dm:Kconfig: introduceTPL_RAM(in analogy toSPL_RAM)
spl: dm:Kconfig:SPL_CLKdepens onSPL_DM
spl: dm:Kconfig: split CLK support for SPL and TPL
spl: dm:Kconfig: splitOF_CONTROLandOF_PLATDATAbetween SPL and TPL
spl: dm: useCONFIG_IS_ENABLEDto test for the DM option
armv8: remove unused low-level modules from TPL
armv8: spl: Support separate stack for TPL
spl: allow a separateTEXT_BASE, LDSCRIPT andMAX_SIZEfor TPL
spl:Kconfig: splitSYS_MALLOC_SIMPLEfor TPL and SPL
lib: spl: differentiate between TPL and SPL forlibfdt/of_control/of_platdata
spl: consistently use $(SPL_TPL_) to select features for SPL and TPLbuilds
spl: add
TPL_DRIVER_MISC_SUPPORToption
drivers: spl: consistently use the $(SPL_TPL_) macro
rockchip:Makefile: allow selective inclusion of sdram_common.o fromTPL/SPL/U-Boot
rockchip: rk3368: improve
Kconfigtext for the RK3368
rockchip: rk3368: mkimage: add support for the RK3368
rockchip: rk3368: pmugrf: add definitions for os_reg[0..3]
rockchip: rk3368: defineCONFIG_SYS_SDRAM_BASE
rockchip: rk3368: spl: defineCOUNTER_FREQUENCYto 24MHz
rockchip: rk3368: spl: add memory layout for TPL and SPL
rockchip: rk3368: syscon: MSCH/PMUGRF/GRF support forOF_PLATDATA
rockchip: rk3368: grf: use shifted-constants and prefix withRK3368_
rockchip: pinctrl: rk3368: add GMAC (RGMII only) support
rockchip: pinctrl: rk3368: add support for configuring the MMC pins
rockchip: clk: rk3368: implement bandwidth adjust for PLLs
rockchip: clk: rk3368: supportOF_PLATDATAfor the RK3368 clk driver
rockchip: clk: rk3368: do not change CPLL/GPLL before returning toBROM
rockchip: clk: rk3368: implement DPLL (DRAM PLL) support
rockchip: clk: rk3368: defineDMA1_SRST_REQandDMA2_SRST_REQ
rockchip: clk: rk3368: implement MMC/SD clock reparenting
rockchip: clk: rk3368: support configuring the DRAM PLL (from TPL)
rockchip: clk: rk3368: add support for GMAC (SLCK_MAC) clock
rockchip: clk: rk3368: mark 'priv'__maybe_unusedinrk3368_clk_set_rate()net:
gmac_rockchip: Add support for the RK3368 GMAC
rockchip:Makefile: streamline SPL/TPL configuration
rockchip: rk3368: add DRAM controller driver with DRAM initialisation
rockchip: dts: rk3368: add DMC node inrk3368.dtsi
rockchip: rk3368: spl: enableSPL_FRAMEWORKinrk3368_common.h
rockchip: rk3368: spl: add TPL support
rockchip: rk3368: spl: add SPL support
rockchip: rk3368: spl: mark SPL and TPL as supported forROCKCHIP_RK3368rockchip: board: lion-rk3368: add support for the RK3368-uQ7
rockchip: board: puma-rk3399: fix warnings inpuma_rk3399/fit_spl_atf.itsMakefile | 2 +- arch/arm/cpu/armv8/Makefile | 4 +- arch/arm/dts/Makefile | 1 + arch/arm/dts/rk3368-lion.dts | 209 +++++ arch/arm/dts/rk3368.dtsi | 26 +- arch/arm/include/asm/arch-rockchip/cru_rk3368.h | 15 +- arch/arm/include/asm/arch-rockchip/ddr_rk3368.h | 187 ++++ arch/arm/include/asm/arch-rockchip/grf_rk3368.h | 615 +++++++------ arch/arm/include/asm/spl.h | 1 + arch/arm/lib/crt0_64.S | 4 +- arch/arm/mach-rockchip/Kconfig | 37 +- arch/arm/mach-rockchip/Makefile | 51 +- arch/arm/mach-rockchip/bootrom.c | 4 +- arch/arm/mach-rockchip/rk3188-board-spl.c | 5 +- arch/arm/mach-rockchip/rk3188-board.c | 2 +- arch/arm/mach-rockchip/rk3288-board-spl.c | 4 +- arch/arm/mach-rockchip/rk3288-board.c | 4 +- arch/arm/mach-rockchip/rk3368-board-spl.c | 91 ++ arch/arm/mach-rockchip/rk3368-board-tpl.c | 158 ++++ arch/arm/mach-rockchip/rk3368/Kconfig | 21 + arch/arm/mach-rockchip/rk3368/Makefile | 1 - arch/arm/mach-rockchip/rk3368/sdram_rk3368.c | 60 -- arch/arm/mach-rockchip/rk3368/syscon_rk3368.c | 35 + arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds | 13 + arch/arm/mach-rockchip/rk3399-board-spl.c | 4 +- arch/arm/mach-rockchip/save_boot_param.S | 37 + board/theobroma-systems/lion_rk3368/Kconfig | 15 + board/theobroma-systems/lion_rk3368/MAINTAINERS | 10 + board/theobroma-systems/lion_rk3368/Makefile | 7 + board/theobroma-systems/lion_rk3368/README | 60 ++ .../theobroma-systems/lion_rk3368/fit_spl_atf.its | 51 ++ board/theobroma-systems/lion_rk3368/lion_rk3368.c | 25 + board/theobroma-systems/puma_rk3399/README | 2 +- .../theobroma-systems/puma_rk3399/fit_spl_atf.its | 20 +- common/Makefile | 8 +- common/spl/Kconfig | 39 + common/spl/Makefile | 35 +- common/spl/spl.c | 5 +- common/spl/spl_bootrom.c | 27 + configs/evb-rk3288_defconfig | 2 +- configs/fennec-rk3288_defconfig | 2 +- configs/firefly-rk3288_defconfig | 2 +- configs/lion-rk3368_defconfig | 79 ++ configs/miqi-rk3288_defconfig | 2 +- configs/popmetal-rk3288_defconfig | 2 +- configs/rock2_defconfig | 2 +- configs/rock_defconfig | 2 +- configs/tinker-rk3288_defconfig | 2 +- doc/README.rockchip | 2 +- .../clock/rockchip,rk3368-dmc.txt | 67 ++ drivers/Makefile | 36 +- drivers/clk/Kconfig | 12 +- drivers/clk/Makefile | 2 +- drivers/clk/rockchip/clk_rk3368.c | 222 ++++- drivers/core/Kconfig | 23 +- drivers/core/Makefile | 4 +- drivers/net/gmac_rockchip.c | 54 ++ drivers/pinctrl/rockchip/pinctrl_rk3368.c | 101 ++- drivers/ram/Kconfig | 11 +- drivers/ram/Makefile | 2 + drivers/ram/rockchip/Makefile | 7 + drivers/ram/rockchip/dmc-rk3368.c | 990 +++++++++++++++++++++ dts/Kconfig | 29 + include/configs/lion_rk3368.h | 19 + include/configs/rk3188_common.h | 2 +- include/configs/rk3288_common.h | 2 +- include/configs/rk3368_common.h | 15 + include/configs/rock.h | 2 +- include/configs/rockchip-common.h | 2 +- include/dt-bindings/memory/rk3368-dmc.h | 30 + include/linux/kconfig.h | 13 + include/spl.h | 10 + lib/Makefile | 10 +- scripts/Makefile.spl | 14 +- scripts/config_whitelist.txt | 4 + tools/rkcommon.c | 1 + 76 files changed, 3142 insertions(+), 534 deletions(-)create mode 100644
arch/arm/dts/rk3368-lion.dts
create mode 100644arch/arm/include/asm/arch-rockchip/ddr_rk3368.hcreate mode 100644arch/arm/mach-rockchip/rk3368-board-spl.ccreate mode 100644arch/arm/mach-rockchip/rk3368-board-tpl.cdelete mode 100644arch/arm/mach-rockchip/rk3368/sdram_rk3368.ccreate mode 100644arch/arm/mach-rockchip/rk3368/u-boot-tpl.ldscreate mode 100644 board/theobroma-systems/lion_rk3368/Kconfig create mode 100644 board/theobroma-systems/lion_rk3368/MAINTAINERS create mode 100644 board/theobroma-systems/lion_rk3368/Makefile create mode 100644 board/theobroma-systems/lion_rk3368/README create mode 100644 board/theobroma-systems/lion_rk3368/fit_spl_atf.its create mode 100644board/theobroma-systems/lion_rk3368/lion_rk3368.ccreate mode 100644common/spl/spl_bootrom.c
create mode 100644 configs/lion-rk3368_defconfig
create mode 100644doc/device-tree-bindings/clock/rockchip,rk3368-dmc.txtcreate mode 100644drivers/ram/rockchip/Makefile
create mode 100644drivers/ram/rockchip/dmc-rk3368.ccreate mode 100644include/configs/lion_rk3368.h
create mode 100644include/dt-bindings/memory/rk3368-dmc.h