On 11/28/2016 10:09 PM, Lukasz Majewski wrote: > This define gives the possibility to copy entire image (including header - > e.g. u-boot.img) from NOR parallel memory to e.g. SDRAM. The current code > only supports loading the raw binary image (the u-boot.bin). > > The legacy behavior is preserved, since other board don't enabled this option.
Sooooo, what's the usecase again ? ;-) I still miss it being documented. > Signed-off-by: Lukasz Majewski <l.majew...@majess.pl> > --- > Changes for v2: > - Update to code to apply on v2016.11+ > Changes for v3: > - Write better commit mesage to explain the problem > > --- > common/spl/Kconfig | 10 ++++++++++ > common/spl/spl_nor.c | 12 +++++++++--- > 2 files changed, 19 insertions(+), 3 deletions(-) > > diff --git a/common/spl/Kconfig b/common/spl/Kconfig > index df9e0ce..d31b26d 100644 > --- a/common/spl/Kconfig > +++ b/common/spl/Kconfig > @@ -399,6 +399,16 @@ config SPL_NOR_SUPPORT > a memory-mapped device makes it very easy to access. Loading from > NOR is typically achieved with just a memcpy(). > > +config SPL_NOR_COPY_ENTIRE_IMAGE > + bool > + depends on SPL_NOR_SUPPORT > + prompt "Copy entire image from NOR memory" > + default n > + help > + By default the SPL NOR driver supports copying only payload to > + destination address. Say Y if you want to copy entire image (including > + its image header). > + > config SPL_ONENAND_SUPPORT > bool "Support OneNAND flash" > depends on SPL > diff --git a/common/spl/spl_nor.c b/common/spl/spl_nor.c > index 6bfa399..44f3e99 100644 > --- a/common/spl/spl_nor.c > +++ b/common/spl/spl_nor.c > @@ -10,13 +10,15 @@ > static int spl_nor_load_image(struct spl_image_info *spl_image, > struct spl_boot_device *bootdev) > { > + void *img_src; > int ret; > +#ifndef CONFIG_SPL_NOR_COPY_ENTIRE_IMAGE > /* > * Loading of the payload to SDRAM is done with skipping of > * the mkimage header in this SPL NOR driver > */ > spl_image->flags |= SPL_COPY_PAYLOAD_ONLY; > - > +#endif > #ifdef CONFIG_SPL_OS_BOOT > if (!spl_start_uboot()) { > const struct image_header *header; > @@ -65,9 +67,13 @@ static int spl_nor_load_image(struct spl_image_info > *spl_image, > if (ret) > return ret; > > + img_src = (void *)CONFIG_SYS_UBOOT_BASE; > +#ifndef CONFIG_SPL_NOR_COPY_ENTIRE_IMAGE > + img_src += sizeof(struct image_header)); > +#endif > + > memcpy((void *)(unsigned long)spl_image->load_addr, > - (void *)(CONFIG_SYS_UBOOT_BASE + sizeof(struct image_header)), > - spl_image->size); > + img_src, spl_image->size); > > return 0; > } > -- Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot