mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-20 22:21:41 +00:00
ARM: OMAP3: Enable workaround for ARM errata 454179, 430973, 621766
Enable the OMAP3 specific errata code for 454179, 430973, 621766 and while at it, remove legacy non-revision checked errata logic. Signed-off-by: Nishanth Menon <nm@ti.com> Tested-by: Matt Porter <mporter@konsulko.com> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
fc7368ec85
commit
c6f90e1418
16 changed files with 71 additions and 21 deletions
|
@ -35,7 +35,6 @@ DECLARE_GLOBAL_DATA_PTR;
|
|||
|
||||
/* Declarations */
|
||||
extern omap3_sysinfo sysinfo;
|
||||
static void omap3_setup_aux_cr(void);
|
||||
#ifndef CONFIG_SYS_L2CACHE_OFF
|
||||
static void omap3_invalidate_l2_cache_secure(void);
|
||||
#endif
|
||||
|
@ -244,9 +243,6 @@ void s_init(void)
|
|||
|
||||
try_unlock_memory();
|
||||
|
||||
/* Errata workarounds */
|
||||
omap3_setup_aux_cr();
|
||||
|
||||
#ifndef CONFIG_SYS_L2CACHE_OFF
|
||||
/* Invalidate L2-cache from secure mode */
|
||||
omap3_invalidate_l2_cache_secure();
|
||||
|
@ -419,15 +415,9 @@ static void omap3_emu_romcode_call(u32 service_id, u32 *parameters)
|
|||
do_omap3_emu_romcode_call(service_id, OMAP3_PUBLIC_SRAM_SCRATCH_AREA);
|
||||
}
|
||||
|
||||
static void omap3_update_aux_cr_secure(u32 set_bits, u32 clear_bits)
|
||||
void v7_arch_cp15_set_acr(u32 acr, u32 cpu_midr, u32 cpu_rev_comb,
|
||||
u32 cpu_variant, u32 cpu_rev)
|
||||
{
|
||||
u32 acr;
|
||||
|
||||
/* Read ACR */
|
||||
asm volatile ("mrc p15, 0, %0, c1, c0, 1" : "=r" (acr));
|
||||
acr &= ~clear_bits;
|
||||
acr |= set_bits;
|
||||
|
||||
if (get_device_type() == GP_DEVICE) {
|
||||
omap_smc1(OMAP3_GP_ROMCODE_API_WRITE_ACR, acr);
|
||||
} else {
|
||||
|
@ -439,16 +429,15 @@ static void omap3_update_aux_cr_secure(u32 set_bits, u32 clear_bits)
|
|||
}
|
||||
}
|
||||
|
||||
static void omap3_setup_aux_cr(void)
|
||||
static void omap3_update_aux_cr_secure(u32 set_bits, u32 clear_bits)
|
||||
{
|
||||
/* Workaround for Cortex-A8 errata: #454179 #430973
|
||||
* Set "IBE" bit
|
||||
* Set "Disable Branch Size Mispredicts" bit
|
||||
* Workaround for erratum #621766
|
||||
* Enable L1NEON bit
|
||||
* ACR |= (IBE | DBSM | L1NEON) => ACR |= 0xE0
|
||||
*/
|
||||
omap3_update_aux_cr_secure(0xE0, 0);
|
||||
u32 acr;
|
||||
|
||||
/* Read ACR */
|
||||
asm volatile ("mrc p15, 0, %0, c1, c0, 1" : "=r" (acr));
|
||||
acr &= ~clear_bits;
|
||||
acr |= set_bits;
|
||||
v7_arch_cp15_set_acr(acr, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
#ifndef CONFIG_SYS_L2CACHE_OFF
|
||||
|
|
|
@ -19,6 +19,10 @@
|
|||
#define CONFIG_OMAP 1 /* in a TI OMAP core */
|
||||
#define CONFIG_OMAP3_AM3517CRANE 1 /* working with CRANEBOARD */
|
||||
#define CONFIG_OMAP_COMMON
|
||||
/* Common ARM Erratas */
|
||||
#define CONFIG_ARM_ERRATA_454179
|
||||
#define CONFIG_ARM_ERRATA_430973
|
||||
#define CONFIG_ARM_ERRATA_621766
|
||||
|
||||
#define CONFIG_EMIF4 /* The chip has EMIF4 controller */
|
||||
|
||||
|
|
|
@ -19,6 +19,10 @@
|
|||
#define CONFIG_OMAP 1 /* in a TI OMAP core */
|
||||
#define CONFIG_OMAP3_AM3517EVM 1 /* working with AM3517EVM */
|
||||
#define CONFIG_OMAP_COMMON
|
||||
/* Common ARM Erratas */
|
||||
#define CONFIG_ARM_ERRATA_454179
|
||||
#define CONFIG_ARM_ERRATA_430973
|
||||
#define CONFIG_ARM_ERRATA_621766
|
||||
|
||||
#define CONFIG_EMIF4 /* The chip has EMIF4 controller */
|
||||
|
||||
|
|
|
@ -26,6 +26,10 @@
|
|||
#define CONFIG_CM_T3X /* working with CM-T35 and CM-T3730 */
|
||||
#define CONFIG_OMAP_COMMON
|
||||
#define CONFIG_SYS_GENERIC_BOARD
|
||||
/* Common ARM Erratas */
|
||||
#define CONFIG_ARM_ERRATA_454179
|
||||
#define CONFIG_ARM_ERRATA_430973
|
||||
#define CONFIG_ARM_ERRATA_621766
|
||||
|
||||
#define CONFIG_SDRC /* The chip has SDRC controller */
|
||||
|
||||
|
|
|
@ -17,6 +17,10 @@
|
|||
#define CONFIG_CM_T3517 /* working with CM-T3517 */
|
||||
#define CONFIG_OMAP_COMMON
|
||||
#define CONFIG_SYS_GENERIC_BOARD
|
||||
/* Common ARM Erratas */
|
||||
#define CONFIG_ARM_ERRATA_454179
|
||||
#define CONFIG_ARM_ERRATA_430973
|
||||
#define CONFIG_ARM_ERRATA_621766
|
||||
|
||||
#define CONFIG_SYS_TEXT_BASE 0x80008000
|
||||
|
||||
|
|
|
@ -23,6 +23,10 @@
|
|||
#define MACH_TYPE_OMAP3_CPS 2751
|
||||
#endif
|
||||
#define CONFIG_MACH_TYPE MACH_TYPE_OMAP3_CPS
|
||||
/* Common ARM Erratas */
|
||||
#define CONFIG_ARM_ERRATA_454179
|
||||
#define CONFIG_ARM_ERRATA_430973
|
||||
#define CONFIG_ARM_ERRATA_621766
|
||||
|
||||
/*
|
||||
* High Level Configuration Options
|
||||
|
|
|
@ -16,6 +16,10 @@
|
|||
#define CONFIG_OMAP3_MCX /* working with mcx */
|
||||
#define CONFIG_OMAP_GPIO
|
||||
#define CONFIG_OMAP_COMMON
|
||||
/* Common ARM Erratas */
|
||||
#define CONFIG_ARM_ERRATA_454179
|
||||
#define CONFIG_ARM_ERRATA_430973
|
||||
#define CONFIG_ARM_ERRATA_621766
|
||||
|
||||
#define MACH_TYPE_MCX 3656
|
||||
#define CONFIG_MACH_TYPE MACH_TYPE_MCX
|
||||
|
|
|
@ -15,6 +15,10 @@
|
|||
#define CONFIG_OMAP /* This is TI OMAP core */
|
||||
#define CONFIG_OMAP_GPIO
|
||||
#define CONFIG_OMAP_COMMON
|
||||
/* Common ARM Erratas */
|
||||
#define CONFIG_ARM_ERRATA_454179
|
||||
#define CONFIG_ARM_ERRATA_430973
|
||||
#define CONFIG_ARM_ERRATA_621766
|
||||
|
||||
#define CONFIG_SDRC /* The chip has SDRC controller */
|
||||
|
||||
|
|
|
@ -18,6 +18,10 @@
|
|||
#define CONFIG_OMAP3_LOGIC /* working with Logic OMAP boards */
|
||||
#define CONFIG_OMAP_GPIO
|
||||
#define CONFIG_OMAP_COMMON
|
||||
/* Common ARM Erratas */
|
||||
#define CONFIG_ARM_ERRATA_454179
|
||||
#define CONFIG_ARM_ERRATA_430973
|
||||
#define CONFIG_ARM_ERRATA_621766
|
||||
|
||||
#define CONFIG_SYS_TEXT_BASE 0x80400000
|
||||
|
||||
|
|
|
@ -23,6 +23,10 @@
|
|||
#define CONFIG_MACH_TYPE MACH_TYPE_MVBLX
|
||||
#define CONFIG_OMAP_GPIO
|
||||
#define CONFIG_OMAP_COMMON
|
||||
/* Common ARM Erratas */
|
||||
#define CONFIG_ARM_ERRATA_454179
|
||||
#define CONFIG_ARM_ERRATA_430973
|
||||
#define CONFIG_ARM_ERRATA_621766
|
||||
|
||||
#define CONFIG_SDRC /* The chip has SDRC controller */
|
||||
|
||||
|
|
|
@ -17,6 +17,10 @@
|
|||
#define CONFIG_OMAP3_PANDORA 1 /* working with pandora */
|
||||
#define CONFIG_OMAP_GPIO
|
||||
#define CONFIG_OMAP_COMMON
|
||||
/* Common ARM Erratas */
|
||||
#define CONFIG_ARM_ERRATA_454179
|
||||
#define CONFIG_ARM_ERRATA_430973
|
||||
#define CONFIG_ARM_ERRATA_621766
|
||||
|
||||
#define CONFIG_SDRC /* The chip has SDRC controller */
|
||||
|
||||
|
|
|
@ -23,6 +23,10 @@
|
|||
#define CONFIG_OMAP 1 /* in a TI OMAP core */
|
||||
#define CONFIG_OMAP3_3430SDP 1 /* working with SDP Rev2 */
|
||||
#define CONFIG_OMAP_COMMON
|
||||
/* Common ARM Erratas */
|
||||
#define CONFIG_ARM_ERRATA_454179
|
||||
#define CONFIG_ARM_ERRATA_430973
|
||||
#define CONFIG_ARM_ERRATA_621766
|
||||
|
||||
#define CONFIG_SDRC /* The chip has SDRC controller */
|
||||
|
||||
|
|
|
@ -17,6 +17,10 @@
|
|||
#define CONFIG_OMAP_GPIO
|
||||
#define CONFIG_OMAP_COMMON
|
||||
#define CONFIG_SYS_GENERIC_BOARD
|
||||
/* Common ARM Erratas */
|
||||
#define CONFIG_ARM_ERRATA_454179
|
||||
#define CONFIG_ARM_ERRATA_430973
|
||||
#define CONFIG_ARM_ERRATA_621766
|
||||
|
||||
#define CONFIG_SYS_TEXT_BASE 0x80008000
|
||||
|
||||
|
|
|
@ -21,6 +21,10 @@
|
|||
#define CONFIG_OMAP_GPIO
|
||||
#define CONFIG_OMAP_COMMON
|
||||
#define CONFIG_SYS_GENERIC_BOARD
|
||||
/* Common ARM Erratas */
|
||||
#define CONFIG_ARM_ERRATA_454179
|
||||
#define CONFIG_ARM_ERRATA_430973
|
||||
#define CONFIG_ARM_ERRATA_621766
|
||||
|
||||
#define MACH_TYPE_OMAP3_TAO3530 2836
|
||||
|
||||
|
|
|
@ -22,6 +22,11 @@
|
|||
# define CONFIG_OMAP_SERIAL
|
||||
#endif
|
||||
|
||||
/* Common ARM Erratas */
|
||||
#define CONFIG_ARM_ERRATA_454179
|
||||
#define CONFIG_ARM_ERRATA_430973
|
||||
#define CONFIG_ARM_ERRATA_621766
|
||||
|
||||
/* The chip has SDRC controller */
|
||||
#define CONFIG_SDRC
|
||||
|
||||
|
|
|
@ -19,6 +19,10 @@
|
|||
/* High Level Configuration Options */
|
||||
#define CONFIG_OMAP /* in a TI OMAP core */
|
||||
#define CONFIG_OMAP_COMMON
|
||||
/* Common ARM Erratas */
|
||||
#define CONFIG_ARM_ERRATA_454179
|
||||
#define CONFIG_ARM_ERRATA_430973
|
||||
#define CONFIG_ARM_ERRATA_621766
|
||||
|
||||
#define CONFIG_MACH_TYPE MACH_TYPE_TRICORDER
|
||||
/*
|
||||
|
|
Loading…
Add table
Reference in a new issue