aboriginal

changeset 1534:418a7e78cfe1

Make arm versatile work again.
author Rob Landley <rob@landley.net>
date Sun, 19 Aug 2012 12:46:36 -0500
parents db5d13f2474f
children 2d264744ac3a
files sources/patches/linux-arm.patch
diffstat 1 files changed, 34 insertions(+), 7 deletions(-) [+]
line diff
     1.1 --- a/sources/patches/linux-arm.patch	Fri Aug 17 18:54:00 2012 -0500
     1.2 +++ b/sources/patches/linux-arm.patch	Sun Aug 19 12:46:36 2012 -0500
     1.3 @@ -1,8 +1,12 @@
     1.4  Make the "Arm Versatile" board even more versatile, for QEMU, which can
     1.5  stick weird processors into things that were never rmeant to receive them.
     1.6  
     1.7 +In addition, fix breakage in 3.5 that adjusted versatile's interrupts to
     1.8 +match the spec instead of matching what qemu supports. (It only _ever_ ran
     1.9 +under qemu, nobody seems to have classic versatile hardware anymore, so...)
    1.10 +
    1.11  diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
    1.12 -index 9cdec5a..59bf255 100644
    1.13 +index c1f38f6..fe5738c 100644
    1.14  --- a/arch/arm/mach-versatile/Kconfig
    1.15  +++ b/arch/arm/mach-versatile/Kconfig
    1.16  @@ -3,7 +3,6 @@ menu "Versatile platform type"
    1.17 @@ -21,11 +25,35 @@
    1.18   	help
    1.19   	  Include support for the ARM(R) Versatile Application Baseboard
    1.20   	  for the ARM926EJ-S.
    1.21 +diff --git a/arch/arm/mach-versatile/pci.c b/arch/arm/mach-versatile/pci.c
    1.22 +index e95bf84..c7f47fc 100644
    1.23 +--- a/arch/arm/mach-versatile/pci.c
    1.24 ++++ b/arch/arm/mach-versatile/pci.c
    1.25 +@@ -346,12 +346,18 @@ static int __init versatile_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
    1.26 + 	 *  26     1     29
    1.27 + 	 *  27     1     30
    1.28 + 	 */
    1.29 +-	irq = 27 + ((slot - 24 + pin - 1) & 3);
    1.30 ++	irq = 27 + ((slot + pin - 1) & 3);
    1.31 + 
    1.32 + 	return irq;
    1.33 + }
    1.34 + 
    1.35 ++static u8 __init versatile_swizzle(void)
    1.36 ++{
    1.37 ++	return 0;
    1.38 ++}
    1.39 ++
    1.40 + static struct hw_pci versatile_pci __initdata = {
    1.41 ++	.swizzle		= (void *)versatile_swizzle,
    1.42 + 	.map_irq		= versatile_map_irq,
    1.43 + 	.nr_controllers		= 1,
    1.44 + 	.ops			= &pci_versatile_ops,
    1.45  diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
    1.46 -index 0074b8d..608adb9 100644
    1.47 +index 101b968..70de9fd 100644
    1.48  --- a/arch/arm/mm/Kconfig
    1.49  +++ b/arch/arm/mm/Kconfig
    1.50 -@@ -107,7 +107,7 @@ config CPU_ARM9TDMI
    1.51 +@@ -71,7 +71,7 @@ config CPU_ARM9TDMI
    1.52   
    1.53   # ARM920T
    1.54   config CPU_ARM920T
    1.55 @@ -34,7 +62,7 @@
    1.56   	select CPU_32v4T
    1.57   	select CPU_ABRT_EV4T
    1.58   	select CPU_PABRT_LEGACY
    1.59 -@@ -125,7 +125,7 @@ config CPU_ARM920T
    1.60 +@@ -89,7 +89,7 @@ config CPU_ARM920T
    1.61   
    1.62   # ARM922T
    1.63   config CPU_ARM922T
    1.64 @@ -43,7 +71,7 @@
    1.65   	select CPU_32v4T
    1.66   	select CPU_ABRT_EV4T
    1.67   	select CPU_PABRT_LEGACY
    1.68 -@@ -163,7 +163,7 @@ config CPU_ARM925T
    1.69 +@@ -127,7 +127,7 @@ config CPU_ARM925T
    1.70   
    1.71   # ARM926T
    1.72   config CPU_ARM926T
    1.73 @@ -52,7 +80,7 @@
    1.74   	select CPU_32v5
    1.75   	select CPU_ABRT_EV5TJ
    1.76   	select CPU_PABRT_LEGACY
    1.77 -@@ -171,6 +171,7 @@ config CPU_ARM926T
    1.78 +@@ -135,6 +135,7 @@ config CPU_ARM926T
    1.79   	select CPU_CP15_MMU
    1.80   	select CPU_COPY_V4WB if MMU
    1.81   	select CPU_TLB_V4WBI if MMU
    1.82 @@ -60,7 +88,7 @@
    1.83   	help
    1.84   	  This is a variant of the ARM920.  It has slightly different
    1.85   	  instruction sequences for cache and TLB operations.  Curiously,
    1.86 -@@ -390,7 +391,8 @@ config CPU_PJ4
    1.87 +@@ -354,7 +355,8 @@ config CPU_PJ4
    1.88   
    1.89   # ARMv6
    1.90   config CPU_V6