[PATCH 2/2] riscv: Enable CONFIG_OF_BOARD_FIXUP by default
Bin Meng
bmeng.cn at gmail.com
Tue Jun 2 07:27:50 CEST 2020
Hi Rick,
On Tue, Jun 2, 2020 at 1:23 PM Rick Chen <rickchen36 at gmail.com> wrote:
>
> Hi Bin
>
> > Hi Rick,
> >
> > On Mon, Jun 1, 2020 at 3:40 PM Rick Chen <rickchen36 at gmail.com> wrote:
> > >
> > > Hi Bin
> > >
> > > > Hi Rick,
> > > >
> > > > On Thu, May 28, 2020 at 4:24 PM Bin Meng <bmeng.cn at gmail.com> wrote:
> > > > >
> > > > > 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.
> > > > >
> > > > > >
> > > > > > 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!
> > > >
> > > > Could you please try this patch?
> > > > http://patchwork.ozlabs.org/project/uboot/patch/1590655604-13704-2-git-send-email-bmeng.cn@gmail.com/
> > >
> > > I try this patch, it still fail.
> > > But after increase 32 more larger, it can pass.
> > >
> >
> > What number did you enlarge this fdt size to?
>
> It looks like depend on individual boards. We can not guarantee other
> boards adopt this size at rum time.
> That is why I suggest it shall be enabled individually.
>
This is a generic code and we should find a suitable size to get it
work on every board. We should provide a consistent interface for
every RISC-V board support, ie: we should not have some board turned
on this option but some board not.
Regards,
Bin
More information about the U-Boot
mailing list