
Hi Rick,
On Mon, Oct 29, 2018 at 11:22 AM Rick Chen rickchen36@gmail.com wrote:
Bin Meng bmeng.cn@gmail.com 於 2018年10月25日 週四 下午9:36寫道:
Hi Rick,
On Thu, Oct 25, 2018 at 11:27 AM Rick Chen rickchen36@gmail.com wrote:
Bin Meng bmeng.cn@gmail.com 於 2018年10月25日 週四 上午11:16寫道:
Hi Rick,
On Thu, Oct 25, 2018 at 11:11 AM Rick Chen rickchen36@gmail.com wrote:
Bin Meng bmeng.cn@gmail.com 於 2018年10月25日 週四 上午10:33寫道:
Hi Rick,
On Thu, Oct 25, 2018 at 9:20 AM Andes uboot@andestech.com wrote: > > From: Rick Chen rick@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@andestech.com > Cc: Greentime Hu greentime@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 ?
In the ROM case, U-Boot does not boot from reset vector, right? So the first stage bootloader can pass DTB to U-Boot via a1 register, no?
In the ROM case, u-Boot will boot itself without first stage bootloader from reset vector. So there is no bootloader can pass pass DTB to U-Boot via a1.
In this case, we need support OF_CONTROL like other arch, eg: CONFIG_OF_EMBED and CONFIG_OF_SEPARATE.
Regards, Bin