bcm53xx: activate workarounds for erratas

This also deactivates some workaround for erratas only seen in older
CPU cores and L2 cores not used in this SoC.

This partly reverts commit r44947.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 47686
This commit is contained in:
Hauke Mehrtens 2015-12-02 15:19:29 +00:00
parent 1d1c9d56dd
commit c03f264f6d
6 changed files with 80 additions and 25 deletions

View file

@ -1,5 +1,4 @@
CONFIG_ALIGNMENT_TRAP=y CONFIG_ALIGNMENT_TRAP=y
# CONFIG_ARCH_ALPINE is not set
CONFIG_ARCH_BCM=y CONFIG_ARCH_BCM=y
# CONFIG_ARCH_BCM_21664 is not set # CONFIG_ARCH_BCM_21664 is not set
# CONFIG_ARCH_BCM_281XX is not set # CONFIG_ARCH_BCM_281XX is not set
@ -40,7 +39,6 @@ CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ERRATA_754322=y CONFIG_ARM_ERRATA_754322=y
CONFIG_ARM_ERRATA_764369=y CONFIG_ARM_ERRATA_764369=y
CONFIG_ARM_ERRATA_775420=y CONFIG_ARM_ERRATA_775420=y
CONFIG_ARM_ERRATA_798181=y
CONFIG_ARM_GIC=y CONFIG_ARM_GIC=y
CONFIG_ARM_GLOBAL_TIMER=y CONFIG_ARM_GLOBAL_TIMER=y
CONFIG_ARM_HAS_SG_CHAIN=y CONFIG_ARM_HAS_SG_CHAIN=y
@ -98,6 +96,8 @@ CONFIG_CPU_V7=y
CONFIG_CRC16=y CONFIG_CRC16=y
CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZO=y CONFIG_CRYPTO_LZO=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_WORKQUEUE=y
CONFIG_CRYPTO_XZ=y CONFIG_CRYPTO_XZ=y
CONFIG_DCACHE_WORD_ACCESS=y CONFIG_DCACHE_WORD_ACCESS=y
CONFIG_DEBUG_BCM_5301X=y CONFIG_DEBUG_BCM_5301X=y
@ -253,9 +253,9 @@ CONFIG_PGTABLE_LEVELS=2
CONFIG_PHYLIB=y CONFIG_PHYLIB=y
CONFIG_PINCTRL=y CONFIG_PINCTRL=y
# CONFIG_PL310_ERRATA_588369 is not set # CONFIG_PL310_ERRATA_588369 is not set
CONFIG_PL310_ERRATA_727915=y # CONFIG_PL310_ERRATA_727915 is not set
CONFIG_PL310_ERRATA_753970=y # CONFIG_PL310_ERRATA_753970 is not set
CONFIG_PL310_ERRATA_769419=y # CONFIG_PL310_ERRATA_769419 is not set
CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_STALL_COMMON=y
CONFIG_RFS_ACCEL=y CONFIG_RFS_ACCEL=y
CONFIG_RPS=y CONFIG_RPS=y

View file

@ -39,7 +39,6 @@ CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ERRATA_754322=y CONFIG_ARM_ERRATA_754322=y
CONFIG_ARM_ERRATA_764369=y CONFIG_ARM_ERRATA_764369=y
CONFIG_ARM_ERRATA_775420=y CONFIG_ARM_ERRATA_775420=y
CONFIG_ARM_ERRATA_798181=y
CONFIG_ARM_GIC=y CONFIG_ARM_GIC=y
CONFIG_ARM_GLOBAL_TIMER=y CONFIG_ARM_GLOBAL_TIMER=y
CONFIG_ARM_HAS_SG_CHAIN=y CONFIG_ARM_HAS_SG_CHAIN=y
@ -98,7 +97,6 @@ CONFIG_CPU_TLB_V7=y
CONFIG_CPU_V7=y CONFIG_CPU_V7=y
CONFIG_CRC16=y CONFIG_CRC16=y
CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_DEFLATE=y
# CONFIG_CRYPTO_JITTERENTROPY is not set
CONFIG_CRYPTO_LZO=y CONFIG_CRYPTO_LZO=y
CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_WORKQUEUE=y
@ -209,7 +207,6 @@ CONFIG_LIBFDT=y
CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_LOCK_SPIN_ON_OWNER=y
CONFIG_LZO_COMPRESS=y CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y CONFIG_LZO_DECOMPRESS=y
CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
CONFIG_MDIO_BOARDINFO=y CONFIG_MDIO_BOARDINFO=y
CONFIG_MIGHT_HAVE_CACHE_L2X0=y CONFIG_MIGHT_HAVE_CACHE_L2X0=y
CONFIG_MIGHT_HAVE_PCI=y CONFIG_MIGHT_HAVE_PCI=y
@ -263,9 +260,9 @@ CONFIG_PGTABLE_LEVELS=2
CONFIG_PHYLIB=y CONFIG_PHYLIB=y
CONFIG_PINCTRL=y CONFIG_PINCTRL=y
# CONFIG_PL310_ERRATA_588369 is not set # CONFIG_PL310_ERRATA_588369 is not set
CONFIG_PL310_ERRATA_727915=y # CONFIG_PL310_ERRATA_727915 is not set
CONFIG_PL310_ERRATA_753970=y # CONFIG_PL310_ERRATA_753970 is not set
CONFIG_PL310_ERRATA_769419=y # CONFIG_PL310_ERRATA_769419 is not set
CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_STALL_COMMON=y
CONFIG_RFS_ACCEL=y CONFIG_RFS_ACCEL=y
CONFIG_RPS=y CONFIG_RPS=y
@ -292,7 +289,6 @@ CONFIG_STOP_MACHINE=y
CONFIG_SWCONFIG=y CONFIG_SWCONFIG=y
CONFIG_SWIOTLB=y CONFIG_SWIOTLB=y
CONFIG_SWP_EMULATE=y CONFIG_SWP_EMULATE=y
# CONFIG_SYSTEM_DATA_VERIFICATION is not set
CONFIG_SYS_SUPPORTS_APM_EMULATION=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y
# CONFIG_THUMB2_KERNEL is not set # CONFIG_THUMB2_KERNEL is not set
CONFIG_TICK_CPU_ACCOUNTING=y CONFIG_TICK_CPU_ACCOUNTING=y
@ -302,7 +298,6 @@ CONFIG_UBIFS_FS=y
CONFIG_UBIFS_FS_LZO=y CONFIG_UBIFS_FS_LZO=y
CONFIG_UBIFS_FS_XZ=y CONFIG_UBIFS_FS_XZ=y
CONFIG_UBIFS_FS_ZLIB=y CONFIG_UBIFS_FS_ZLIB=y
CONFIG_UID16=y
CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
CONFIG_USB_SUPPORT=y CONFIG_USB_SUPPORT=y
CONFIG_USE_OF=y CONFIG_USE_OF=y

View file

@ -0,0 +1,31 @@
From f4ce7effe2253a325f8ba182903cbdf0d8698593 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sat, 21 Nov 2015 15:29:47 +0100
Subject: [PATCH] ARM: BCM5310X: activate erratas needed for SoC
The BCM4708 I have, which is probably the first generation which got
to the consumer market, is using a ARM Cortex-A9 rev r3p0 and a
L2C-310 rev r3p2 L2 cache controller. There are 3 workarounds for known
erratas in the Linux kernel which could be activated and will be in
this patch. There are currently no workarounds which have to be
activated for the L2C-310 rev r3p2 in Linux.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
arch/arm/mach-bcm/Kconfig | 4 ++++
1 file changed, 4 insertions(+)
--- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig
@@ -38,6 +38,10 @@ config ARCH_BCM_CYGNUS
config ARCH_BCM_5301X
bool "Broadcom BCM470X / BCM5301X ARM SoC" if ARCH_MULTI_V7
select ARCH_BCM_IPROC
+ select ARM_ERRATA_754322
+ select ARM_ERRATA_775420
+ select ARM_ERRATA_764369 if SMP
+
help
Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores.

View file

@ -27,15 +27,14 @@ Signed-off-by: Jon Mason <jonmason@broadcom.com>
device_type = "cpu"; device_type = "cpu";
--- a/arch/arm/mach-bcm/Kconfig --- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig +++ b/arch/arm/mach-bcm/Kconfig
@@ -38,6 +38,8 @@ config ARCH_BCM_CYGNUS @@ -41,6 +41,7 @@ config ARCH_BCM_5301X
config ARCH_BCM_5301X select ARM_ERRATA_754322
bool "Broadcom BCM470X / BCM5301X ARM SoC" if ARCH_MULTI_V7 select ARM_ERRATA_775420
select ARCH_BCM_IPROC select ARM_ERRATA_764369 if SMP
+ select ARM_ERRATA_764369 if SMP
+ select HAVE_SMP + select HAVE_SMP
help help
Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores. Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores.
--- a/arch/arm/mach-bcm/Makefile --- a/arch/arm/mach-bcm/Makefile
+++ b/arch/arm/mach-bcm/Makefile +++ b/arch/arm/mach-bcm/Makefile
@@ -36,6 +36,9 @@ obj-$(CONFIG_ARCH_BCM2835) += board_bcm2 @@ -36,6 +36,9 @@ obj-$(CONFIG_ARCH_BCM2835) += board_bcm2

View file

@ -0,0 +1,31 @@
From f4ce7effe2253a325f8ba182903cbdf0d8698593 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sat, 21 Nov 2015 15:29:47 +0100
Subject: [PATCH] ARM: BCM5310X: activate erratas needed for SoC
The BCM4708 I have, which is probably the first generation which got
to the consumer market, is using a ARM Cortex-A9 rev r3p0 and a
L2C-310 rev r3p2 L2 cache controller. There are 3 workarounds for known
erratas in the Linux kernel which could be activated and will be in
this patch. There are currently no workarounds which have to be
activated for the L2C-310 rev r3p2 in Linux.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
arch/arm/mach-bcm/Kconfig | 4 ++++
1 file changed, 4 insertions(+)
--- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig
@@ -38,6 +38,10 @@ config ARCH_BCM_CYGNUS
config ARCH_BCM_5301X
bool "Broadcom BCM470X / BCM5301X ARM SoC" if ARCH_MULTI_V7
select ARCH_BCM_IPROC
+ select ARM_ERRATA_754322
+ select ARM_ERRATA_775420
+ select ARM_ERRATA_764369 if SMP
+
help
Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores.

View file

@ -27,15 +27,14 @@ Signed-off-by: Jon Mason <jonmason@broadcom.com>
device_type = "cpu"; device_type = "cpu";
--- a/arch/arm/mach-bcm/Kconfig --- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig +++ b/arch/arm/mach-bcm/Kconfig
@@ -38,6 +38,8 @@ config ARCH_BCM_CYGNUS @@ -41,6 +41,7 @@ config ARCH_BCM_5301X
config ARCH_BCM_5301X select ARM_ERRATA_754322
bool "Broadcom BCM470X / BCM5301X ARM SoC" if ARCH_MULTI_V7 select ARM_ERRATA_775420
select ARCH_BCM_IPROC select ARM_ERRATA_764369 if SMP
+ select ARM_ERRATA_764369 if SMP
+ select HAVE_SMP + select HAVE_SMP
help help
Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores. Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores.
--- a/arch/arm/mach-bcm/Makefile --- a/arch/arm/mach-bcm/Makefile
+++ b/arch/arm/mach-bcm/Makefile +++ b/arch/arm/mach-bcm/Makefile
@@ -36,6 +36,9 @@ obj-$(CONFIG_ARCH_BCM2835) += board_bcm2 @@ -36,6 +36,9 @@ obj-$(CONFIG_ARCH_BCM2835) += board_bcm2