[PATCH 12/19] rockchip: rk3588: Update bootph props
Quentin Schulz
quentin.schulz at theobroma-systems.com
Tue Apr 2 15:54:20 CEST 2024
Hi Jonas,
On 4/2/24 15:36, Jonas Karlman wrote:
> Hi Quentin,
>
> On 2024-04-02 13:20, Quentin Schulz wrote:
>> Hi Jonas,
>>
>> On 3/29/24 20:01, Jonas Karlman wrote:
>>
>> [...]
>>
>>> diff --git a/arch/arm/dts/rk3588s-u-boot.dtsi b/arch/arm/dts/rk3588s-u-boot.dtsi
>>> index e4171bd24d2a..a502a82fae6a 100644
>>> --- a/arch/arm/dts/rk3588s-u-boot.dtsi
>>> +++ b/arch/arm/dts/rk3588s-u-boot.dtsi
>>> @@ -121,31 +121,35 @@
>>> };
>>>
>>> &cru {
>>> - bootph-pre-ram;
>>> + bootph-all;
>>> };
>>>
>>> &emmc_bus8 {
>>> - bootph-all;
>>> + bootph-pre-ram;
>>> };
>>>
>>> &emmc_clk {
>>> - bootph-all;
>>> + bootph-pre-ram;
>>> };
>>>
>>> &emmc_cmd {
>>> - bootph-all;
>>> + bootph-pre-ram;
>>> };
>>>
>>> &emmc_data_strobe {
>>> - bootph-all;
>>> + bootph-pre-ram;
>>> };
>>>
>>> &emmc_rstnout {
>>> - bootph-all;
>>> + bootph-pre-ram;
>>> };
>>>
>>> &ioc {
>>> - bootph-pre-ram;
>>> + bootph-all;
>>> +};
>>> +
>>> +&pcfg_pull_down {
>>> + bootph-all;
>>> };
>>>
>>> &pcfg_pull_none {
>>> @@ -157,6 +161,10 @@
>>> };
>>>
>>> &pcfg_pull_up_drv_level_2 {
>>> + bootph-pre-ram;
>>> +};
>>> +
>>> +&php_grf {
>>> bootph-all;
>>> };
>>>
>>> @@ -189,19 +197,23 @@
>>> };
>>>
>>> &sdmmc_bus4 {
>>> - bootph-all;
>>> + bootph-pre-ram;
>>> };
>>>
>>> &sdmmc_clk {
>>> - bootph-all;
>>> + bootph-pre-ram;
>>> };
>>>
>>> &sdmmc_cmd {
>>> - bootph-all;
>>> + bootph-pre-ram;
>>> };
>>>
>>> &sdmmc_det {
>>> - bootph-all;
>>> + bootph-pre-ram;
>>> +};
>>> +
>>
>> Please add bootph-some-ram to all nodes related to eMMC/SD card
>> otherwise I assume some boards won't work anymore (e.g. the ones that
>> need to find MMC devices through DT in arch_env_get_location, e.g.
>> Theobroma's Jaguar (and soon Tiger)).
>
> Sure I will add them in a v2.
>
> When I tested your arch_env_get_location() it did not seem to require
> any pinctrl nodes at pre-reloc stage.
>
Mmmmmm... I assume it is because the device checked in
arch_env_get_location() in U-Boot proper pre-reloc is necessarily the
same as the one used to load U-Boot proper from SPL, which means the SPL
will have set the mux correctly (because of bootph-pre-ram). I don't
think U-Boot proper pre-reloc has a separate DTB from U-Boot proper, so
I think it checks only for boopth-some-ram property in the MMC
controller node, and maybe not for pinctrl nodes?
> Ideally we should be able to skip use of DM, env and serial at pre-reloc
> stage for Rockchip. Serial and pinctrl already gets configured in SPL, and
> use of DM slows down boot by 200-700ms, but that is for another series ;-)
>
Agreed :)
>>
>> c.f.
>> https://source.denx.de/u-boot/u-boot/-/commit/70f9212d61fe79c605b805c6eb0764b29f8ae3b6
>>
>> It was not easy to have this merged, so I'd prefer to avoid having to go
>> through it again to fix my board(s) :)
>>
>> It'd be nice to split this into multiple commits so we can have some
>> individual justification of why such a change is made, so that we know
>> if we need to revert/update it in the future.
>
> Will try to split this in v2.
>
> In summary some pinctrl or nodes referenced was not enabled for SPL
> stage, and some was enabled for TPL that should never be needed in TPL,
> if U-Boot TPL will be used in future.
>
> TPL: uart node + dmc/ram and any node required/referenced
> SPL: TPL + sdmmc/sdhci/spi-flash nodes and related pinctrl
For the <soc>-u-boot.dtsi, I guess this is good enough, we may need more
though for some boards (e.g. emmc-reset, gpios, etc...).
> pre-reloc: TPL + sdmmc/sdhci/spi-flash nodes
>
> I created a python script [1] that can check the built tpl/spl/proper
> dtb for missing nodes and some config options for all soc targets.
>
> [1] https://gist.github.com/Kwiboo/34c099fb42eb6ae5ed515a04275a7ed7
>
Ooooooh this seems really neat. I'm always very careful when adding
support for a new board and I'm always afraid to miss a few nodes, I'll
try to not forget to have a look at this for adding support for Tiger
RK3588 :)
Do you have any plan of submitting this on the ML? I think this could be
beneficial to the project!
Cheers,
Quentin
More information about the U-Boot
mailing list