view sources/patches/linux-arm.patch @ 1589:96fb8598a446 1.2.3

The ARM irq mapping is more broken than that: both the SCSI controller (slot 13, pin 1) and the ethernet controller (slot 12, pin 1) are both on irq 59 in qemu. Just hardwire it for now.
author Rob Landley <rob@landley.net>
date Wed, 20 Mar 2013 21:13:57 -0500
parents 7bf850767bb8
children 3cbf1abde44a
line wrap: on
line source

Make the "Arm Versatile" board even more versatile, for QEMU, which can
stick weird processors into things that were never rmeant to receive them.

In addition, fix breakage in 3.5 that adjusted versatile's interrupts to
match the spec instead of matching what qemu supports. (It only _ever_ ran
under qemu, nobody seems to have classic versatile hardware anymore, so...)

diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
index c1f38f6..fe5738c 100644
--- a/arch/arm/mach-versatile/Kconfig
+++ b/arch/arm/mach-versatile/Kconfig
@@ -4,7 +4,6 @@ menu "Versatile platform type"
 config ARCH_VERSATILE_PB
 	bool "Support Versatile Platform Baseboard for ARM926EJ-S"
 	default y
-	select CPU_ARM926T
 	select MIGHT_HAVE_PCI
 	help
 	  Include support for the ARM(R) Versatile Platform Baseboard
@@ -12,7 +11,6 @@ config ARCH_VERSATILE_PB
 
 config MACH_VERSATILE_AB
 	bool "Support Versatile Application Baseboard for ARM926EJ-S"
-	select CPU_ARM926T
 	help
 	  Include support for the ARM(R) Versatile Application Baseboard
 	  for the ARM926EJ-S.
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index 101b968..70de9fd 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -71,7 +71,7 @@ config CPU_ARM9TDMI
 
 # ARM920T
 config CPU_ARM920T
-	bool "Support ARM920T processor" if ARCH_INTEGRATOR
+	bool "Support ARM920T processor" if ARCH_INTEGRATOR || ARCH_VERSATILE_PB || ARCH_VERSATILE_AB
 	select CPU_32v4T
 	select CPU_ABRT_EV4T
 	select CPU_CACHE_V4WT
@@ -89,7 +89,7 @@ config CPU_ARM920T
 
 # ARM922T
 config CPU_ARM922T
-	bool "Support ARM922T processor" if ARCH_INTEGRATOR
+	bool "Support ARM922T processor" if ARCH_INTEGRATOR || ARCH_VERSATILE_PB || ARCH_VERSATILE_AB
 	select CPU_32v4T
 	select CPU_ABRT_EV4T
 	select CPU_CACHE_V4WT
@@ -127,7 +127,7 @@ config CPU_ARM925T
 
 # ARM926T
 config CPU_ARM926T
-	bool "Support ARM926T processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB
+	bool "Support ARM926T processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_VERSATILE_PB || ARCH_VERSATILE_AB
 	select CPU_32v5
 	select CPU_ABRT_EV5TJ
 	select CPU_CACHE_VIVT
@@ -135,6 +135,7 @@ config CPU_ARM926T
 	select CPU_CP15_MMU
 	select CPU_PABRT_LEGACY
 	select CPU_TLB_V4WBI if MMU
+	select ARCH_SUPPORTS_BIG_ENDIAN
 	help
 	  This is a variant of the ARM920.  It has slightly different
 	  instruction sequences for cache and TLB operations.  Curiously,
@@ -354,7 +355,8 @@ config CPU_PJ4
 
 # ARMv6
 config CPU_V6
-	bool "Support ARM V6 processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB || MACH_REALVIEW_PBX
+	bool "Support ARM V6 processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB || MACH_REALVIEW_PBX || ARCH_VERSATILE_PB || ARCH_VERSATILE_AB
+
 	select CPU_32v6
 	select CPU_ABRT_EV6
 	select CPU_CACHE_V6
diff -ruN linux/arch/arm/mach-versatile/Kconfig linux.new/arch/arm/mach-versatile/Kconfig
--- linux/arch/arm/mach-versatile/Kconfig	2012-12-03 00:24:33.494770199 -0600
+++ linux.new/arch/arm/mach-versatile/Kconfig	2012-12-03 00:17:31.172705566 -0600
@@ -1,6 +1,12 @@
 menu "Versatile platform type"
 	depends on ARCH_VERSATILE
 
+if ARCH_VERSATILE
+config ARCH_SUPPORTS_BIG_ENDIAN
+        bool
+        default y
+endif
+
 config ARCH_VERSATILE_PB
 	bool "Support Versatile Platform Baseboard for ARM926EJ-S"
 	default y
diff --git a/arch/arm/mach-versatile/pci.c b/arch/arm/mach-versatile/pci.c
index 2f84f40..cd7c8ce 100644
--- a/arch/arm/mach-versatile/pci.c
+++ b/arch/arm/mach-versatile/pci.c
@@ -332,7 +332,7 @@ static int __init versatile_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
 	 *  26     1     29
 	 *  27     1     30
 	 */
-	irq = 27 + ((slot - 24 + pin - 1) & 3);
+	irq = 59; //27 + ((slot - 24 + pin - 1) & 3);
 
 	return irq;
 }