diff options
| author | Rajendra Nayak <[email protected]> | 2014-07-18 11:18:48 +0530 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2014-07-25 16:26:11 -0400 |
| commit | 8c16dd6fa7de448b36778275b456bf4ea53c3306 (patch) | |
| tree | 25408925f8f0cfc2b15995233b9d29b5ca2b9ed5 /arch | |
| parent | a906847966fd097835712b2ad3b5bac340793d43 (diff) | |
ARM: OMAP: Fix handling of errata i727
The errata is applicable on all OMAP4 (4430 and 4460/4470) and OMAP5
ES 1.0 devices. The current revision check erroneously implements this
on all DRA7 varients and with DRA722 device (which has only 1 EMIF instance)
infact causes an asynchronous abort and ends up masking it in CPSR,
only to be uncovered once the kernel switches to userspace.
Signed-off-by: Rajendra Nayak <[email protected]>
Signed-off-by: Sricharan R <[email protected]>
Signed-off-by: Lokesh Vutla <[email protected]>
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/arm/cpu/armv7/omap-common/hwinit-common.c | 3 | ||||
| -rw-r--r-- | arch/arm/include/asm/omap_common.h | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/cpu/armv7/omap-common/hwinit-common.c b/arch/arm/cpu/armv7/omap-common/hwinit-common.c index 5f50a198015..1b4477f4690 100644 --- a/arch/arm/cpu/armv7/omap-common/hwinit-common.c +++ b/arch/arm/cpu/armv7/omap-common/hwinit-common.c @@ -123,7 +123,8 @@ void s_init(void) hw_data_init(); #ifdef CONFIG_SPL_BUILD - if (warm_reset() && (omap_revision() <= OMAP5430_ES1_0)) + if (warm_reset() && + (is_omap44xx() || (omap_revision() == OMAP5430_ES1_0))) force_emif_self_refresh(); #endif watchdog_init(); diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h index d1344ee94c3..183823404d5 100644 --- a/arch/arm/include/asm/omap_common.h +++ b/arch/arm/include/asm/omap_common.h @@ -595,6 +595,14 @@ static inline u32 omap_revision(void) return *omap_si_rev; } +#define OMAP44xx 0x44000000 + +static inline u8 is_omap44xx(void) +{ + extern u32 *const omap_si_rev; + return (*omap_si_rev & 0xFF000000) == OMAP44xx; +}; + #define OMAP54xx 0x54000000 static inline u8 is_omap54xx(void) |
