[kernel/f18] Apply ARM errata fix, disable HVC_DCC and VIRTIO_CONSOLE on ARM

Peter Robinson pbrobinson at fedoraproject.org
Tue Jan 22 20:21:17 UTC 2013


commit 2ddf29a0b536852dc4d8c6342fd395fc193accd3
Author: Peter Robinson <pbrobinson at gmail.com>
Date:   Tue Jan 22 20:20:54 2013 +0000

    Apply ARM errata fix, disable HVC_DCC and VIRTIO_CONSOLE on ARM

 ...y-set-set_debug-on-pl310-r3p0-and-earlier.patch |   31 ++++++++++++++++++++
 config-armv7                                       |    5 ++-
 kernel.spec                                        |   13 +++++++-
 3 files changed, 46 insertions(+), 3 deletions(-)
---
diff --git a/arm-l2x0-only-set-set_debug-on-pl310-r3p0-and-earlier.patch b/arm-l2x0-only-set-set_debug-on-pl310-r3p0-and-earlier.patch
new file mode 100644
index 0000000..662ebe6
--- /dev/null
+++ b/arm-l2x0-only-set-set_debug-on-pl310-r3p0-and-earlier.patch
@@ -0,0 +1,31 @@
+From: Rob Herring <rob.herring at calxeda.com>
+
+PL310 errata work-arounds using .set_debug function are only needed on
+r3p0 and earlier, so check the rev and only set .set_debug on older revs.
+
+Avoiding debug register accesses fixes aborts on non-secure platforms
+like highbank. It is assumed that non-secure platforms needing these
+work-arounds have already implemented .set_debug with secure monitor
+calls.
+
+Signed-off-by: Rob Herring <rob.herring at calxeda.com>
+---
+ arch/arm/mm/cache-l2x0.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
+index 8a97e64..6cf2fd1 100644
+--- a/arch/arm/mm/cache-l2x0.c
++++ b/arch/arm/mm/cache-l2x0.c
+@@ -334,7 +334,8 @@ void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask)
+ 		/* Unmapped register. */
+ 		sync_reg_offset = L2X0_DUMMY_REG;
+ #endif
+-		outer_cache.set_debug = pl310_set_debug;
++		if ((cache_id & L2X0_CACHE_ID_RTL_MASK) <= L2X0_CACHE_ID_RTL_R3P0)
++			outer_cache.set_debug = pl310_set_debug;
+ 		break;
+ 	case L2X0_CACHE_ID_PART_L210:
+ 		ways = (aux >> 13) & 0xf;
+-- 
+1.7.10.4
diff --git a/config-armv7 b/config-armv7
index f143f3d..5d6d294 100644
--- a/config-armv7
+++ b/config-armv7
@@ -48,7 +48,7 @@ CONFIG_HIGHPTE=y
 # CONFIG_ARM_LPAE is not set
 # CONFIG_THUMB2_KERNEL is not set
 # CONFIG_XEN is not set
-CONFIG_HVC_DCC=y
+# CONFIG_HVC_DCC is not set
 
 # CONFIG_ARM_VIRT_EXT is not set
 
@@ -144,6 +144,9 @@ CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
 CONFIG_SERIAL_AMBA_PL011=y
 CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
 
+# disable VIRTIO console on because not doing real virt and it breaks vexpress on qemu
+# CONFIG_VIRTIO_CONSOLE is not set
+
 CONFIG_RTC_DRV_PL030=y
 CONFIG_RTC_DRV_PL031=y
 
diff --git a/kernel.spec b/kernel.spec
index 9fce006..0049b32 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -743,9 +743,12 @@ Patch20001: 0002-x86-EFI-Calculate-the-EFI-framebuffer-size-instead-o.patch
 
 # ARM
 Patch21000: arm-read_current_timer.patch
-Patch21001: arm-fix-omapdrm.patch
-Patch21003: arm-alignment-faults.patch
+# http://lists.infradead.org/pipermail/linux-arm-kernel/2012-December/137164.html
+Patch21001: arm-l2x0-only-set-set_debug-on-pl310-r3p0-and-earlier.patch
+Patch21002: arm-alignment-faults.patch
+
 # OMAP
+Patch21003: arm-fix-omapdrm.patch
 
 # ARM tegra
 Patch21004: arm-tegra-nvec-kconfig.patch
@@ -1343,6 +1346,8 @@ ApplyPatch vmbugon-warnon.patch
 #
 #ApplyPatch arm-read_current_timer.patch
 #ApplyPatch arm-fix-omapdrm.patch
+
+ApplyPatch arm-l2x0-only-set-set_debug-on-pl310-r3p0-and-earlier.patch
 ApplyPatch arm-tegra-nvec-kconfig.patch
 ApplyPatch arm-tegra-usb-no-reset-linux33.patch
 ApplyPatch arm-tegra-sdhci-module-fix.patch
@@ -2347,6 +2352,10 @@ fi
 #                 ||----w |
 #                 ||     ||
 %changelog
+* Tue Jan 22 2013 Peter Robinson <pbrobinson at fedoraproject.org>
+- Apply ARM errata fix
+- disable HVC_DCC and VIRTIO_CONSOLE on ARM
+
 * Tue Jan 22 2013 Josh Boyer <jwboyer at redhat.com>
 - Fix libata settings bug (rhbz 902523)
 


More information about the scm-commits mailing list