
On Wed, Mar 7, 2012 at 00:52, R Sricharan r.sricharan@ti.com wrote:
Warm reset is not functional in case of omap5430ES1.0. So use cold reset instead.
Signed-off-by: R Sricharan r.sricharan@ti.com
[v3] Addressed Tom Rini's comments.trini@ti.com
arch/arm/cpu/armv7/omap-common/reset.S | 3 +++ arch/arm/cpu/armv7/omap5/hwinit.c | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/arch/arm/cpu/armv7/omap-common/reset.S b/arch/arm/cpu/armv7/omap-common/reset.S index 838b122..f2a522a 100644 --- a/arch/arm/cpu/armv7/omap-common/reset.S +++ b/arch/arm/cpu/armv7/omap-common/reset.S @@ -23,6 +23,8 @@
#include <config.h>
+#ifndef CONFIG_OMAP54XX +.type reset_cpu, %function .global reset_cpu reset_cpu: ldr r1, rstctl @ get addr for global reset @@ -36,3 +38,4 @@ rstctl: .word PRM_RSTCTRL rstbit: .word PRM_RSTCTRL_RESET +#endif
instead of doing the #ifdeffery, why not make this a C file with weak and override it in omap5 as needed?
diff --git a/arch/arm/cpu/armv7/omap5/hwinit.c b/arch/arm/cpu/armv7/omap5/hwinit.c index 7da7075..d03e746 100644 --- a/arch/arm/cpu/armv7/omap5/hwinit.c +++ b/arch/arm/cpu/armv7/omap5/hwinit.c @@ -35,6 +35,7 @@ #include <asm/sizes.h> #include <asm/utils.h> #include <asm/arch/gpio.h> +#include <linux/compiler.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -160,3 +161,17 @@ void init_omap_revision(void) *omap_si_rev = OMAP5430_SILICON_ID_INVALID; } }
+void __weak reset_cpu(ulong addr) +{
- u32 omap_rev = omap_revision();
- /*
- * WARM reset is not functional in case of OMAP5430 ES1.0 soc.
- * So use cold reset in case instead.
- */
- if (omap_rev == OMAP5430_ES1_0)
- writel(PRM_RSTCTRL_RESET << 0x1, PRM_RSTCTRL);
- else
- writel(PRM_RSTCTRL_RESET, PRM_RSTCTRL);
+}
Regards, Nishanth Menon