|
|
1.1 ! root 1: /* ! 2: * Bochs/QEMU ACPI DSDT ASL definition ! 3: * ! 4: * Copyright (c) 2006 Fabrice Bellard ! 5: * ! 6: * This library is free software; you can redistribute it and/or ! 7: * modify it under the terms of the GNU Lesser General Public ! 8: * License version 2 as published by the Free Software Foundation. ! 9: * ! 10: * This library is distributed in the hope that it will be useful, ! 11: * but WITHOUT ANY WARRANTY; without even the implied warranty of ! 12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ! 13: * Lesser General Public License for more details. ! 14: * ! 15: * You should have received a copy of the GNU Lesser General Public ! 16: * License along with this library; if not, write to the Free Software ! 17: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ! 18: */ ! 19: DefinitionBlock ( ! 20: "acpi-dsdt.aml", // Output Filename ! 21: "DSDT", // Signature ! 22: 0x01, // DSDT Compliance Revision ! 23: "BXPC", // OEMID ! 24: "BXDSDT", // TABLE ID ! 25: 0x1 // OEM Revision ! 26: ) ! 27: { ! 28: Scope (\) ! 29: { ! 30: /* Debug Output */ ! 31: OperationRegion (DBG, SystemIO, 0xb044, 0x04) ! 32: Field (DBG, DWordAcc, NoLock, Preserve) ! 33: { ! 34: DBGL, 32, ! 35: } ! 36: } ! 37: ! 38: ! 39: /* PCI Bus definition */ ! 40: Scope(\_SB) { ! 41: Device(PCI0) { ! 42: Name (_HID, EisaId ("PNP0A03")) ! 43: Name (_ADR, 0x00) ! 44: Name (_UID, 1) ! 45: Name(_PRT, Package() { ! 46: /* PCI IRQ routing table, example from ACPI 2.0a specification, ! 47: section 6.2.8.1 */ ! 48: /* Note: we provide the same info as the PCI routing ! 49: table of the Bochs BIOS */ ! 50: #define prt_slot(nr, lnk0, lnk1, lnk2, lnk3) \ ! 51: Package() { nr##ffff, 0, lnk0, 0 }, \ ! 52: Package() { nr##ffff, 1, lnk1, 0 }, \ ! 53: Package() { nr##ffff, 2, lnk2, 0 }, \ ! 54: Package() { nr##ffff, 3, lnk3, 0 } ! 55: ! 56: #define prt_slot0(nr) prt_slot(nr, LNKD, LNKA, LNKB, LNKC) ! 57: #define prt_slot1(nr) prt_slot(nr, LNKA, LNKB, LNKC, LNKD) ! 58: #define prt_slot2(nr) prt_slot(nr, LNKB, LNKC, LNKD, LNKA) ! 59: #define prt_slot3(nr) prt_slot(nr, LNKC, LNKD, LNKA, LNKB) ! 60: prt_slot0(0x0000), ! 61: prt_slot1(0x0001), ! 62: prt_slot2(0x0002), ! 63: prt_slot3(0x0003), ! 64: prt_slot0(0x0004), ! 65: prt_slot1(0x0005), ! 66: prt_slot2(0x0006), ! 67: prt_slot3(0x0007), ! 68: prt_slot0(0x0008), ! 69: prt_slot1(0x0009), ! 70: prt_slot2(0x000a), ! 71: prt_slot3(0x000b), ! 72: prt_slot0(0x000c), ! 73: prt_slot1(0x000d), ! 74: prt_slot2(0x000e), ! 75: prt_slot3(0x000f), ! 76: prt_slot0(0x0010), ! 77: prt_slot1(0x0011), ! 78: prt_slot2(0x0012), ! 79: prt_slot3(0x0013), ! 80: prt_slot0(0x0014), ! 81: prt_slot1(0x0015), ! 82: prt_slot2(0x0016), ! 83: prt_slot3(0x0017), ! 84: prt_slot0(0x0018), ! 85: prt_slot1(0x0019), ! 86: prt_slot2(0x001a), ! 87: prt_slot3(0x001b), ! 88: prt_slot0(0x001c), ! 89: prt_slot1(0x001d), ! 90: prt_slot2(0x001e), ! 91: prt_slot3(0x001f), ! 92: }) ! 93: ! 94: OperationRegion(PCST, SystemIO, 0xae00, 0x08) ! 95: Field (PCST, DWordAcc, NoLock, WriteAsZeros) ! 96: { ! 97: PCIU, 32, ! 98: PCID, 32, ! 99: } ! 100: ! 101: OperationRegion(SEJ, SystemIO, 0xae08, 0x04) ! 102: Field (SEJ, DWordAcc, NoLock, WriteAsZeros) ! 103: { ! 104: B0EJ, 32, ! 105: } ! 106: ! 107: #define hotplug_slot(name, nr) \ ! 108: Device (S##name) { \ ! 109: Name (_ADR, nr##0000) \ ! 110: Method (_EJ0,1) { \ ! 111: Store(ShiftLeft(1, nr), B0EJ) \ ! 112: Return (0x0) \ ! 113: } \ ! 114: Name (_SUN, name) \ ! 115: } ! 116: ! 117: hotplug_slot(1, 0x0001) ! 118: hotplug_slot(2, 0x0002) ! 119: hotplug_slot(3, 0x0003) ! 120: hotplug_slot(4, 0x0004) ! 121: hotplug_slot(5, 0x0005) ! 122: hotplug_slot(6, 0x0006) ! 123: hotplug_slot(7, 0x0007) ! 124: hotplug_slot(8, 0x0008) ! 125: hotplug_slot(9, 0x0009) ! 126: hotplug_slot(10, 0x000a) ! 127: hotplug_slot(11, 0x000b) ! 128: hotplug_slot(12, 0x000c) ! 129: hotplug_slot(13, 0x000d) ! 130: hotplug_slot(14, 0x000e) ! 131: hotplug_slot(15, 0x000f) ! 132: hotplug_slot(16, 0x0010) ! 133: hotplug_slot(17, 0x0011) ! 134: hotplug_slot(18, 0x0012) ! 135: hotplug_slot(19, 0x0013) ! 136: hotplug_slot(20, 0x0014) ! 137: hotplug_slot(21, 0x0015) ! 138: hotplug_slot(22, 0x0016) ! 139: hotplug_slot(23, 0x0017) ! 140: hotplug_slot(24, 0x0018) ! 141: hotplug_slot(25, 0x0019) ! 142: hotplug_slot(26, 0x001a) ! 143: hotplug_slot(27, 0x001b) ! 144: hotplug_slot(28, 0x001c) ! 145: hotplug_slot(29, 0x001d) ! 146: hotplug_slot(30, 0x001e) ! 147: hotplug_slot(31, 0x001f) ! 148: ! 149: Name (_CRS, ResourceTemplate () ! 150: { ! 151: WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, ! 152: 0x0000, // Address Space Granularity ! 153: 0x0000, // Address Range Minimum ! 154: 0x00FF, // Address Range Maximum ! 155: 0x0000, // Address Translation Offset ! 156: 0x0100, // Address Length ! 157: ,, ) ! 158: IO (Decode16, ! 159: 0x0CF8, // Address Range Minimum ! 160: 0x0CF8, // Address Range Maximum ! 161: 0x01, // Address Alignment ! 162: 0x08, // Address Length ! 163: ) ! 164: WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, ! 165: 0x0000, // Address Space Granularity ! 166: 0x0000, // Address Range Minimum ! 167: 0x0CF7, // Address Range Maximum ! 168: 0x0000, // Address Translation Offset ! 169: 0x0CF8, // Address Length ! 170: ,, , TypeStatic) ! 171: WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, ! 172: 0x0000, // Address Space Granularity ! 173: 0x0D00, // Address Range Minimum ! 174: 0xFFFF, // Address Range Maximum ! 175: 0x0000, // Address Translation Offset ! 176: 0xF300, // Address Length ! 177: ,, , TypeStatic) ! 178: DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, ! 179: 0x00000000, // Address Space Granularity ! 180: 0x000A0000, // Address Range Minimum ! 181: 0x000BFFFF, // Address Range Maximum ! 182: 0x00000000, // Address Translation Offset ! 183: 0x00020000, // Address Length ! 184: ,, , AddressRangeMemory, TypeStatic) ! 185: DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, ! 186: 0x00000000, // Address Space Granularity ! 187: 0xE0000000, // Address Range Minimum ! 188: 0xFEBFFFFF, // Address Range Maximum ! 189: 0x00000000, // Address Translation Offset ! 190: 0x1EC00000, // Address Length ! 191: ,, , AddressRangeMemory, TypeStatic) ! 192: }) ! 193: } ! 194: ! 195: Device(HPET) { ! 196: Name(_HID, EISAID("PNP0103")) ! 197: Name(_UID, 0) ! 198: Method (_STA, 0, NotSerialized) { ! 199: Return(0x0F) ! 200: } ! 201: Name(_CRS, ResourceTemplate() { ! 202: DWordMemory( ! 203: ResourceConsumer, PosDecode, MinFixed, MaxFixed, ! 204: NonCacheable, ReadWrite, ! 205: 0x00000000, ! 206: 0xFED00000, ! 207: 0xFED003FF, ! 208: 0x00000000, ! 209: 0x00000400 /* 1K memory: FED00000 - FED003FF */ ! 210: ) ! 211: }) ! 212: } ! 213: } ! 214: ! 215: Scope(\_SB.PCI0) { ! 216: Device (VGA) { ! 217: Name (_ADR, 0x00020000) ! 218: Method (_S1D, 0, NotSerialized) ! 219: { ! 220: Return (0x00) ! 221: } ! 222: Method (_S2D, 0, NotSerialized) ! 223: { ! 224: Return (0x00) ! 225: } ! 226: Method (_S3D, 0, NotSerialized) ! 227: { ! 228: Return (0x00) ! 229: } ! 230: } ! 231: ! 232: /* PIIX3 ISA bridge */ ! 233: Device (ISA) { ! 234: Name (_ADR, 0x00010000) ! 235: ! 236: /* PIIX PCI to ISA irq remapping */ ! 237: OperationRegion (P40C, PCI_Config, 0x60, 0x04) ! 238: ! 239: /* Real-time clock */ ! 240: Device (RTC) ! 241: { ! 242: Name (_HID, EisaId ("PNP0B00")) ! 243: Name (_CRS, ResourceTemplate () ! 244: { ! 245: IO (Decode16, 0x0070, 0x0070, 0x10, 0x02) ! 246: IRQNoFlags () {8} ! 247: IO (Decode16, 0x0072, 0x0072, 0x02, 0x06) ! 248: }) ! 249: } ! 250: ! 251: /* Keyboard seems to be important for WinXP install */ ! 252: Device (KBD) ! 253: { ! 254: Name (_HID, EisaId ("PNP0303")) ! 255: Method (_STA, 0, NotSerialized) ! 256: { ! 257: Return (0x0f) ! 258: } ! 259: ! 260: Method (_CRS, 0, NotSerialized) ! 261: { ! 262: Name (TMP, ResourceTemplate () ! 263: { ! 264: IO (Decode16, ! 265: 0x0060, // Address Range Minimum ! 266: 0x0060, // Address Range Maximum ! 267: 0x01, // Address Alignment ! 268: 0x01, // Address Length ! 269: ) ! 270: IO (Decode16, ! 271: 0x0064, // Address Range Minimum ! 272: 0x0064, // Address Range Maximum ! 273: 0x01, // Address Alignment ! 274: 0x01, // Address Length ! 275: ) ! 276: IRQNoFlags () ! 277: {1} ! 278: }) ! 279: Return (TMP) ! 280: } ! 281: } ! 282: ! 283: /* PS/2 mouse */ ! 284: Device (MOU) ! 285: { ! 286: Name (_HID, EisaId ("PNP0F13")) ! 287: Method (_STA, 0, NotSerialized) ! 288: { ! 289: Return (0x0f) ! 290: } ! 291: ! 292: Method (_CRS, 0, NotSerialized) ! 293: { ! 294: Name (TMP, ResourceTemplate () ! 295: { ! 296: IRQNoFlags () {12} ! 297: }) ! 298: Return (TMP) ! 299: } ! 300: } ! 301: ! 302: /* PS/2 floppy controller */ ! 303: Device (FDC0) ! 304: { ! 305: Name (_HID, EisaId ("PNP0700")) ! 306: Method (_STA, 0, NotSerialized) ! 307: { ! 308: Return (0x0F) ! 309: } ! 310: Method (_CRS, 0, NotSerialized) ! 311: { ! 312: Name (BUF0, ResourceTemplate () ! 313: { ! 314: IO (Decode16, 0x03F2, 0x03F2, 0x00, 0x04) ! 315: IO (Decode16, 0x03F7, 0x03F7, 0x00, 0x01) ! 316: IRQNoFlags () {6} ! 317: DMA (Compatibility, NotBusMaster, Transfer8) {2} ! 318: }) ! 319: Return (BUF0) ! 320: } ! 321: } ! 322: ! 323: /* Parallel port */ ! 324: Device (LPT) ! 325: { ! 326: Name (_HID, EisaId ("PNP0400")) ! 327: Method (_STA, 0, NotSerialized) ! 328: { ! 329: Store (\_SB.PCI0.PX13.DRSA, Local0) ! 330: And (Local0, 0x80000000, Local0) ! 331: If (LEqual (Local0, 0)) ! 332: { ! 333: Return (0x00) ! 334: } ! 335: Else ! 336: { ! 337: Return (0x0F) ! 338: } ! 339: } ! 340: Method (_CRS, 0, NotSerialized) ! 341: { ! 342: Name (BUF0, ResourceTemplate () ! 343: { ! 344: IO (Decode16, 0x0378, 0x0378, 0x08, 0x08) ! 345: IRQNoFlags () {7} ! 346: }) ! 347: Return (BUF0) ! 348: } ! 349: } ! 350: ! 351: /* Serial Ports */ ! 352: Device (COM1) ! 353: { ! 354: Name (_HID, EisaId ("PNP0501")) ! 355: Name (_UID, 0x01) ! 356: Method (_STA, 0, NotSerialized) ! 357: { ! 358: Store (\_SB.PCI0.PX13.DRSC, Local0) ! 359: And (Local0, 0x08000000, Local0) ! 360: If (LEqual (Local0, 0)) ! 361: { ! 362: Return (0x00) ! 363: } ! 364: Else ! 365: { ! 366: Return (0x0F) ! 367: } ! 368: } ! 369: Method (_CRS, 0, NotSerialized) ! 370: { ! 371: Name (BUF0, ResourceTemplate () ! 372: { ! 373: IO (Decode16, 0x03F8, 0x03F8, 0x00, 0x08) ! 374: IRQNoFlags () {4} ! 375: }) ! 376: Return (BUF0) ! 377: } ! 378: } ! 379: ! 380: Device (COM2) ! 381: { ! 382: Name (_HID, EisaId ("PNP0501")) ! 383: Name (_UID, 0x02) ! 384: Method (_STA, 0, NotSerialized) ! 385: { ! 386: Store (\_SB.PCI0.PX13.DRSC, Local0) ! 387: And (Local0, 0x80000000, Local0) ! 388: If (LEqual (Local0, 0)) ! 389: { ! 390: Return (0x00) ! 391: } ! 392: Else ! 393: { ! 394: Return (0x0F) ! 395: } ! 396: } ! 397: Method (_CRS, 0, NotSerialized) ! 398: { ! 399: Name (BUF0, ResourceTemplate () ! 400: { ! 401: IO (Decode16, 0x02F8, 0x02F8, 0x00, 0x08) ! 402: IRQNoFlags () {3} ! 403: }) ! 404: Return (BUF0) ! 405: } ! 406: } ! 407: } ! 408: ! 409: /* PIIX4 PM */ ! 410: Device (PX13) { ! 411: Name (_ADR, 0x00010003) ! 412: ! 413: OperationRegion (P13C, PCI_Config, 0x5c, 0x24) ! 414: Field (P13C, DWordAcc, NoLock, Preserve) ! 415: { ! 416: DRSA, 32, ! 417: DRSB, 32, ! 418: DRSC, 32, ! 419: DRSE, 32, ! 420: DRSF, 32, ! 421: DRSG, 32, ! 422: DRSH, 32, ! 423: DRSI, 32, ! 424: DRSJ, 32 ! 425: } ! 426: } ! 427: } ! 428: ! 429: /* PCI IRQs */ ! 430: Scope(\_SB) { ! 431: Field (\_SB.PCI0.ISA.P40C, ByteAcc, NoLock, Preserve) ! 432: { ! 433: PRQ0, 8, ! 434: PRQ1, 8, ! 435: PRQ2, 8, ! 436: PRQ3, 8 ! 437: } ! 438: ! 439: Device(LNKA){ ! 440: Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link ! 441: Name(_UID, 1) ! 442: Name(_PRS, ResourceTemplate(){ ! 443: Interrupt (, Level, ActiveHigh, Shared) ! 444: { 5, 10, 11 } ! 445: }) ! 446: Method (_STA, 0, NotSerialized) ! 447: { ! 448: Store (0x0B, Local0) ! 449: If (And (0x80, PRQ0, Local1)) ! 450: { ! 451: Store (0x09, Local0) ! 452: } ! 453: Return (Local0) ! 454: } ! 455: Method (_DIS, 0, NotSerialized) ! 456: { ! 457: Or (PRQ0, 0x80, PRQ0) ! 458: } ! 459: Method (_CRS, 0, NotSerialized) ! 460: { ! 461: Name (PRR0, ResourceTemplate () ! 462: { ! 463: Interrupt (, Level, ActiveHigh, Shared) ! 464: {1} ! 465: }) ! 466: CreateDWordField (PRR0, 0x05, TMP) ! 467: Store (PRQ0, Local0) ! 468: If (LLess (Local0, 0x80)) ! 469: { ! 470: Store (Local0, TMP) ! 471: } ! 472: Else ! 473: { ! 474: Store (Zero, TMP) ! 475: } ! 476: Return (PRR0) ! 477: } ! 478: Method (_SRS, 1, NotSerialized) ! 479: { ! 480: CreateDWordField (Arg0, 0x05, TMP) ! 481: Store (TMP, PRQ0) ! 482: } ! 483: } ! 484: Device(LNKB){ ! 485: Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link ! 486: Name(_UID, 2) ! 487: Name(_PRS, ResourceTemplate(){ ! 488: Interrupt (, Level, ActiveHigh, Shared) ! 489: { 5, 10, 11 } ! 490: }) ! 491: Method (_STA, 0, NotSerialized) ! 492: { ! 493: Store (0x0B, Local0) ! 494: If (And (0x80, PRQ1, Local1)) ! 495: { ! 496: Store (0x09, Local0) ! 497: } ! 498: Return (Local0) ! 499: } ! 500: Method (_DIS, 0, NotSerialized) ! 501: { ! 502: Or (PRQ1, 0x80, PRQ1) ! 503: } ! 504: Method (_CRS, 0, NotSerialized) ! 505: { ! 506: Name (PRR0, ResourceTemplate () ! 507: { ! 508: Interrupt (, Level, ActiveHigh, Shared) ! 509: {1} ! 510: }) ! 511: CreateDWordField (PRR0, 0x05, TMP) ! 512: Store (PRQ1, Local0) ! 513: If (LLess (Local0, 0x80)) ! 514: { ! 515: Store (Local0, TMP) ! 516: } ! 517: Else ! 518: { ! 519: Store (Zero, TMP) ! 520: } ! 521: Return (PRR0) ! 522: } ! 523: Method (_SRS, 1, NotSerialized) ! 524: { ! 525: CreateDWordField (Arg0, 0x05, TMP) ! 526: Store (TMP, PRQ1) ! 527: } ! 528: } ! 529: Device(LNKC){ ! 530: Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link ! 531: Name(_UID, 3) ! 532: Name(_PRS, ResourceTemplate(){ ! 533: Interrupt (, Level, ActiveHigh, Shared) ! 534: { 5, 10, 11 } ! 535: }) ! 536: Method (_STA, 0, NotSerialized) ! 537: { ! 538: Store (0x0B, Local0) ! 539: If (And (0x80, PRQ2, Local1)) ! 540: { ! 541: Store (0x09, Local0) ! 542: } ! 543: Return (Local0) ! 544: } ! 545: Method (_DIS, 0, NotSerialized) ! 546: { ! 547: Or (PRQ2, 0x80, PRQ2) ! 548: } ! 549: Method (_CRS, 0, NotSerialized) ! 550: { ! 551: Name (PRR0, ResourceTemplate () ! 552: { ! 553: Interrupt (, Level, ActiveHigh, Shared) ! 554: {1} ! 555: }) ! 556: CreateDWordField (PRR0, 0x05, TMP) ! 557: Store (PRQ2, Local0) ! 558: If (LLess (Local0, 0x80)) ! 559: { ! 560: Store (Local0, TMP) ! 561: } ! 562: Else ! 563: { ! 564: Store (Zero, TMP) ! 565: } ! 566: Return (PRR0) ! 567: } ! 568: Method (_SRS, 1, NotSerialized) ! 569: { ! 570: CreateDWordField (Arg0, 0x05, TMP) ! 571: Store (TMP, PRQ2) ! 572: } ! 573: } ! 574: Device(LNKD){ ! 575: Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link ! 576: Name(_UID, 4) ! 577: Name(_PRS, ResourceTemplate(){ ! 578: Interrupt (, Level, ActiveHigh, Shared) ! 579: { 5, 10, 11 } ! 580: }) ! 581: Method (_STA, 0, NotSerialized) ! 582: { ! 583: Store (0x0B, Local0) ! 584: If (And (0x80, PRQ3, Local1)) ! 585: { ! 586: Store (0x09, Local0) ! 587: } ! 588: Return (Local0) ! 589: } ! 590: Method (_DIS, 0, NotSerialized) ! 591: { ! 592: Or (PRQ3, 0x80, PRQ3) ! 593: } ! 594: Method (_CRS, 0, NotSerialized) ! 595: { ! 596: Name (PRR0, ResourceTemplate () ! 597: { ! 598: Interrupt (, Level, ActiveHigh, Shared) ! 599: {1} ! 600: }) ! 601: CreateDWordField (PRR0, 0x05, TMP) ! 602: Store (PRQ3, Local0) ! 603: If (LLess (Local0, 0x80)) ! 604: { ! 605: Store (Local0, TMP) ! 606: } ! 607: Else ! 608: { ! 609: Store (Zero, TMP) ! 610: } ! 611: Return (PRR0) ! 612: } ! 613: Method (_SRS, 1, NotSerialized) ! 614: { ! 615: CreateDWordField (Arg0, 0x05, TMP) ! 616: Store (TMP, PRQ3) ! 617: } ! 618: } ! 619: } ! 620: ! 621: /* ! 622: * S3 (suspend-to-ram), S4 (suspend-to-disk) and S5 (power-off) type codes: ! 623: * must match piix4 emulation. ! 624: */ ! 625: Name (\_S3, Package (0x04) ! 626: { ! 627: 0x01, /* PM1a_CNT.SLP_TYP */ ! 628: 0x01, /* PM1b_CNT.SLP_TYP */ ! 629: Zero, /* reserved */ ! 630: Zero /* reserved */ ! 631: }) ! 632: Name (\_S4, Package (0x04) ! 633: { ! 634: Zero, /* PM1a_CNT.SLP_TYP */ ! 635: Zero, /* PM1b_CNT.SLP_TYP */ ! 636: Zero, /* reserved */ ! 637: Zero /* reserved */ ! 638: }) ! 639: Name (\_S5, Package (0x04) ! 640: { ! 641: Zero, /* PM1a_CNT.SLP_TYP */ ! 642: Zero, /* PM1b_CNT.SLP_TYP */ ! 643: Zero, /* reserved */ ! 644: Zero /* reserved */ ! 645: }) ! 646: ! 647: Scope (\_GPE) ! 648: { ! 649: Name(_HID, "ACPI0006") ! 650: ! 651: Method(_L00) { ! 652: Return(0x01) ! 653: } ! 654: ! 655: #define gen_pci_hotplug(nr) \ ! 656: If (And(\_SB.PCI0.PCIU, ShiftLeft(1, nr))) { \ ! 657: Notify(\_SB.PCI0.S##nr, 1) \ ! 658: } \ ! 659: If (And(\_SB.PCI0.PCID, ShiftLeft(1, nr))) { \ ! 660: Notify(\_SB.PCI0.S##nr, 3) \ ! 661: } ! 662: ! 663: Method(_L01) { ! 664: gen_pci_hotplug(1) ! 665: gen_pci_hotplug(2) ! 666: gen_pci_hotplug(3) ! 667: gen_pci_hotplug(4) ! 668: gen_pci_hotplug(5) ! 669: gen_pci_hotplug(6) ! 670: gen_pci_hotplug(7) ! 671: gen_pci_hotplug(8) ! 672: gen_pci_hotplug(9) ! 673: gen_pci_hotplug(10) ! 674: gen_pci_hotplug(11) ! 675: gen_pci_hotplug(12) ! 676: gen_pci_hotplug(13) ! 677: gen_pci_hotplug(14) ! 678: gen_pci_hotplug(15) ! 679: gen_pci_hotplug(16) ! 680: gen_pci_hotplug(17) ! 681: gen_pci_hotplug(18) ! 682: gen_pci_hotplug(19) ! 683: gen_pci_hotplug(20) ! 684: gen_pci_hotplug(21) ! 685: gen_pci_hotplug(22) ! 686: gen_pci_hotplug(23) ! 687: gen_pci_hotplug(24) ! 688: gen_pci_hotplug(25) ! 689: gen_pci_hotplug(26) ! 690: gen_pci_hotplug(27) ! 691: gen_pci_hotplug(28) ! 692: gen_pci_hotplug(29) ! 693: gen_pci_hotplug(30) ! 694: gen_pci_hotplug(31) ! 695: ! 696: Return (0x01) ! 697: ! 698: } ! 699: Method(_L02) { ! 700: Return(0x01) ! 701: } ! 702: Method(_L03) { ! 703: Return(0x01) ! 704: } ! 705: Method(_L04) { ! 706: Return(0x01) ! 707: } ! 708: Method(_L05) { ! 709: Return(0x01) ! 710: } ! 711: Method(_L06) { ! 712: Return(0x01) ! 713: } ! 714: Method(_L07) { ! 715: Return(0x01) ! 716: } ! 717: Method(_L08) { ! 718: Return(0x01) ! 719: } ! 720: Method(_L09) { ! 721: Return(0x01) ! 722: } ! 723: Method(_L0A) { ! 724: Return(0x01) ! 725: } ! 726: Method(_L0B) { ! 727: Return(0x01) ! 728: } ! 729: Method(_L0C) { ! 730: Return(0x01) ! 731: } ! 732: Method(_L0D) { ! 733: Return(0x01) ! 734: } ! 735: Method(_L0E) { ! 736: Return(0x01) ! 737: } ! 738: Method(_L0F) { ! 739: Return(0x01) ! 740: } ! 741: } ! 742: ! 743: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.