[U-Boot] [PATCH 1/3] arm: socfpga: Convert reset manager from struct to defines

Marek Vasut
2019-08-28T11:14:26Z

On 8/28/19 10:13 AM, Ley Foon Tan wrote:
[...]

>>>>>> If want to use address from DT, we need get address every time need to
>>>>>> use the address.
>>>>>> For non-DM, it is easier to use constant address. Let me know if you
>>>>>> still prefer to use address from DT.
>>>>
>>>> Surely you can cache the address or even better, convert to DM/DT ?
>>> Will try to cache the address for now. But, we need get address from
>>> DT twice, one in SPL, one in Uboot. They not sharing global data.
>>
>> I don't think there's much we can do about that, unless we can somehow
>> share parsed live DT from SPL to U-Boot, but that's for another
>> discussion/patchset/etc.
> I am working on this now and found there are 2 challenges if we get
> base address from DT.
> 1. We can only get the address from DT after gd->fdt_blob is
> initialized in spl_early_init(). So, spl_early_init() need move to
> beginning of board_init_f().

This should be reasonably easy to solve I guess ?

> Tested this on Agilex, look okay. But, pending test on other device
> families, like Gen5 or A10. Not sure any side effect with this change.
> 2. Secure (for PSCI) and non-secure functions share same functions,
> these functions can't use global data (for base address). Secure
> functions have its own secure data region.

There was a discussion about this before, instead of hacking up this
part constantly, maybe we should create a separate build of U-Boot (like
SPL/TPL) and use that for the "secure" mode. But that's for another
patchset and another discussion.

> #2 is more difficult to overcome. Do you have strong opinion to get
> base address from DT? Otherwise, can we use constant define for these
> base addresses?

See above, the secure part might need further work.