[U-Boot] [PATCH v2] image: fix IH_ARCH_... values for uImage compatibility

Michal Simek michal.simek at xilinx.com
Thu Jul 21 11:07:13 CEST 2016


On 21.7.2016 08:16, Masahiro Yamada wrote:
> Commit 555f45d8f916 ("image: Convert the IH_... values to enums")
> accidentally changed some IH_ARCH_... values.
> 
> Prior to that commit, there existed a gap between IH_ARCH_M68K and
> IH_ARCH_MICROBLAZE, like follows.
> 
>   #define IH_ARCH_SPARC64         11      /* Sparc 64 Bit */
>   #define IH_ARCH_M68K            12      /* M68K         */
>   #define IH_ARCH_MICROBLAZE      14      /* MicroBlaze   */
>   #define IH_ARCH_NIOS2           15      /* Nios-II      */
> 
> The enum conversion broke the compatibility with existing uImage
> files.  Reverting 555f45d8f916 will cause build error unfortunately,
> so here is a more easy fix.
> 
> I dug the git history and figured out the gap was introduced by
> commit 1117cbf2adac ("nios: remove nios-32 arch").  So, I revived
> IH_ARCH_NIOS just for filling the gap.
> 
> I added comments to each enum block.  Once we assign a value to
> IH_... it is not allowed to change it.
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>
> Reviewed-by: Simon Glass <sjg at chromium.org>
> ---
> 
> Changes in v2:
>   - Different way to fix the issue
>   - Add more comments
> 
>  include/image.h | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/include/image.h b/include/image.h
> index 2a5b560..734def3 100644
> --- a/include/image.h
> +++ b/include/image.h
> @@ -134,6 +134,9 @@ enum ih_category {
>  
>  /*
>   * Operating System Codes
> + *
> + * The following are exposed to uImage header.
> + * Do not change values for backward compatibility.
>   */
>  enum {
>  	IH_OS_INVALID		= 0,	/* Invalid OS	*/
> @@ -167,6 +170,9 @@ enum {
>  
>  /*
>   * CPU Architecture Codes (supported by Linux)
> + *
> + * The following are exposed to uImage header.
> + * Do not change values for backward compatibility.
>   */
>  enum {
>  	IH_ARCH_INVALID		= 0,	/* Invalid CPU	*/
> @@ -182,6 +188,7 @@ enum {
>  	IH_ARCH_SPARC,			/* Sparc	*/
>  	IH_ARCH_SPARC64,		/* Sparc 64 Bit */
>  	IH_ARCH_M68K,			/* M68K		*/
> +	IH_ARCH_NIOS,			/* Nios-32	*/
>  	IH_ARCH_MICROBLAZE,		/* MicroBlaze   */
>  	IH_ARCH_NIOS2,			/* Nios-II	*/
>  	IH_ARCH_BLACKFIN,		/* Blackfin	*/
> @@ -234,6 +241,9 @@ enum {
>   *	U-Boot's command interpreter; this feature is especially
>   *	useful when you configure U-Boot to use a real shell (hush)
>   *	as command interpreter (=> Shell Scripts).
> + *
> + * The following are exposed to uImage header.
> + * Do not change values for backward compatibility.
>   */
>  
>  enum {
> @@ -273,6 +283,9 @@ enum {
>  
>  /*
>   * Compression Types
> + *
> + * The following are exposed to uImage header.
> + * Do not change values for backward compatibility.
>   */
>  enum {
>  	IH_COMP_NONE		= 0,	/*  No	 Compression Used	*/
> 

Acked-by: Michal Simek <michal.simek at xilinx.com>

Thanks,
Michal


More information about the U-Boot mailing list