aboriginal
changeset 1534:418a7e78cfe1
Make arm versatile work again.
| author | Rob Landley <rob@landley.net> |
|---|---|
| date | Sun Aug 19 12:46:36 2012 -0500 (9 months ago) |
| parents | db5d13f2474f |
| children | 2d264744ac3a |
| files | sources/patches/linux-arm.patch |
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
