Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> --- arch/arm/mach-omap/am33xx_generic.c | 2 +- arch/arm/mach-omap/include/mach/am33xx-generic.h | 2 ++ arch/arm/mach-omap/include/mach/omap3-generic.h | 2 ++ arch/arm/mach-omap/include/mach/omap4-generic.h | 2 ++ arch/arm/mach-omap/omap3_generic.c | 2 +- arch/arm/mach-omap/omap4_generic.c | 2 +- arch/arm/mach-omap/omap_generic.c | 14 ++++++++++++++ 7 files changed, 23 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-omap/am33xx_generic.c b/arch/arm/mach-omap/am33xx_generic.c index 8a883e3..864f210 100644 --- a/arch/arm/mach-omap/am33xx_generic.c +++ b/arch/arm/mach-omap/am33xx_generic.c @@ -30,7 +30,7 @@ #include <mach/am33xx-generic.h> #include <mach/gpmc.h> -void __noreturn reset_cpu(unsigned long addr) +void __noreturn am33xx_reset_cpu(unsigned long addr) { writel(AM33XX_PRM_RSTCTRL_RESET, AM33XX_PRM_RSTCTRL); diff --git a/arch/arm/mach-omap/include/mach/am33xx-generic.h b/arch/arm/mach-omap/include/mach/am33xx-generic.h index 07c72e4..ed77b64 100644 --- a/arch/arm/mach-omap/include/mach/am33xx-generic.h +++ b/arch/arm/mach-omap/include/mach/am33xx-generic.h @@ -26,4 +26,6 @@ u32 am33xx_running_in_flash(void); u32 am33xx_running_in_sram(void); u32 am33xx_running_in_sdram(void); +void __noreturn am33xx_reset_cpu(unsigned long addr); + #endif /* __MACH_AM33XX_GENERIC_H */ diff --git a/arch/arm/mach-omap/include/mach/omap3-generic.h b/arch/arm/mach-omap/include/mach/omap3-generic.h index a6af2ff..c847bfa 100644 --- a/arch/arm/mach-omap/include/mach/omap3-generic.h +++ b/arch/arm/mach-omap/include/mach/omap3-generic.h @@ -23,4 +23,6 @@ u32 omap3_running_in_flash(void); u32 omap3_running_in_sram(void); u32 omap3_running_in_sdram(void); +void __noreturn omap3_reset_cpu(unsigned long addr); + #endif /* __MACH_OMAP3_GENERIC_H */ diff --git a/arch/arm/mach-omap/include/mach/omap4-generic.h b/arch/arm/mach-omap/include/mach/omap4-generic.h index 44f5a12..06bc031 100644 --- a/arch/arm/mach-omap/include/mach/omap4-generic.h +++ b/arch/arm/mach-omap/include/mach/omap4-generic.h @@ -18,4 +18,6 @@ static inline void omap4_save_bootinfo(uint32_t *info) omap_save_bootinfo(info); } +void __noreturn omap4_reset_cpu(unsigned long addr); + #endif /* __MACH_OMAP4_GENERIC_H */ diff --git a/arch/arm/mach-omap/omap3_generic.c b/arch/arm/mach-omap/omap3_generic.c index 1046417..e53b363 100644 --- a/arch/arm/mach-omap/omap3_generic.c +++ b/arch/arm/mach-omap/omap3_generic.c @@ -52,7 +52,7 @@ * * @return void */ -void __noreturn reset_cpu(unsigned long addr) +void __noreturn omap3_reset_cpu(unsigned long addr) { writel(OMAP3_PRM_RSTCTRL_RESET, OMAP3_PRM_REG(RSTCTRL)); diff --git a/arch/arm/mach-omap/omap4_generic.c b/arch/arm/mach-omap/omap4_generic.c index 64b0024..58051a3 100644 --- a/arch/arm/mach-omap/omap4_generic.c +++ b/arch/arm/mach-omap/omap4_generic.c @@ -34,7 +34,7 @@ #define EMIF_L3_CONFIG_VAL_SYS_10_LL_0 0x0A0000FF #define EMIF_L3_CONFIG_VAL_SYS_10_MPU_3_LL_0 0x0A300000 -void __noreturn reset_cpu(unsigned long addr) +void __noreturn omap4_reset_cpu(unsigned long addr) { writel(OMAP44XX_PRM_RSTCTRL_RESET, OMAP44XX_PRM_RSTCTRL); diff --git a/arch/arm/mach-omap/omap_generic.c b/arch/arm/mach-omap/omap_generic.c index 79e37e2..2c12ad4 100644 --- a/arch/arm/mach-omap/omap_generic.c +++ b/arch/arm/mach-omap/omap_generic.c @@ -25,6 +25,9 @@ #include <mach/am33xx-silicon.h> #include <mach/omap3-silicon.h> #include <mach/omap4-silicon.h> +#include <mach/am33xx-generic.h> +#include <mach/omap3-generic.h> +#include <mach/omap4-generic.h> static void *omap_sram_start(void) { @@ -130,3 +133,14 @@ static int omap_env_init(void) } late_initcall(omap_env_init); #endif + +void __noreturn reset_cpu(unsigned long addr) +{ + if (cpu_is_omap34xx()) + omap3_reset_cpu(addr); + if (cpu_is_omap4xxx()) + omap4_reset_cpu(addr); + if (cpu_is_am33xx()) + am33xx_reset_cpu(addr); + while (1); +} -- 1.8.4.2 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox