mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 10:26:10 +01: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:
		| @@ -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 | ||||
| /* | ||||
|   | ||||
		Reference in New Issue
	
	Block a user