[U-Boot] [PATCH] riscv: ax25-ae350: Pass dtb address to u-boot with a1 register

Rick Chen rickchen36 at gmail.com
Thu Oct 25 03:28:32 UTC 2018


Bin Meng <bmeng.cn at gmail.com> 於 2018年10月25日 週四 上午11:16寫道:
>
> Hi Rick,
>
> On Thu, Oct 25, 2018 at 11:11 AM Rick Chen <rickchen36 at gmail.com> wrote:
> >
> > Bin Meng <bmeng.cn at gmail.com> 於 2018年10月25日 週四 上午10:33寫道:
> > >
> > > Hi Rick,
> > >
> > > On Thu, Oct 25, 2018 at 9:20 AM Andes <uboot at andestech.com> wrote:
> > > >
> > > > From: Rick Chen <rick at andestech.com>
> > > >
> > > > ax25-ae350 use CONFIG_OF_BOARD which allow the board to
> > > > override the fdt address. And prior_stage_fdt_address offer
> > > > a temporary memory address to keep the dtb address which was
> > > > passed from loader(gdb) to u-boot with a1.
> > >
> > > nits: U-Boot
> > >
> > > >
> > > > Signed-off-by: Rick Chen <rick at andestech.com>
> > > > Cc: Greentime Hu <greentime at andestech.com>
> > > > ---
> > > >  board/AndesTech/ax25-ae350/ax25-ae350.c | 3 ++-
> > > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/board/AndesTech/ax25-ae350/ax25-ae350.c b/board/AndesTech/ax25-ae350/ax25-ae350.c
> > > > index 5f4ca0f..d343453 100644
> > > > --- a/board/AndesTech/ax25-ae350/ax25-ae350.c
> > > > +++ b/board/AndesTech/ax25-ae350/ax25-ae350.c
> > > > @@ -14,6 +14,7 @@
> > > >
> > > >  DECLARE_GLOBAL_DATA_PTR;
> > > >
> > > > +extern phys_addr_t prior_stage_fdt_address;
> > > >  /*
> > > >   * Miscellaneous platform dependent initializations
> > > >   */
> > > > @@ -66,7 +67,7 @@ ulong board_flash_get_legacy(ulong base, int banknum, flash_info_t *info)
> > > >
> > > >  void *board_fdt_blob_setup(void)
> > > >  {
> > > > -       void **ptr = (void *)CONFIG_SYS_SDRAM_BASE;
> > > > +       void **ptr = (void *)&prior_stage_fdt_address;
> > > >         if (fdt_magic(*ptr) == FDT_MAGIC)
> > > >                         return (void *)*ptr;
> > > >
> > > > --
> > >
> > > board_fdt_blob_setup() should be completely removed. Instead the
> > > simple fix should be add CONFIG_OF_PRIOR_STAGE to your board defconfig
> > > files.
> > >
> >
> > Hi Bin
> >
> > I have tried to switch from CONFIG_OF_BOARD to CONFIG_OF_PRIOR_STAGE.
> >
> > But it will lost the function
> > that dtb will be pre-burned into designated flash location,
> > when U-Boot was booting from flash.
> >
>
> I don't get it. Do you mean on ae350 board, the DTB is pre-flashed on the flash?
>

Yes
On ae350 board, the DTB is pre-flashed on the flash in booting from rom case.

u-boot boot from ram case:
CONFIG_OF_PRIOR_STAGE can achieve u-boot boot from ram and dtb was
passed by loader with a1(0xf0000).

u-boot boot from rom case:
If DTB is pre-flashed on the flash 0x800f0000 (This address can be
dynamically changed)
But no one assign a1=0x800f000, how can be gd->fdt_blob changed to 0x800f000.
I am wondering about that ?

0xf0000 is ram space
0x800f0000 is flash rom space

Rick


> > How can I achieve that with CONFIG_OF_PRIOR_STAGE ?
>
> Regards,
> Bin


More information about the U-Boot mailing list