[U-Boot] [PATCH v3 1/6] spl: Convert CONFIG_SPL_ABORT_ON_RAW_IMAGE into a positive option

Andrew F. Davis afd at ti.com
Fri Feb 10 19:58:53 UTC 2017


On 02/10/2017 12:38 PM, Simon Glass wrote:
> Hi Andrew,
> 
> On 8 February 2017 at 10:21, Andrew F. Davis <afd at ti.com> wrote:
>>
>> CONFIG_SPL_ABORT_ON_RAW_IMAGE causes SPL to abort and move on when it
>> encounters RAW images, express this same functionality as a positive
>> option enabling support for RAW images: CONFIG_SPL_RAW_IMAGE_SUPPORT
>>
>> Signed-off-by: Andrew F. Davis <afd at ti.com>
>> ---
>>  Kconfig                           | 7 +++++++
>>  README                            | 4 ----
>>  common/spl/spl.c                  | 9 +++++----
>>  include/configs/imx6_spl.h        | 4 ++--
>>  include/configs/socfpga_de1_soc.h | 2 +-
>>  include/spl.h                     | 2 +-
>>  6 files changed, 16 insertions(+), 12 deletions(-)
>>
>> diff --git a/Kconfig b/Kconfig
>> index 8f9ea97f3d..8ce2d8c3bb 100644
>> --- a/Kconfig
>> +++ b/Kconfig
>> @@ -291,6 +291,13 @@ config SYS_TEXT_BASE
>>         help
>>           TODO: Move CONFIG_SYS_TEXT_BASE for all the architecture
>>
>> +config SPL_RAW_IMAGE_SUPPORT
>> +       bool "Support SPL loading and booting of RAW images"
>> +       default y
>> +       help
>> +         SPL will support loading and booting a RAW image when this option
>> +         is y. If this is not set, SPL will move on to other available
>> +         boot media to find a suitable image.
>>
>>  config SYS_CLK_FREQ
>>         depends on ARC || ARCH_SUNXI
>> diff --git a/README b/README
>> index ecb1710d01..127c77c4e2 100644
>> --- a/README
>> +++ b/README
>> @@ -3298,10 +3298,6 @@ FIT uImage format:
>>                 consider that a completely unreadable NAND block is bad,
>>                 and thus should be skipped silently.
>>
>> -               CONFIG_SPL_ABORT_ON_RAW_IMAGE
>> -               When defined, SPL will proceed to another boot method
>> -               if the image it has loaded does not have a signature.
>> -
>>                 CONFIG_SPL_RELOC_STACK
>>                 Adress of the start of the stack SPL will use after
>>                 relocation.  If unspecified, this is equal to
>> diff --git a/common/spl/spl.c b/common/spl/spl.c
>> index 766fb3d6f4..d564d4d2a2 100644
>> --- a/common/spl/spl.c
>> +++ b/common/spl/spl.c
>> @@ -146,16 +146,17 @@ int spl_parse_image_header(struct spl_image_info *spl_image,
>>                 }
>>  #endif
>>
>> -#ifdef CONFIG_SPL_ABORT_ON_RAW_IMAGE
>> -               /* Signature not found, proceed to other boot methods. */
>> -               return -EINVAL;
>> -#else
>> +#ifdef CONFIG_SPL_RAW_IMAGE_SUPPORT
>>                 /* Signature not found - assume u-boot.bin */
>>                 debug("mkimage signature not found - ih_magic = %x\n",
>>                         header->ih_magic);
>>                 spl_set_header_raw_uboot(spl_image);
>> +#else
>> +               /* RAW image not supported, proceed to other boot methods. */
> 
> How about a debug() here?
> 

Sure, I'll add one to the next patch too that has the same logic as here.

>> +               return -EINVAL;
>>  #endif
>>         }
>> +
>>         return 0;
>>  }
>>
>> diff --git a/include/configs/imx6_spl.h b/include/configs/imx6_spl.h
>> index c5a035fccf..acaf81b6b9 100644
>> --- a/include/configs/imx6_spl.h
>> +++ b/include/configs/imx6_spl.h
>> @@ -45,14 +45,14 @@
>>  #if defined(CONFIG_SPL_MMC_SUPPORT)
>>  #define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION     1
>>  #define CONFIG_SYS_MONITOR_LEN                 409600  /* 400 KB */
>> -#define CONFIG_SPL_ABORT_ON_RAW_IMAGE
>> +#undef CONFIG_SPL_RAW_IMAGE_SUPPORT
> 
> I think this needs to be done in the defconfigs, or a a default in
> imx6 Kconfig. You might be able to change your 'default y' above to
> 'default y if !xxx' where xxx is the secure boot option.
> 

I was going to finish this conversion by just running moveconfig.py
CONFIG_SPL_RAW_IMAGE_SUPPORT, but this generated a lot of unrelated
defconfig re-ordering in the patch. I would need to do something like
this[0] again before converting.

I think what we could do is let Tom or someone with high level push
access do these defconfig re-orders all at once after a bunch of new
symbols have been defined. Otherwise we end up with giant patches that
are hard to merge and manage.

If not, I can attach the patch moveconfig.py generated.

Andrew

[0] https://patchwork.ozlabs.org/patch/704253/

>>  #endif
>>
>>  /* SATA support */
>>  #if defined(CONFIG_SPL_SATA_SUPPORT)
>>  #define CONFIG_SPL_SATA_BOOT_DEVICE            0
>>  #define CONFIG_SYS_SATA_FAT_BOOT_PARTITION     1
>> -#define CONFIG_SPL_ABORT_ON_RAW_IMAGE
>> +#undef CONFIG_SPL_RAW_IMAGE_SUPPORT
>>  #endif
>>
>>  /* Define the payload for FAT/EXT support */
>> diff --git a/include/configs/socfpga_de1_soc.h b/include/configs/socfpga_de1_soc.h
>> index 5e7a712cf5..52d292b752 100644
>> --- a/include/configs/socfpga_de1_soc.h
>> +++ b/include/configs/socfpga_de1_soc.h
>> @@ -51,6 +51,6 @@
>>  /* The rest of the configuration is shared */
>>  #include <configs/socfpga_common.h>
>>
>> -#define CONFIG_SPL_ABORT_ON_RAW_IMAGE
>> +#undef CONFIG_SPL_RAW_IMAGE_SUPPORT
>>
>>  #endif /* __CONFIG_TERASIC_DE1_SOC_H__ */
>> diff --git a/include/spl.h b/include/spl.h
>> index bde44374ea..270798c988 100644
>> --- a/include/spl.h
>> +++ b/include/spl.h
>> @@ -85,7 +85,7 @@ void spl_set_header_raw_uboot(struct spl_image_info *spl_image);
>>   * This parses the legacy image header information at @header and sets up
>>   * @spl_image according to what is found. If no image header is found, then
>>   * a raw image or bootz is assumed. If CONFIG_SPL_PANIC_ON_RAW_IMAGE is
>> - * enabled, then this causes a panic. If CONFIG_SPL_ABORT_ON_RAW_IMAGE is
>> + * enabled, then this causes a panic. If CONFIG_SPL_RAW_IMAGE_SUPPORT is not
>>   * enabled then U-Boot gives up. Otherwise U-Boot sets up the image using
>>   * spl_set_header_raw_uboot(), or possibly the bootz header.
>>   *
>> --
>> 2.11.0
>>
> 
> Regards,
> Simon
> 


More information about the U-Boot mailing list