File kvm-bios.patch of Package kvm.import4640

# Send to upstream BOCHS
This ACPI BIOS patch provides:
- The PCI bus definition for PIC, HPET, RTC, SMC and OSYS and SMIF
- An PBLK which provides the size of the L2 and L3 caches
- If newer hardware like ICH6 IDE is found, init it
Signed-off-by: Alex Graf - http://alex.csgraf.de
Index: qemu-kvm-0.12.2/roms/seabios-mac/src/acpi-dsdt.dsl
===================================================================
--- qemu-kvm-0.12.2.orig/roms/seabios-mac/src/acpi-dsdt.dsl
+++ qemu-kvm-0.12.2/roms/seabios-mac/src/acpi-dsdt.dsl
@@ -198,6 +198,7 @@ DefinitionBlock (
 
         Device(HPET) {
             Name(_HID,  EISAID("PNP0103"))
+            Name(_CID, 0x010CD041)
             Name(_UID, 0)
             Method (_STA, 0, NotSerialized) {
                     Return(0x0F)
@@ -214,6 +215,23 @@ DefinitionBlock (
                 )
             })
         }
+        Device (SMC)
+        {
+            Name (_HID, EisaId ("APP0001"))
+            Name (_CID, "smc-napa")
+            Name (_STA, 0x0B)
+            Name (_CRS, ResourceTemplate ()
+            {
+                IO (Decode16,
+                    0x0300,             // Range Minimum
+                    0x0300,             // Range Maximum
+                    0x01,               // Alignment
+                    0x20,               // Length
+                    )
+                IRQNoFlags ()
+                    {6}
+            })
+        }
     }
 
     Scope(\_SB.PCI0) {
Index: qemu-kvm-0.12.2/roms/seabios-mac/src/pciinit.c
===================================================================
--- qemu-kvm-0.12.2.orig/roms/seabios-mac/src/pciinit.c
+++ qemu-kvm-0.12.2/roms/seabios-mac/src/pciinit.c
@@ -18,7 +18,8 @@ static u32 pci_bios_io_addr;
 static u32 pci_bios_mem_addr;
 /* host irqs corresponding to PCI irqs A-D */
 static u8 pci_irqs[4] = {
-    10, 10, 11, 11
+//    10, 10, 11, 11
+    11, 10, 11, 10
 };
 
 static void pci_set_io_region_addr(u16 bdf, int region_num, u32 addr)
@@ -53,7 +54,9 @@ static void pci_bios_init_bridges(u16 bd
 
     if (vendor_id == PCI_VENDOR_ID_INTEL
         && (device_id == PCI_DEVICE_ID_INTEL_82371SB_0
-            || device_id == PCI_DEVICE_ID_INTEL_82371AB_0)) {
+            || device_id == PCI_DEVICE_ID_INTEL_82371AB_0
+            || device_id == PCI_DEVICE_ID_INTEL_82945GM_HB
+            || device_id == PCI_DEVICE_ID_INTEL_ICH7_1)) {
         int i, irq;
         u8 elcr[2];
 
@@ -90,7 +93,8 @@ static void pci_bios_init_device(u16 bdf
     case PCI_CLASS_STORAGE_IDE:
         if (vendor_id == PCI_VENDOR_ID_INTEL
             && (device_id == PCI_DEVICE_ID_INTEL_82371SB_1
-                || device_id == PCI_DEVICE_ID_INTEL_82371AB)) {
+                || device_id == PCI_DEVICE_ID_INTEL_82371AB
+                || device_id == PCI_DEVICE_ID_INTEL_ESB2_18)) {
             /* PIIX3/PIIX4 IDE */
             pci_config_writew(bdf, 0x40, 0x8000); // enable IDE0
             pci_config_writew(bdf, 0x42, 0x8000); // enable IDE1
openSUSE Build Service is sponsored by