Message ID | 1469511247-9323-1-git-send-email-mike.looijmans@topic.nl |
---|---|
State | Accepted |
Commit | 5aa79f26762d197324866a0d0c2b31601a7fc8ee |
Delegated to: | Tom Rini |
Headers | show |
On Tue, Jul 26, 2016 at 07:34:07AM +0200, Mike Looijmans wrote: > The devicetrees for various platforms already exceed 16k. Add a define > CONFIG_SYS_FDT_SIZE to specify the FDT size, and set to 16k for the > two boards that define this CONFIG_SYS_FDT_BASE parameter. This > allows platforms with larger devicetree blobs to boot from NOR. > > Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> > --- > v2: Instead of a default, just specify the value for the two boards that use it. > common/spl/spl_nor.c | 4 ++-- > include/configs/a3m071.h | 1 + > include/configs/microblaze-generic.h | 1 + This misses a few boards: $ git grep SPL_NOR_SUPPORT include/configs include/configs/a3m071.h:#define CONFIG_SPL_NOR_SUPPORT include/configs/edminiv2.h:#define CONFIG_SPL_NOR_SUPPORT include/configs/microblaze-generic.h:# define CONFIG_SPL_NOR_SUPPORT include/configs/uniphier.h:#define CONFIG_SPL_NOR_SUPPORT include/configs/x600.h:#define CONFIG_SPL_NOR_SUPPORT Please update, thanks!
On Tue, Jul 26, 2016 at 8:24 AM, Mike Looijmans <mike.looijmans@topic.nl> wrote: > > On 26-07-16 14:10, Tom Rini wrote: > > On Tue, Jul 26, 2016 at 07:34:07AM +0200, Mike Looijmans wrote: > > > >> The devicetrees for various platforms already exceed 16k. Add a define > >> CONFIG_SYS_FDT_SIZE to specify the FDT size, and set to 16k for the > >> two boards that define this CONFIG_SYS_FDT_BASE parameter. This > >> allows platforms with larger devicetree blobs to boot from NOR. > >> > >> Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> > >> --- > >> v2: Instead of a default, just specify the value for the two boards that use it. > >> common/spl/spl_nor.c | 4 ++-- > >> include/configs/a3m071.h | 1 + > >> include/configs/microblaze-generic.h | 1 + > > > > This misses a few boards: > > $ git grep SPL_NOR_SUPPORT include/configs > > include/configs/a3m071.h:#define CONFIG_SPL_NOR_SUPPORT > > include/configs/edminiv2.h:#define CONFIG_SPL_NOR_SUPPORT > > include/configs/microblaze-generic.h:# define CONFIG_SPL_NOR_SUPPORT > > include/configs/uniphier.h:#define CONFIG_SPL_NOR_SUPPORT > > include/configs/x600.h:#define CONFIG_SPL_NOR_SUPPORT > > > > Please update, thanks! > > > > Only boards that define "CONFIG_SYS_FDT_BASE" need to set > "CONFIG_SYS_FDT_SIZE", since CONFIG_SYS_FDT_BASE is required as second arg for > the memcpy call, boards that don't define it apparently don't support booting > directly from NOR. Apparently, of the five boards with SPL_NOR support, only > these two boards support booting into a kernel directly: > > $ grep -r CONFIG_SYS_FDT_BASE * > common/spl/spl_nor.c: (void *)(CONFIG_SYS_FDT_BASE), > include/configs/a3m071.h:#define CONFIG_SYS_FDT_BASE 0xfc1e0000 > include/configs/a3m071.h: "fdt_addr=" __stringify(CONFIG_SYS_FDT_BASE) "\0" \ > include/configs/microblaze-generic.h:#define CONFIG_SYS_FDT_BASE > (CONFIG_SYS_FLASH_BASE + \ Ah, OK, thanks!
On Tue, Jul 26, 2016 at 07:34:07AM +0200, Mike Looijmans wrote: > The devicetrees for various platforms already exceed 16k. Add a define > CONFIG_SYS_FDT_SIZE to specify the FDT size, and set to 16k for the > two boards that define this CONFIG_SYS_FDT_BASE parameter. This > allows platforms with larger devicetree blobs to boot from NOR. > > Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> Applied to u-boot/master, thanks!
diff --git a/common/spl/spl_nor.c b/common/spl/spl_nor.c index da2422f..8ea874c 100644 --- a/common/spl/spl_nor.c +++ b/common/spl/spl_nor.c @@ -40,11 +40,11 @@ int spl_nor_load_image(void) /* * Copy DT blob (fdt) to SDRAM. Passing pointer to - * flash doesn't work (16 KiB should be enough for DT) + * flash doesn't work */ memcpy((void *)CONFIG_SYS_SPL_ARGS_ADDR, (void *)(CONFIG_SYS_FDT_BASE), - (16 << 10)); + CONFIG_SYS_FDT_SIZE); return 0; } else { diff --git a/include/configs/a3m071.h b/include/configs/a3m071.h index 8f17dd1..ab2477c 100644 --- a/include/configs/a3m071.h +++ b/include/configs/a3m071.h @@ -334,6 +334,7 @@ #define CONFIG_SYS_OS_BASE 0xfc200000 #define CONFIG_SYS_FDT_BASE 0xfc1e0000 +#define CONFIG_SYS_FDT_SIZE (16<<10) #define CONFIG_EXTRA_ENV_SETTINGS \ "netdev=eth0\0" \ diff --git a/include/configs/microblaze-generic.h b/include/configs/microblaze-generic.h index 047e756..e5bf700 100644 --- a/include/configs/microblaze-generic.h +++ b/include/configs/microblaze-generic.h @@ -305,6 +305,7 @@ 0x60000) #define CONFIG_SYS_FDT_BASE (CONFIG_SYS_FLASH_BASE + \ 0x40000) +#define CONFIG_SYS_FDT_SIZE (16<<10) #define CONFIG_SYS_SPL_ARGS_ADDR (CONFIG_SYS_TEXT_BASE + \ 0x1000000)
The devicetrees for various platforms already exceed 16k. Add a define CONFIG_SYS_FDT_SIZE to specify the FDT size, and set to 16k for the two boards that define this CONFIG_SYS_FDT_BASE parameter. This allows platforms with larger devicetree blobs to boot from NOR. Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> --- v2: Instead of a default, just specify the value for the two boards that use it. common/spl/spl_nor.c | 4 ++-- include/configs/a3m071.h | 1 + include/configs/microblaze-generic.h | 1 + 3 files changed, 4 insertions(+), 2 deletions(-)