[PATCH] riscv: Only enable OF_BOARD_FIXUP for S-Mode
Sean Anderson
seanga2 at gmail.com
Fri Sep 11 12:20:25 CEST 2020
On 9/11/20 3:29 AM, Bin Meng wrote:
> Hi Sean,
>
> On Sat, Sep 5, 2020 at 9:22 PM Sean Anderson <seanga2 at gmail.com> wrote:
>>
>> It is unsafe to enable OF_BOARD_FIXUP only based on OF_SEPARATE.
>> OF_SEPARATE may indicate that the user wishes U-Boot to use a different
>> device tree than one obtained via OF_PRIOR_STAGE. However, OF_SEPARATE may
>> also indicate that the device tree which would be obtained via
>> OF_PRIOR_STAGE is invalid, nonexistant, or otherwise unusable. In this
>
> typo: nonexistent
>
>> latter case, enabling OF_BOARD_FIXUP will result in corruption of the
>> device tree. To remedy this, only enable OF_BOARD_FIXUP if U-Boot is
>> configured for S-Mode.
>>
>> Fixes: 1c17e55594a394ced7de88d91be294eaf8c564c1
>
> nits: the format should be: commit_id ("description")>
>> Signed-off-by: Sean Anderson <seanga2 at gmail.com>
>> ---
>>
>> arch/riscv/Kconfig | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
>> index 009a545fcf..13fac51483 100644
>> --- a/arch/riscv/Kconfig
>> +++ b/arch/riscv/Kconfig
>> @@ -288,6 +288,6 @@ config STACK_SIZE_SHIFT
>> default 14
>>
>> config OF_BOARD_FIXUP
>> - default y if OF_SEPARATE
>> + default y if OF_SEPARATE && RISCV_SMODE
>
> Is that your board is running U-Boot M-mode with OF_SEPARATE that does not work?
Yes, because the reason we use OF_SEPARATE is because no device tree is
passed to U-Boot. Trying to use the device tree passed to U-Boot even
though OF_SEPARATE is enabled results in garbage being written to the
actual device tree. Without this patch, booting on the K210 randomly
fails.
>
>>
>> endmenu
>> --
>
> Regards,
> Bin
>
More information about the U-Boot
mailing list