diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2013-11-21 15:25:37 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-11-22 11:25:37 +0100 |
commit | cca45a3299031ccc8fd1a2380d3d98c749142718 (patch) | |
tree | 13a002ae0a65778f79a802b33313b3885a1f8864 /arch/arm | |
parent | f56a48471a13c98a5f7a5a9ade1c8f2914bd4907 (diff) | |
download | barebox-cca45a3299031ccc8fd1a2380d3d98c749142718.tar.gz barebox-cca45a3299031ccc8fd1a2380d3d98c749142718.tar.xz |
ARM: OMAP: Make cpu_is_* macros runtime if necessary
Currently unused, just preparation for the next steps when we'll
get multiarch support for OMAP.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-omap/include/mach/generic.h | 40 | ||||
-rw-r--r-- | arch/arm/mach-omap/omap_generic.c | 11 |
2 files changed, 36 insertions, 15 deletions
diff --git a/arch/arm/mach-omap/include/mach/generic.h b/arch/arm/mach-omap/include/mach/generic.h index b05fdeee91..f4e18f3244 100644 --- a/arch/arm/mach-omap/include/mach/generic.h +++ b/arch/arm/mach-omap/include/mach/generic.h @@ -10,28 +10,46 @@ #define OMAP_I2C_REV_ON_3630 0x00000040 #define OMAP_I2C_REV_ON_4430_PLUS 0x50400002 -#ifdef CONFIG_ARCH_OMAP -#define cpu_is_omap2430() (1) -#else -#define cpu_is_omap2430() (0) -#endif +extern unsigned int __omap_cpu_type; + +#define OMAP_CPU_OMAP3 3 +#define OMAP_CPU_OMAP4 4 +#define OMAP_CPU_AM33XX 33 #ifdef CONFIG_ARCH_OMAP3 -#define cpu_is_omap34xx() (1) +# ifdef omap_cpu_type +# undef omap_cpu_type +# define omap_cpu_type __omap_cpu_type +# else +# define omap_cpu_type OMAP_CPU_OMAP3 +# endif +# define cpu_is_omap3() (omap_cpu_type == OMAP_CPU_OMAP3) #else -#define cpu_is_omap34xx() (0) +# define cpu_is_omap3() (0) #endif #ifdef CONFIG_ARCH_OMAP4 -#define cpu_is_omap4xxx() (1) +# ifdef omap_cpu_type +# undef omap_cpu_type +# define omap_cpu_type __omap_cpu_type +# else +# define omap_cpu_type OMAP_CPU_OMAP4 +# endif +# define cpu_is_omap4() (omap_cpu_type == OMAP_CPU_OMAP4) #else -#define cpu_is_omap4xxx() (0) +# define cpu_is_omap4() (0) #endif #ifdef CONFIG_ARCH_AM33XX -#define cpu_is_am33xx() (1) +# ifdef omap_cpu_type +# undef omap_cpu_type +# define omap_cpu_type __omap_cpu_type +# else +# define omap_cpu_type OMAP_CPU_AM33XX +# endif +# define cpu_is_am33xx() (omap_cpu_type == OMAP_CPU_AM33XX) #else -#define cpu_is_am33xx() (0) +# define cpu_is_am33xx() (0) #endif struct omap_barebox_part { diff --git a/arch/arm/mach-omap/omap_generic.c b/arch/arm/mach-omap/omap_generic.c index 2c12ad47ef..b999ea4391 100644 --- a/arch/arm/mach-omap/omap_generic.c +++ b/arch/arm/mach-omap/omap_generic.c @@ -29,14 +29,17 @@ #include <mach/omap3-generic.h> #include <mach/omap4-generic.h> +unsigned int __omap_cpu_type; + static void *omap_sram_start(void) { if (cpu_is_am33xx()) return (void *)AM33XX_SRAM0_START; - if (cpu_is_omap34xx()) + if (cpu_is_omap3()) return (void *)OMAP3_SRAM_BASE; - if (cpu_is_omap4xxx()) + if (cpu_is_omap4()) return (void *)OMAP44XX_SRAM_BASE; + return NULL; } void __noreturn omap_start_barebox(void *barebox) @@ -136,9 +139,9 @@ late_initcall(omap_env_init); void __noreturn reset_cpu(unsigned long addr) { - if (cpu_is_omap34xx()) + if (cpu_is_omap3()) omap3_reset_cpu(addr); - if (cpu_is_omap4xxx()) + if (cpu_is_omap4()) omap4_reset_cpu(addr); if (cpu_is_am33xx()) am33xx_reset_cpu(addr); |