]> git.dujemihanovic.xyz Git - u-boot.git/commit
rockchip: rk3588: bind MMC controllers in U-Boot proper pre-reloc
authorQuentin Schulz <quentin.schulz@theobroma-systems.com>
Mon, 11 Mar 2024 12:01:58 +0000 (13:01 +0100)
committerKever Yang <kever.yang@rock-chips.com>
Wed, 13 Mar 2024 10:15:52 +0000 (18:15 +0800)
commit70f9212d61fe79c605b805c6eb0764b29f8ae3b6
tree0b0405940005670feb34d7f9a9755d568a51a755
parent9f5df9a3ef6b7470cc7a74d712628b5d085e5314
rockchip: rk3588: bind MMC controllers in U-Boot proper pre-reloc

Since commit 9e644284ab81 ("dm: core: Report bootph-pre-ram/sram node as
pre-reloc after relocation"), bootph-pre-ram doesn't make U-Boot proper
bind the device before relocation.

While this is usually not much of an issue, it is when there's a lookup
for devices by code running before the relocation. Such is the case of
env_init() which calls env_driver_lookup() which calls
env_get_location() which is a weak symbol and may call
arch_env_get_location() also a weak symbol. Those are two functions that
may traverse UCLASS to find some devices (e.g.
board/theobroma-systems/common/common.c:arch_env_get_location()).

This allows something in the env_init() call stack to be able to use
uclasses for SD and eMMC controller on RK3588S/RK3588. This aligns the
behavior with what seems to be all SoCs except RK356x family.

Additionally, if any other env function (e.g. env_load) were to be used
before relocation, this is also required as otherwise it wouldn't be
able to find the MMC device(s).

Cc: Quentin Schulz <foss+uboot@0leil.net>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
arch/arm/dts/rk3588s-u-boot.dtsi