[U-Boot] [PATCH] image: push default arch values to arch headers

This pushes the ugly duplicated arch ifdef lists we maintain in various image related files out to the arch headers themselves.
Signed-off-by: Mike Frysinger vapier@gentoo.org --- arch/arm/include/asm/u-boot.h | 3 ++ arch/avr32/include/asm/u-boot.h | 3 ++ arch/blackfin/include/asm/u-boot.h | 3 ++ arch/m68k/include/asm/u-boot.h | 3 ++ arch/microblaze/include/asm/u-boot.h | 2 + arch/mips/include/asm/u-boot.h | 3 ++ arch/nios2/include/asm/u-boot.h | 2 + arch/powerpc/include/asm/u-boot.h | 4 ++ arch/sh/include/asm/u-boot.h | 3 ++ arch/sparc/include/asm/u-boot.h | 4 ++ arch/x86/include/asm/u-boot.h | 3 ++ common/cmd_bootm.c | 26 +-------------- include/image.h | 58 +-------------------------------- 13 files changed, 36 insertions(+), 81 deletions(-)
diff --git a/arch/arm/include/asm/u-boot.h b/arch/arm/include/asm/u-boot.h index ed33327..f30b9fc 100644 --- a/arch/arm/include/asm/u-boot.h +++ b/arch/arm/include/asm/u-boot.h @@ -48,4 +48,7 @@ typedef struct bd_info { } bi_dram[CONFIG_NR_DRAM_BANKS]; } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_ARM + #endif /* _U_BOOT_H_ */ diff --git a/arch/avr32/include/asm/u-boot.h b/arch/avr32/include/asm/u-boot.h index 8acd056..ff1ed23 100644 --- a/arch/avr32/include/asm/u-boot.h +++ b/arch/avr32/include/asm/u-boot.h @@ -40,4 +40,7 @@ typedef struct bd_info { #define bi_memstart bi_dram[0].start #define bi_memsize bi_dram[0].size
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_AVR32 + #endif /* __ASM_U_BOOT_H__ */ diff --git a/arch/blackfin/include/asm/u-boot.h b/arch/blackfin/include/asm/u-boot.h index a6e6cf0f..9712fc0 100644 --- a/arch/blackfin/include/asm/u-boot.h +++ b/arch/blackfin/include/asm/u-boot.h @@ -45,4 +45,7 @@ typedef struct bd_info { unsigned long bi_sclk; } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_BLACKFIN + #endif /* _U_BOOT_H_ */ diff --git a/arch/m68k/include/asm/u-boot.h b/arch/m68k/include/asm/u-boot.h index a0f2983..0a48bbd 100644 --- a/arch/m68k/include/asm/u-boot.h +++ b/arch/m68k/include/asm/u-boot.h @@ -64,4 +64,7 @@ typedef struct bd_info {
#endif /* __ASSEMBLY__ */
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_M68K + #endif /* __U_BOOT_H__ */ diff --git a/arch/microblaze/include/asm/u-boot.h b/arch/microblaze/include/asm/u-boot.h index 543a6b1..21c72d5 100644 --- a/arch/microblaze/include/asm/u-boot.h +++ b/arch/microblaze/include/asm/u-boot.h @@ -44,5 +44,7 @@ typedef struct bd_info { unsigned long bi_baudrate; /* Console Baudrate */ } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_MICROBLAZE
#endif /* _U_BOOT_H_ */ diff --git a/arch/mips/include/asm/u-boot.h b/arch/mips/include/asm/u-boot.h index e839ca1..edb87bb 100644 --- a/arch/mips/include/asm/u-boot.h +++ b/arch/mips/include/asm/u-boot.h @@ -43,4 +43,7 @@ typedef struct bd_info { unsigned long bi_flashoffset; /* reserved area for startup monitor */ } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_MIPS + #endif /* _U_BOOT_H_ */ diff --git a/arch/nios2/include/asm/u-boot.h b/arch/nios2/include/asm/u-boot.h index ec844d0..f7c70ff 100644 --- a/arch/nios2/include/asm/u-boot.h +++ b/arch/nios2/include/asm/u-boot.h @@ -43,5 +43,7 @@ typedef struct bd_info { unsigned long bi_baudrate; /* Console Baudrate */ } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_NIOS2
#endif /* __ASM_NIOS2_U_BOOT_H_ */ diff --git a/arch/powerpc/include/asm/u-boot.h b/arch/powerpc/include/asm/u-boot.h index 721692a..b2fa2b5 100644 --- a/arch/powerpc/include/asm/u-boot.h +++ b/arch/powerpc/include/asm/u-boot.h @@ -143,4 +143,8 @@ typedef struct bd_info { } bd_t;
#endif /* __ASSEMBLY__ */ + +/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_PPC + #endif /* __U_BOOT_H__ */ diff --git a/arch/sh/include/asm/u-boot.h b/arch/sh/include/asm/u-boot.h index 27d43b9..4574512 100644 --- a/arch/sh/include/asm/u-boot.h +++ b/arch/sh/include/asm/u-boot.h @@ -38,4 +38,7 @@ typedef struct bd_info { unsigned long bi_boot_params; /* where this board expects params */ } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_SH + #endif diff --git a/arch/sparc/include/asm/u-boot.h b/arch/sparc/include/asm/u-boot.h index 209873f..1d94087 100644 --- a/arch/sparc/include/asm/u-boot.h +++ b/arch/sparc/include/asm/u-boot.h @@ -59,4 +59,8 @@ typedef struct bd_info { } bd_t;
#endif /* __ASSEMBLY__ */ + +/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_SPARC + #endif /* __U_BOOT_H__ */ diff --git a/arch/x86/include/asm/u-boot.h b/arch/x86/include/asm/u-boot.h index a43b3aa..26450eb 100644 --- a/arch/x86/include/asm/u-boot.h +++ b/arch/x86/include/asm/u-boot.h @@ -58,4 +58,7 @@ typedef struct bd_info { }bi_dram[CONFIG_NR_DRAM_BANKS]; } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_I386 + #endif /* _U_BOOT_H_ */ diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 8909ee7..c2e8038 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -165,31 +165,7 @@ void __arch_preboot_os(void) } void arch_preboot_os(void) __attribute__((weak, alias("__arch_preboot_os")));
-#if defined(__ARM__) - #define IH_INITRD_ARCH IH_ARCH_ARM -#elif defined(__avr32__) - #define IH_INITRD_ARCH IH_ARCH_AVR32 -#elif defined(__bfin__) - #define IH_INITRD_ARCH IH_ARCH_BLACKFIN -#elif defined(__I386__) - #define IH_INITRD_ARCH IH_ARCH_I386 -#elif defined(__M68K__) - #define IH_INITRD_ARCH IH_ARCH_M68K -#elif defined(__microblaze__) - #define IH_INITRD_ARCH IH_ARCH_MICROBLAZE -#elif defined(__mips__) - #define IH_INITRD_ARCH IH_ARCH_MIPS -#elif defined(__nios2__) - #define IH_INITRD_ARCH IH_ARCH_NIOS2 -#elif defined(__PPC__) - #define IH_INITRD_ARCH IH_ARCH_PPC -#elif defined(__sh__) - #define IH_INITRD_ARCH IH_ARCH_SH -#elif defined(__sparc__) - #define IH_INITRD_ARCH IH_ARCH_SPARC -#else -# error Unknown CPU type -#endif +#define IH_INITRD_ARCH IH_ARCH_DEFAULT
static void bootm_start_lmb(void) { diff --git a/include/image.h b/include/image.h index 352e4a0..cbb6669 100644 --- a/include/image.h +++ b/include/image.h @@ -484,34 +484,7 @@ void image_print_contents (const void *hdr); #ifndef USE_HOSTCC static inline int image_check_target_arch (const image_header_t *hdr) { -#if defined(__ARM__) - if (!image_check_arch (hdr, IH_ARCH_ARM)) -#elif defined(__avr32__) - if (!image_check_arch (hdr, IH_ARCH_AVR32)) -#elif defined(__bfin__) - if (!image_check_arch (hdr, IH_ARCH_BLACKFIN)) -#elif defined(__I386__) - if (!image_check_arch (hdr, IH_ARCH_I386)) -#elif defined(__M68K__) - if (!image_check_arch (hdr, IH_ARCH_M68K)) -#elif defined(__microblaze__) - if (!image_check_arch (hdr, IH_ARCH_MICROBLAZE)) -#elif defined(__mips__) - if (!image_check_arch (hdr, IH_ARCH_MIPS)) -#elif defined(__nios2__) - if (!image_check_arch (hdr, IH_ARCH_NIOS2)) -#elif defined(__PPC__) - if (!image_check_arch (hdr, IH_ARCH_PPC)) -#elif defined(__sh__) - if (!image_check_arch (hdr, IH_ARCH_SH)) -#elif defined(__sparc__) - if (!image_check_arch (hdr, IH_ARCH_SPARC)) -#else -# error Unknown CPU type -#endif - return 0; - - return 1; + return image_check_arch(hdr, IH_ARCH_DEFAULT); } #endif /* USE_HOSTCC */
@@ -636,34 +609,7 @@ void fit_conf_print (const void *fit, int noffset, const char *p); #ifndef USE_HOSTCC static inline int fit_image_check_target_arch (const void *fdt, int node) { -#if defined(__ARM__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_ARM)) -#elif defined(__avr32__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_AVR32)) -#elif defined(__bfin__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_BLACKFIN)) -#elif defined(__I386__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_I386)) -#elif defined(__M68K__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_M68K)) -#elif defined(__microblaze__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_MICROBLAZE)) -#elif defined(__mips__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_MIPS)) -#elif defined(__nios2__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_NIOS2)) -#elif defined(__PPC__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_PPC)) -#elif defined(__sh__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_SH)) -#elif defined(__sparc__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_SPARC)) -#else -# error Unknown CPU type -#endif - return 0; - - return 1; + return !fit_image_check_arch(fdt, node, IH_ARCH_DEFAULT)); } #endif /* USE_HOSTCC */

Dear Mike Frysinger,
In message 1317016410-608-1-git-send-email-vapier@gentoo.org you wrote:
This pushes the ugly duplicated arch ifdef lists we maintain in various image related files out to the arch headers themselves.
I appreciate this change in general, but ...
...
-#else -# error Unknown CPU type -#endif
return 0;
- return 1;
- return !fit_image_check_arch(fdt, node, IH_ARCH_DEFAULT));
...here you change a compile time error check into a runtim error.
Please fix this.
Best regards,
Wolfgang Denk

On Monday, September 26, 2011 02:08:51 Wolfgang Denk wrote:
Mike Frysinger wrote:
This pushes the ugly duplicated arch ifdef lists we maintain in various image related files out to the arch headers themselves.
I appreciate this change in general, but ...
...
-#else -# error Unknown CPU type -#endif
return 0;
- return 1;
- return !fit_image_check_arch(fdt, node, IH_ARCH_DEFAULT));
...here you change a compile time error check into a runtim error.
no, it'll still be a build time error as IH_ARCH_DEFAULT will be undefined
it just might not be as clean an error ... gcc will complain about IH_ARCH_DEFAULT not being defined rather than a helpful "Unknown CPU type" message. -mike

Dear Mike Frysinger,
In message 201109261209.46800.vapier@gentoo.org you wrote:
...here you change a compile time error check into a runtim error.
no, it'll still be a build time error as IH_ARCH_DEFAULT will be undefined
it just might not be as clean an error ... gcc will complain about IH_ARCH_DEFAULT not being defined rather than a helpful "Unknown CPU type"
Should it not be trivial to add a
#ifndef IH_ARCH_DEFAULT # error Unknown CPU type: IH_ARCH_DEFAULT not set #endif
or similar to include/image.h ?
Best regards,
Wolfgang Denk

On Monday, September 26, 2011 13:58:59 Wolfgang Denk wrote:
Mike Frysinger wrote:
...here you change a compile time error check into a runtim error.
no, it'll still be a build time error as IH_ARCH_DEFAULT will be undefined
it just might not be as clean an error ... gcc will complain about IH_ARCH_DEFAULT not being defined rather than a helpful "Unknown CPU type"
Should it not be trivial to add a
#ifndef IH_ARCH_DEFAULT # error Unknown CPU type: IH_ARCH_DEFAULT not set #endif
or similar to include/image.h ?
it'd certainly be easy to do. i just pointed out that you still get a build failure after my change :). so if you want the #error, i'll resend w/it. -mike

Dear Mike Frysinger,
In message 201109261415.14398.vapier@gentoo.org you wrote:
Should it not be trivial to add a
#ifndef IH_ARCH_DEFAULT # error Unknown CPU type: IH_ARCH_DEFAULT not set #endif
or similar to include/image.h ?
it'd certainly be easy to do. i just pointed out that you still get a build failure after my change :). so if you want the #error, i'll resend w/it.
Yes, please do. I think it's easier to decode for most people.
Best regards,
Wolfgang Denk

This pushes the ugly duplicated arch ifdef lists we maintain in various image related files out to the arch headers themselves.
Signed-off-by: Mike Frysinger vapier@gentoo.org --- v2 - add a friendly #error when the define is missing
arch/arm/include/asm/u-boot.h | 3 ++ arch/avr32/include/asm/u-boot.h | 3 ++ arch/blackfin/include/asm/u-boot.h | 3 ++ arch/m68k/include/asm/u-boot.h | 3 ++ arch/microblaze/include/asm/u-boot.h | 2 + arch/mips/include/asm/u-boot.h | 3 ++ arch/nios2/include/asm/u-boot.h | 2 + arch/powerpc/include/asm/u-boot.h | 4 ++ arch/sh/include/asm/u-boot.h | 3 ++ arch/sparc/include/asm/u-boot.h | 4 ++ arch/x86/include/asm/u-boot.h | 3 ++ common/cmd_bootm.c | 26 +-------------- include/image.h | 59 ++------------------------------- 13 files changed, 38 insertions(+), 80 deletions(-)
diff --git a/arch/arm/include/asm/u-boot.h b/arch/arm/include/asm/u-boot.h index ed33327..f30b9fc 100644 --- a/arch/arm/include/asm/u-boot.h +++ b/arch/arm/include/asm/u-boot.h @@ -48,4 +48,7 @@ typedef struct bd_info { } bi_dram[CONFIG_NR_DRAM_BANKS]; } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_ARM + #endif /* _U_BOOT_H_ */ diff --git a/arch/avr32/include/asm/u-boot.h b/arch/avr32/include/asm/u-boot.h index 8acd056..ff1ed23 100644 --- a/arch/avr32/include/asm/u-boot.h +++ b/arch/avr32/include/asm/u-boot.h @@ -40,4 +40,7 @@ typedef struct bd_info { #define bi_memstart bi_dram[0].start #define bi_memsize bi_dram[0].size
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_AVR32 + #endif /* __ASM_U_BOOT_H__ */ diff --git a/arch/blackfin/include/asm/u-boot.h b/arch/blackfin/include/asm/u-boot.h index a6e6cf0f..9712fc0 100644 --- a/arch/blackfin/include/asm/u-boot.h +++ b/arch/blackfin/include/asm/u-boot.h @@ -45,4 +45,7 @@ typedef struct bd_info { unsigned long bi_sclk; } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_BLACKFIN + #endif /* _U_BOOT_H_ */ diff --git a/arch/m68k/include/asm/u-boot.h b/arch/m68k/include/asm/u-boot.h index a0f2983..0a48bbd 100644 --- a/arch/m68k/include/asm/u-boot.h +++ b/arch/m68k/include/asm/u-boot.h @@ -64,4 +64,7 @@ typedef struct bd_info {
#endif /* __ASSEMBLY__ */
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_M68K + #endif /* __U_BOOT_H__ */ diff --git a/arch/microblaze/include/asm/u-boot.h b/arch/microblaze/include/asm/u-boot.h index 543a6b1..21c72d5 100644 --- a/arch/microblaze/include/asm/u-boot.h +++ b/arch/microblaze/include/asm/u-boot.h @@ -44,5 +44,7 @@ typedef struct bd_info { unsigned long bi_baudrate; /* Console Baudrate */ } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_MICROBLAZE
#endif /* _U_BOOT_H_ */ diff --git a/arch/mips/include/asm/u-boot.h b/arch/mips/include/asm/u-boot.h index e839ca1..edb87bb 100644 --- a/arch/mips/include/asm/u-boot.h +++ b/arch/mips/include/asm/u-boot.h @@ -43,4 +43,7 @@ typedef struct bd_info { unsigned long bi_flashoffset; /* reserved area for startup monitor */ } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_MIPS + #endif /* _U_BOOT_H_ */ diff --git a/arch/nios2/include/asm/u-boot.h b/arch/nios2/include/asm/u-boot.h index ec844d0..f7c70ff 100644 --- a/arch/nios2/include/asm/u-boot.h +++ b/arch/nios2/include/asm/u-boot.h @@ -43,5 +43,7 @@ typedef struct bd_info { unsigned long bi_baudrate; /* Console Baudrate */ } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_NIOS2
#endif /* __ASM_NIOS2_U_BOOT_H_ */ diff --git a/arch/powerpc/include/asm/u-boot.h b/arch/powerpc/include/asm/u-boot.h index 721692a..b2fa2b5 100644 --- a/arch/powerpc/include/asm/u-boot.h +++ b/arch/powerpc/include/asm/u-boot.h @@ -143,4 +143,8 @@ typedef struct bd_info { } bd_t;
#endif /* __ASSEMBLY__ */ + +/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_PPC + #endif /* __U_BOOT_H__ */ diff --git a/arch/sh/include/asm/u-boot.h b/arch/sh/include/asm/u-boot.h index 27d43b9..4574512 100644 --- a/arch/sh/include/asm/u-boot.h +++ b/arch/sh/include/asm/u-boot.h @@ -38,4 +38,7 @@ typedef struct bd_info { unsigned long bi_boot_params; /* where this board expects params */ } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_SH + #endif diff --git a/arch/sparc/include/asm/u-boot.h b/arch/sparc/include/asm/u-boot.h index 209873f..1d94087 100644 --- a/arch/sparc/include/asm/u-boot.h +++ b/arch/sparc/include/asm/u-boot.h @@ -59,4 +59,8 @@ typedef struct bd_info { } bd_t;
#endif /* __ASSEMBLY__ */ + +/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_SPARC + #endif /* __U_BOOT_H__ */ diff --git a/arch/x86/include/asm/u-boot.h b/arch/x86/include/asm/u-boot.h index a43b3aa..26450eb 100644 --- a/arch/x86/include/asm/u-boot.h +++ b/arch/x86/include/asm/u-boot.h @@ -58,4 +58,7 @@ typedef struct bd_info { }bi_dram[CONFIG_NR_DRAM_BANKS]; } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_I386 + #endif /* _U_BOOT_H_ */ diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 8909ee7..c2e8038 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -165,31 +165,7 @@ void __arch_preboot_os(void) } void arch_preboot_os(void) __attribute__((weak, alias("__arch_preboot_os")));
-#if defined(__ARM__) - #define IH_INITRD_ARCH IH_ARCH_ARM -#elif defined(__avr32__) - #define IH_INITRD_ARCH IH_ARCH_AVR32 -#elif defined(__bfin__) - #define IH_INITRD_ARCH IH_ARCH_BLACKFIN -#elif defined(__I386__) - #define IH_INITRD_ARCH IH_ARCH_I386 -#elif defined(__M68K__) - #define IH_INITRD_ARCH IH_ARCH_M68K -#elif defined(__microblaze__) - #define IH_INITRD_ARCH IH_ARCH_MICROBLAZE -#elif defined(__mips__) - #define IH_INITRD_ARCH IH_ARCH_MIPS -#elif defined(__nios2__) - #define IH_INITRD_ARCH IH_ARCH_NIOS2 -#elif defined(__PPC__) - #define IH_INITRD_ARCH IH_ARCH_PPC -#elif defined(__sh__) - #define IH_INITRD_ARCH IH_ARCH_SH -#elif defined(__sparc__) - #define IH_INITRD_ARCH IH_ARCH_SPARC -#else -# error Unknown CPU type -#endif +#define IH_INITRD_ARCH IH_ARCH_DEFAULT
static void bootm_start_lmb(void) { diff --git a/include/image.h b/include/image.h index 352e4a0..62ce38d 100644 --- a/include/image.h +++ b/include/image.h @@ -484,34 +484,10 @@ void image_print_contents (const void *hdr); #ifndef USE_HOSTCC static inline int image_check_target_arch (const image_header_t *hdr) { -#if defined(__ARM__) - if (!image_check_arch (hdr, IH_ARCH_ARM)) -#elif defined(__avr32__) - if (!image_check_arch (hdr, IH_ARCH_AVR32)) -#elif defined(__bfin__) - if (!image_check_arch (hdr, IH_ARCH_BLACKFIN)) -#elif defined(__I386__) - if (!image_check_arch (hdr, IH_ARCH_I386)) -#elif defined(__M68K__) - if (!image_check_arch (hdr, IH_ARCH_M68K)) -#elif defined(__microblaze__) - if (!image_check_arch (hdr, IH_ARCH_MICROBLAZE)) -#elif defined(__mips__) - if (!image_check_arch (hdr, IH_ARCH_MIPS)) -#elif defined(__nios2__) - if (!image_check_arch (hdr, IH_ARCH_NIOS2)) -#elif defined(__PPC__) - if (!image_check_arch (hdr, IH_ARCH_PPC)) -#elif defined(__sh__) - if (!image_check_arch (hdr, IH_ARCH_SH)) -#elif defined(__sparc__) - if (!image_check_arch (hdr, IH_ARCH_SPARC)) -#else -# error Unknown CPU type +#ifndef IH_ARCH_DEFAULT +# error "please define IH_ARCH_DEFAULT in your arch asm/u-boot.h" #endif - return 0; - - return 1; + return image_check_arch(hdr, IH_ARCH_DEFAULT); } #endif /* USE_HOSTCC */
@@ -636,34 +612,7 @@ void fit_conf_print (const void *fit, int noffset, const char *p); #ifndef USE_HOSTCC static inline int fit_image_check_target_arch (const void *fdt, int node) { -#if defined(__ARM__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_ARM)) -#elif defined(__avr32__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_AVR32)) -#elif defined(__bfin__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_BLACKFIN)) -#elif defined(__I386__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_I386)) -#elif defined(__M68K__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_M68K)) -#elif defined(__microblaze__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_MICROBLAZE)) -#elif defined(__mips__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_MIPS)) -#elif defined(__nios2__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_NIOS2)) -#elif defined(__PPC__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_PPC)) -#elif defined(__sh__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_SH)) -#elif defined(__sparc__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_SPARC)) -#else -# error Unknown CPU type -#endif - return 0; - - return 1; + return !fit_image_check_arch(fdt, node, IH_ARCH_DEFAULT)); } #endif /* USE_HOSTCC */

Hi Mike,
On 09/27/2011 03:58 AM, Mike Frysinger wrote:
This pushes the ugly duplicated arch ifdef lists we maintain in various image related files out to the arch headers themselves.
Signed-off-by: Mike Frysingervapier@gentoo.org
v2
- add a friendly #error when the define is missing
Compiled and tested on nios2 boards using gcc4 and gcc3 with McNutt's "Add missing header for gcc3" patch applied. Thanks.
Tested-by: Thomas Chou thomas@wytron.com.tw
Best regards, Thomas

This pushes the ugly duplicated arch ifdef lists we maintain in various image related files out to the arch headers themselves.
Acked-by: Nobuhiro Iwamatsu iwamatsu@nigauri.org Tested-by: Thomas Chou thomas@wytron.com.tw Signed-off-by: Mike Frysinger vapier@gentoo.org --- v3 - fix typo in fdt-specific code path
arch/arm/include/asm/u-boot.h | 3 ++ arch/avr32/include/asm/u-boot.h | 3 ++ arch/blackfin/include/asm/u-boot.h | 3 ++ arch/m68k/include/asm/u-boot.h | 3 ++ arch/microblaze/include/asm/u-boot.h | 2 + arch/mips/include/asm/u-boot.h | 3 ++ arch/nios2/include/asm/u-boot.h | 2 + arch/powerpc/include/asm/u-boot.h | 4 ++ arch/sh/include/asm/u-boot.h | 3 ++ arch/sparc/include/asm/u-boot.h | 4 ++ arch/x86/include/asm/u-boot.h | 3 ++ common/cmd_bootm.c | 26 +-------------- include/image.h | 59 ++------------------------------- 13 files changed, 38 insertions(+), 80 deletions(-)
diff --git a/arch/arm/include/asm/u-boot.h b/arch/arm/include/asm/u-boot.h index ed33327..f30b9fc 100644 --- a/arch/arm/include/asm/u-boot.h +++ b/arch/arm/include/asm/u-boot.h @@ -48,4 +48,7 @@ typedef struct bd_info { } bi_dram[CONFIG_NR_DRAM_BANKS]; } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_ARM + #endif /* _U_BOOT_H_ */ diff --git a/arch/avr32/include/asm/u-boot.h b/arch/avr32/include/asm/u-boot.h index 8acd056..ff1ed23 100644 --- a/arch/avr32/include/asm/u-boot.h +++ b/arch/avr32/include/asm/u-boot.h @@ -40,4 +40,7 @@ typedef struct bd_info { #define bi_memstart bi_dram[0].start #define bi_memsize bi_dram[0].size
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_AVR32 + #endif /* __ASM_U_BOOT_H__ */ diff --git a/arch/blackfin/include/asm/u-boot.h b/arch/blackfin/include/asm/u-boot.h index a6e6cf0f..9712fc0 100644 --- a/arch/blackfin/include/asm/u-boot.h +++ b/arch/blackfin/include/asm/u-boot.h @@ -45,4 +45,7 @@ typedef struct bd_info { unsigned long bi_sclk; } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_BLACKFIN + #endif /* _U_BOOT_H_ */ diff --git a/arch/m68k/include/asm/u-boot.h b/arch/m68k/include/asm/u-boot.h index a0f2983..0a48bbd 100644 --- a/arch/m68k/include/asm/u-boot.h +++ b/arch/m68k/include/asm/u-boot.h @@ -64,4 +64,7 @@ typedef struct bd_info {
#endif /* __ASSEMBLY__ */
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_M68K + #endif /* __U_BOOT_H__ */ diff --git a/arch/microblaze/include/asm/u-boot.h b/arch/microblaze/include/asm/u-boot.h index 543a6b1..21c72d5 100644 --- a/arch/microblaze/include/asm/u-boot.h +++ b/arch/microblaze/include/asm/u-boot.h @@ -44,5 +44,7 @@ typedef struct bd_info { unsigned long bi_baudrate; /* Console Baudrate */ } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_MICROBLAZE
#endif /* _U_BOOT_H_ */ diff --git a/arch/mips/include/asm/u-boot.h b/arch/mips/include/asm/u-boot.h index e839ca1..edb87bb 100644 --- a/arch/mips/include/asm/u-boot.h +++ b/arch/mips/include/asm/u-boot.h @@ -43,4 +43,7 @@ typedef struct bd_info { unsigned long bi_flashoffset; /* reserved area for startup monitor */ } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_MIPS + #endif /* _U_BOOT_H_ */ diff --git a/arch/nios2/include/asm/u-boot.h b/arch/nios2/include/asm/u-boot.h index ec844d0..f7c70ff 100644 --- a/arch/nios2/include/asm/u-boot.h +++ b/arch/nios2/include/asm/u-boot.h @@ -43,5 +43,7 @@ typedef struct bd_info { unsigned long bi_baudrate; /* Console Baudrate */ } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_NIOS2
#endif /* __ASM_NIOS2_U_BOOT_H_ */ diff --git a/arch/powerpc/include/asm/u-boot.h b/arch/powerpc/include/asm/u-boot.h index 721692a..b2fa2b5 100644 --- a/arch/powerpc/include/asm/u-boot.h +++ b/arch/powerpc/include/asm/u-boot.h @@ -143,4 +143,8 @@ typedef struct bd_info { } bd_t;
#endif /* __ASSEMBLY__ */ + +/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_PPC + #endif /* __U_BOOT_H__ */ diff --git a/arch/sh/include/asm/u-boot.h b/arch/sh/include/asm/u-boot.h index 27d43b9..4574512 100644 --- a/arch/sh/include/asm/u-boot.h +++ b/arch/sh/include/asm/u-boot.h @@ -38,4 +38,7 @@ typedef struct bd_info { unsigned long bi_boot_params; /* where this board expects params */ } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_SH + #endif diff --git a/arch/sparc/include/asm/u-boot.h b/arch/sparc/include/asm/u-boot.h index 209873f..1d94087 100644 --- a/arch/sparc/include/asm/u-boot.h +++ b/arch/sparc/include/asm/u-boot.h @@ -59,4 +59,8 @@ typedef struct bd_info { } bd_t;
#endif /* __ASSEMBLY__ */ + +/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_SPARC + #endif /* __U_BOOT_H__ */ diff --git a/arch/x86/include/asm/u-boot.h b/arch/x86/include/asm/u-boot.h index a43b3aa..26450eb 100644 --- a/arch/x86/include/asm/u-boot.h +++ b/arch/x86/include/asm/u-boot.h @@ -58,4 +58,7 @@ typedef struct bd_info { }bi_dram[CONFIG_NR_DRAM_BANKS]; } bd_t;
+/* For image.h:image_check_target_arch() */ +#define IH_ARCH_DEFAULT IH_ARCH_I386 + #endif /* _U_BOOT_H_ */ diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 8909ee7..c2e8038 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -165,31 +165,7 @@ void __arch_preboot_os(void) } void arch_preboot_os(void) __attribute__((weak, alias("__arch_preboot_os")));
-#if defined(__ARM__) - #define IH_INITRD_ARCH IH_ARCH_ARM -#elif defined(__avr32__) - #define IH_INITRD_ARCH IH_ARCH_AVR32 -#elif defined(__bfin__) - #define IH_INITRD_ARCH IH_ARCH_BLACKFIN -#elif defined(__I386__) - #define IH_INITRD_ARCH IH_ARCH_I386 -#elif defined(__M68K__) - #define IH_INITRD_ARCH IH_ARCH_M68K -#elif defined(__microblaze__) - #define IH_INITRD_ARCH IH_ARCH_MICROBLAZE -#elif defined(__mips__) - #define IH_INITRD_ARCH IH_ARCH_MIPS -#elif defined(__nios2__) - #define IH_INITRD_ARCH IH_ARCH_NIOS2 -#elif defined(__PPC__) - #define IH_INITRD_ARCH IH_ARCH_PPC -#elif defined(__sh__) - #define IH_INITRD_ARCH IH_ARCH_SH -#elif defined(__sparc__) - #define IH_INITRD_ARCH IH_ARCH_SPARC -#else -# error Unknown CPU type -#endif +#define IH_INITRD_ARCH IH_ARCH_DEFAULT
static void bootm_start_lmb(void) { diff --git a/include/image.h b/include/image.h index 352e4a0..cca1cc5 100644 --- a/include/image.h +++ b/include/image.h @@ -484,34 +484,10 @@ void image_print_contents (const void *hdr); #ifndef USE_HOSTCC static inline int image_check_target_arch (const image_header_t *hdr) { -#if defined(__ARM__) - if (!image_check_arch (hdr, IH_ARCH_ARM)) -#elif defined(__avr32__) - if (!image_check_arch (hdr, IH_ARCH_AVR32)) -#elif defined(__bfin__) - if (!image_check_arch (hdr, IH_ARCH_BLACKFIN)) -#elif defined(__I386__) - if (!image_check_arch (hdr, IH_ARCH_I386)) -#elif defined(__M68K__) - if (!image_check_arch (hdr, IH_ARCH_M68K)) -#elif defined(__microblaze__) - if (!image_check_arch (hdr, IH_ARCH_MICROBLAZE)) -#elif defined(__mips__) - if (!image_check_arch (hdr, IH_ARCH_MIPS)) -#elif defined(__nios2__) - if (!image_check_arch (hdr, IH_ARCH_NIOS2)) -#elif defined(__PPC__) - if (!image_check_arch (hdr, IH_ARCH_PPC)) -#elif defined(__sh__) - if (!image_check_arch (hdr, IH_ARCH_SH)) -#elif defined(__sparc__) - if (!image_check_arch (hdr, IH_ARCH_SPARC)) -#else -# error Unknown CPU type +#ifndef IH_ARCH_DEFAULT +# error "please define IH_ARCH_DEFAULT in your arch asm/u-boot.h" #endif - return 0; - - return 1; + return image_check_arch(hdr, IH_ARCH_DEFAULT); } #endif /* USE_HOSTCC */
@@ -636,34 +612,7 @@ void fit_conf_print (const void *fit, int noffset, const char *p); #ifndef USE_HOSTCC static inline int fit_image_check_target_arch (const void *fdt, int node) { -#if defined(__ARM__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_ARM)) -#elif defined(__avr32__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_AVR32)) -#elif defined(__bfin__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_BLACKFIN)) -#elif defined(__I386__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_I386)) -#elif defined(__M68K__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_M68K)) -#elif defined(__microblaze__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_MICROBLAZE)) -#elif defined(__mips__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_MIPS)) -#elif defined(__nios2__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_NIOS2)) -#elif defined(__PPC__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_PPC)) -#elif defined(__sh__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_SH)) -#elif defined(__sparc__) - if (!fit_image_check_arch (fdt, node, IH_ARCH_SPARC)) -#else -# error Unknown CPU type -#endif - return 0; - - return 1; + return !fit_image_check_arch(fdt, node, IH_ARCH_DEFAULT); } #endif /* USE_HOSTCC */

Dear Mike Frysinger,
In message 1317689433-7108-1-git-send-email-vapier@gentoo.org you wrote:
This pushes the ugly duplicated arch ifdef lists we maintain in various image related files out to the arch headers themselves.
Acked-by: Nobuhiro Iwamatsu iwamatsu@nigauri.org Tested-by: Thomas Chou thomas@wytron.com.tw Signed-off-by: Mike Frysinger vapier@gentoo.org
v3
- fix typo in fdt-specific code path
arch/arm/include/asm/u-boot.h | 3 ++ arch/avr32/include/asm/u-boot.h | 3 ++ arch/blackfin/include/asm/u-boot.h | 3 ++ arch/m68k/include/asm/u-boot.h | 3 ++ arch/microblaze/include/asm/u-boot.h | 2 + arch/mips/include/asm/u-boot.h | 3 ++ arch/nios2/include/asm/u-boot.h | 2 + arch/powerpc/include/asm/u-boot.h | 4 ++ arch/sh/include/asm/u-boot.h | 3 ++ arch/sparc/include/asm/u-boot.h | 4 ++ arch/x86/include/asm/u-boot.h | 3 ++ common/cmd_bootm.c | 26 +-------------- include/image.h | 59 ++------------------------------- 13 files changed, 38 insertions(+), 80 deletions(-)
Applied, thanks.
Best regards,
Wolfgang Denk
participants (3)
-
Mike Frysinger
-
Thomas Chou
-
Wolfgang Denk