From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Anderson Date: Fri, 11 Sep 2020 06:20:25 -0400 Subject: [PATCH] riscv: Only enable OF_BOARD_FIXUP for S-Mode In-Reply-To: References: <20200905132211.412711-1-seanga2@gmail.com> Message-ID: <705ddfd4-ebe3-bb6e-4a85-cbb32ab5832c@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 9/11/20 3:29 AM, Bin Meng wrote: > Hi Sean, > > On Sat, Sep 5, 2020 at 9:22 PM Sean Anderson 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 >> --- >> >> 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 >