Compare commits

...

77 Commits

Author SHA1 Message Date
Tom Rini
6d69fc02b3 Merge tag 'u-boot-rockchip-20250110' of https://source.denx.de/u-boot/custodians/u-boot-rockchip
CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/24129

- Add boards:
	rk3566: FriendlyARM NanoPi R3S
	rk3588s: Radxa ROCK 5C,
	rk3588: Khadas Edge2
- Migrate to OF_UPSTREAM:
	rk3066a/rk3188;
	rk3288: tinker, miqi, firefly;
- Migrate to TPL: rk3399 kevin and bob;

(cherry picked from commit bc157bb666)
2025-12-20 20:47:30 -07:00
Jonas Karlman
48a76260d4 rockchip: rk3308: Implement checkboard() to print SoC variant
Implement checkboard() to print current SoC variant used by a board,
e.g. one of:

  SoC:   RK3308
  SoC:   RK3308B
  SoC:   RK3308B-S

when U-Boot proper is running.

  U-Boot 2025.01-rc1 (Nov 02 2024 - 20:26:25 +0000)

  Model: Radxa ROCK Pi S
  SoC:   RK3308B
  DRAM:  512 MiB (effective 510 MiB)

Information about the SoC variant is read from GRF.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>

(cherry picked from commit 39389cfb3d)
2025-12-20 20:47:30 -07:00
Jonas Karlman
36dc7579bf rockchip: rk3588: Implement checkboard() to print SoC variant
Implement checkboard() to print current SoC model used by a board,
e.g. one of:

  SoC:   RK3582
  SoC:   RK3588
  SoC:   RK3588J
  SoC:   RK3588S
  SoC:   RK3588S2

when U-Boot proper is running.

  U-Boot 2025.01-rc1 (Nov 10 2024 - 00:31:29 +0000)

  Model: Generic RK3588S/RK3588
  SoC:   RK3588S2
  DRAM:  8 GiB

Information about the SoC model and variant is read from OTP.

Also update rk3588s-u-boot.dtsi to include OTP in U-Boot pre-reloc phase,
where checkboard() is called.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Tested-by: FUKAUMI Naoki <naoki@radxa.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 1c2ffcd5e6)
2025-12-20 20:47:30 -07:00
Jonas Karlman
88b53ae6ae rockchip: rk356x: Implement checkboard() to print SoC variant
Implement checkboard() to print current SoC model used by a board,
e.g. one of:

  SoC:   RK3566
  SoC:   RK3566T
  SoC:   RK3568
  SoC:   RK3568B2
  SoC:   RK3568J

when U-Boot proper is running.

  U-Boot 2025.01-rc1 (Nov 10 2024 - 00:39:37 +0000)

  Model: Generic RK3566/RK3568
  SoC:   RK3568J
  DRAM:  8 GiB (effective 7.7 GiB)

Information about the SoC model and variant is read from OTP.

Also update rk356x-u-boot.dtsi to include OTP in U-Boot pre-reloc phase,
where checkboard() is called.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Tested-by: FUKAUMI Naoki <naoki@radxa.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 1a520a9b20)
2025-12-20 20:47:30 -07:00
Jonas Karlman
10d2de35e9 rockchip: rk3399-rock-pi-4: Fix Synchronous Abort
After the commit 788cf33315 ("efi: add a helper to generate dynamic
UUIDs") update_info.num_images must match number of valid update images.

On Rock Pi 4 following Synchronous Abort can be observed due to fw_name
being NULL:

  Scanning global bootmeth 'efi_mgr':
  "Synchronous Abort" handler, esr 0x96000010, far 0x0
  elr: 0000000000200e28 lr : 000000000028adb8 (reloc)
  elr: 00000000f3efbe28 lr : 00000000f3f85db8
  x0 : 0000000000000000 x1 : ffffffffffffffff
  x2 : 0000000000000000 x3 : 000000000000000e
  x4 : 0000000000000000 x5 : 00000000f1ef0d78
  x6 : 00000000f3fb3b90 x7 : 0000000000000044
  x8 : 0000000000000010 x9 : 0000000000000031
  x10: 00000000f0ea3fff x11: 00000000f1f29e00
  x12: 0000000000000002 x13: fffffffffffff000
  x14: 00000000f1f29e00 x15: 0000000000000018
  x16: 00000000f3f44f7c x17: 0000000000000000
  x18: 00000000f1ef2de0 x19: 00000000f0ea3040
  x20: 00000000f3ff53d8 x21: 00000000f3fd0498
  x22: 0000000000000000 x23: 00000000f1edb960
  x24: 00000000f1edb95f x25: 00000000f1edb990
  x26: 00000000f1edb964 x27: 00000000f1edb998
  x28: 00000000f1edc1ec x29: 00000000f1edb820

  Code: aa0003e2 d2800000 eb01001f 54000060 (78607843)
  Resetting CPU ...

  resetting ...

Fix this by setting update_info.num_images to 0 when no valid update
images is added to update_info.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Tested-by: FUKAUMI Naoki <naoki@radxa.com>

(cherry picked from commit c72e37dceb)
2025-12-20 20:47:30 -07:00
Heiko Stuebner
c5e236667f clk: rockchip: rk3588: fix mask define for aclk_vop_root
The mask for aclk_vop_root is 3-bit wide, not 2-bit wide according
to the TRM, so set the mask accordingly.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 46e371cd31)
2025-12-20 20:47:30 -07:00
Jonas Karlman
aac650af4a rockchip: rk3588-nanopc-t6-lts: Add missing board -u-boot.dtsi
The commit 7cec3e7019 ("rockchip: rk3588-nanopc-t6: Add support for
NanoPC-T6 LTS") added support for the LTS variant of NanoPC T6. However,
a board specific -u-boot.dtsi file was never added.

Due to the missing -u-boot.dtsi file the LTS fdt included in the FIT is
never tagged with bootph props.

When ENV_IS_IN_SPI_FLASH is enabled, not enabled in defconfig, the env
can successfully load from SPI flash on the non-LTS variant, something
that does not work on the LTS variant due to missing bootph-some-ram
props in the LTS fdt.

Fix this by adding a LTS -u-boot.dtsi file that just include the non-LTS
-u-boot.dtsi file.

Reported-by: Ricardo Pardini <ricardo@pardini.net>
Fixes: 7cec3e7019 ("rockchip: rk3588-nanopc-t6: Add support for NanoPC-T6 LTS")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit dc53e48d17)
2025-12-20 20:47:29 -07:00
Jonas Karlman
22d46871e3 rockchip: rk3399-gru: Include pinctrl and regulators in SPL
Add bootph props and enable related Kconfig options to include vital
regulators in SPL.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 54fddb9d88)
2025-12-20 20:47:29 -07:00
Jonas Karlman
6e55d813f1 rockchip: rk3399-gru: Use SDMA mode to read from eMMC
Enable use of SDMA mode when reading from eMMC to speed up boot.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 4636b19afb)
2025-12-20 20:47:29 -07:00
Jonas Karlman
f04ba50517 rockchip: rk3399-gru: Enable dcache and signature validation in SPL
With TPL being used to init DRAM, SPL being used to load FIT and the
adjusted FIT payload offset it is now possible to increase the size
limit of SPL to 256 KB and enable uses of dcache and FIT signature
validation.

Drop SPL_SYS_DCACHE_OFF=y to enable use of dcache in SPL.

Drop SPL_FIT_SIGNATURE=n to enable signature validation of FIT in SPL.

Change SPL_MAX_SIZE to 256 KB now that payload offset has moved in SPI
and TF-A may be loaded to 0x40000 in DRAM.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 0187fcc3c0)
2025-12-20 20:47:29 -07:00
Jonas Karlman
b03b1b9605 rockchip: rk3399-gru: Remove unused nodes from xPL control FDT
The eMMC PHY and SPI flash is not used in all xPL phases.

Change to no longer include emmc_phy and spi_flash in all xPL phases.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 1c34c315e7)
2025-12-20 20:47:29 -07:00
Jonas Karlman
d51dbdc2ce rockchip: rk3399: Drop common Kconfig options already implied
The last two RK3399 boards, chromebook bob and kevin, have now migraded
to use common bss and stack addresses.

Cleanup and remove Kconfig options no longer needed in rk3399/Kconfig
when all boards now use common bss and stack addresses.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 51b3e46363)
2025-12-20 20:47:29 -07:00
Jonas Karlman
af54254680 rockchip: rk3399-gru: Include binman generated FIT in u-boot.rom image
The u-boot.rom image contain u-boot.img FIT instead of the FIT generated
by binman for the u-boot-rockchip.bin image.

Change to include the binman generated FIT for the u-boot.rom image.

This change result in TF-A being included and the use sha256 instead of
crc32 checksum in the u-boot.rom FIT.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 55c9e3e5b2)
2025-12-20 20:47:29 -07:00
Jonas Karlman
cf354a60e9 rockchip: rk3399-gru: Use TPL with common bss and stack addresses
Migrate to use TPL, common bss, stack and malloc heap size and addresses
to unify memory use in TPL, SPL and pre-reloc with other RK3399 boards.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
(Disable TPL_BLOBLIST)
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 49f8131e55)
2025-12-20 20:47:29 -07:00
Jonas Karlman
b4b9996f7c rockchip: rk3399-gru: Fix include of TPL in u-boot.rom image
The chromebook specific u-boot.rom image does not include TPL when
building with TPL=y or ROCKCHIP_EXTERNAL_TPL=y.

Fix this by adding rockchip-tpl and u-boot-tpl nodes to the mkimage node
for the u-boot.rom binman image.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 656892f102)
2025-12-20 20:47:29 -07:00
Jonas Karlman
e3d925d261 rockchip: rk3399-gru: Move SPI flash payload offset for bob and kevin
The BootROM on RK3399 only read the first 2 KB of each 4 KB page from
SPI flash. With current FIT payload offset of 0x40000 this limits the
supported TPL+SPL size to only 128 KB.

Change to use 0xE0000 as FIT payload offset, similar to other RK3399
boards, to allow a maximum size for TPL of 192 KB and SPL of 256 KB.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit afbc34c79c)
2025-12-20 20:47:29 -07:00
Jonas Karlman
bc1d433c12 rockchip: rk3399-gru: Use SYS_SPI_U_BOOT_OFFS value in offset prop
Use the offset configured with SYS_SPI_U_BOOT_OFFS Kconfig option
instead of a hardcoded 0x40000 for the FIT payload offset.

This has no intended impact as SYS_SPI_U_BOOT_OFFS=0x40000.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 01048aa9f8)
2025-12-20 20:47:29 -07:00
Jonas Karlman
fd6ab26ab1 rockchip: rk3399: Fix TPL build of bob and kevin
Building chromebook_bob/kevin with TPL=y ends with a linking error:

  arch/arm/mach-rockchip/rk3399/rk3399.o: in function `board_debug_uart_init':
  arch/arm/mach-rockchip/rk3399/rk3399.c:148:(.text.board_debug_uart_init+0x34):
    undefined reference to `spl_gpio_output'
  arch/arm/mach-rockchip/rk3399/rk3399.c:148:(.text.board_debug_uart_init+0x34):
    relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `spl_gpio_output'

  make[2]: *** [scripts/Makefile.xpl:542: tpl/u-boot-tpl] Error 1
  make[1]: *** [Makefile:2134: tpl/u-boot-tpl] Error 2
  make: *** [Makefile:568: __build_one_by_one] Error 2

Change to only use spl_gpio functions in SPL to fix this.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit 4576e65a5d)
2025-12-20 20:47:29 -07:00
FUKAUMI Naoki
64a83df598 rockchip: rk3399: expand space for decompressed kernel
fix following error by using same ENV_MEM_LAYOUT_SETTINGS with rk35xx:

U-Boot 2025.01-rc3-00001-g1527c7dcdb01 (Dec 02 2024 - 22:57:18 +0000)
  :
Retrieving file: /boot/extlinux/../nixos/dhqjsnprmzjxncil3m0g9l09a479crn3-linux-6.12.1-Image
Retrieving file: /boot/extlinux/../nixos/6fq8fmmab31yxdwcs7zw44p78fq9fy1s-initrd-linux-6.12.1-initrd
append: init=/nix/store/yjbxgzf1vkwbw6ab738bf4kxazhyypa1-nixos-system-rock-5b-25.05.20241201.ac35b10/init console=ttyS2,1500000n8 console=ttyAMA0,115200n8 console=tty0 loglevel=7
Retrieving file: /boot/extlinux/../nixos/dhqjsnprmzjxncil3m0g9l09a479crn3-linux-6.12.1-dtbs/rockchip/rk3399-rock-4se.dtb
Moving Image from 0x2080000 to 0x2200000, end=0x60d0000
ERROR: RD image overlaps OS image (OS=2200000..60d0000)
Boot failed (err=-14)

$ ls -lh boot/nixos/
total 84M
-r--r--r--  1 root root  24M Jan  1  1970 6fq8fmmab31yxdwcs7zw44p78fq9fy1s-initrd-linux-6.12.1-initrd
-r--r--r--  1 root root  62M Jan  1  1970 dhqjsnprmzjxncil3m0g9l09a479crn3-linux-6.12.1-Image
dr-xr-xr-x 36 root root 4.0K Jan  1  1970 dhqjsnprmzjxncil3m0g9l09a479crn3-linux-6.12.1-dtbs

similar problem was fixed for rk35xx by:

commit 69b73877f0 ("rockchip: rk35xx: expand space for decompressed kernel")

Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit ddb3d7e635)
2025-12-20 20:47:29 -07:00
Daniel Semkowicz
d89d72bdad board: theobroma-systems: Update TF-A setup steps for RK3588 boards
ddrbin_tool interface has been changed. Additional chip_name argument
is now required to modify ddr binary file. Update documentation
to be consistent with the new interface.

Update BL31 and ROCKCHIP_TPL file paths to match current version
of binaries available in the rkbin repository.

Signed-off-by: Daniel Semkowicz <dse@thaumatec.com>
Acked-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>

(cherry picked from commit 532e30e709)
2025-12-20 20:47:29 -07:00
Johan Jonker
47a5282405 rockchip: rk3066a/rk3188: use includes from dts/upstream
The clock and power DT includes for rk3066a and rk3188 are now
available in the dts/upstream directory, so remove the ones that
are now redundant.

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 3681fe06ab)
2025-12-20 20:47:29 -07:00
Johan Jonker
98145e467a rockchip: use OF_UPSTREAM for rk3066a/rk3188
The device tree for rk3066a/rk3188 combined is now
available in the /dts/upstream directory.
Use imply OF_UPSTREAM to migrate all rk3066a/rk3188 boards.

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 43728edfc2)
2025-12-20 20:47:29 -07:00
FUKAUMI Naoki
0794d250c5 rockchip: Add support for Radxa ROCK 5C
Radxa ROCK 5C[1] is a Rockchip RK3588S2 based single board computer.

[1] https://radxa.com/products/rock5/5c

Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit e1661639d9)
2025-12-20 20:47:29 -07:00
FUKAUMI Naoki
b38b5ec084 arm64: dts: rockchip: add Radxa ROCK 5C
Radxa ROCK 5C is a 8K computer for everything[1] using the Rockchip
RK3588S2 chip:

- Rockchip RK3588S2
- Quad A76 and Quad A55 CPU
- 6 TOPS NPU
- up to 32GB LPDDR4x RAM
- eMMC / SPI flash connector
- Micro SD Card slot
- Gigabit ethernet port (supports PoE with add-on PoE HAT)
- WiFi6 / BT5.4
- 1x USB 3.0 Type-A HOST port
- 1x USB 3.0 Type-A OTG port
- 2x USB 2.0 Type-A HOST port
- 1x USB Type-C 5V power port

[1] https://radxa.com/products/rock5/5c

Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Link: https://lore.kernel.org/r/20241021090548.1052-2-naoki@radxa.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 3ddf5cdb77e6efd6fe9b70f36dec935e324a3cd2 ]

(cherry picked from commit f80689fcef4b9b07a97b629b4075cc1a4c21a68e)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit a0dd3480a7)
2025-12-20 20:47:29 -07:00
Cristian Ciocaltea
7ddf56b28b arm64: dts: rockchip: Add HDMI0 node to rk3588
Add support for the HDMI0 output port found on RK3588 SoC.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20241019-rk3588-hdmi0-dt-v2-1-466cd80e8ff9@collabora.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: d7bb71e69f58c1b3665a9f926bf8d3855111bf8e ]

(cherry picked from commit a839348380c2072e00a26bbdb80744982fe04c56)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 2cbffc1579)
2025-12-20 20:47:29 -07:00
Sam Edwards
eb76fb0d3e arm64: dts: rockchip: Split up RK3588's PCIe pinctrls
These pinctrls manage the low-speed PCIe signals:
- CLKREQ#: An output on the RK3588 (both RC or EP modes), used to
  request that external clock-generation circuitry provide a clock.
- PERST#: An input on the RK3588 in EP mode, used to detect a reset
  signal from the RC. In RC mode, the hardware does not use this signal:
  Linux itself generates it by putting the pin in GPIO mode.
- WAKE#: In EP mode, this is an output; in RC mode, this is an input.

Each of these signals serves a distinct purpose, and more importantly,
PERST# should not be muxed when the RK3588 is in the RC role. Bundling
them together in pinctrl groups prevents proper use: indeed, almost none
of the current board-specific .dts files make any use of them.
(Exception: Rock 5A recently had a patch land that misuses _pins; this
 patch corrects that.)

However, on some RK3588 boards, the PCIe 3 controller will indefinitely
stall the boot if CLKREQ# is not muxed (details in the next patch).
This patch unbundles the signals to allow them to be used.

Signed-off-by: Sam Edwards <CFSworks@gmail.com>
Link: https://lore.kernel.org/r/20240912025034.180233-2-CFSworks@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 4294e32111781b3de4d73b944cbd1bc1662a9a7a ]

(cherry picked from commit 8713425fa162b61bcf5f7a6dcd171fddfb12be36)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit d113d47976)
2025-12-20 20:47:29 -07:00
Tianling Shen
2b8a6d9b86 board: rockchip: add FriendlyElec NanoPi R3S
The NanoPi R3S(as "R3S") is an open source platform with dual-Gbps
Ethernet ports designed and developed by FriendlyElec for IoT
applications.

Specification:
- Rockchip RK3566
- 2GB LPDDR4X RAM
- optional 32GB eMMC module
- SD card slot
- 2x 1000 Base-T
- 3x LEDs (POWER, LAN, WAN)
- 2x Buttons (Reset, MaskROM)
- 1x USB 3.0 Port
- Type-C 5V 2A Power

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit bf4a33e725)
2025-12-20 20:47:29 -07:00
Tianling Shen
2e70e475c9 arm64: dts: rockchip: reorder mmc aliases for NanoPi R3S
Typically any non-removable storage (emmc) is listed before removable
storage (sd-card) options. Also U-Boot will try to override and use
mmc0=sdhci and mmc1=sdmmc0 for all rk356x boards.

Fixes: 50decd493c83 ("arm64: dts: rockchip: Add FriendlyARM NanoPi R3S board")
Suggested-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Link: https://lore.kernel.org/r/20241022193537.1117919-6-cnsztl@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: b7cd1115456d312f8c5e60c80fdc35fd35ea6eab ]

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit c16cd170b9)
2025-12-20 20:47:29 -07:00
Tianling Shen
1745265c00 arm64: dts: rockchip: enable eMMC HS200 mode for NanoPi R3S
It is required to boot from eMMC without additional patch in u-boot.

Fixes: 50decd493c83 ("arm64: dts: rockchip: Add FriendlyARM NanoPi R3S board")
Suggested-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Link: https://lore.kernel.org/r/20241022193537.1117919-5-cnsztl@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 1b5365034410f1ca21adadadd492b99bdf4f2c55 ]

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 30db98ed87)
2025-12-20 20:47:29 -07:00
Tianling Shen
8b2bfdb6a7 arm64: dts: rockchip: sort props in pmu_io_domains node for NanoPi R3S
The status prop is typically the last prop.

Fixes: 50decd493c83 ("arm64: dts: rockchip: Add FriendlyARM NanoPi R3S board")
Suggested-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Link: https://lore.kernel.org/r/20241022193537.1117919-4-cnsztl@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 17e150fdd983c7e59b9240e34a166285f3c3fb39 ]

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit d3c686212f)
2025-12-20 20:47:29 -07:00
Tianling Shen
a72d7e3431 arm64: dts: rockchip: replace deprecated snps, reset props for NanoPi R3S
Replace deprecated snps,reset props and move them to the PHY node.

Fixes: 50decd493c83 ("arm64: dts: rockchip: Add FriendlyARM NanoPi R3S board")
Suggested-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Link: https://lore.kernel.org/r/20241022193537.1117919-3-cnsztl@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 82b2868937883b65732da498b26366d34db61510 ]

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit b9afcf4062)
2025-12-20 20:47:29 -07:00
Tianling Shen
1edfc2c306 arm64: dts: rockchip: fix model name for FriendlyElec NanoPi R3S
Use the marketing name for model name, this matches the dt-binding.
Also update the website url in copyright.

Fixes: 50decd493c83 ("arm64: dts: rockchip: Add FriendlyARM NanoPi R3S board")
Suggested-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Link: https://lore.kernel.org/r/20241022193537.1117919-2-cnsztl@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: b5bf84206a5c77528f9dd4cbca4e72caa063c102 ]

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 2222224bf9)
2025-12-20 20:47:29 -07:00
Tianling Shen
d72f78c7f4 arm64: dts: rockchip: Add FriendlyARM NanoPi R3S board
The NanoPi R3S(as "R3S") is an open source platform with dual-Gbps
Ethernet ports designed and developed by FriendlyElec for IoT
applications.

Specification:
- Rockchip RK3566
- 2GB LPDDR4X RAM
- optional 32GB eMMC module
- SD card slot
- 2x 1000 Base-T
- 3x LEDs (POWER, LAN, WAN)
- 2x Buttons (Reset, MaskROM)
- 1x USB 3.0 Port
- Type-C 5V 2A Power

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Link: https://lore.kernel.org/r/20241020173946.225960-2-cnsztl@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 50decd493c8394c52d04561fe4ede34df27a46ba ]

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 09ffc136aa)
2025-12-20 20:47:29 -07:00
Jonas Karlman
9f396cc619 rockchip: rk3288-firefly: Change to use FIT
Change to use FIT and FIT_SIGNATURE when loading U-Boot proper in SPL to
allow checksum validation and fallback loading of FIT from a different
mmc device.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 514839d5b1)
2025-12-20 20:47:29 -07:00
Jonas Karlman
f7d7fe3bb2 rockchip: rk3288-firefly: Fix slow Ethernet initializion
For some reason the Ethernet PHY reset delay is set to 1 second, this
cause an unneccecery long boot delay.

Firefly-RK3288 use RTL8211 Ethernet PHY, datasheet list an initial 10ms
delay and then a 30-76ms delay before accessing registers.

Change to use 80ms delay instead of a full second to speed up Ethernet
initializion in U-Boot.

Also enable PHY_REALTEK, DM_ETH_PHY and PHY_GIGE to improve Ethernet PHY
support in U-Boot.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit dc691ef150)
2025-12-20 20:47:29 -07:00
Jonas Karlman
55efb53383 rockchip: rk3288-firefly: Migrate to OF_UPSTREAM
The device tree for Firefly-RK3288 in dts/upstream can be used as-is by
U-Boot, migrate board to use OF_UPSTREAM.

Add chosen stdout-path prop to board u-boot.dtsi as it is missing in DT
from dts/upstream. Also change to use the upstream power_led symbol.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 338cfeac31)
2025-12-20 20:47:29 -07:00
Jonas Karlman
2721d42346 rockchip: rk3288-firefly: Drop USE_PREBOOT Kconfig option
After the migration to use standard boot, storage media devices should
automatically be initialized in the order listed in boot_targets env.

Drop USE_PREBOOT to speed up boot when booting from SD-card or eMMC.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 4a18711f54)
2025-12-20 20:47:29 -07:00
Jonas Karlman
7fe94fa640 rockchip: rk3288-firefly: Drop use of silent console and late boardinfo
Current use of SILENT_CONSOLE hide valuable information when something
goes wrong during boot, drop this Kconfig option to allow user to see
e.g. from what media U-Boot proper is loaded from.

A second Model line is printed on console due to DISPLAY_BOARDINFO_LATE,
drop this Kconfig option to remove the second redundant line.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit c18f00c331)
2025-12-20 20:47:29 -07:00
Jonas Karlman
54735a073e rockchip: rk3288-firefly: Include sdmmc regulator in SPL
Add bootph props and enable related Kconfig options to include the sdmmc
regulator in SPL. Also enable SPL_DM_SEQ_ALIAS to ensure aliases is
handled correctly in SPL.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit cf84730409)
2025-12-20 20:47:29 -07:00
Jonas Karlman
351a36ac0c rockchip: rk3288-firefly: Include required DT nodes in xPL
Add bootph- props to emmc, sdmmc, uart and related pinctrl nodes to
ensure devices and pinctrl can be used in xPL and U-Boot pre-reloc.

Remove the explicit bootph-all prop from the pinctrl node, any bootph-
prop will automatically be propagated to the pinctrl node.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 8baa2d8958)
2025-12-20 20:47:29 -07:00
Jonas Karlman
f458b53440 rockchip: rk3288-firefly: Use common bss and stack addresses
Migrate to use common bss, stack and malloc heap size and addresses to
unify memory use in TPL, SPL and pre-reloc.

ENV_OFFSET is using the default value of 0x3f8000 and is also dropped.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 14c13f295a)
2025-12-20 20:47:29 -07:00
Jonas Karlman
22b71f80b3 rockchip: rk3288-firefly: Set ethaddr env based on cpuid
Enable Kconfig options to read cpuid from efuse and set cpuid#, serial#
and ethaddr env vars based on the value read from efuse.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 35ae87eff6)
2025-12-20 20:47:29 -07:00
Jonas Karlman
9c459ab5d3 rockchip: rk3288-firefly: Sort u-boot.dtsi nodes alphabetically
Sort the nodes in rk3288-firefly-u-boot.dtsi in alphabetical order.

This has no intended change to board DT, this only rearrange nodes in
preparation for future changes.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 20ff82dc51)
2025-12-20 20:47:29 -07:00
Jonas Karlman
36dca965ff rockchip: rk3288-firefly: Drop unused SPL_LED related code
The firefly-rk3288_defconfig build target does not enable the SPL_LED
Kconfig option.

Drop the unused SPL_LED related code and replace it with a default-state
prop to ensure the LED driver enable the LED at U-Boot proper phase.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 1e3e3534a9)
2025-12-20 20:47:29 -07:00
Paul Kocialkowski
0459f684d2 rockchip: rk3399-rockpro64: Disable bootstage instrumentation config
The boot timing and reporting (bootstage) infrastructure is useful for
performance analysis and debug but adds overhead and console noise when
using the device normally. Remove it from the device config.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>

(cherry picked from commit e3c11f96b8)
2025-12-20 20:47:29 -07:00
Paul Kocialkowski
ce21d5c9d0 rockchip: rk3399-rockpro64: Hook sysreset gpio to enable full reset
The reset mechanism used by Linux to reset the SoC is known to only
partially reset the logic. A mechanism is implemented in
rk3399_force_power_on_reset to use a GPIO connected to the PMIC's
over-temperature (OTP) reset pin, which fully resets all logic.

Hook the associated GPIO where the function expects it to enable this
reset mechanism and avoid any possible side-effect of partially-reset
units.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>

(cherry picked from commit 95433be7ac)
2025-12-20 20:47:29 -07:00
Paul Kocialkowski
83e4c06860 rockchip: rk3399-roc-pc: Hook sysreset gpio to enable full reset
The reset mechanism used by Linux to reset the SoC is known to only
partially reset the logic. A mechanism is implemented in
rk3399_force_power_on_reset to use a GPIO connected to the PMIC's
over-temperature (OTP) reset pin, which fully resets all logic.

Hook the associated GPIO where the function expects it to enable this
reset mechanism and avoid any possible side-effect of partially-reset
units.

Without this patch, reading from the micro sd slot fails after a reset.
With this mechanism, U-Boot is able to boot from it reliably.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>

(cherry picked from commit d7882f556e)
2025-12-20 20:47:29 -07:00
Jacobe Zang
c1152542d7 board: rockchip: add Khadas Edge2 RK3588 board
Khadas Edge2 is a Rockchip RK3588S based SBC (Single Board Computer)
by Khadas.

There are tree variants depending on the DRAM size : 8G and 16G.

Specification:

    Rockchip RK3588S SoC
    4x ARM Cortex-A76, 4x ARM Cortex-A55
    8/16GB memory LPDDR4x
    Mali G610MP4 GPU
    3x MIPI CSI 4x lanes
    2x MIPI-DSI DPHY 4x lanes
    32/64GB eMMC
    1x USB 2.0, 1x USB 3.0, 2x USB-Type-C
    1x HDMI 2.1 output, 1x DP 1.4 output
    USB PD over USB Type-C

Kernel commit:
04d552993522 ("arm64: dts: rockchip: Add Khadas edge2 board")

Signed-off-by: Jacobe Zang <jacobe.zang@wesion.com>

(cherry picked from commit c990398674)
2025-12-20 20:47:29 -07:00
Jonas Karlman
8ffd55181c rockchip: rk3288-miqi: Change to use FIT
Change to use FIT and FIT_SIGNATURE when loading U-Boot proper in SPL to
allow checksum validation and fallback loading of FIT from a different
mmc device.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 60649ea8aa)
2025-12-20 20:47:29 -07:00
Jonas Karlman
2e7a82ac4c rockchip: rk3288-miqi: Fix slow Ethernet initializion
For some reason the Ethernet PHY reset delay is set to 1 second, this
cause an unneccecery long boot delay.

MiQi use RTL8211 Ethernet PHY, datasheet list an initial 10ms delay and
then a 30-76ms delay before accessing registers.

Change to use 80ms delay instead of a full second to speed up Ethernet
initializion in U-Boot.

Also enable PHY_REALTEK, DM_ETH_PHY and PHY_GIGE to improve Ethernet PHY
support in U-Boot.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 61f4e5f9cf)
2025-12-20 20:47:29 -07:00
Jonas Karlman
fc3651afd8 rockchip: rk3288-miqi: Migrate to OF_UPSTREAM
The device tree for mqmaker MiQi in dts/upstream can be used as-is by
U-Boot, migrate board to OF_UPSTREAM.

The change to use DT from dts/upstream will include minor changes and
fixes related to work led and usb otg.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit c33617d3bb)
2025-12-20 20:47:29 -07:00
Jonas Karlman
dd4585c27c rockchip: rk3288-miqi: Drop USE_PREBOOT Kconfig option
After the migration to use standard boot, storage media devices should
automatically be initialized in the order listed in boot_targets env.

Drop USE_PREBOOT to speed up boot when booting from SD-card or eMMC.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit e4b4ed9651)
2025-12-20 20:47:29 -07:00
Jonas Karlman
f97fdfafbc rockchip: rk3288-miqi: Drop use of silent console and late boardinfo
Current use of SILENT_CONSOLE hide valuable information when something
goes wrong during boot, drop this Kconfig option to allow user to see
e.g. from what media U-Boot proper is loaded from.

A second Model line is printed on console due to DISPLAY_BOARDINFO_LATE,
drop this Kconfig option to remove the second redundant line.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 1e4806defd)
2025-12-20 20:47:29 -07:00
Jonas Karlman
2503323c3a rockchip: rk3288-miqi: Include sdmmc regulator in SPL
Add bootph props and enable related Kconfig options to include the sdmmc
regulator in SPL. Also enable SPL_DM_SEQ_ALIAS to ensure aliases is
handled correctly in SPL.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit a9ad8e143f)
2025-12-20 20:47:29 -07:00
Jonas Karlman
2574e1379a rockchip: rk3288-miqi: Include required DT nodes in xPL
Add bootph- props to emmc, sdmmc, uart and related pinctrl nodes to
ensure devices and pinctrl can be used in xPL and U-Boot pre-reloc.

Remove the explicit bootph-all prop from the pinctrl node, any bootph-
prop will automatically be propagated to the pinctrl node.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 7e94567e10)
2025-12-20 20:47:29 -07:00
Jonas Karlman
d1f62b5da4 rockchip: rk3288-miqi: Use TPL with common bss and stack addresses
Migrate to use TPL, common bss, stack and malloc heap size and addresses
to unify memory use in TPL, SPL and pre-reloc.

ENV_OFFSET is using the default value of 0x3f8000 and is also dropped.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 68412a237f)
2025-12-20 20:47:29 -07:00
Jonas Karlman
6cdfc35d8d rockchip: rk3288-miqi: Set ethaddr env based on cpuid
Enable Kconfig options to read cpuid from efuse and set cpuid#, serial#
and ethaddr env vars based on the value read from efuse.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 8d00122325)
2025-12-20 20:47:29 -07:00
Jonas Karlman
eb1b40cfa5 rockchip: rk3288-miqi: Remove unused work led node from xPL
The work led is not used in xPL on rk3288-miqi, remove bootph props from
the work led node to exclude it from xPL control FDT.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 0bcaa88245)
2025-12-20 20:47:29 -07:00
Jonas Karlman
65e9fd1a86 rockchip: rk3288-miqi: Sort u-boot.dtsi nodes alphabetically
Sort the nodes in rk3288-miqi-u-boot.dtsi in alphabetical order.

This has no intended change to board DT, this only rearrange nodes in
preparation for future changes.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 98ba08b6c5)
2025-12-20 20:47:29 -07:00
Jonas Karlman
d84e7f5d67 rockchip: rk3288-tinker: Change to use FIT
Change to use FIT and FIT_SIGNATURE when loading U-Boot proper in SPL to
allow checksum validation and fallback loading of FIT from a different
mmc device.

Checksum validation of FIT adds around 140 ms to boot time:

Before:

       Mark    Elapsed  Stage
          0          0  reset
         13         13  TPL
      6,957      6,944  end tpl
     25,102     18,145  SPL
    131,932    106,830  end phase
    132,137        205  board_init_f
    444,277    312,140  board_init_r
  1,404,987    960,710  eth_common_init
  1,519,110    114,123  eth_initialize
  1,524,734      5,624  main_loop
  1,525,452        718  cli_loop

After:

       Mark    Elapsed  Stage
          0          0  reset
         13         13  TPL
      6,957      6,944  end tpl
     35,744     28,787  SPL
    271,220    235,476  end phase
    271,420        200  board_init_f
    588,474    317,054  board_init_r
  1,548,950    960,476  eth_common_init
  1,663,105    114,155  eth_initialize
  1,668,734      5,629  main_loop
  1,669,417        683  cli_loop

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 39c9a94ea6)
2025-12-20 20:47:29 -07:00
Jonas Karlman
9589746597 rockchip: rk3288-tinker: Fix slow Ethernet initializion
For some reason the Ethernet PHY reset delay is set to 1 second, this
cause an unneccecery long boot delay.

Tinker Board use RTL8211E or RTL8211F Ethernet PHY, datasheet list an
initial 10ms delay and then a 30-76ms delay before accessing registers.

Change to use 80ms delay instead of a full second to speed up Ethernet
initializion in U-Boot.

Also enable PHY_REALTEK, DM_ETH_PHY and PHY_GIGE to improve Ethernet PHY
support in U-Boot.

Before:

  1,404,971    960,924  eth_common_init
  2,438,830  1,033,859  eth_initialize
  2,444,449      5,619  main_loop
  2,445,153        704  cli_loop

After:

  1,404,987    960,710  eth_common_init
  1,519,110    114,123  eth_initialize
  1,524,734      5,624  main_loop
  1,525,452        718  cli_loop

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 57237c7f41)
2025-12-20 20:47:29 -07:00
Jonas Karlman
4e65fa6fbd rockchip: rk3288-tinker: Migrate to OF_UPSTREAM
The device tree for ASUS Tinker Board and S variant in dts/upstream can
be used as-is by U-Boot, migrate board to OF_UPSTREAM.

The change to use DT from dts/upstream will include minor changes and
fixes related to leds and regulators.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit a0a880942b)
2025-12-20 20:47:28 -07:00
Jonas Karlman
31086234eb rockchip: rk3288-tinker: Drop USE_PREBOOT Kconfig option
After the migration to use standard boot, storage media should
automatically be initialized in the order listed in boot_targets env.

Drop USE_PREBOOT to speed up boot with ~12 seconds when booting from
e.g. SD-card or eMMC.

Before:

  3,048,599      2,056  main_loop
  3,050,717      2,118  usb_start
 15,070,499 12,019,782  cli_loop

After:

  3,058,244      2,054  main_loop
  3,063,260      5,016  cli_loop

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit c33c245e30)
2025-12-20 20:47:28 -07:00
Jonas Karlman
fa79b14726 rockchip: rk3288-tinker: Drop use of silent console and late boardinfo
Current use of SILENT_CONSOLE hide valuable information when something
goes wrong during boot, drop this Kconfig option to allow user to see
e.g. from what media U-Boot proper is loaded from.

A second Model line is printed on console due to DISPLAY_BOARDINFO_LATE,
drop this Kconfig option to remove the second redundant line.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 4ae0e5cd4d)
2025-12-20 20:47:28 -07:00
Jonas Karlman
30c7303308 rockchip: rk3288-tinker: Use common bss and stack addresses
Migrate to use common bss, stack and malloc heap size and addresses to
unify memory use in TPL, SPL and pre-reloc.

Ensure SYS_MALLOC_F_LEN and TPL variant stay at 0x2000 and is unaffected
on other boards not changed to use common malloc heap size.

ENV_OFFSET is using the default value of 0x3f8000 and is also dropped.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 826267d3ea)
2025-12-20 20:47:28 -07:00
Jonas Karlman
324eb15e49 rockchip: rk3288-tinker: Sync defconfig options from rk3288-tinker-s
Add missing Kconfig options used by the rk3288-tinker-s variant.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit ab08413368)
2025-12-20 20:47:28 -07:00
Jonas Karlman
5cf576eae6 rockchip: rk3288-tinker: Set cpuid and serial env var
Enable MISC_INIT_R and ROCKCHIP_EFUSE to read cpuid from efuse and set
the cpuid# and serial# env vars.

Change to read mac address from eeprom in rockchip_early_misc_init_r()
to ensure the ethaddr env var is set before rockchip_setup_macaddr() try
to set ethaddr based on cpuid.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit b8ff4be966)
2025-12-20 20:47:28 -07:00
Jonas Karlman
138331007e rockchip: rk3288-tinker: Include mmc nodes in pre-reloc for env load
Include mmc related nodes in U-Boot proper pre-reloc phase to ensure
environment can be loaded from mmc devices.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 5b95daa832)
2025-12-20 20:47:28 -07:00
Jonas Karlman
82960a3d8d rockchip: rk3288-tinker: Drop unused vcc_sd regulator from SPL
The sdmmc power come from vcc33_sd pmic regulator and not from the
vcc_sd fixed regulator, as currently defined in the in-tree DT.

Drop vcc_sd and the related gpio7 and sdmmc_pwr nodes from being
included in SPL along with any related Kconfig option. Also enable
SPL_DM_SEQ_ALIAS to ensure aliases is handled correctly in SPL.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit fcd4949192)

[Cherry-pick fix: Kept ci/master's defconfig options (FIT, MISC_INIT_R) over older options]
2025-12-20 20:47:28 -07:00
Jonas Karlman
364a765b68 rockchip: rk3288-tinker: Only include required DT nodes in TPL
Drop the unneeded bootph-all prop from dmc node, it is already defined
in soc u-boot.dtsi.

Remove booth-all prop from gpio7 node, this node is not needed in TPL.

Adjust bootph props to include pinctrl related nodes for UART2.

Remove the explicit bootph-all prop from the pinctrl node, any bootph-
prop will automatically be propagated to the pinctrl node.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 7f13ffa280)
2025-12-20 20:47:28 -07:00
Jonas Karlman
c6b3e0c0d8 rockchip: rk3288-tinker: Sort u-boot.dtsi nodes alphabetically
Sort the nodes in rk3288-tinker u-boot.dtsi files in alphabetical order.

This has no intended change to board DTs and only rearrange nodes in
preparation for future changes.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit cabe2ef766)

[Cherry-pick fix: Resolved conflicts by keeping ci/master additions (bootph-some-ram, gmac, pinctrl sections) while applying alphabetical sorting]
2025-12-20 20:47:28 -07:00
Jonas Karlman
79e101ec9c board: rockchip: rk3288-tinker: Add myself as reviewer to MAINTAINERS
Add myself as a reviewer for Tinker Board and S variant so that I can
help with review and testing of defconfig and device tree changes.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 4d1c5a838a)
2025-12-20 20:47:28 -07:00
Jonas Karlman
83b15ad89a rockchip: rk3288: Fix bootph prop for vop nodes
The vop nodes does not need to be included in xPL control FDT, they only
need to be included at U-Boot proper pre-reloc phase.

Change to use bootph-some-ram prop to fix this.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 8b6227c229)
2025-12-20 20:47:28 -07:00
Jonas Karlman
081baca133 rockchip: rk3288: Use rk3288.dtsi from dts/upstream
rk3288.dtsi from arch/arm/dts is almost identical to the rk3288.dtsi
from dts/upstream, it differs only with a minor change in hdmi port
nodes, something that does not affect U-Boot.

Remove arch/arm/dts/rk3288.dtsi to use rk3288.dtsi from dts/upstream.
Also drop gpio aliases from -u-boot.dtsi that has been part of
rk3288.dtsi for some time.

No functional change to board DTs is intended with this removal.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 934a2d49f8)
2025-12-20 20:47:28 -07:00
Jonas Karlman
881926c669 rockchip: clk: rk3288: Drop use of SCLK_MAC_PLL
The SCLK_MAC_PLL id is not exported or referenced upstream. It is also
not referenced in vendor U-Boot or vendor kernel 4.4, 4.19, 5.10 or 6.1.

Relax the check for parent id SCLK_MAC_PLL when using internal clock
source for gmac to allow use of clock/rk3288-cru.h from dts/upstream.

All in-tree and upstream rk3288 DTs use an external clock as parent,
so no functional change to boards is expected with this change.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit c63eae2817)
2025-12-20 20:47:28 -07:00
Jonas Karlman
9673ab57d6 rockchip: rk3288: Use rk3288-power.h from dts/upstream
power/rk3288-power.h in include/dt-bindings is identical to the version
in dts/upstream, remove the copy from include/dt-bindings to only use
the version from dts/upstream.

No functional change to board DTs is intended with this removal.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

(cherry picked from commit 2247b8aa20)
2025-12-20 20:47:28 -07:00
Simon Glass
76c48184e8 Merge branch 'cherry-ddb0f26dc45' into 'master'
[pickman] Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh

See merge request u-boot/u-boot!267
2025-12-21 03:39:24 +00:00
2 changed files with 5 additions and 1 deletions

View File

@@ -49,6 +49,10 @@
bootph-some-ram;
};
&pinctrl {
bootph-all;
};
&sdmmc {
bootph-pre-ram;
bootph-some-ram;

View File

@@ -136,7 +136,7 @@ void board_debug_uart_init(void)
struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE;
struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE;
if (IS_ENABLED(CONFIG_XPL_BUILD) &&
if (IS_ENABLED(CONFIG_SPL_BUILD) &&
(IS_ENABLED(CONFIG_TARGET_CHROMEBOOK_BOB) ||
IS_ENABLED(CONFIG_TARGET_CHROMEBOOK_KEVIN))) {
rk_setreg(&grf->io_vsel, 1 << 0);