qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 15/21] Pci hotplug support.


From: Gleb Natapov
Subject: [Qemu-devel] [PATCH 15/21] Pci hotplug support.
Date: Thu, 8 Oct 2009 17:59:20 +0200

Qemy pcbios commit e88ec0d97b464915281d27d5714784d2215cbdef

Signed-off-by: Gleb Natapov <address@hidden>
---
 src/acpi-dsdt.dsl |   99 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 98 insertions(+), 1 deletions(-)

diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
index 0c01624..4cd6f6a 100644
--- a/src/acpi-dsdt.dsl
+++ b/src/acpi-dsdt.dsl
@@ -65,6 +65,61 @@ DefinitionBlock (
                prt_slot1(0x0005),
             })
 
+            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,
@@ -551,8 +606,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)
-- 
1.6.3.3





reply via email to

[Prev in Thread] Current Thread [Next in Thread]