changeset 1610:c756b708583f 1.2.4

Make the arm board work under qemu 1.5.
author Rob Landley <rob@landley.net>
date Sun, 07 Jul 2013 22:03:18 -0500
parents 19a363f60409
children a1937853ee03
files sources/patches/linux-arm.patch
diffstat 1 files changed, 11 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/sources/patches/linux-arm.patch	Thu Jul 04 07:19:27 2013 -0500
+++ b/sources/patches/linux-arm.patch	Sun Jul 07 22:03:18 2013 -0500
@@ -90,14 +90,21 @@
  config ARCH_VERSATILE_PB
  	bool "Support Versatile Platform Baseboard for ARM926EJ-S"
  	default y
-diff -ruN linux/arch/arm/mach-versatile/pci.c linux.bak/arch/arm/mach-versatile/pci.c
---- linux/arch/arm/mach-versatile/pci.c	2013-04-28 19:36:01.000000000 -0500
-+++ linux.bak/arch/arm/mach-versatile/pci.c	2013-04-29 19:09:44.857097553 -0500
-@@ -333,7 +333,7 @@
+diff --git a/arch/arm/mach-versatile/pci.c b/arch/arm/mach-versatile/pci.c
+index e92e5e0..807a5ad 100644
+--- a/arch/arm/mach-versatile/pci.c
++++ b/arch/arm/mach-versatile/pci.c
+@@ -333,7 +333,13 @@ static int __init versatile_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
  	 *  26     1     IRQ_SIC_PCI2
  	 *  27     1     IRQ_SIC_PCI3
  	 */
 -	irq = IRQ_SIC_PCI0 + ((slot - 24 + pin - 1) & 3);
++	// Hit QEMU 1.5.0 and later with a brick so it uses the IRQ we say.
++	dev->bus->ops->write(dev->bus, dev->devfn, PCI_INTERRUPT_LINE, 1, 27);
++
++	// The kernel has no clue where IRQs are, and its current assignments
++	// match neither the hardware nor historic QEMU. Use historic QEMU
++	// for compatability with old versions.
 +	irq = 59; //IRQ_SIC_PCI0 + ((slot - 24 + pin - 1) & 3);
  
  	return irq;