qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [patch 0/5] BIOS changes for ACPI PCI hotplug
@ 2009-02-04 13:44 Marcelo Tosatti
  2009-02-04 13:44 ` [Qemu-devel] [patch 1/5] qemu: bios: use preprocessor for pci link routing Marcelo Tosatti
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Marcelo Tosatti @ 2009-02-04 13:44 UTC (permalink / raw)
  To: qemu-devel


-- 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [patch 1/5] qemu: bios: use preprocessor for pci link routing
  2009-02-04 13:44 [Qemu-devel] [patch 0/5] BIOS changes for ACPI PCI hotplug Marcelo Tosatti
@ 2009-02-04 13:44 ` Marcelo Tosatti
  2009-02-04 13:44 ` [Qemu-devel] [patch 2/5] bios: add 26 pci slots, bringing the total to 32 Marcelo Tosatti
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Marcelo Tosatti @ 2009-02-04 13:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: Avi Kivity

[-- Attachment #1: use-preprocessor-for-pci-link-int --]
[-- Type: text/plain, Size: 2622 bytes --]

Signed-off-by: Avi Kivity <avi@qumranet.com>

Index: bochs/bios/acpi-dsdt.dsl
===================================================================
--- bochs.orig/bios/acpi-dsdt.dsl
+++ bochs/bios/acpi-dsdt.dsl
@@ -47,42 +47,22 @@ DefinitionBlock (
                    section 6.2.8.1 */
                 /* Note: we provide the same info as the PCI routing
                    table of the Bochs BIOS */
-
-                // PCI Slot 0
-                Package() {0x0000ffff, 0, LNKD, 0},
-                Package() {0x0000ffff, 1, LNKA, 0},
-                Package() {0x0000ffff, 2, LNKB, 0},
-                Package() {0x0000ffff, 3, LNKC, 0},
-
-                // PCI Slot 1
-                Package() {0x0001ffff, 0, LNKA, 0},
-                Package() {0x0001ffff, 1, LNKB, 0},
-                Package() {0x0001ffff, 2, LNKC, 0},
-                Package() {0x0001ffff, 3, LNKD, 0},
-
-                // PCI Slot 2
-                Package() {0x0002ffff, 0, LNKB, 0},
-                Package() {0x0002ffff, 1, LNKC, 0},
-                Package() {0x0002ffff, 2, LNKD, 0},
-                Package() {0x0002ffff, 3, LNKA, 0},
-
-                // PCI Slot 3
-                Package() {0x0003ffff, 0, LNKC, 0},
-                Package() {0x0003ffff, 1, LNKD, 0},
-                Package() {0x0003ffff, 2, LNKA, 0},
-                Package() {0x0003ffff, 3, LNKB, 0},
-
-                // PCI Slot 4
-                Package() {0x0004ffff, 0, LNKD, 0},
-                Package() {0x0004ffff, 1, LNKA, 0},
-                Package() {0x0004ffff, 2, LNKB, 0},
-                Package() {0x0004ffff, 3, LNKC, 0},
-
-                // PCI Slot 5
-                Package() {0x0005ffff, 0, LNKA, 0},
-                Package() {0x0005ffff, 1, LNKB, 0},
-                Package() {0x0005ffff, 2, LNKC, 0},
-                Package() {0x0005ffff, 3, LNKD, 0},
+#define prt_slot(nr, lnk0, lnk1, lnk2, lnk3) \
+       Package() { nr##ffff, 0, lnk0, 0 }, \
+       Package() { nr##ffff, 1, lnk1, 0 }, \
+       Package() { nr##ffff, 2, lnk2, 0 }, \
+       Package() { nr##ffff, 3, lnk3, 0 }
+
+#define prt_slot0(nr) prt_slot(nr, LNKD, LNKA, LNKB, LNKC)
+#define prt_slot1(nr) prt_slot(nr, LNKA, LNKB, LNKC, LNKD)
+#define prt_slot2(nr) prt_slot(nr, LNKB, LNKC, LNKD, LNKA)
+#define prt_slot3(nr) prt_slot(nr, LNKC, LNKD, LNKA, LNKB)
+               prt_slot0(0x0000),
+               prt_slot1(0x0001),
+               prt_slot2(0x0002),
+               prt_slot3(0x0003),
+               prt_slot0(0x0004),
+               prt_slot1(0x0005),
             })
 
             Name (_CRS, ResourceTemplate ()

-- 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [patch 2/5] bios: add 26 pci slots, bringing the total to 32
  2009-02-04 13:44 [Qemu-devel] [patch 0/5] BIOS changes for ACPI PCI hotplug Marcelo Tosatti
  2009-02-04 13:44 ` [Qemu-devel] [patch 1/5] qemu: bios: use preprocessor for pci link routing Marcelo Tosatti
@ 2009-02-04 13:44 ` Marcelo Tosatti
  2009-02-04 13:44 ` [Qemu-devel] [patch 3/5] qemu: bios: provide gpe _L0x methods Marcelo Tosatti
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Marcelo Tosatti @ 2009-02-04 13:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: Avi Kivity

[-- Attachment #1: 32-pci-slots --]
[-- Type: text/plain, Size: 1409 bytes --]

lack of pci slots causes Windows to complain when installing too many devices.

Signed-off-by: Avi Kivity <avi@qumranet.com>

Index: bochs/bios/acpi-dsdt.dsl
===================================================================
--- bochs.orig/bios/acpi-dsdt.dsl
+++ bochs/bios/acpi-dsdt.dsl
@@ -63,6 +63,32 @@ DefinitionBlock (
                prt_slot3(0x0003),
                prt_slot0(0x0004),
                prt_slot1(0x0005),
+               prt_slot2(0x0006),
+               prt_slot3(0x0007),
+               prt_slot0(0x0008),
+               prt_slot1(0x0009),
+               prt_slot2(0x000a),
+               prt_slot3(0x000b),
+               prt_slot0(0x000c),
+               prt_slot1(0x000d),
+               prt_slot2(0x000e),
+               prt_slot3(0x000f),
+               prt_slot0(0x0010),
+               prt_slot1(0x0011),
+               prt_slot2(0x0012),
+               prt_slot3(0x0013),
+               prt_slot0(0x0014),
+               prt_slot1(0x0015),
+               prt_slot2(0x0016),
+               prt_slot3(0x0017),
+               prt_slot0(0x0018),
+               prt_slot1(0x0019),
+               prt_slot2(0x001a),
+               prt_slot3(0x001b),
+               prt_slot0(0x001c),
+               prt_slot1(0x001d),
+               prt_slot2(0x001e),
+               prt_slot3(0x001f),
             })
 
             Name (_CRS, ResourceTemplate ()

-- 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [patch 3/5] qemu: bios: provide gpe _L0x methods
  2009-02-04 13:44 [Qemu-devel] [patch 0/5] BIOS changes for ACPI PCI hotplug Marcelo Tosatti
  2009-02-04 13:44 ` [Qemu-devel] [patch 1/5] qemu: bios: use preprocessor for pci link routing Marcelo Tosatti
  2009-02-04 13:44 ` [Qemu-devel] [patch 2/5] bios: add 26 pci slots, bringing the total to 32 Marcelo Tosatti
@ 2009-02-04 13:44 ` Marcelo Tosatti
  2009-02-04 13:44 ` [Qemu-devel] [patch 4/5] qemu: bios: pci hotplug support Marcelo Tosatti
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Marcelo Tosatti @ 2009-02-04 13:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: Avi Kivity, Glauber Costa

[-- Attachment #1: acpi-gpe --]
[-- Type: text/plain, Size: 2153 bytes --]

provide methods for gpe blk 0, even though they do nothing atm
    
Signed-off-by: Glauber Costa <gcosta@redhat.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>

Index: bochs/bios/acpi-dsdt.dsl
===================================================================
--- bochs.orig/bios/acpi-dsdt.dsl
+++ bochs/bios/acpi-dsdt.dsl
@@ -597,4 +597,59 @@ DefinitionBlock (
         Zero,  /* reserved */
         Zero   /* reserved */
     })
+
+    Scope (\_GPE)
+    {
+        Name(_HID, "ACPI0006")
+
+        Method(_L00) {
+            Return(0x01)
+        }
+        Method(_L01) {
+            Return(0x01)
+        }
+        Method(_L02) {
+            Return(0x01)
+        }
+        Method(_L03) {
+            Return(0x01)
+        }
+        Method(_L04) {
+            Return(0x01)
+        }
+        Method(_L05) {
+            Return(0x01)
+        }
+        Method(_L06) {
+            Return(0x01)
+        }
+        Method(_L07) {
+            Return(0x01)
+        }
+        Method(_L08) {
+            Return(0x01)
+        }
+        Method(_L09) {
+            Return(0x01)
+        }
+        Method(_L0A) {
+            Return(0x01)
+        }
+        Method(_L0B) {
+            Return(0x01)
+        }
+        Method(_L0C) {
+            Return(0x01)
+        }
+        Method(_L0D) {
+            Return(0x01)
+        }
+        Method(_L0E) {
+            Return(0x01)
+        }
+        Method(_L0F) {
+            Return(0x01)
+        }
+    }
+
 }
Index: bochs/bios/rombios32.c
===================================================================
--- bochs.orig/bios/rombios32.c
+++ bochs/bios/rombios32.c
@@ -1647,6 +1647,8 @@ void acpi_bios_init(void)
     fadt->pm_tmr_len = 4;
     fadt->plvl2_lat = cpu_to_le16(0xfff); // C2 state not supported
     fadt->plvl3_lat = cpu_to_le16(0xfff); // C3 state not supported
+    fadt->gpe0_blk = cpu_to_le32(0xafe0);
+    fadt->gpe0_blk_len = 4;
     /* WBINVD + PROC_C1 + PWR_BUTTON + SLP_BUTTON + FIX_RTC */
     fadt->flags = cpu_to_le32((1 << 0) | (1 << 2) | (1 << 4) | (1 << 5) | (1 << 6));
     acpi_build_table_header((struct acpi_table_header *)fadt, "FACP",

-- 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [patch 4/5] qemu: bios: pci hotplug support
  2009-02-04 13:44 [Qemu-devel] [patch 0/5] BIOS changes for ACPI PCI hotplug Marcelo Tosatti
                   ` (2 preceding siblings ...)
  2009-02-04 13:44 ` [Qemu-devel] [patch 3/5] qemu: bios: provide gpe _L0x methods Marcelo Tosatti
@ 2009-02-04 13:44 ` Marcelo Tosatti
  2009-02-04 13:44 ` [Qemu-devel] [patch 5/5] bios: mark the acpi sci interrupt as connected to irq 9 Marcelo Tosatti
  2009-02-11 15:11 ` [Qemu-devel] [patch 0/5] BIOS changes for ACPI PCI hotplug Anthony Liguori
  5 siblings, 0 replies; 7+ messages in thread
From: Marcelo Tosatti @ 2009-02-04 13:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: Marcelo Tosatti

[-- Attachment #1: pci-hotplug --]
[-- Type: text/plain, Size: 3895 bytes --]

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

Index: bochs/bios/acpi-dsdt.dsl
===================================================================
--- bochs.orig/bios/acpi-dsdt.dsl
+++ bochs/bios/acpi-dsdt.dsl
@@ -91,6 +91,61 @@ DefinitionBlock (
                prt_slot3(0x001f),
             })
 
+            OperationRegion(PCST, SystemIO, 0xae00, 0x08)
+            Field (PCST, DWordAcc, NoLock, WriteAsZeros)
+            {
+                PCIU, 32,
+                PCID, 32,
+            }
+
+            OperationRegion(SEJ, SystemIO, 0xae08, 0x04)
+            Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
+            {
+                B0EJ, 32,
+            }
+
+#define hotplug_slot(name, nr) \
+            Device (S##name) {                    \
+               Name (_ADR, nr##0000)              \
+               Method (_EJ0,1) {                  \
+                    Store(ShiftLeft(1, nr), B0EJ) \
+                    Return (0x0)                  \
+               }                                  \
+               Name (_SUN, name)                  \
+            }
+
+	    hotplug_slot(1, 0x0001)
+	    hotplug_slot(2, 0x0002)
+	    hotplug_slot(3, 0x0003)
+	    hotplug_slot(4, 0x0004)
+	    hotplug_slot(5, 0x0005)
+	    hotplug_slot(6, 0x0006)
+	    hotplug_slot(7, 0x0007)
+	    hotplug_slot(8, 0x0008)
+	    hotplug_slot(9, 0x0009)
+	    hotplug_slot(10, 0x000a)
+	    hotplug_slot(11, 0x000b)
+	    hotplug_slot(12, 0x000c)
+	    hotplug_slot(13, 0x000d)
+	    hotplug_slot(14, 0x000e)
+	    hotplug_slot(15, 0x000f)
+	    hotplug_slot(16, 0x0010)
+	    hotplug_slot(17, 0x0011)
+	    hotplug_slot(18, 0x0012)
+	    hotplug_slot(19, 0x0013)
+	    hotplug_slot(20, 0x0014)
+	    hotplug_slot(21, 0x0015)
+	    hotplug_slot(22, 0x0016)
+	    hotplug_slot(23, 0x0017)
+	    hotplug_slot(24, 0x0018)
+	    hotplug_slot(25, 0x0019)
+	    hotplug_slot(26, 0x001a)
+	    hotplug_slot(27, 0x001b)
+	    hotplug_slot(28, 0x001c)
+	    hotplug_slot(29, 0x001d)
+	    hotplug_slot(30, 0x001e)
+	    hotplug_slot(31, 0x001f)
+
             Name (_CRS, ResourceTemplate ()
             {
                 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
@@ -605,8 +660,50 @@ DefinitionBlock (
         Method(_L00) {
             Return(0x01)
         }
+
+#define gen_pci_hotplug(nr)                                       \
+            If (And(\_SB.PCI0.PCIU, ShiftLeft(1, nr))) {          \
+                Notify(\_SB.PCI0.S##nr, 1)                        \
+            }                                                     \
+            If (And(\_SB.PCI0.PCID, ShiftLeft(1, nr))) {          \
+                Notify(\_SB.PCI0.S##nr, 3)                        \
+            }
+
         Method(_L01) {
-            Return(0x01)
+            gen_pci_hotplug(1)
+            gen_pci_hotplug(2)
+            gen_pci_hotplug(3)
+            gen_pci_hotplug(4)
+            gen_pci_hotplug(5)
+            gen_pci_hotplug(6)
+            gen_pci_hotplug(7)
+            gen_pci_hotplug(8)
+            gen_pci_hotplug(9)
+            gen_pci_hotplug(10)
+            gen_pci_hotplug(11)
+            gen_pci_hotplug(12)
+            gen_pci_hotplug(13)
+            gen_pci_hotplug(14)
+            gen_pci_hotplug(15)
+            gen_pci_hotplug(16)
+            gen_pci_hotplug(17)
+            gen_pci_hotplug(18)
+            gen_pci_hotplug(19)
+            gen_pci_hotplug(20)
+            gen_pci_hotplug(21)
+            gen_pci_hotplug(22)
+            gen_pci_hotplug(23)
+            gen_pci_hotplug(24)
+            gen_pci_hotplug(25)
+            gen_pci_hotplug(26)
+            gen_pci_hotplug(27)
+            gen_pci_hotplug(28)
+            gen_pci_hotplug(29)
+            gen_pci_hotplug(30)
+            gen_pci_hotplug(31)
+
+            Return (0x01)
+
         }
         Method(_L02) {
             Return(0x01)

-- 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [patch 5/5] bios: mark the acpi sci interrupt as connected to irq 9
  2009-02-04 13:44 [Qemu-devel] [patch 0/5] BIOS changes for ACPI PCI hotplug Marcelo Tosatti
                   ` (3 preceding siblings ...)
  2009-02-04 13:44 ` [Qemu-devel] [patch 4/5] qemu: bios: pci hotplug support Marcelo Tosatti
@ 2009-02-04 13:44 ` Marcelo Tosatti
  2009-02-11 15:11 ` [Qemu-devel] [patch 0/5] BIOS changes for ACPI PCI hotplug Anthony Liguori
  5 siblings, 0 replies; 7+ messages in thread
From: Marcelo Tosatti @ 2009-02-04 13:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: Avi Kivity

[-- Attachment #1: irq --]
[-- Type: text/plain, Size: 725 bytes --]

Due to a chipset bug, the sci interrupt is hardwired to irq 9.  Set the
pci interrupt line register accordingly.
    
Signed-off-by: Avi Kivity <avi@qumranet.com>

Index: bochs/bios/rombios32.c
===================================================================
--- bochs.orig/bios/rombios32.c
+++ bochs/bios/rombios32.c
@@ -981,6 +981,8 @@ static void pci_bios_init_device(PCIDevi
         /* PIIX4 Power Management device (for ACPI) */
         pm_io_base = PM_IO_BASE;
         smb_io_base = SMB_IO_BASE;
+        // acpi sci is hardwired to 9
+        pci_config_writeb(d, PCI_INTERRUPT_LINE, 9);
         pm_sci_int = pci_config_readb(d, PCI_INTERRUPT_LINE);
         piix4_pm_enable(d);
         acpi_enabled = 1;

-- 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [patch 0/5] BIOS changes for ACPI PCI hotplug
  2009-02-04 13:44 [Qemu-devel] [patch 0/5] BIOS changes for ACPI PCI hotplug Marcelo Tosatti
                   ` (4 preceding siblings ...)
  2009-02-04 13:44 ` [Qemu-devel] [patch 5/5] bios: mark the acpi sci interrupt as connected to irq 9 Marcelo Tosatti
@ 2009-02-11 15:11 ` Anthony Liguori
  5 siblings, 0 replies; 7+ messages in thread
From: Anthony Liguori @ 2009-02-11 15:11 UTC (permalink / raw)
  To: qemu-devel

Marcelo Tosatti wrote:

Applied all.  Thanks.

Regards,

Anthony Liguori

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-02-11 15:12 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-04 13:44 [Qemu-devel] [patch 0/5] BIOS changes for ACPI PCI hotplug Marcelo Tosatti
2009-02-04 13:44 ` [Qemu-devel] [patch 1/5] qemu: bios: use preprocessor for pci link routing Marcelo Tosatti
2009-02-04 13:44 ` [Qemu-devel] [patch 2/5] bios: add 26 pci slots, bringing the total to 32 Marcelo Tosatti
2009-02-04 13:44 ` [Qemu-devel] [patch 3/5] qemu: bios: provide gpe _L0x methods Marcelo Tosatti
2009-02-04 13:44 ` [Qemu-devel] [patch 4/5] qemu: bios: pci hotplug support Marcelo Tosatti
2009-02-04 13:44 ` [Qemu-devel] [patch 5/5] bios: mark the acpi sci interrupt as connected to irq 9 Marcelo Tosatti
2009-02-11 15:11 ` [Qemu-devel] [patch 0/5] BIOS changes for ACPI PCI hotplug Anthony Liguori

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).