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 <rnayak@ti.com> Signed-off-by: Sricharan R <r.sricharan@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
This commit is contained in:
parent
a906847966
commit
8c16dd6fa7
|
@ -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();
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue