[PATCH v2 00/30] rockchip: Add initial support for RK3528

Jonas Karlman jonas at kwiboo.se
Tue Apr 8 00:46:33 CEST 2025


This series add initial support for the Rockchip RK3528 SoC.

Clk, pinctrl and rng drivers have been imported from vendor U-Boot with
minor adjustments and fixes.

Upstream DT for RK3528 is now more complete and this series only add a
few missing nodes to -u-boot.dtsi files to have a bootable system.

Changes in v2:
- Pick device tree commits from devicetree-rebasing v6.15-rc1-dts
- Update clk and reset driver to work with mainline Linux dt-bindings
- Add RK3528 support in otp, saradc, inno-usb2 and dwc_eth_qos drivers

Features tested on a ArmSoM Sige1:
- SD-card boot
- eMMC boot

Features tested on a FriendlyElec NanoPi Zero2:
- SD-card boot
- eMMC boot

Features tested on a Radxa E20C v1.104:
- SD-card boot
- eMMC boot

Features tested on a Radxa ROCK 2A v1.202:
- SD-card boot

Boot log on a Radxa ROCK 2A:

  DDR 44ec2e0a51 huan.he 24/07/12-14:38:48,fwver: v1.10
  [...]
  out
  
  U-Boot SPL 2025.04-rc5 (Apr 07 2025 - 21:08:38 +0000)
  Trying to boot from MMC2
  ## Checking hash(es) for config config-1 ... OK
  ## Checking hash(es) for Image atf-1 ... sha256+ OK
  ## Checking hash(es) for Image u-boot ... sha256+ OK
  ## Checking hash(es) for Image fdt-1 ... sha256+ OK
  ## Checking hash(es) for Image atf-2 ... sha256+ OK
  ## Checking hash(es) for Image atf-3 ... sha256+ OK
  INFO:    Preloader serial: 0
  NOTICE:  BL31: v2.3():v2.3-857-g059b3c586:derrick.huang, fwver: v1.18
  NOTICE:  BL31: Built : 17:43:24, Nov 18 2024
  INFO:    rk_otp_init finish!
  INFO:    ARM GICv2 driver initialized
  INFO:    nonboot_cpus_off: clst_st=0xc0e, core_st=0xe1e0 boot_cpu=0
  INFO:    dfs DDR fsp_param[0].freq_mhz= 1056MHz
  INFO:    dfs DDR fsp_param[1].freq_mhz= 324MHz
  INFO:    dfs DDR fsp_param[2].freq_mhz= 528MHz
  INFO:    dfs DDR fsp_param[3].freq_mhz= 780MHz
  INFO:    idle_st=0x0, pd_st=0x0
  INFO:    Using opteed sec cpu_context!
  INFO:    boot cpu mask: 1
  INFO:    rk_otp_init finish!
  INFO:    RK3528 SoC (0x101)
  INFO:    BL31: Initializing runtime services
  WARNING: No OPTEE provided by BL2 boot loader, Booting device without OPTEE initialization. SMC`s destined for OPTEE will return SMC_UNK
  ERROR:   Error initializing runtime service opteed_fast
  INFO:    BL31: Preparing for EL3 exit to normal world
  INFO:    Entry point address = 0x800000
  INFO:    SPSR = 0x3c9
  
  
  U-Boot 2025.04-rc5 (Apr 07 2025 - 21:08:38 +0000)
  
  Model: Generic RK3528
  SoC:   RK3528A
  DRAM:  4 GiB (effective 3.9 GiB)
  Core:  130 devices, 20 uclasses, devicetree: separate
  MMC:   mmc at ffbf0000: 0, mmc at ffc30000: 1
  Loading Environment from nowhere... OK
  In:    serial at ff9f0000
  Out:   serial at ff9f0000
  Err:   serial at ff9f0000
  Hit any key to stop autoboot:  0
  =>

This series depends on the following series:
- rockchip: ROCKCHIP_COMMON_STACK_ADDR improvements
- rockchip: Update rng compatible for RK356x and RK3588

Chukun Pan (2):
  arm64: dts: rockchip: Add rk3528 QoS register node
  arm64: dts: rockchip: enable SCMI clk for RK3528 SoC

Jonas Karlman (21):
  arm64: dts: rockchip: Add pinctrl and gpio nodes for RK3528
  arm64: dts: rockchip: Add SARADC node for RK3528
  arm64: dts: rockchip: Add SDHCI controller for RK3528
  arm64: dts: rockchip: Add uart0 pinctrl to Radxa E20C
  arm64: dts: rockchip: Add leds node to Radxa E20C
  arm64: dts: rockchip: Add user button to Radxa E20C
  arm64: dts: rockchip: Add maskrom button to Radxa E20C
  arm64: dts: rockchip: Enable onboard eMMC on Radxa E20C
  ram: rockchip: Add basic support for RK3528
  arm: dts: rockchip: Add rk3528-u-boot.dtsi
  arch: arm: rockchip: Add initial support for RK3528
  mmc: rockchip_sdhci: Extend variant configuration
  mmc: rockchip_sdhci: Add initial support for RK3528
  mmc: rockchip_sdhci: Gate clock for glitch free phase switching
  rockchip: otp: Add support for RK3528
  adc: rockchip-saradc: Add support for RK3528
  phy: rockchip-inno-usb2: Add support for clkout_ctl_phy
  phy: rockchip-inno-usb2: Add support for RK3528
  net: dwc_eth_qos_rockchip: Add support for RK3528
  board: rockchip: Add minimal generic RK3528 board
  board: rockchip: Add Radxa E20C

Joseph Chen (1):
  clk: rockchip: Add support for RK3528

Lin Jinhan (1):
  rng: rockchip: Add support for rkrng variant

Steven Liu (1):
  pinctrl: rockchip: Add support for RK3528

Yao Zi (3):
  dt-bindings: clock: Document clock and reset unit of RK3528
  arm64: dts: rockchip: Add clock generators for RK3528 SoC
  arm64: dts: rockchip: Add UART clocks for RK3528 SoC

Yifeng Zhao (1):
  rockchip: mkimage: Add support for RK3528

 arch/arm/dts/rk3528-generic-u-boot.dtsi       |   12 +
 arch/arm/dts/rk3528-generic.dts               |   31 +
 arch/arm/dts/rk3528-radxa-e20c-u-boot.dtsi    |   12 +
 arch/arm/dts/rk3528-u-boot.dtsi               |  148 ++
 arch/arm/include/asm/arch-rk3528/boot0.h      |    9 +
 arch/arm/include/asm/arch-rk3528/gpio.h       |    9 +
 arch/arm/include/asm/arch-rockchip/clock.h    |   17 +
 .../include/asm/arch-rockchip/cru_rk3528.h    |  388 ++++
 arch/arm/mach-rockchip/Kconfig                |   51 +
 arch/arm/mach-rockchip/Makefile               |    1 +
 arch/arm/mach-rockchip/rk3528/Kconfig         |   15 +
 arch/arm/mach-rockchip/rk3528/MAINTAINERS     |   11 +
 arch/arm/mach-rockchip/rk3528/Makefile        |    5 +
 arch/arm/mach-rockchip/rk3528/clk_rk3528.c    |   16 +
 arch/arm/mach-rockchip/rk3528/rk3528.c        |  137 ++
 arch/arm/mach-rockchip/rk3528/syscon_rk3528.c |   19 +
 arch/arm/mach-rockchip/sdram.c                |    3 +-
 configs/generic-rk3528_defconfig              |   40 +
 configs/radxa-e20c-rk3528_defconfig           |   56 +
 doc/board/rockchip/rockchip.rst               |   13 +
 drivers/adc/rockchip-saradc.c                 |   10 +
 drivers/clk/rockchip/Makefile                 |    1 +
 drivers/clk/rockchip/clk_pll.c                |   23 +-
 drivers/clk/rockchip/clk_rk3528.c             | 1754 +++++++++++++++++
 drivers/misc/rockchip-otp.c                   |    4 +
 drivers/mmc/rockchip_sdhci.c                  |   39 +-
 drivers/net/dwc_eth_qos.c                     |    4 +
 drivers/net/dwc_eth_qos_rockchip.c            |  138 ++
 drivers/phy/rockchip/phy-rockchip-inno-usb2.c |   63 +-
 drivers/pinctrl/rockchip/Makefile             |    1 +
 drivers/pinctrl/rockchip/pinctrl-rk3528.c     |  273 +++
 drivers/ram/rockchip/Makefile                 |    1 +
 drivers/ram/rockchip/sdram_rk3528.c           |   33 +
 drivers/reset/Makefile                        |    2 +-
 drivers/reset/rst-rk3528.c                    |  302 +++
 drivers/rng/rockchip_rng.c                    |   73 +
 drivers/usb/gadget/Kconfig                    |    1 +
 .../Bindings/clock/rockchip,rk3528-cru.yaml   |   64 +
 .../dt-bindings/clock/rockchip,rk3528-cru.h   |  453 +++++
 .../dt-bindings/reset/rockchip,rk3528-cru.h   |  241 +++
 .../src/arm64/rockchip/rk3528-pinctrl.dtsi    | 1397 +++++++++++++
 .../src/arm64/rockchip/rk3528-radxa-e20c.dts  |  133 ++
 dts/upstream/src/arm64/rockchip/rk3528.dtsi   |  378 +++-
 include/configs/rk3528_common.h               |   38 +
 tools/rkcommon.c                              |    1 +
 45 files changed, 6398 insertions(+), 22 deletions(-)
 create mode 100644 arch/arm/dts/rk3528-generic-u-boot.dtsi
 create mode 100644 arch/arm/dts/rk3528-generic.dts
 create mode 100644 arch/arm/dts/rk3528-radxa-e20c-u-boot.dtsi
 create mode 100644 arch/arm/dts/rk3528-u-boot.dtsi
 create mode 100644 arch/arm/include/asm/arch-rk3528/boot0.h
 create mode 100644 arch/arm/include/asm/arch-rk3528/gpio.h
 create mode 100644 arch/arm/include/asm/arch-rockchip/cru_rk3528.h
 create mode 100644 arch/arm/mach-rockchip/rk3528/Kconfig
 create mode 100644 arch/arm/mach-rockchip/rk3528/MAINTAINERS
 create mode 100644 arch/arm/mach-rockchip/rk3528/Makefile
 create mode 100644 arch/arm/mach-rockchip/rk3528/clk_rk3528.c
 create mode 100644 arch/arm/mach-rockchip/rk3528/rk3528.c
 create mode 100644 arch/arm/mach-rockchip/rk3528/syscon_rk3528.c
 create mode 100644 configs/generic-rk3528_defconfig
 create mode 100644 configs/radxa-e20c-rk3528_defconfig
 create mode 100644 drivers/clk/rockchip/clk_rk3528.c
 create mode 100644 drivers/pinctrl/rockchip/pinctrl-rk3528.c
 create mode 100644 drivers/ram/rockchip/sdram_rk3528.c
 create mode 100644 drivers/reset/rst-rk3528.c
 create mode 100644 dts/upstream/Bindings/clock/rockchip,rk3528-cru.yaml
 create mode 100644 dts/upstream/include/dt-bindings/clock/rockchip,rk3528-cru.h
 create mode 100644 dts/upstream/include/dt-bindings/reset/rockchip,rk3528-cru.h
 create mode 100644 dts/upstream/src/arm64/rockchip/rk3528-pinctrl.dtsi
 create mode 100644 include/configs/rk3528_common.h

-- 
2.49.0



More information about the U-Boot mailing list