[PATCH 2/2] riscv: Enable CONFIG_OF_BOARD_FIXUP by default

Rick Chen rickchen36 at gmail.com
Mon Jun 1 09:36:01 CEST 2020


Hi Bin

> Hi Rick,
>
> On Thu, May 28, 2020 at 4:17 PM Rick Chen <rickchen36 at gmail.com> wrote:
> >
> > Hi Bin
> >
> > > From: Bin Meng [mailto:bmeng.cn at gmail.com]
> > > Sent: Wednesday, May 20, 2020 3:40 PM
> > > To: Rick Jian-Zhi Chen(陳建志); U-Boot Mailing List
> > > Cc: Bin Meng
> > > Subject: [PATCH 2/2] riscv: Enable CONFIG_OF_BOARD_FIXUP by default
> > >
> > > From: Bin Meng <bin.meng at windriver.com>
> > >
> > > Starting from OpenSBI v0.7, the SBI firmware inserts/fixes up the reserved memory node for PMP protected memory regions. All RISC-V boards needs to copy the reserved memory node from the device tree provided by the firmware to the device tree used by U-Boot.
> > >
> > > Turn on CONFIG_OF_BOARD_FIXUP by default.
> > >
> > > Signed-off-by: Bin Meng <bin.meng at windriver.com>
> > > ---
> > >
> > >  arch/riscv/Kconfig             | 3 +++
> > >  configs/sifive_fu540_defconfig | 1 -
> > >  2 files changed, 3 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index fb5fe5a..5176b35 100644
> > > --- a/arch/riscv/Kconfig
> > > +++ b/arch/riscv/Kconfig
> > > @@ -272,4 +272,7 @@ config STACK_SIZE_SHIFT
> > >         int
> > >         default 14
> > >
> > > +config OF_BOARD_FIXUP
> > > +       default y
> >
> > I think it shall invoke by individual board, just like the description
> > of riscv_fdt_copy_resv_mem_node function.
>
> I believe we should turn on this feature by default for every RISC-V
> board, because SBI firmware used memory must be marked as reserved
> otherwise OS might use it and get crashed. For boards which don't want
> to enable this, they can unset the option in their board defconfig
> files. This is to reduce some maintenance effort.

But not all RISC-V boards need this configuration.
If we enable it by default, non spl configuration will run this fdt
fix flow, but it is unnecessary.

Thanks,
Rick

>
> >
> > In [PATCH 1/2] if source and destination are the same place, it represent that
> > OF_BOARD_FIXUP is unnecessary.
> >
> > BTW when I try OF_SEPARATE and OF_BOARD_FIXUP both are enabled, it hit
> > the problem as below:
> >
> > U-Boot SPL 2020.07-rc3-16981-g4332225-dirty (May 28 2020 - 14:48:18 +0800)
> > Trying to boot from RAM
> >
> >
> > U-Boot 2020.07-rc3-16981-g4332225-dirty (May 28 2020 - 14:48:18 +0800)
> >
> > DRAM:  1 GiB
> > failed to add reserved memory: -3
>
> -3 means FDT_ERR_NOSPACE.
>
> The FDT does not have enough space to add reserved memory node. Could
> you please check your FDT blob?
>
> > failed to fixup DT for reserved memory: -3
> > initcall sequence 0000000001253c20 failed at call 000000000120b8e0 (err=-3)
> > ### ERROR ### Please RESET the board ###
> >
> > I will dig in and figure out what is going on here ?
> > Maybe there exist a potential issue somehow!
> >
>
> Regards,
> Bin


More information about the U-Boot mailing list