Message ID | 20200314001132.17393-5-atish.patra@wdc.com |
---|---|
State | Superseded |
Headers | show |
Series | DT related fixes for RISC-V UEFI | expand |
On Fri, Mar 13, 2020 at 5:12 PM Atish Patra <atish.patra at wdc.com> wrote: > > FU540 uses OF_SEPARATE instead of OF_PRIOR. > > Enable OF_BOARD_FIXUP to update the DT with reserved-memory node. > > Signed-off-by: Atish Patra <atish.patra at wdc.com> > --- > board/sifive/fu540/fu540.c | 15 +++++++++++++++ > configs/sifive_fu540_defconfig | 1 + > 2 files changed, 16 insertions(+) > > diff --git a/board/sifive/fu540/fu540.c b/board/sifive/fu540/fu540.c > index 47a20902517c..82b3a9c8e729 100644 > --- a/board/sifive/fu540/fu540.c > +++ b/board/sifive/fu540/fu540.c > @@ -141,6 +141,21 @@ int misc_init_r(void) > > #endif > > +#ifdef CONFIG_OF_BOARD_FIXUP > +int board_fix_fdt(void *fdt) > +{ > + int err; > + > + err = riscv_board_reserved_mem_fixup(fdt); > + if (err < 0) { > + printf("failed to fixup DT for reserved memory: %d\n", err); > + return err; > + } > + > + return 0; > +} > +#endif > + > int board_init(void) > { > /* For now nothing to do here. */ > diff --git a/configs/sifive_fu540_defconfig b/configs/sifive_fu540_defconfig > index 6d61e6c960ee..8fb3794cd578 100644 > --- a/configs/sifive_fu540_defconfig > +++ b/configs/sifive_fu540_defconfig > @@ -12,3 +12,4 @@ CONFIG_DISPLAY_BOARDINFO=y > CONFIG_DEFAULT_DEVICE_TREE="hifive-unleashed-a00" > CONFIG_SYS_RELOC_GD_ENV_ADDR=y > CONFIG_DM_MTD=y > +CONFIG_OF_BOARD_FIXUP=y > -- > 2.25.1 > Fixed palmer's email address. Sorry for the spam.
Hi Atish, On Sat, Mar 14, 2020 at 8:11 AM Atish Patra <atish.patra at wdc.com> wrote: > > FU540 uses OF_SEPARATE instead of OF_PRIOR. > > Enable OF_BOARD_FIXUP to update the DT with reserved-memory node. > > Signed-off-by: Atish Patra <atish.patra at wdc.com> > --- > board/sifive/fu540/fu540.c | 15 +++++++++++++++ > configs/sifive_fu540_defconfig | 1 + > 2 files changed, 16 insertions(+) > > diff --git a/board/sifive/fu540/fu540.c b/board/sifive/fu540/fu540.c > index 47a20902517c..82b3a9c8e729 100644 > --- a/board/sifive/fu540/fu540.c > +++ b/board/sifive/fu540/fu540.c > @@ -141,6 +141,21 @@ int misc_init_r(void) > > #endif > > +#ifdef CONFIG_OF_BOARD_FIXUP > +int board_fix_fdt(void *fdt) This is used to fix-up the DT that U-Boot uses, not the DT that operating system uses. As I mentioned in https://github.com/riscv/riscv-sbi-doc/pull/37#issuecomment-596184723, we need consider U-Boot SPL usage. > +{ > + int err; > + > + err = riscv_board_reserved_mem_fixup(fdt); > + if (err < 0) { > + printf("failed to fixup DT for reserved memory: %d\n", err); > + return err; > + } > + > + return 0; > +} > +#endif > + > int board_init(void) > { > /* For now nothing to do here. */ > diff --git a/configs/sifive_fu540_defconfig b/configs/sifive_fu540_defconfig > index 6d61e6c960ee..8fb3794cd578 100644 > --- a/configs/sifive_fu540_defconfig > +++ b/configs/sifive_fu540_defconfig > @@ -12,3 +12,4 @@ CONFIG_DISPLAY_BOARDINFO=y > CONFIG_DEFAULT_DEVICE_TREE="hifive-unleashed-a00" > CONFIG_SYS_RELOC_GD_ENV_ADDR=y > CONFIG_DM_MTD=y > +CONFIG_OF_BOARD_FIXUP=y > -- Regards, Bin
On Sat, Mar 14, 2020 at 3:18 AM Bin Meng <bmeng.cn at gmail.com> wrote: > > Hi Atish, > > On Sat, Mar 14, 2020 at 8:11 AM Atish Patra <atish.patra at wdc.com> wrote: > > > > FU540 uses OF_SEPARATE instead of OF_PRIOR. > > > > Enable OF_BOARD_FIXUP to update the DT with reserved-memory node. > > > > Signed-off-by: Atish Patra <atish.patra at wdc.com> > > --- > > board/sifive/fu540/fu540.c | 15 +++++++++++++++ > > configs/sifive_fu540_defconfig | 1 + > > 2 files changed, 16 insertions(+) > > > > diff --git a/board/sifive/fu540/fu540.c b/board/sifive/fu540/fu540.c > > index 47a20902517c..82b3a9c8e729 100644 > > --- a/board/sifive/fu540/fu540.c > > +++ b/board/sifive/fu540/fu540.c > > @@ -141,6 +141,21 @@ int misc_init_r(void) > > > > #endif > > > > +#ifdef CONFIG_OF_BOARD_FIXUP > > +int board_fix_fdt(void *fdt) > > This is used to fix-up the DT that U-Boot uses, not the DT that > operating system uses. > Ahh yes. User can load DT from sdcard or network for OS usage. We should also update the arch_fixup_fdt as well so that OS sees the reserved memory nodes. > As I mentioned in > https://github.com/riscv/riscv-sbi-doc/pull/37#issuecomment-596184723, > we need consider U-Boot SPL usage. > If U-Boot SPL is built without a DT, OpenSBI should be built with a DT. Here are the constraints to use reserved-memory: For any DT based platform: 1. If the stage prior to OpenSBI i.e. FSBL, U-Boot SPL is built without a DT, OpenSBI must be built with a DT. 2. If U-boot proper is built with OF_SEPARATE, OF_BOARD_FIXUP should be enabled as well so that U-Boot can copy the reserved-memory nodes from previous stage DT and update the current DT in use. > > +{ > > + int err; > > + > > + err = riscv_board_reserved_mem_fixup(fdt); > > + if (err < 0) { > > + printf("failed to fixup DT for reserved memory: %d\n", err); > > + return err; > > + } > > + > > + return 0; > > +} > > +#endif > > + > > int board_init(void) > > { > > /* For now nothing to do here. */ > > diff --git a/configs/sifive_fu540_defconfig b/configs/sifive_fu540_defconfig > > index 6d61e6c960ee..8fb3794cd578 100644 > > --- a/configs/sifive_fu540_defconfig > > +++ b/configs/sifive_fu540_defconfig > > @@ -12,3 +12,4 @@ CONFIG_DISPLAY_BOARDINFO=y > > CONFIG_DEFAULT_DEVICE_TREE="hifive-unleashed-a00" > > CONFIG_SYS_RELOC_GD_ENV_ADDR=y > > CONFIG_DM_MTD=y > > +CONFIG_OF_BOARD_FIXUP=y > > -- > > Regards, > Bin
diff --git a/board/sifive/fu540/fu540.c b/board/sifive/fu540/fu540.c index 47a20902517c..82b3a9c8e729 100644 --- a/board/sifive/fu540/fu540.c +++ b/board/sifive/fu540/fu540.c @@ -141,6 +141,21 @@ int misc_init_r(void) #endif +#ifdef CONFIG_OF_BOARD_FIXUP +int board_fix_fdt(void *fdt) +{ + int err; + + err = riscv_board_reserved_mem_fixup(fdt); + if (err < 0) { + printf("failed to fixup DT for reserved memory: %d\n", err); + return err; + } + + return 0; +} +#endif + int board_init(void) { /* For now nothing to do here. */ diff --git a/configs/sifive_fu540_defconfig b/configs/sifive_fu540_defconfig index 6d61e6c960ee..8fb3794cd578 100644 --- a/configs/sifive_fu540_defconfig +++ b/configs/sifive_fu540_defconfig @@ -12,3 +12,4 @@ CONFIG_DISPLAY_BOARDINFO=y CONFIG_DEFAULT_DEVICE_TREE="hifive-unleashed-a00" CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_DM_MTD=y +CONFIG_OF_BOARD_FIXUP=y
FU540 uses OF_SEPARATE instead of OF_PRIOR. Enable OF_BOARD_FIXUP to update the DT with reserved-memory node. Signed-off-by: Atish Patra <atish.patra at wdc.com> --- board/sifive/fu540/fu540.c | 15 +++++++++++++++ configs/sifive_fu540_defconfig | 1 + 2 files changed, 16 insertions(+)