From: Tom Rini Date: Tue, 7 Mar 2017 12:13:42 +0000 (-0500) Subject: ARM: Migrate errata to Kconfig X-Git-Tag: v2017.03~7 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=8dda2e2f9e0976249f4a390e72f12533dbcb5ef4;p=u-boot ARM: Migrate errata to Kconfig This moves all of the current ARM errata from various header files and in to Kconfig. This allows for a minor amount of cleanup as we had some instances where both a general common header file was enabling errata as well as the board config. We now just select these once at the higher level in Kconfig Signed-off-by: Tom Rini --- diff --git a/README b/README index 4f0dbd4fca..3174b18d9a 100644 --- a/README +++ b/README @@ -600,21 +600,6 @@ The following options need to be configured: Thumb2 this flag will result in Thumb2 code generated by GCC. - CONFIG_ARM_ERRATA_716044 - CONFIG_ARM_ERRATA_742230 - CONFIG_ARM_ERRATA_743622 - CONFIG_ARM_ERRATA_751472 - CONFIG_ARM_ERRATA_761320 - CONFIG_ARM_ERRATA_773022 - CONFIG_ARM_ERRATA_774769 - CONFIG_ARM_ERRATA_794072 - - If set, the workarounds for these ARM errata are applied early - during U-Boot startup. Note that these options force the - workarounds to be applied; no CPU-type/version detection - exists, unlike the similar options in the Linux kernel. Do not - set these options unless they apply! - COUNTER_FREQUENCY Generic timer clock source frequency. @@ -623,15 +608,6 @@ The following options need to be configured: different from COUNTER_FREQUENCY, and can only be determined at run time. - NOTE: The following can be machine specific errata. These - do have ability to provide rudimentary version and machine - specific checks, but expect no product checks. - CONFIG_ARM_ERRATA_430973 - CONFIG_ARM_ERRATA_454179 - CONFIG_ARM_ERRATA_621766 - CONFIG_ARM_ERRATA_798870 - CONFIG_ARM_ERRATA_801819 - - Tegra SoC options: CONFIG_TEGRA_SUPPORT_NON_SECURE diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 7022e2af84..0a05662e7c 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -19,6 +19,72 @@ config HAS_VBAR config HAS_THUMB2 bool +# If set, the workarounds for these ARM errata are applied early during U-Boot +# startup. Note that in general these options force the workarounds to be +# applied; no CPU-type/version detection exists, unlike the similar options in +# the Linux kernel. Do not set these options unless they apply! Also note that +# the following can be machine specific errata. These do have ability to +# provide rudimentary version and machine specific checks, but expect no +# product checks: +# CONFIG_ARM_ERRATA_430973 +# CONFIG_ARM_ERRATA_454179 +# CONFIG_ARM_ERRATA_621766 +# CONFIG_ARM_ERRATA_798870 +# CONFIG_ARM_ERRATA_801819 +config ARM_ERRATA_430973 + bool + +config ARM_ERRATA_454179 + bool + +config ARM_ERRATA_621766 + bool + +config ARM_ERRATA_716044 + bool + +config ARM_ERRATA_742230 + bool + +config ARM_ERRATA_743622 + bool + +config ARM_ERRATA_751472 + bool + +config ARM_ERRATA_761320 + bool + +config ARM_ERRATA_773022 + bool + +config ARM_ERRATA_774769 + bool + +config ARM_ERRATA_794072 + bool + +config ARM_ERRATA_798870 + bool + +config ARM_ERRATA_801819 + bool + +config ARM_ERRATA_826974 + bool + +config ARM_ERRATA_828024 + bool + +config ARM_ERRATA_829520 + bool + +config ARM_ERRATA_833069 + bool + +config ARM_ERRATA_833471 + bool + config CPU_ARM720T bool select SYS_CACHE_SHIFT_5 @@ -569,6 +635,9 @@ config TARGET_MX53SMD config OMAP34XX bool "OMAP34XX SoC" select ARCH_OMAP2 + select ARM_ERRATA_430973 + select ARM_ERRATA_454179 + select ARM_ERRATA_621766 select USE_TINY_PRINTF imply SPL_EXT_SUPPORT imply SPL_FAT_SUPPORT @@ -602,6 +671,7 @@ config OMAP44XX config OMAP54XX bool "OMAP54XX SoC" select ARCH_OMAP2 + select ARM_ERRATA_798870 imply SPL_DISPLAY_PRINT imply SPL_ENV_SUPPORT imply SPL_EXT_SUPPORT diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig index 19cc1f671f..744d67ab86 100644 --- a/arch/arm/cpu/armv7/mx6/Kconfig +++ b/arch/arm/cpu/armv7/mx6/Kconfig @@ -3,6 +3,10 @@ if ARCH_MX6 config MX6 bool default y + select ARM_ERRATA_743622 if !MX6UL + select ARM_ERRATA_751472 if !MX6UL + select ARM_ERRATA_761320 if !MX6UL + select ARM_ERRATA_794072 if !MX6UL config MX6D bool diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig index adccdf15eb..b5609ff7a6 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig @@ -49,6 +49,10 @@ config ARCH_LS1046A config ARCH_LS2080A bool select ARMV8_SET_SMPEN + select ARM_ERRATA_826974 + select ARM_ERRATA_828024 + select ARM_ERRATA_829520 + select ARM_ERRATA_833471 select FSL_LSCH3 select SYS_FSL_DDR select SYS_FSL_DDR_LE diff --git a/arch/arm/include/asm/arch-fsl-layerscape/config.h b/arch/arm/include/asm/arch-fsl-layerscape/config.h index 83f5501612..586ce17215 100644 --- a/arch/arm/include/asm/arch-fsl-layerscape/config.h +++ b/arch/arm/include/asm/arch-fsl-layerscape/config.h @@ -114,12 +114,6 @@ #define CONFIG_SYS_FSL_ERRATUM_A008751 -/* ARM A57 CORE ERRATA */ -#define CONFIG_ARM_ERRATA_826974 -#define CONFIG_ARM_ERRATA_828024 -#define CONFIG_ARM_ERRATA_829520 -#define CONFIG_ARM_ERRATA_833471 - #define CONFIG_SYS_FSL_MAX_NUM_OF_SEC 1 #elif defined(CONFIG_FSL_LSCH2) #define CONFIG_SYS_FSL_OCRAM_BASE 0x10000000 /* initial RAM */ diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index 9bd8ba5eea..46981a5933 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig @@ -82,6 +82,8 @@ config TARGET_ODROID_XU3 config TARGET_ARNDALE bool "Exynos5250 Arndale board" + select ARM_ERRATA_773022 + select ARM_ERRATA_774769 select CPU_V7_HAS_NONSEC select CPU_V7_HAS_VIRT select SUPPORT_SPL diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig index c9f2380f4d..c67ffa5a23 100644 --- a/arch/arm/mach-tegra/Kconfig +++ b/arch/arm/mach-tegra/Kconfig @@ -65,10 +65,15 @@ choice config TEGRA20 bool "Tegra20 family" + select ARM_ERRATA_716044 + select ARM_ERRATA_742230 + select ARM_ERRATA_751472 select TEGRA_ARMV7_COMMON config TEGRA30 bool "Tegra30 family" + select ARM_ERRATA_743622 + select ARM_ERRATA_751472 select TEGRA_ARMV7_COMMON config TEGRA114 diff --git a/include/configs/am3517_crane.h b/include/configs/am3517_crane.h index 18938bf7dc..94087593e1 100644 --- a/include/configs/am3517_crane.h +++ b/include/configs/am3517_crane.h @@ -18,10 +18,6 @@ */ #define CONFIG_OMAP 1 /* in a TI OMAP core */ #define CONFIG_OMAP3_AM3517CRANE 1 /* working with CRANEBOARD */ -/* 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 */ diff --git a/include/configs/am3517_evm.h b/include/configs/am3517_evm.h index c98c663dc1..f1584e4f5c 100644 --- a/include/configs/am3517_evm.h +++ b/include/configs/am3517_evm.h @@ -19,11 +19,6 @@ #define CONFIG_NR_DRAM_BANKS 2 /* CS1 may or may not be populated */ -/* 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 */ /* diff --git a/include/configs/arndale.h b/include/configs/arndale.h index 74fd9c4227..e6f2422f03 100644 --- a/include/configs/arndale.h +++ b/include/configs/arndale.h @@ -47,10 +47,6 @@ /* The PERIPHBASE in the CBAR register is wrong on the Arndale, so override it */ #define CONFIG_ARM_GIC_BASE_ADDRESS 0x10480000 -/* CPU Errata */ -#define CONFIG_ARM_ERRATA_773022 -#define CONFIG_ARM_ERRATA_774769 - /* Power */ #define CONFIG_POWER #define CONFIG_POWER_I2C diff --git a/include/configs/cm_t35.h b/include/configs/cm_t35.h index d244824f9c..e8b79a256b 100644 --- a/include/configs/cm_t35.h +++ b/include/configs/cm_t35.h @@ -25,10 +25,6 @@ #define CONFIG_OMAP /* in a TI OMAP core */ #define CONFIG_OMAP_GPIO #define CONFIG_CM_T3X /* working with CM-T35 and CM-T3730 */ -/* 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 */ diff --git a/include/configs/cm_t3517.h b/include/configs/cm_t3517.h index bfd3b50f40..c179a2b5b8 100644 --- a/include/configs/cm_t3517.h +++ b/include/configs/cm_t3517.h @@ -15,10 +15,6 @@ */ #define CONFIG_OMAP /* in a TI OMAP core */ #define CONFIG_CM_T3517 /* working with CM-T3517 */ -/* Common ARM Erratas */ -#define CONFIG_ARM_ERRATA_454179 -#define CONFIG_ARM_ERRATA_430973 -#define CONFIG_ARM_ERRATA_621766 #define CONFIG_SYS_TEXT_BASE 0x80008000 diff --git a/include/configs/mcx.h b/include/configs/mcx.h index ef44110ee6..06c1a9543b 100644 --- a/include/configs/mcx.h +++ b/include/configs/mcx.h @@ -15,10 +15,6 @@ #define CONFIG_OMAP /* in a TI OMAP core */ #define CONFIG_OMAP3_MCX /* working with mcx */ #define CONFIG_OMAP_GPIO -/* Common ARM Erratas */ -#define CONFIG_ARM_ERRATA_454179 -#define CONFIG_ARM_ERRATA_430973 -#define CONFIG_ARM_ERRATA_621766 #define CONFIG_MACH_TYPE MACH_TYPE_MCX diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h index cd52557ba8..afe9b9340e 100644 --- a/include/configs/mx6_common.h +++ b/include/configs/mx6_common.h @@ -8,11 +8,6 @@ #define __MX6_COMMON_H #ifndef CONFIG_MX6UL -#define CONFIG_ARM_ERRATA_743622 -#define CONFIG_ARM_ERRATA_751472 -#define CONFIG_ARM_ERRATA_794072 -#define CONFIG_ARM_ERRATA_761320 - #ifndef CONFIG_SYS_L2CACHE_OFF #define CONFIG_SYS_L2_PL310 #define CONFIG_SYS_PL310_BASE L2_PL310_BASE diff --git a/include/configs/nokia_rx51.h b/include/configs/nokia_rx51.h index e17c3c0a1d..5b0cb2ef50 100644 --- a/include/configs/nokia_rx51.h +++ b/include/configs/nokia_rx51.h @@ -27,10 +27,6 @@ #define CONFIG_OMAP3430 /* which is in a 3430 */ #define CONFIG_OMAP3_RX51 /* working with RX51 */ #define CONFIG_SYS_L2CACHE_OFF /* pretend there is no L2 CACHE */ -/* Common ARM Erratas */ -#define CONFIG_ARM_ERRATA_454179 -#define CONFIG_ARM_ERRATA_430973 -#define CONFIG_ARM_ERRATA_621766 #define CONFIG_MACH_TYPE MACH_TYPE_NOKIA_RX51 diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h index 6a57ebdd11..a28f9ba8f4 100644 --- a/include/configs/omap3_evm.h +++ b/include/configs/omap3_evm.h @@ -85,10 +85,6 @@ */ #define CONFIG_OMAP /* This is TI OMAP core */ #define CONFIG_OMAP_GPIO -/* 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 */ diff --git a/include/configs/sniper.h b/include/configs/sniper.h index fb28dcd687..83fa6e053d 100644 --- a/include/configs/sniper.h +++ b/include/configs/sniper.h @@ -17,9 +17,6 @@ */ #define CONFIG_ARM_ARCH_CP15_ERRATA -#define CONFIG_ARM_ERRATA_454179 -#define CONFIG_ARM_ERRATA_430973 -#define CONFIG_ARM_ERRATA_621766 /* * Platform diff --git a/include/configs/tam3517-common.h b/include/configs/tam3517-common.h index 87b5315e56..2704319070 100644 --- a/include/configs/tam3517-common.h +++ b/include/configs/tam3517-common.h @@ -15,10 +15,6 @@ */ #define CONFIG_OMAP /* in a TI OMAP core */ #define CONFIG_OMAP_GPIO -/* Common ARM Erratas */ -#define CONFIG_ARM_ERRATA_454179 -#define CONFIG_ARM_ERRATA_430973 -#define CONFIG_ARM_ERRATA_621766 #define CONFIG_SYS_TEXT_BASE 0x80008000 diff --git a/include/configs/tao3530.h b/include/configs/tao3530.h index 89d2e6bb5d..ead8ea76e8 100644 --- a/include/configs/tao3530.h +++ b/include/configs/tao3530.h @@ -19,10 +19,6 @@ #define CONFIG_OMAP /* in a TI OMAP core */ #define CONFIG_OMAP_GPIO -/* Common ARM Erratas */ -#define CONFIG_ARM_ERRATA_454179 -#define CONFIG_ARM_ERRATA_430973 -#define CONFIG_ARM_ERRATA_621766 #define CONFIG_SDRC /* Has an SDRC controller */ diff --git a/include/configs/tegra20-common.h b/include/configs/tegra20-common.h index 793310ff47..db1cc248f4 100644 --- a/include/configs/tegra20-common.h +++ b/include/configs/tegra20-common.h @@ -9,13 +9,6 @@ #define _TEGRA20_COMMON_H_ #include "tegra-common.h" -/* - * Errata configuration - */ -#define CONFIG_ARM_ERRATA_716044 -#define CONFIG_ARM_ERRATA_742230 -#define CONFIG_ARM_ERRATA_751472 - /* * NS16550 Configuration */ diff --git a/include/configs/tegra30-common.h b/include/configs/tegra30-common.h index baf3d00f34..60838474a6 100644 --- a/include/configs/tegra30-common.h +++ b/include/configs/tegra30-common.h @@ -9,12 +9,6 @@ #define _TEGRA30_COMMON_H_ #include "tegra-common.h" -/* - * Errata configuration - */ -#define CONFIG_ARM_ERRATA_743622 -#define CONFIG_ARM_ERRATA_751472 - /* * NS16550 Configuration */ diff --git a/include/configs/ti_omap3_common.h b/include/configs/ti_omap3_common.h index 0ad32353ba..0147662f44 100644 --- a/include/configs/ti_omap3_common.h +++ b/include/configs/ti_omap3_common.h @@ -21,11 +21,6 @@ #include #include -/* 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 diff --git a/include/configs/ti_omap5_common.h b/include/configs/ti_omap5_common.h index 37d65653a5..7fb1bb60df 100644 --- a/include/configs/ti_omap5_common.h +++ b/include/configs/ti_omap5_common.h @@ -17,9 +17,6 @@ #ifndef __CONFIG_TI_OMAP5_COMMON_H #define __CONFIG_TI_OMAP5_COMMON_H -/* Common ARM Erratas */ -#define CONFIG_ARM_ERRATA_798870 - /* Use General purpose timer 1 */ #define CONFIG_SYS_TIMERBASE GPT2_BASE diff --git a/include/configs/tricorder.h b/include/configs/tricorder.h index e4b3290268..2b80352f54 100644 --- a/include/configs/tricorder.h +++ b/include/configs/tricorder.h @@ -19,10 +19,6 @@ /* High Level Configuration Options */ #define CONFIG_SYS_THUMB_BUILD #define CONFIG_OMAP /* in a TI OMAP core */ -/* 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 /* diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt index f6c9101e95..c02cbef2e9 100644 --- a/scripts/config_whitelist.txt +++ b/scripts/config_whitelist.txt @@ -141,24 +141,6 @@ CONFIG_ARMV8_SWITCH_TO_EL1 CONFIG_ARM_ARCH_CP15_ERRATA CONFIG_ARM_ASM_UNIFIED CONFIG_ARM_DCC -CONFIG_ARM_ERRATA_430973 -CONFIG_ARM_ERRATA_454179 -CONFIG_ARM_ERRATA_621766 -CONFIG_ARM_ERRATA_716044 -CONFIG_ARM_ERRATA_742230 -CONFIG_ARM_ERRATA_743622 -CONFIG_ARM_ERRATA_751472 -CONFIG_ARM_ERRATA_761320 -CONFIG_ARM_ERRATA_773022 -CONFIG_ARM_ERRATA_774769 -CONFIG_ARM_ERRATA_794072 -CONFIG_ARM_ERRATA_798870 -CONFIG_ARM_ERRATA_801819 -CONFIG_ARM_ERRATA_826974 -CONFIG_ARM_ERRATA_828024 -CONFIG_ARM_ERRATA_829520 -CONFIG_ARM_ERRATA_833069 -CONFIG_ARM_ERRATA_833471 CONFIG_ARM_FREQ CONFIG_ARM_GIC_BASE_ADDRESS CONFIG_ARM_PL180_MMCI