Attachment 'acer-aspireone-zg5-acpidump.txt'

Download

   1 /*
   2   RSD PTR: OEM=INTEL, ACPI_Rev=2.0x (2)
   3 	XSDT=0x000000005f4fe120, length=36, cksum=45
   4  */
   5 /*
   6   XSDT: Length=100, Revision=1, Checksum=183,
   7 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
   8 	Creator ID=, Creator Revision=0x1000013
   9 	Entries={ 0x000000005f4fc000, 0x000000005f4fd000, 0x000000005f4fb000, 0x000000005f4fa000, 0x000000005f4f9000, 0x000000005f4f8000, 0x000000005f4f1000, 0x000000005f4f0000 }
  10  */
  11 /*
  12   FACP: Length=244, Revision=4, Checksum=255,
  13 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
  14 	Creator ID=MSFT, Creator Revision=0x1000013
  15  	FACS=0x5f488000, DSDT=0x5f4f2000
  16 	INT_MODEL=PIC
  17 	Preferred_PM_Profile=Unspecified (0)
  18 	SCI_INT=9
  19 	SMI_CMD=0xb2, ACPI_ENABLE=0xa0, ACPI_DISABLE=0xa1, S4BIOS_REQ=0x0
  20 	PSTATE_CNT=0x0
  21 	PM1a_EVT_BLK=0x400-0x403
  22 	PM1a_CNT_BLK=0x404-0x405
  23 	PM2_CNT_BLK=0x420-0x420
  24 	PM_TMR_BLK=0x408-0x40b
  25 	GPE0_BLK=0x428-0x42f
  26 	P_LVL2_LAT=101 us, P_LVL3_LAT=1001 us
  27 	FLUSH_SIZE=0, FLUSH_STRIDE=0
  28 	DUTY_OFFSET=1, DUTY_WIDTH=3
  29 	DAY_ALRM=13, MON_ALRM=0, CENTURY=0
  30 	IAPC_BOOT_ARCH={LEGACY_DEVICES,8042}
  31 	Flags={WBINVD,C1_SUPPORTED,SLEEP_BUTTON,S4_RTC_WAKE,RESET_REGISTER,PLATFORM_CLOCK}
  32 	RESET_REG=0xcf9:0[8] (IO), RESET_VALUE=0x6
  33 	X_FACS=0x000000005f488000, X_DSDT=0x000000005f4f2000
  34 	X_PM1a_EVT_BLK=0x00000000:0[0] (Memory)
  35 	X_PM1a_CNT_BLK=0x00000000:0[0] (Memory)
  36 	X_PM_TMR_BLK=0x00000000:0[0] (Memory)
  37  */
  38 /*
  39   FACS:	Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
  40 	Global_Lock=
  41 	Flags=
  42 	Version=1
  43  */
  44 /*
  45   DSDT: Length=23813, Revision=1, Checksum=18,
  46 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
  47 	Creator ID=MSFT, Creator Revision=0x1000013
  48  */
  49 /*
  50   SSDT: Length=1220, Revision=2, Checksum=203,
  51 	OEMID=PmRef, OEM Table ID=CpuPm, OEM Revision=0x3000,
  52 	Creator ID=INTL, Creator Revision=0x20051117
  53  */
  54 /*
  55   HPET: Length=56, Revision=1, Checksum=180,
  56 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
  57 	Creator ID=MSFT, Creator Revision=0x1000013
  58 	HPET Number=0
  59 	ADDR=0xfed00000:0[0] (Memory)	HW Rev=0x1
  60 	Comparators=2
  61 	Counter Size=1
  62 	Legacy IRQ routing capable={TRUE}
  63 	PCI Vendor ID=0x8086
  64 	Minimal Tick=128
  65 	Flags=0x00
  66  */
  67 /*
  68   APIC: Length=104, Revision=2, Checksum=110,
  69 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
  70 	Creator ID=MSFT, Creator Revision=0x1000013
  71 	Local APIC ADDR=0xfee00000
  72 	Flags={PC-AT}
  73 
  74 	Type=Local APIC
  75 	ACPI CPU=1
  76 	Flags={ENABLED}
  77 	APIC ID=0
  78 
  79 	Type=Local APIC
  80 	ACPI CPU=2
  81 	Flags={ENABLED}
  82 	APIC ID=1
  83 
  84 	Type=IO APIC
  85 	APIC ID=4
  86 	INT BASE=0
  87 	ADDR=0x00000000fec00000
  88 
  89 	Type=INT Override
  90 	BUS=0
  91 	IRQ=0
  92 	INTR=2
  93 	Flags={Polarity=conforming, Trigger=conforming}
  94 
  95 	Type=INT Override
  96 	BUS=0
  97 	IRQ=9
  98 	INTR=9
  99 	Flags={Polarity=active-hi, Trigger=level}
 100 
 101 	Type=Local APIC NMI
 102 	ACPI CPU=1
 103 	LINT Pin=1
 104 	Flags={Polarity=active-hi, Trigger=edge}
 105 
 106 	Type=Local APIC NMI
 107 	ACPI CPU=2
 108 	LINT Pin=1
 109 	Flags={Polarity=active-hi, Trigger=edge}
 110  */
 111 /*
 112   MCFG: Length=60, Revision=1, Checksum=220,
 113 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
 114 	Creator ID=MSFT, Creator Revision=0x1000013
 115 
 116 	Base Address=0x00000000e0000000
 117 	Segment Group=0x0000
 118 	Start Bus=0
 119 	End Bus=255
 120  */
 121 /*
 122   ASF!: Length=165, Revision=32, Checksum=92,
 123 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
 124 	Creator ID=MSFT, Creator Revision=0x1000013
 125  */
 126 /*
 127   SLIC: Length=384, Revision=1, Checksum=232,
 128 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
 129 	Creator ID=MSFT, Creator Revision=0x1000013
 130  */
 131 /*
 132   BOOT: Length=40, Revision=1, Checksum=116,
 133 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
 134 	Creator ID=MSFT, Creator Revision=0x1000013
 135  */
 136 /*
 137  * Intel ACPI Component Architecture
 138  * AML/ASL+ Disassembler version 20160527-32
 139  * Copyright (c) 2000 - 2016 Intel Corporation
 140  * 
 141  * Disassembling to symbolic ASL+ operators
 142  *
 143  * Disassembly of /tmp/acpidump.6zPKsS/acpdump.din, Wed Dec 14 20:29:54 2016
 144  *
 145  * Original Table Header:
 146  *     Signature        "DSDT"
 147  *     Length           0x000061A5 (24997)
 148  *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
 149  *     Checksum         0xB4
 150  *     OEM ID           "INTEL "
 151  *     OEM Table ID     "Napa    "
 152  *     OEM Revision     0x00000001 (1)
 153  *     Compiler ID      "MSFT"
 154  *     Compiler Version 0x01000013 (16777235)
 155  */
 156 DefinitionBlock ("", "DSDT", 1, "INTEL ", "Napa    ", 0x00000001)
 157 {
 158     OperationRegion (PORT, SystemIO, 0x80, One)
 159     Field (PORT, ByteAcc, NoLock, Preserve)
 160     {
 161         P80H,   8
 162     }
 163 
 164     OperationRegion (GPIO, SystemIO, 0x0500, 0x39)
 165     Field (GPIO, ByteAcc, NoLock, Preserve)
 166     {
 167         Offset (0x2C), 
 168         Offset (0x2D), 
 169             ,   1, 
 170         INV9,   1, 
 171         INVA,   1, 
 172         Offset (0x38), 
 173             ,   1, 
 174             ,   1, 
 175         CPEN,   1
 176     }
 177 
 178     OperationRegion (PMBA, SystemIO, 0x0400, 0x80)
 179     Field (PMBA, ByteAcc, NoLock, Preserve)
 180     {
 181         Offset (0x28), 
 182             ,   2, 
 183         SPST,   1, 
 184         Offset (0x29), 
 185         Offset (0x2A), 
 186         Offset (0x2B), 
 187         GP2B,   8, 
 188         Offset (0x42), 
 189             ,   1, 
 190         GPEC,   1
 191     }
 192 
 193     OperationRegion (RCRB, SystemMemory, 0xFED1C000, 0x4000)
 194     Field (RCRB, DWordAcc, Lock, Preserve)
 195     {
 196         Offset (0x1000), 
 197         Offset (0x3000), 
 198         Offset (0x3404), 
 199         HPAS,   2, 
 200             ,   5, 
 201         HPAE,   1, 
 202         Offset (0x3418), 
 203             ,   1, 
 204         PATD,   1, 
 205         SATD,   1, 
 206         SMBD,   1, 
 207         AZAD,   1, 
 208         A97D,   1, 
 209         Offset (0x341A), 
 210         RP1D,   1, 
 211         RP2D,   1, 
 212         RP3D,   1, 
 213         RP4D,   1
 214     }
 215 
 216     OperationRegion (MBOX, SystemMemory, 0x5F4BED90, 0x000000E8)
 217     Field (MBOX, AnyAcc, NoLock, Preserve)
 218     {
 219         PCI1,   8, 
 220         PCI2,   8, 
 221         PCI3,   8, 
 222         PCI4,   8, 
 223         PCI5,   8, 
 224         PCI6,   8, 
 225         PCI7,   8, 
 226         PCI8,   8, 
 227         NLCK,   8, 
 228         ZIPE,   8, 
 229         COMA,   8, 
 230         CAIO,   8, 
 231         CAIP,   8, 
 232         CAMD,   8, 
 233         CADA,   8, 
 234         COMB,   8, 
 235         CBIO,   8, 
 236         CBIP,   8, 
 237         CBMD,   8, 
 238         CBDA,   8, 
 239         COMC,   8, 
 240         CCIO,   8, 
 241         CCIP,   8, 
 242         CCMD,   8, 
 243         CCDA,   8, 
 244         COMD,   8, 
 245         CDIO,   8, 
 246         CDIP,   8, 
 247         CDMD,   8, 
 248         CDDA,   8, 
 249         LPT1,   8, 
 250         L1IO,   8, 
 251         L1IP,   8, 
 252         L1MD,   8, 
 253         L1DA,   8, 
 254         LPT2,   8, 
 255         L2IO,   8, 
 256         L2IP,   8, 
 257         L2MD,   8, 
 258         L2DA,   8, 
 259         LPT3,   8, 
 260         L3IO,   8, 
 261         L3IP,   8, 
 262         L3MD,   8, 
 263         L3DA,   8, 
 264         FDDC,   8, 
 265         FDWP,   8, 
 266         HGMP,   8, 
 267         LGMP,   8, 
 268         MIDI,   8, 
 269         AZLA,   8, 
 270         AUDO,   8, 
 271         MODM,   8, 
 272         IDEC,   8, 
 273         PACT,   8, 
 274         SCFG,   8, 
 275         AIBT,   8, 
 276         AMOD,   8, 
 277         P0HP,   8, 
 278         P2HP,   8, 
 279         P0IL,   8, 
 280         P2IL,   8, 
 281         IDLY,   8, 
 282         PMTP,   8, 
 283         PMIO,   8, 
 284         PMBM,   8, 
 285         PMTM,   8, 
 286         PSTP,   8, 
 287         PSIO,   8, 
 288         PSBM,   8, 
 289         PSTM,   8, 
 290         SMTP,   8, 
 291         SMIO,   8, 
 292         SMBM,   8, 
 293         SMTM,   8, 
 294         SSTP,   8, 
 295         SSIO,   8, 
 296         SSBM,   8, 
 297         SSTM,   8, 
 298         IDE0,   8, 
 299         IDE1,   8, 
 300         IDE2,   8, 
 301         IDE3,   8, 
 302         IDE4,   8, 
 303         IDE5,   8, 
 304         IDE6,   8, 
 305         IDE7,   8, 
 306         PEGS,   8, 
 307         D2F1,   8, 
 308         IGMT,   8, 
 309         DTSZ,   8, 
 310         HIUB,   8, 
 311         LUBS,   8, 
 312         EDCG,   8, 
 313         SDFY,   8, 
 314         SDTC,   8, 
 315         SDRP,   8, 
 316         SDCL,   8, 
 317         SDRC,   8, 
 318         SDRE,   8, 
 319         FC2L,   8, 
 320         FC3L,   8, 
 321         FCS4,   8, 
 322         APIM,   8, 
 323         HPTS,   8, 
 324         HPTA,   8, 
 325         EMAS,   8, 
 326         MASF,   8, 
 327         ASFB,   8, 
 328         MBTX,   8, 
 329         XPRO,   8, 
 330         IDER,   8, 
 331         SOLE,   8, 
 332         EYLS,   8, 
 333         EYLH,   8, 
 334         TPMD,   8, 
 335         TPMO,   8, 
 336         TPMC,   8, 
 337         TPMM,   8, 
 338         TPCC,   8, 
 339         TPLC,   8, 
 340         TPLR,   32, 
 341         ISTC,   8, 
 342         TRML,   8, 
 343         TRON,   8, 
 344         NXMD,   8, 
 345         PCRR,   8, 
 346         C4EN,   8, 
 347         C43D,   8, 
 348         EMTT,   8, 
 349         PROH,   8, 
 350         DFSB,   8, 
 351         TUBM,   8, 
 352         TSTE,   8, 
 353         DAS3,   8, 
 354         WKPM,   8, 
 355         WKMD,   8, 
 356         WKS5,   8, 
 357         HOUR,   8, 
 358         MINS,   8, 
 359         SECS,   8, 
 360         DOFM,   8, 
 361         QKS4,   8, 
 362         POPU,   8, 
 363         POPD,   8, 
 364         NXFE,   8, 
 365         VTST,   8, 
 366         VTFE,   8, 
 367         S5FG,   8, 
 368         CSTS,   8, 
 369         ENCS,   8, 
 370         DEC4,   8, 
 371         HC4E,   8, 
 372         ENC6,   8, 
 373         CSTR,   8, 
 374         CMPE,   8, 
 375         DTSE,   8, 
 376         DTSC,   8, 
 377         QBOT,   8, 
 378         QEBT,   8, 
 379         PBOT,   8, 
 380         OSYS,   16, 
 381         PSW0,   8, 
 382         PSW1,   8, 
 383         D2DF,   8, 
 384         F12F,   8
 385     }
 386 
 387     OperationRegion (CMS1, SystemIO, 0x72, 0x02)
 388     Field (CMS1, ByteAcc, NoLock, Preserve)
 389     {
 390         CMSI,   8, 
 391         CMSD,   8
 392     }
 393 
 394     Method (CMSW, 2, NotSerialized)
 395     {
 396         CMSI = Arg0
 397         CMSD = Arg1
 398     }
 399 
 400     OperationRegion (IO_T, SystemIO, 0x0800, 0x10)
 401     Field (IO_T, ByteAcc, NoLock, Preserve)
 402     {
 403         Offset (0x02), 
 404         Offset (0x04), 
 405         Offset (0x06), 
 406         Offset (0x08), 
 407         TRP0,   8, 
 408         Offset (0x0A), 
 409         Offset (0x0B), 
 410         Offset (0x0C), 
 411         Offset (0x0D), 
 412         Offset (0x0E), 
 413         Offset (0x0F), 
 414         Offset (0x10)
 415     }
 416 
 417     OperationRegion (IO_D, SystemIO, 0x0810, 0x08)
 418     Field (IO_D, ByteAcc, NoLock, Preserve)
 419     {
 420         TRPD,   8
 421     }
 422 
 423     OperationRegion (NVST, SystemMemory, 0x5F4BEE78, 0x00000056)
 424     Field (NVST, AnyAcc, Lock, Preserve)
 425     {
 426         SMIF,   8, 
 427         PRM0,   8, 
 428         PRM1,   8, 
 429         BRTL,   8, 
 430         TLST,   8, 
 431         IGDS,   8, 
 432         LCDA,   16, 
 433         CSTE,   16, 
 434         NSTE,   16, 
 435         CADL,   16, 
 436         PADL,   16, 
 437         LIDS,   8, 
 438         PWRS,   8, 
 439         BVAL,   32, 
 440         CMPF,   8, 
 441         CSTF,   8, 
 442         GTF0,   56, 
 443         GTF2,   56, 
 444         IDEM,   8, 
 445         DTS1,   8, 
 446         DTS2,   8, 
 447         DTSF,   8, 
 448         PPMF,   32, 
 449         DI00,   320
 450     }
 451 
 452     Scope (_PR)
 453     {
 454         Processor (CPU0, 0x01, 0x00000410, 0x06) {}
 455         Processor (CPU1, 0x02, 0x00000410, 0x06) {}
 456     }
 457 
 458     Method (IHWM, 2, NotSerialized)
 459     {
 460         PRM0 = Arg0
 461         DI00 = Arg1
 462         APMC = 0xD1
 463         Local0 = DI00 /* \DI00 */
 464         Return (Local0)
 465     }
 466 
 467     OperationRegion (GSMI, SystemIO, 0xB2, 0x02)
 468     Field (GSMI, ByteAcc, NoLock, Preserve)
 469     {
 470         APMC,   8, 
 471         APMD,   8
 472     }
 473 
 474     Name (ECON, Zero)
 475     Name (CTYP, Zero)
 476     Name (DSEN, One)
 477     Name (PSTA, Zero)
 478     Method (_PTS, 1, NotSerialized)  // _PTS: Prepare To Sleep
 479     {
 480         If (Arg0 == 0x03)
 481         {
 482             P80H = 0x53
 483         }
 484 
 485         If (Arg0 == 0x04)
 486         {
 487             If (ECON)
 488             {
 489                 \_SB.PCI0.LPC.EC0.FLS4 = One
 490             }
 491 
 492             P80H = 0x54
 493         }
 494 
 495         Return (Zero)
 496     }
 497 
 498     Method (_WAK, 1, NotSerialized)  // _WAK: Wake
 499     {
 500         If (ECON)
 501         {
 502             \_SB.BAT1.UBIF ()
 503             Notify (\_SB.BAT1, 0x80) // Status Change
 504             Notify (\_SB.BAT1, 0x81) // Information Change
 505         }
 506 
 507         If (Arg0 == 0x03)
 508         {
 509             Notify (\_SB.PCI0.EXP1, Zero) // Bus Check
 510             Notify (\_SB.PCI0.EXP4, Zero) // Bus Check
 511             P80H = 0xE3
 512         }
 513 
 514         If (Arg0 == 0x04)
 515         {
 516             Notify (\_SB.PCI0.EXP1, Zero) // Bus Check
 517             Notify (\_SB.PCI0.EXP4, Zero) // Bus Check
 518             P80H = 0xE4
 519         }
 520 
 521         Return (Zero)
 522     }
 523 
 524     Name (_S0, Package (0x04)  // _S0_: S0 System State
 525     {
 526         Zero, 
 527         Zero, 
 528         Zero, 
 529         Zero
 530     })
 531     If (DAS3 == One)
 532     {
 533         Name (_S3, Package (0x04)  // _S3_: S3 System State
 534         {
 535             0x05, 
 536             0x05, 
 537             Zero, 
 538             Zero
 539         })
 540     }
 541 
 542     Name (_S4, Package (0x04)  // _S4_: S4 System State
 543     {
 544         0x06, 
 545         0x06, 
 546         Zero, 
 547         Zero
 548     })
 549     Name (_S5, Package (0x04)  // _S5_: S5 System State
 550     {
 551         0x07, 
 552         0x07, 
 553         Zero, 
 554         Zero
 555     })
 556     Scope (_GPE)
 557     {
 558         Method (_L03, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 559         {
 560             Notify (\_SB.PCI0.UHC1, 0x02) // Device Wake
 561         }
 562 
 563         Method (_L04, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 564         {
 565             Notify (\_SB.PCI0.UHC2, 0x02) // Device Wake
 566         }
 567 
 568         Method (_L05, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 569         {
 570             Notify (\_SB.PCI0.AZAL, 0x02) // Device Wake
 571             Notify (\_SB.PCI0.MODM, 0x02) // Device Wake
 572         }
 573 
 574         Method (_L09, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 575         {
 576             Notify (\_SB.PCI0.EXP1, 0x02) // Device Wake
 577             Notify (\_SB.PCI0.EXP2, 0x02) // Device Wake
 578             Notify (\_SB.PCI0.EXP3, 0x02) // Device Wake
 579             Notify (\_SB.PCI0.EXP4, 0x02) // Device Wake
 580         }
 581 
 582         Method (_L0B, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 583         {
 584             Notify (\_SB.PCI0.P32, 0x02) // Device Wake
 585         }
 586 
 587         Method (_L0C, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 588         {
 589             Notify (\_SB.PCI0.UHC3, 0x02) // Device Wake
 590         }
 591 
 592         Method (_L0D, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 593         {
 594             Notify (\_SB.PCI0.ECHI, 0x02) // Device Wake
 595         }
 596 
 597         Method (_L0E, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 598         {
 599             Notify (\_SB.PCI0.UHC4, 0x02) // Device Wake
 600         }
 601 
 602         Method (_L19, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 603         {
 604             Sleep (0x64)
 605             If (\_SB.PCI0.EXP4.PDC4)
 606             {
 607                 \_SB.PCI0.EXP4.PDC4 = One
 608                 \_SB.PCI0.EXP4.HPCS = One
 609                 If (\_SB.PCI0.EXP4.PDS4)
 610                 {
 611                     INV9 = Zero
 612                     APMD = 0x94
 613                     APMC = 0xB2
 614                     Sleep (0x64)
 615                 }
 616                 Else
 617                 {
 618                     INV9 = One
 619                     Sleep (0x64)
 620                 }
 621 
 622                 Notify (\_SB.PCI0.EXP4, Zero) // Bus Check
 623             }
 624         }
 625 
 626         Method (_L1A, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 627         {
 628             Sleep (0x64)
 629             If (\_SB.PCI0.EXP1.PDC1)
 630             {
 631                 \_SB.PCI0.EXP1.PDC1 = One
 632                 \_SB.PCI0.EXP1.HPCS = One
 633                 If (\_SB.PCI0.EXP1.PDS1)
 634                 {
 635                     INVA = Zero
 636                     APMD = 0x91
 637                     APMC = 0xB2
 638                     Sleep (0x64)
 639                 }
 640                 Else
 641                 {
 642                     INVA = One
 643                     Sleep (0x64)
 644                 }
 645 
 646                 Notify (\_SB.PCI0.EXP1, Zero) // Bus Check
 647             }
 648         }
 649     }
 650 
 651     Name (GPIC, Zero)
 652     Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
 653     {
 654         GPIC = Arg0
 655     }
 656 
 657     Method (_INI, 0, NotSerialized)  // _INI: Initialize
 658     {
 659         P80H = 0x12
 660         If (CondRefOf (_OSI, Local0))
 661         {
 662             If (_OSI ("Linux"))
 663             {
 664                 OSYS = 0x03E8
 665                 \_SB.PCI0.LPC.S4TM = 0x0A
 666                 \_SB.PCI0.EXP2.PXS2.LSMP = 0x43
 667                 \_SB.PCI0.EXP2.LL0S = One
 668                 \_SB.PCI0.EXP2.LLL1 = One
 669             }
 670             ElseIf (_OSI ("Windows 2006"))
 671             {
 672                 OSYS = 0x07D6
 673                 \_SB.PCI0.LPC.S4TM = 0x06
 674                 \_SB.PCI0.EXP2.PXS2.LSMP = Zero
 675                 \_SB.PCI0.EXP2.LL0S = Zero
 676                 \_SB.PCI0.EXP2.LLL1 = Zero
 677             }
 678             Else
 679             {
 680                 \_SB.PCI0.LPC.S4TM = 0x0A
 681                 \_SB.PCI0.EXP2.PXS2.LSMP = 0x43
 682                 \_SB.PCI0.EXP2.LL0S = One
 683                 \_SB.PCI0.EXP2.LLL1 = One
 684                 OSYS = 0x07D1
 685             }
 686         }
 687         Else
 688         {
 689             \_SB.PCI0.LPC.S4TM = 0x0A
 690             \_SB.PCI0.EXP2.PXS2.LSMP = 0x43
 691             \_SB.PCI0.EXP2.LL0S = One
 692             \_SB.PCI0.EXP2.LLL1 = One
 693             OSYS = 0x07D0
 694         }
 695     }
 696 
 697     Method (GETP, 1, Serialized)
 698     {
 699         If ((Arg0 & 0x09) == Zero)
 700         {
 701             Return (Ones)
 702         }
 703 
 704         If ((Arg0 & 0x09) == 0x08)
 705         {
 706             Return (0x0384)
 707         }
 708 
 709         Local0 = ((Arg0 & 0x0300) >> 0x08)
 710         Local1 = ((Arg0 & 0x3000) >> 0x0C)
 711         Return ((0x1E * (0x09 - (Local0 + Local1))))
 712     }
 713 
 714     Method (GDMA, 5, Serialized)
 715     {
 716         If (Arg0)
 717         {
 718             If (Arg1 && Arg4)
 719             {
 720                 Return (0x14)
 721             }
 722 
 723             If (Arg2 && Arg4)
 724             {
 725                 Return (((0x04 - Arg3) * 0x0F))
 726             }
 727 
 728             Return (((0x04 - Arg3) * 0x1E))
 729         }
 730 
 731         Return (Ones)
 732     }
 733 
 734     Method (GETT, 1, Serialized)
 735     {
 736         Return ((0x1E * (0x09 - (((Arg0 >> 0x02) & 0x03
 737             ) + (Arg0 & 0x03)))))
 738     }
 739 
 740     Method (GETF, 3, Serialized)
 741     {
 742         Name (TMPF, Zero)
 743         If (Arg0)
 744         {
 745             TMPF |= One
 746         }
 747 
 748         If (Arg2 & 0x02)
 749         {
 750             TMPF |= 0x02
 751         }
 752 
 753         If (Arg1)
 754         {
 755             TMPF |= 0x04
 756         }
 757 
 758         If (Arg2 & 0x20)
 759         {
 760             TMPF |= 0x08
 761         }
 762 
 763         If (Arg2 & 0x4000)
 764         {
 765             TMPF |= 0x10
 766         }
 767 
 768         Return (TMPF) /* \GETF.TMPF */
 769     }
 770 
 771     Method (SETP, 3, Serialized)
 772     {
 773         If (Arg0 > 0xF0)
 774         {
 775             Return (0x08)
 776         }
 777         Else
 778         {
 779             If (Arg1 & 0x02)
 780             {
 781                 If ((Arg0 <= 0x78) && (Arg2 & 0x02))
 782                 {
 783                     Return (0x2301)
 784                 }
 785 
 786                 If ((Arg0 <= 0xB4) && (Arg2 & One))
 787                 {
 788                     Return (0x2101)
 789                 }
 790             }
 791 
 792             Return (0x1001)
 793         }
 794     }
 795 
 796     Method (SDMA, 1, Serialized)
 797     {
 798         If (Arg0 <= 0x14)
 799         {
 800             Return (One)
 801         }
 802 
 803         If (Arg0 <= 0x1E)
 804         {
 805             Return (0x02)
 806         }
 807 
 808         If (Arg0 <= 0x2D)
 809         {
 810             Return (One)
 811         }
 812 
 813         If (Arg0 <= 0x3C)
 814         {
 815             Return (0x02)
 816         }
 817 
 818         If (Arg0 <= 0x5A)
 819         {
 820             Return (One)
 821         }
 822 
 823         Return (Zero)
 824     }
 825 
 826     Method (SETT, 3, Serialized)
 827     {
 828         If (Arg1 & 0x02)
 829         {
 830             If ((Arg0 <= 0x78) && (Arg2 & 0x02))
 831             {
 832                 Return (0x0B)
 833             }
 834 
 835             If ((Arg0 <= 0xB4) && (Arg2 & One))
 836             {
 837                 Return (0x09)
 838             }
 839         }
 840 
 841         Return (0x04)
 842     }
 843 
 844     Scope (_SB)
 845     {
 846         Device (PWRB)
 847         {
 848             Name (_HID, EisaId ("PNP0C0C") /* Power Button Device */)  // _HID: Hardware ID
 849         }
 850 
 851         Device (LID0)
 852         {
 853             Name (_HID, EisaId ("PNP0C0D") /* Lid Device */)  // _HID: Hardware ID
 854             Method (_LID, 0, NotSerialized)  // _LID: Lid Status
 855             {
 856                 If (ECON)
 857                 {
 858                     If (^^PCI0.LPC.EC0.LID2 == Zero)
 859                     {
 860                         Return (One)
 861                     }
 862                     Else
 863                     {
 864                         Return (Zero)
 865                     }
 866                 }
 867                 Else
 868                 {
 869                     Return (One)
 870                 }
 871             }
 872         }
 873 
 874         Device (SLPB)
 875         {
 876             Name (_HID, EisaId ("PNP0C0E") /* Sleep Button Device */)  // _HID: Hardware ID
 877         }
 878 
 879         Device (BAT1)
 880         {
 881             Name (CBTI, Zero)
 882             Name (PBTI, Zero)
 883             Name (BTIN, Zero)
 884             Name (BTCH, Zero)
 885             Name (BIFI, Zero)
 886             Name (SEL0, Zero)
 887             Name (BCRI, Zero)
 888             Name (PBIF, Package (0x0D)
 889             {
 890                 One, 
 891                 0x1130, 
 892                 0x1130, 
 893                 One, 
 894                 0x2B5C, 
 895                 0x012C, 
 896                 0x84, 
 897                 0x20, 
 898                 0x20, 
 899                 "BAT1      ", 
 900                 "11        ", 
 901                 "11        ", 
 902                 "11        "
 903             })
 904             Name (PBST, Package (0x04)
 905             {
 906                 Zero, 
 907                 Ones, 
 908                 Ones, 
 909                 0x2710
 910             })
 911             Name (ERRC, Zero)
 912             Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */)  // _HID: Hardware ID
 913             Name (_UID, Zero)  // _UID: Unique ID
 914             Method (_STA, 0, NotSerialized)  // _STA: Status
 915             {
 916                 P80H = 0x11
 917                 If (BTIN)
 918                 {
 919                     Return (0x1F)
 920                 }
 921                 Else
 922                 {
 923                     Return (0x0F)
 924                 }
 925             }
 926 
 927             Method (_BIF, 0, NotSerialized)  // _BIF: Battery Information
 928             {
 929                 P80H = 0x12
 930                 If (BIFI == Zero)
 931                 {
 932                     UBIF ()
 933                     BIFI = One
 934                 }
 935 
 936                 Return (PBIF) /* \_SB_.BAT1.PBIF */
 937             }
 938 
 939             Name (LFCC, 0x1130)
 940             Method (UBIF, 0, NotSerialized)
 941             {
 942                 If (ECON)
 943                 {
 944                     P80H = 0x13
 945                     Local0 = ^^PCI0.LPC.EC0.BTDC /* \_SB_.PCI0.LPC_.EC0_.BTDC */
 946                     Local1 = ^^PCI0.LPC.EC0.LFC2 /* \_SB_.PCI0.LPC_.EC0_.LFC2 */
 947                     Local2 = ^^PCI0.LPC.EC0.BTDV /* \_SB_.PCI0.LPC_.EC0_.BTDV */
 948                     Local3 = ^^PCI0.LPC.EC0.BTMD /* \_SB_.PCI0.LPC_.EC0_.BTMD */
 949                     Local4 = ^^PCI0.LPC.EC0.BTMN /* \_SB_.PCI0.LPC_.EC0_.BTMN */
 950                     Local5 = ^^PCI0.LPC.EC0.BTSN /* \_SB_.PCI0.LPC_.EC0_.BTSN */
 951                     Local6 = ^^PCI0.LPC.EC0.LION /* \_SB_.PCI0.LPC_.EC0_.LION */
 952                     PBIF [One] = Local0
 953                     PBIF [0x02] = Local1
 954                     PBIF [0x04] = Local2
 955                     LFCC = Local1
 956                     Local7 = (Local1 * 0x04)
 957                     Local7 /= 0x64
 958                     PBIF [0x06] = Local7
 959                     If (Local6)
 960                     {
 961                         PBIF [0x0B] = "NiMH"
 962                     }
 963                     Else
 964                     {
 965                         PBIF [0x0B] = "LION"
 966                     }
 967 
 968                     Local3 &= 0x0F
 969                     If (Local3 == One)
 970                     {
 971                         PBIF [0x09] = "UM08A31"
 972                     }
 973                     ElseIf (Local3 == 0x02)
 974                     {
 975                         PBIF [0x09] = "UM08A32"
 976                     }
 977                     ElseIf (Local3 == 0x03)
 978                     {
 979                         PBIF [0x09] = "UM08A51"
 980                     }
 981                     ElseIf (Local3 == 0x04)
 982                     {
 983                         PBIF [0x09] = "UM08A52"
 984                     }
 985                     ElseIf (Local3 == 0x05)
 986                     {
 987                         PBIF [0x09] = "UM08A71"
 988                     }
 989                     ElseIf (Local3 == 0x06)
 990                     {
 991                         PBIF [0x09] = "UM08A72"
 992                     }
 993                     ElseIf (Local3 == 0x07)
 994                     {
 995                         PBIF [0x09] = "UM08A73"
 996                     }
 997                     ElseIf (Local3 == 0x08)
 998                     {
 999                         PBIF [0x09] = "UM08A74"
1000                     }
1001                     ElseIf (Local3 == 0x09)
1002                     {
1003                         PBIF [0x09] = "UM08B51"
1004                     }
1005                     ElseIf (Local3 == 0x0A)
1006                     {
1007                         PBIF [0x09] = "UM08B71"
1008                     }
1009                     ElseIf (Local3 == 0x0B)
1010                     {
1011                         PBIF [0x09] = "UM08B72"
1012                     }
1013                     ElseIf (Local3 == 0x0C)
1014                     {
1015                         PBIF [0x09] = "UM08B73"
1016                     }
1017                     ElseIf (Local3 == 0x0D)
1018                     {
1019                         PBIF [0x09] = "UM08B74"
1020                     }
1021                     ElseIf (Local3 == 0x0E)
1022                     {
1023                         PBIF [0x09] = "UM08AC1"
1024                     }
1025 
1026                     If (Local4 == 0x03)
1027                     {
1028                         PBIF [0x0C] = "SANYO"
1029                     }
1030                     ElseIf (Local4 == 0x04)
1031                     {
1032                         PBIF [0x0C] = "SONY"
1033                     }
1034                     ElseIf (Local4 == 0x05)
1035                     {
1036                         PBIF [0x0C] = "PANASONIC"
1037                     }
1038                     ElseIf (Local4 == 0x07)
1039                     {
1040                         PBIF [0x0C] = "SIMPLO"
1041                     }
1042                     ElseIf (Local4 == 0x08)
1043                     {
1044                         PBIF [0x0C] = "MOTOROLA"
1045                     }
1046                     ElseIf (Local4 == 0x09)
1047                     {
1048                         PBIF [0x0C] = "Celxpert"
1049                     }
1050                     Else
1051                     {
1052                         PBIF [0x0C] = "UNKNOWN"
1053                     }
1054 
1055                     PBIF [0x0A] = ITOS (Local5)
1056                 }
1057             }
1058 
1059             Name (RCAP, Zero)
1060             Method (_BST, 0, NotSerialized)  // _BST: Battery Status
1061             {
1062                 P80H = 0x14
1063                 If (BTIN == Zero)
1064                 {
1065                     PBST [Zero] = Zero
1066                     PBST [One] = Ones
1067                     PBST [0x02] = Ones
1068                     PBST [0x03] = Ones
1069                     Return (PBST) /* \_SB_.BAT1.PBST */
1070                 }
1071 
1072                 If (ECON)
1073                 {
1074                     Local0 = ^^PCI0.LPC.EC0.MBTC /* \_SB_.PCI0.LPC_.EC0_.MBTC */
1075                     Local1 = ^^PCI0.LPC.EC0.MBRM /* \_SB_.PCI0.LPC_.EC0_.MBRM */
1076                     Local2 = ^^PCI0.LPC.EC0.MBVG /* \_SB_.PCI0.LPC_.EC0_.MBVG */
1077                     Local3 = ^^PCI0.LPC.EC0.MCUR /* \_SB_.PCI0.LPC_.EC0_.MCUR */
1078                     Local4 = ^^PCI0.LPC.EC0.BTST /* \_SB_.PCI0.LPC_.EC0_.BTST */
1079                     Local5 = ^^PCI0.LPC.EC0.MBTF /* \_SB_.PCI0.LPC_.EC0_.MBTF */
1080                     Local6 = ^^PCI0.LPC.EC0.ACDF /* \_SB_.PCI0.LPC_.EC0_.ACDF */
1081                     If (Local6)
1082                     {
1083                         If (Local5 == One)
1084                         {
1085                             Local7 = Zero
1086                             Local1 = LFCC /* \_SB_.BAT1.LFCC */
1087                         }
1088                         ElseIf (Local0 == One)
1089                         {
1090                             Local7 = 0x02
1091                         }
1092                         Else
1093                         {
1094                             Local7 = Zero
1095                         }
1096                     }
1097                     ElseIf (Local4 && One)
1098                     {
1099                         Local7 = One
1100                     }
1101                     Else
1102                     {
1103                         Local7 = Zero
1104                     }
1105 
1106                     Local4 &= 0x04
1107                     If (Local4 == 0x04)
1108                     {
1109                         Local7 |= Local4
1110                     }
1111 
1112                     PBST [Zero] = Local7
1113                     If (!(Local1 & 0x8000))
1114                     {
1115                         PBST [0x02] = Local1
1116                     }
1117 
1118                     If (!(Local2 & 0x8000))
1119                     {
1120                         PBST [0x03] = Local2
1121                     }
1122 
1123                     If (Local3 && 0x8000)
1124                     {
1125                         If (Local3 != 0xFFFF)
1126                         {
1127                             Local3 = ~Local3
1128                             Local3++
1129                             Local3 &= 0xFFFF
1130                         }
1131                     }
1132 
1133                     PBST [One] = Local3
1134                 }
1135 
1136                 Return (PBST) /* \_SB_.BAT1.PBST */
1137             }
1138 
1139             Method (ITOS, 1, NotSerialized)
1140             {
1141                 Local0 = ""
1142                 Local1 = 0x04
1143                 While (Local1)
1144                 {
1145                     Local1--
1146                     Local4 = ((Arg0 >> (Local1 << 0x02)) & 0x0F)
1147                     Local2 = DerefOf (CHAR [Local4])
1148                     Concatenate (Local0, Local2, Local5)
1149                     Local0 = Local5
1150                 }
1151 
1152                 Return (Local0)
1153             }
1154 
1155             Name (CHAR, Package (0x10)
1156             {
1157                 "0", 
1158                 "1", 
1159                 "2", 
1160                 "3", 
1161                 "4", 
1162                 "5", 
1163                 "6", 
1164                 "7", 
1165                 "8", 
1166                 "9", 
1167                 "A", 
1168                 "B", 
1169                 "C", 
1170                 "D", 
1171                 "E", 
1172                 "F"
1173             })
1174             Method (BATS, 0, NotSerialized)
1175             {
1176                 If (ECON)
1177                 {
1178                     P80H = 0x15
1179                     Local0 = ^^PCI0.LPC.EC0.MBTS /* \_SB_.PCI0.LPC_.EC0_.MBTS */
1180                     If (Local0 == One)
1181                     {
1182                         If (BTIN == Zero)
1183                         {
1184                             BTCH = One
1185                             BIFI = Zero
1186                         }
1187 
1188                         BTIN = One
1189                     }
1190                     Else
1191                     {
1192                         If (BTIN == One)
1193                         {
1194                             BTCH = One
1195                             BIFI = Zero
1196                         }
1197 
1198                         BTIN = Zero
1199                     }
1200                 }
1201             }
1202         }
1203 
1204         Device (ACAD)
1205         {
1206             Name (_HID, "ACPI0003" /* Power Source Device */)  // _HID: Hardware ID
1207             Name (_PCL, Package (0x01)  // _PCL: Power Consumer List
1208             {
1209                 _SB
1210             })
1211             Name (ACST, Zero)
1212             Method (_PSR, 0, NotSerialized)  // _PSR: Power Source
1213             {
1214                 If (ECON)
1215                 {
1216                     P80H = 0x16
1217                     ACST = ^^PCI0.LPC.EC0.ACDF /* \_SB_.PCI0.LPC_.EC0_.ACDF */
1218                 }
1219                 Else
1220                 {
1221                     ACST = One
1222                 }
1223 
1224                 If (ACST)
1225                 {
1226                     Local0 = One
1227                     ^^BAT1.BCRI = Zero
1228                 }
1229                 Else
1230                 {
1231                     Local0 = Zero
1232                 }
1233 
1234                 Return (Local0)
1235             }
1236         }
1237 
1238         Device (PCI0)
1239         {
1240             Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
1241             Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
1242             Name (_ADR, Zero)  // _ADR: Address
1243             Method (_INI, 0, NotSerialized)  // _INI: Initialize
1244             {
1245                 P80H = 0x12
1246                 If (CondRefOf (_OSI, Local0))
1247                 {
1248                     If (_OSI ("Linux"))
1249                     {
1250                         OSYS = 0x03E8
1251                         ^LPC.S4TM = 0x0A
1252                         ^EXP2.PXS2.LSMP = 0x43
1253                         ^EXP2.LL0S = One
1254                         ^EXP2.LLL1 = One
1255                     }
1256                     ElseIf (_OSI ("Windows 2006"))
1257                     {
1258                         OSYS = 0x07D6
1259                         ^LPC.S4TM = 0x06
1260                         ^EXP2.PXS2.LSMP = Zero
1261                         ^EXP2.LL0S = Zero
1262                         ^EXP2.LLL1 = Zero
1263                     }
1264                     Else
1265                     {
1266                         ^LPC.S4TM = 0x0A
1267                         ^EXP2.PXS2.LSMP = 0x43
1268                         ^EXP2.LL0S = One
1269                         ^EXP2.LLL1 = One
1270                         OSYS = 0x07D1
1271                     }
1272                 }
1273                 Else
1274                 {
1275                     ^LPC.S4TM = 0x0A
1276                     ^EXP2.PXS2.LSMP = 0x43
1277                     ^EXP2.LL0S = One
1278                     ^EXP2.LLL1 = One
1279                     OSYS = 0x07D0
1280                 }
1281             }
1282 
1283             Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
1284             {
1285                 Local0 = Arg2
1286                 Local1 = (Local0 * 0x04)
1287                 Name (BUF1, Buffer (Local1) {})
1288                 BUF1 = Arg3
1289                 Local1 = Zero
1290                 Local2 = Zero
1291                 While (Local0)
1292                 {
1293                     Local2 = (Local1 * 0x04)
1294                     CreateDWordField (BUF1, Local2, CAPB)
1295                     If (Arg1)
1296                     {
1297                         If (Local1 == Zero)
1298                         {
1299                             CAPB &= 0xFFFFFFFC
1300                         }
1301                     }
1302                     Else
1303                     {
1304                     }
1305 
1306                     Local1++
1307                     Local0--
1308                 }
1309 
1310                 Return (BUF1) /* \_SB_.PCI0._OSC.BUF1 */
1311             }
1312 
1313             Name (_BBN, Zero)  // _BBN: BIOS Bus Number
1314             OperationRegion (HBUS, PCI_Config, 0x40, 0xC0)
1315             Field (HBUS, DWordAcc, NoLock, Preserve)
1316             {
1317                 Offset (0x50), 
1318                     ,   4, 
1319                 PM0H,   2, 
1320                 Offset (0x51), 
1321                 PM1L,   2, 
1322                     ,   2, 
1323                 PM1H,   2, 
1324                 Offset (0x52), 
1325                 PM2L,   2, 
1326                     ,   2, 
1327                 PM2H,   2, 
1328                 Offset (0x53), 
1329                 PM3L,   2, 
1330                     ,   2, 
1331                 PM3H,   2, 
1332                 Offset (0x54), 
1333                 PM4L,   2, 
1334                     ,   2, 
1335                 PM4H,   2, 
1336                 Offset (0x55), 
1337                 PM5L,   2, 
1338                     ,   2, 
1339                 PM5H,   2, 
1340                 Offset (0x56), 
1341                 PM6L,   2, 
1342                     ,   2, 
1343                 PM6H,   2, 
1344                 Offset (0x57), 
1345                     ,   7, 
1346                 HENA,   1, 
1347                 Offset (0x5C), 
1348                     ,   3, 
1349                 TOUD,   5
1350             }
1351 
1352             Name (BUF0, ResourceTemplate ()
1353             {
1354                 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
1355                     0x0000,             // Granularity
1356                     0x0000,             // Range Minimum
1357                     0x00FF,             // Range Maximum
1358                     0x0000,             // Translation Offset
1359                     0x0100,             // Length
1360                     0x00,, )
1361                 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
1362                     0x00000000,         // Granularity
1363                     0x00000000,         // Range Minimum
1364                     0x00000CF7,         // Range Maximum
1365                     0x00000000,         // Translation Offset
1366                     0x00000CF8,         // Length
1367                     0x00,, , TypeStatic)
1368                 IO (Decode16,
1369                     0x0CF8,             // Range Minimum
1370                     0x0CF8,             // Range Maximum
1371                     0x01,               // Alignment
1372                     0x08,               // Length
1373                     )
1374                 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
1375                     0x00000000,         // Granularity
1376                     0x00000D00,         // Range Minimum
1377                     0x0000FFFF,         // Range Maximum
1378                     0x00000000,         // Translation Offset
1379                     0x0000F300,         // Length
1380                     0x00,, , TypeStatic)
1381                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1382                     0x00000000,         // Granularity
1383                     0x000A0000,         // Range Minimum
1384                     0x000BFFFF,         // Range Maximum
1385                     0x00000000,         // Translation Offset
1386                     0x00020000,         // Length
1387                     0x00,, , AddressRangeMemory, TypeStatic)
1388                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1389                     0x00000000,         // Granularity
1390                     0x000C0000,         // Range Minimum
1391                     0x000C3FFF,         // Range Maximum
1392                     0x00000000,         // Translation Offset
1393                     0x00004000,         // Length
1394                     0x00,, _Y00, AddressRangeMemory, TypeStatic)
1395                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1396                     0x00000000,         // Granularity
1397                     0x000C4000,         // Range Minimum
1398                     0x000C7FFF,         // Range Maximum
1399                     0x00000000,         // Translation Offset
1400                     0x00004000,         // Length
1401                     0x00,, _Y01, AddressRangeMemory, TypeStatic)
1402                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1403                     0x00000000,         // Granularity
1404                     0x000C8000,         // Range Minimum
1405                     0x000CBFFF,         // Range Maximum
1406                     0x00000000,         // Translation Offset
1407                     0x00004000,         // Length
1408                     0x00,, _Y02, AddressRangeMemory, TypeStatic)
1409                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1410                     0x00000000,         // Granularity
1411                     0x000CC000,         // Range Minimum
1412                     0x000CFFFF,         // Range Maximum
1413                     0x00000000,         // Translation Offset
1414                     0x00004000,         // Length
1415                     0x00,, _Y03, AddressRangeMemory, TypeStatic)
1416                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1417                     0x00000000,         // Granularity
1418                     0x000D0000,         // Range Minimum
1419                     0x000D3FFF,         // Range Maximum
1420                     0x00000000,         // Translation Offset
1421                     0x00004000,         // Length
1422                     0x00,, _Y04, AddressRangeMemory, TypeStatic)
1423                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1424                     0x00000000,         // Granularity
1425                     0x000D4000,         // Range Minimum
1426                     0x000D7FFF,         // Range Maximum
1427                     0x00000000,         // Translation Offset
1428                     0x00004000,         // Length
1429                     0x00,, _Y05, AddressRangeMemory, TypeStatic)
1430                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1431                     0x00000000,         // Granularity
1432                     0x000D8000,         // Range Minimum
1433                     0x000DBFFF,         // Range Maximum
1434                     0x00000000,         // Translation Offset
1435                     0x00004000,         // Length
1436                     0x00,, _Y06, AddressRangeMemory, TypeStatic)
1437                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1438                     0x00000000,         // Granularity
1439                     0x000DC000,         // Range Minimum
1440                     0x000DFFFF,         // Range Maximum
1441                     0x00000000,         // Translation Offset
1442                     0x00004000,         // Length
1443                     0x00,, _Y07, AddressRangeMemory, TypeStatic)
1444                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1445                     0x00000000,         // Granularity
1446                     0x000E0000,         // Range Minimum
1447                     0x000E3FFF,         // Range Maximum
1448                     0x00000000,         // Translation Offset
1449                     0x00004000,         // Length
1450                     0x00,, _Y08, AddressRangeMemory, TypeStatic)
1451                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1452                     0x00000000,         // Granularity
1453                     0x000E4000,         // Range Minimum
1454                     0x000E7FFF,         // Range Maximum
1455                     0x00000000,         // Translation Offset
1456                     0x00004000,         // Length
1457                     0x00,, _Y09, AddressRangeMemory, TypeStatic)
1458                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1459                     0x00000000,         // Granularity
1460                     0x000E8000,         // Range Minimum
1461                     0x000EBFFF,         // Range Maximum
1462                     0x00000000,         // Translation Offset
1463                     0x00004000,         // Length
1464                     0x00,, _Y0A, AddressRangeMemory, TypeStatic)
1465                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1466                     0x00000000,         // Granularity
1467                     0x000EC000,         // Range Minimum
1468                     0x000EFFFF,         // Range Maximum
1469                     0x00000000,         // Translation Offset
1470                     0x00004000,         // Length
1471                     0x00,, _Y0B, AddressRangeMemory, TypeStatic)
1472                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1473                     0x00000000,         // Granularity
1474                     0x000F0000,         // Range Minimum
1475                     0x000FFFFF,         // Range Maximum
1476                     0x00000000,         // Translation Offset
1477                     0x00010000,         // Length
1478                     0x00,, _Y0C, AddressRangeMemory, TypeStatic)
1479                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1480                     0x00000000,         // Granularity
1481                     0x00000000,         // Range Minimum
1482                     0xFEBFFFFF,         // Range Maximum
1483                     0x00000000,         // Translation Offset
1484                     0x00000000,         // Length
1485                     0x00,, _Y0D, AddressRangeMemory, TypeStatic)
1486             })
1487             Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
1488             {
1489                 If (PM1L)
1490                 {
1491                     CreateDWordField (BUF0, \_SB.PCI0._Y00._LEN, C0LN)  // _LEN: Length
1492                     C0LN = Zero
1493                 }
1494 
1495                 If (PM1L == One)
1496                 {
1497                     CreateBitField (BUF0, \_SB.PCI0._Y00._RW, C0RW)  // _RW_: Read-Write Status
1498                     C0RW = Zero
1499                 }
1500 
1501                 If (PM1H)
1502                 {
1503                     CreateDWordField (BUF0, \_SB.PCI0._Y01._LEN, C4LN)  // _LEN: Length
1504                     C4LN = Zero
1505                 }
1506 
1507                 If (PM1H == One)
1508                 {
1509                     CreateBitField (BUF0, \_SB.PCI0._Y01._RW, C4RW)  // _RW_: Read-Write Status
1510                     C4RW = Zero
1511                 }
1512 
1513                 If (PM2L)
1514                 {
1515                     CreateDWordField (BUF0, \_SB.PCI0._Y02._LEN, C8LN)  // _LEN: Length
1516                     C8LN = Zero
1517                 }
1518 
1519                 If (PM2L == One)
1520                 {
1521                     CreateBitField (BUF0, \_SB.PCI0._Y02._RW, C8RW)  // _RW_: Read-Write Status
1522                     C8RW = Zero
1523                 }
1524 
1525                 If (PM2H)
1526                 {
1527                     CreateDWordField (BUF0, \_SB.PCI0._Y03._LEN, CCLN)  // _LEN: Length
1528                     CCLN = Zero
1529                 }
1530 
1531                 If (PM2H == One)
1532                 {
1533                     CreateBitField (BUF0, \_SB.PCI0._Y03._RW, CCRW)  // _RW_: Read-Write Status
1534                     CCRW = Zero
1535                 }
1536 
1537                 If (PM3L)
1538                 {
1539                     CreateDWordField (BUF0, \_SB.PCI0._Y04._LEN, D0LN)  // _LEN: Length
1540                     D0LN = Zero
1541                 }
1542 
1543                 If (PM3L == One)
1544                 {
1545                     CreateBitField (BUF0, \_SB.PCI0._Y04._RW, D0RW)  // _RW_: Read-Write Status
1546                     D0RW = Zero
1547                 }
1548 
1549                 If (PM3H)
1550                 {
1551                     CreateDWordField (BUF0, \_SB.PCI0._Y05._LEN, D4LN)  // _LEN: Length
1552                     D4LN = Zero
1553                 }
1554 
1555                 If (PM3H == One)
1556                 {
1557                     CreateBitField (BUF0, \_SB.PCI0._Y05._RW, D4RW)  // _RW_: Read-Write Status
1558                     D4RW = Zero
1559                 }
1560 
1561                 If (PM4L)
1562                 {
1563                     CreateDWordField (BUF0, \_SB.PCI0._Y06._LEN, D8LN)  // _LEN: Length
1564                     D8LN = Zero
1565                 }
1566 
1567                 If (PM4L == One)
1568                 {
1569                     CreateBitField (BUF0, \_SB.PCI0._Y06._RW, D8RW)  // _RW_: Read-Write Status
1570                     D8RW = Zero
1571                 }
1572 
1573                 If (PM4H)
1574                 {
1575                     CreateDWordField (BUF0, \_SB.PCI0._Y07._LEN, DCLN)  // _LEN: Length
1576                     DCLN = Zero
1577                 }
1578 
1579                 If (PM4H == One)
1580                 {
1581                     CreateBitField (BUF0, \_SB.PCI0._Y07._RW, DCRW)  // _RW_: Read-Write Status
1582                     DCRW = Zero
1583                 }
1584 
1585                 If (PM5L)
1586                 {
1587                     CreateDWordField (BUF0, \_SB.PCI0._Y08._LEN, E0LN)  // _LEN: Length
1588                     E0LN = Zero
1589                 }
1590 
1591                 If (PM5L == One)
1592                 {
1593                     CreateBitField (BUF0, \_SB.PCI0._Y08._RW, E0RW)  // _RW_: Read-Write Status
1594                     E0RW = Zero
1595                 }
1596 
1597                 If (PM5H)
1598                 {
1599                     CreateDWordField (BUF0, \_SB.PCI0._Y09._LEN, E4LN)  // _LEN: Length
1600                     E4LN = Zero
1601                 }
1602 
1603                 If (PM5H == One)
1604                 {
1605                     CreateBitField (BUF0, \_SB.PCI0._Y09._RW, E4RW)  // _RW_: Read-Write Status
1606                     E4RW = Zero
1607                 }
1608 
1609                 If (PM6L)
1610                 {
1611                     CreateDWordField (BUF0, \_SB.PCI0._Y0A._LEN, E8LN)  // _LEN: Length
1612                     E8LN = Zero
1613                 }
1614 
1615                 If (PM6L == One)
1616                 {
1617                     CreateBitField (BUF0, \_SB.PCI0._Y0A._RW, E8RW)  // _RW_: Read-Write Status
1618                     E8RW = Zero
1619                 }
1620 
1621                 If (PM6H)
1622                 {
1623                     CreateDWordField (BUF0, \_SB.PCI0._Y0B._LEN, ECLN)  // _LEN: Length
1624                     ECLN = Zero
1625                 }
1626 
1627                 If (PM6H == One)
1628                 {
1629                     CreateBitField (BUF0, \_SB.PCI0._Y0B._RW, ECRW)  // _RW_: Read-Write Status
1630                     ECRW = Zero
1631                 }
1632 
1633                 If (PM0H)
1634                 {
1635                     CreateDWordField (BUF0, \_SB.PCI0._Y0C._LEN, F0LN)  // _LEN: Length
1636                     F0LN = Zero
1637                 }
1638 
1639                 If (PM0H == One)
1640                 {
1641                     CreateBitField (BUF0, \_SB.PCI0._Y0C._RW, F0RW)  // _RW_: Read-Write Status
1642                     F0RW = Zero
1643                 }
1644 
1645                 CreateDWordField (BUF0, \_SB.PCI0._Y0D._MIN, M1MN)  // _MIN: Minimum Base Address
1646                 CreateDWordField (BUF0, \_SB.PCI0._Y0D._MAX, M1MX)  // _MAX: Maximum Base Address
1647                 CreateDWordField (BUF0, \_SB.PCI0._Y0D._LEN, M1LN)  // _LEN: Length
1648                 M1MN = (TOUD << 0x1B)
1649                 M1LN = ((M1MX - M1MN) + One)
1650                 Return (BUF0) /* \_SB_.PCI0.BUF0 */
1651             }
1652 
1653             Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
1654             {
1655                 If (GPIC == Zero)
1656                 {
1657                     Return (Package (0x0F)
1658                     {
1659                         Package (0x04)
1660                         {
1661                             0x0001FFFF, 
1662                             Zero, 
1663                             ^LPC.LNKA, 
1664                             Zero
1665                         }, 
1666 
1667                         Package (0x04)
1668                         {
1669                             0x0002FFFF, 
1670                             Zero, 
1671                             ^LPC.LNKA, 
1672                             Zero
1673                         }, 
1674 
1675                         Package (0x04)
1676                         {
1677                             0x001BFFFF, 
1678                             Zero, 
1679                             ^LPC.LNKG, 
1680                             Zero
1681                         }, 
1682 
1683                         Package (0x04)
1684                         {
1685                             0x001CFFFF, 
1686                             Zero, 
1687                             ^LPC.LNKA, 
1688                             Zero
1689                         }, 
1690 
1691                         Package (0x04)
1692                         {
1693                             0x001CFFFF, 
1694                             One, 
1695                             ^LPC.LNKB, 
1696                             Zero
1697                         }, 
1698 
1699                         Package (0x04)
1700                         {
1701                             0x001CFFFF, 
1702                             0x02, 
1703                             ^LPC.LNKC, 
1704                             Zero
1705                         }, 
1706 
1707                         Package (0x04)
1708                         {
1709                             0x001CFFFF, 
1710                             0x03, 
1711                             ^LPC.LNKD, 
1712                             Zero
1713                         }, 
1714 
1715                         Package (0x04)
1716                         {
1717                             0x001DFFFF, 
1718                             Zero, 
1719                             ^LPC.LNKA, 
1720                             Zero
1721                         }, 
1722 
1723                         Package (0x04)
1724                         {
1725                             0x001DFFFF, 
1726                             One, 
1727                             ^LPC.LNKB, 
1728                             Zero
1729                         }, 
1730 
1731                         Package (0x04)
1732                         {
1733                             0x001DFFFF, 
1734                             0x02, 
1735                             ^LPC.LNKC, 
1736                             Zero
1737                         }, 
1738 
1739                         Package (0x04)
1740                         {
1741                             0x001DFFFF, 
1742                             0x03, 
1743                             ^LPC.LNKD, 
1744                             Zero
1745                         }, 
1746 
1747                         Package (0x04)
1748                         {
1749                             0x001EFFFF, 
1750                             Zero, 
1751                             ^LPC.LNKA, 
1752                             Zero
1753                         }, 
1754 
1755                         Package (0x04)
1756                         {
1757                             0x001EFFFF, 
1758                             One, 
1759                             ^LPC.LNKB, 
1760                             Zero
1761                         }, 
1762 
1763                         Package (0x04)
1764                         {
1765                             0x001FFFFF, 
1766                             Zero, 
1767                             ^LPC.LNKA, 
1768                             Zero
1769                         }, 
1770 
1771                         Package (0x04)
1772                         {
1773                             0x001FFFFF, 
1774                             One, 
1775                             ^LPC.LNKB, 
1776                             Zero
1777                         }
1778                     })
1779                 }
1780                 Else
1781                 {
1782                     Return (Package (0x0F)
1783                     {
1784                         Package (0x04)
1785                         {
1786                             0x0001FFFF, 
1787                             Zero, 
1788                             Zero, 
1789                             0x10
1790                         }, 
1791 
1792                         Package (0x04)
1793                         {
1794                             0x0002FFFF, 
1795                             Zero, 
1796                             Zero, 
1797                             0x10
1798                         }, 
1799 
1800                         Package (0x04)
1801                         {
1802                             0x001BFFFF, 
1803                             Zero, 
1804                             Zero, 
1805                             0x10
1806                         }, 
1807 
1808                         Package (0x04)
1809                         {
1810                             0x001CFFFF, 
1811                             Zero, 
1812                             Zero, 
1813                             0x10
1814                         }, 
1815 
1816                         Package (0x04)
1817                         {
1818                             0x001CFFFF, 
1819                             One, 
1820                             Zero, 
1821                             0x11
1822                         }, 
1823 
1824                         Package (0x04)
1825                         {
1826                             0x001CFFFF, 
1827                             0x02, 
1828                             Zero, 
1829                             0x12
1830                         }, 
1831 
1832                         Package (0x04)
1833                         {
1834                             0x001CFFFF, 
1835                             0x03, 
1836                             Zero, 
1837                             0x13
1838                         }, 
1839 
1840                         Package (0x04)
1841                         {
1842                             0x001DFFFF, 
1843                             Zero, 
1844                             Zero, 
1845                             0x10
1846                         }, 
1847 
1848                         Package (0x04)
1849                         {
1850                             0x001DFFFF, 
1851                             One, 
1852                             Zero, 
1853                             0x11
1854                         }, 
1855 
1856                         Package (0x04)
1857                         {
1858                             0x001DFFFF, 
1859                             0x02, 
1860                             Zero, 
1861                             0x12
1862                         }, 
1863 
1864                         Package (0x04)
1865                         {
1866                             0x001DFFFF, 
1867                             0x03, 
1868                             Zero, 
1869                             0x13
1870                         }, 
1871 
1872                         Package (0x04)
1873                         {
1874                             0x001EFFFF, 
1875                             Zero, 
1876                             Zero, 
1877                             0x10
1878                         }, 
1879 
1880                         Package (0x04)
1881                         {
1882                             0x001EFFFF, 
1883                             One, 
1884                             Zero, 
1885                             0x11
1886                         }, 
1887 
1888                         Package (0x04)
1889                         {
1890                             0x001FFFFF, 
1891                             Zero, 
1892                             Zero, 
1893                             0x10
1894                         }, 
1895 
1896                         Package (0x04)
1897                         {
1898                             0x001FFFFF, 
1899                             One, 
1900                             Zero, 
1901                             0x11
1902                         }
1903                     })
1904                 }
1905             }
1906 
1907             Device (P32)
1908             {
1909                 Name (_ADR, 0x001E0000)  // _ADR: Address
1910                 Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
1911                 {
1912                     If (WKPM == One)
1913                     {
1914                         Return (Package (0x02)
1915                         {
1916                             0x0B, 
1917                             0x04
1918                         })
1919                     }
1920                     Else
1921                     {
1922                         Return (Package (0x02)
1923                         {
1924                             0x0B, 
1925                             Zero
1926                         })
1927                     }
1928                 }
1929 
1930                 Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
1931                 {
1932                     If (GPIC == Zero)
1933                     {
1934                         Return (Package (0x09)
1935                         {
1936                             Package (0x04)
1937                             {
1938                                 0x0002FFFF, 
1939                                 Zero, 
1940                                 ^^LPC.LNKC, 
1941                                 Zero
1942                             }, 
1943 
1944                             Package (0x04)
1945                             {
1946                                 0x0002FFFF, 
1947                                 One, 
1948                                 ^^LPC.LNKD, 
1949                                 Zero
1950                             }, 
1951 
1952                             Package (0x04)
1953                             {
1954                                 0x0002FFFF, 
1955                                 0x02, 
1956                                 ^^LPC.LNKB, 
1957                                 Zero
1958                             }, 
1959 
1960                             Package (0x04)
1961                             {
1962                                 0x0002FFFF, 
1963                                 0x03, 
1964                                 ^^LPC.LNKA, 
1965                                 Zero
1966                             }, 
1967 
1968                             Package (0x04)
1969                             {
1970                                 0x0003FFFF, 
1971                                 Zero, 
1972                                 ^^LPC.LNKD, 
1973                                 Zero
1974                             }, 
1975 
1976                             Package (0x04)
1977                             {
1978                                 0x0003FFFF, 
1979                                 One, 
1980                                 ^^LPC.LNKC, 
1981                                 Zero
1982                             }, 
1983 
1984                             Package (0x04)
1985                             {
1986                                 0x0003FFFF, 
1987                                 0x02, 
1988                                 ^^LPC.LNKF, 
1989                                 Zero
1990                             }, 
1991 
1992                             Package (0x04)
1993                             {
1994                                 0x0003FFFF, 
1995                                 0x03, 
1996                                 ^^LPC.LNKG, 
1997                                 Zero
1998                             }, 
1999 
2000                             Package (0x04)
2001                             {
2002                                 0x0008FFFF, 
2003                                 Zero, 
2004                                 ^^LPC.LNKE, 
2005                                 Zero
2006                             }
2007                         })
2008                     }
2009                     Else
2010                     {
2011                         Return (Package (0x09)
2012                         {
2013                             Package (0x04)
2014                             {
2015                                 0x0002FFFF, 
2016                                 Zero, 
2017                                 Zero, 
2018                                 0x12
2019                             }, 
2020 
2021                             Package (0x04)
2022                             {
2023                                 0x0002FFFF, 
2024                                 One, 
2025                                 Zero, 
2026                                 0x13
2027                             }, 
2028 
2029                             Package (0x04)
2030                             {
2031                                 0x0002FFFF, 
2032                                 0x02, 
2033                                 Zero, 
2034                                 0x11
2035                             }, 
2036 
2037                             Package (0x04)
2038                             {
2039                                 0x0002FFFF, 
2040                                 0x03, 
2041                                 Zero, 
2042                                 0x10
2043                             }, 
2044 
2045                             Package (0x04)
2046                             {
2047                                 0x0003FFFF, 
2048                                 Zero, 
2049                                 Zero, 
2050                                 0x13
2051                             }, 
2052 
2053                             Package (0x04)
2054                             {
2055                                 0x0003FFFF, 
2056                                 One, 
2057                                 Zero, 
2058                                 0x12
2059                             }, 
2060 
2061                             Package (0x04)
2062                             {
2063                                 0x0003FFFF, 
2064                                 0x02, 
2065                                 Zero, 
2066                                 0x15
2067                             }, 
2068 
2069                             Package (0x04)
2070                             {
2071                                 0x0003FFFF, 
2072                                 0x03, 
2073                                 Zero, 
2074                                 0x16
2075                             }, 
2076 
2077                             Package (0x04)
2078                             {
2079                                 0x0008FFFF, 
2080                                 Zero, 
2081                                 Zero, 
2082                                 0x14
2083                             }
2084                         })
2085                     }
2086                 }
2087             }
2088 
2089             Device (LPC)
2090             {
2091                 Name (_ADR, 0x001F0000)  // _ADR: Address
2092                 OperationRegion (PRR0, PCI_Config, 0x60, 0x04)
2093                 Field (PRR0, AnyAcc, NoLock, Preserve)
2094                 {
2095                     PIRA,   8, 
2096                     PIRB,   8, 
2097                     PIRC,   8, 
2098                     PIRD,   8
2099                 }
2100 
2101                 OperationRegion (PRR1, PCI_Config, 0x68, 0x04)
2102                 Field (PRR1, AnyAcc, NoLock, Preserve)
2103                 {
2104                     PIRE,   8, 
2105                     PIRF,   8, 
2106                     PIRG,   8, 
2107                     PIRH,   8
2108                 }
2109 
2110                 OperationRegion (PRR2, PCI_Config, 0x80, 0x02)
2111                 Field (PRR2, AnyAcc, NoLock, Preserve)
2112                 {
2113                     IODL,   8, 
2114                     IODH,   8
2115                 }
2116 
2117                 OperationRegion (BRKE, PCI_Config, 0xAA, 0x02)
2118                 Field (BRKE, AnyAcc, NoLock, Preserve)
2119                 {
2120                     S4TM,   8, 
2121                     PCEE,   8
2122                 }
2123 
2124                 Device (LNKA)
2125                 {
2126                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2127                     Name (_UID, One)  // _UID: Unique ID
2128                     Method (_STA, 0, NotSerialized)  // _STA: Status
2129                     {
2130                         If (PIRA & 0x80)
2131                         {
2132                             Return (0x09)
2133                         }
2134                         Else
2135                         {
2136                             Return (0x0B)
2137                         }
2138                     }
2139 
2140                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2141                     {
2142                         PIRA |= 0x80
2143                     }
2144 
2145                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2146                     {
2147                         Name (BUF0, ResourceTemplate ()
2148                         {
2149                             IRQ (Level, ActiveLow, Shared, )
2150                                 {0}
2151                         })
2152                         CreateWordField (BUF0, One, IRQW)
2153                         If (PIRA & 0x80)
2154                         {
2155                             Local0 = Zero
2156                         }
2157                         Else
2158                         {
2159                             Local0 = One
2160                         }
2161 
2162                         IRQW = (Local0 << (PIRA & 0x0F))
2163                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKA._CRS.BUF0 */
2164                     }
2165 
2166                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2167                     {
2168                         IRQ (Level, ActiveLow, Shared, )
2169                             {3,4,5,7,9,10,11,12}
2170                     })
2171                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2172                     {
2173                         CreateWordField (Arg0, One, IRQW)
2174                         FindSetRightBit (IRQW, Local0)
2175                         If (IRQW != Zero)
2176                         {
2177                             Local0 &= 0x7F
2178                             Local0--
2179                         }
2180                         Else
2181                         {
2182                             Local0 |= 0x80
2183                         }
2184 
2185                         PIRA = Local0
2186                     }
2187                 }
2188 
2189                 Device (LNKB)
2190                 {
2191                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2192                     Name (_UID, 0x02)  // _UID: Unique ID
2193                     Method (_STA, 0, NotSerialized)  // _STA: Status
2194                     {
2195                         If (PIRB & 0x80)
2196                         {
2197                             Return (0x09)
2198                         }
2199                         Else
2200                         {
2201                             Return (0x0B)
2202                         }
2203                     }
2204 
2205                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2206                     {
2207                         PIRB |= 0x80
2208                     }
2209 
2210                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2211                     {
2212                         Name (BUF0, ResourceTemplate ()
2213                         {
2214                             IRQ (Level, ActiveLow, Shared, )
2215                                 {0}
2216                         })
2217                         CreateWordField (BUF0, One, IRQW)
2218                         If (PIRB & 0x80)
2219                         {
2220                             Local0 = Zero
2221                         }
2222                         Else
2223                         {
2224                             Local0 = One
2225                         }
2226 
2227                         IRQW = (Local0 << (PIRB & 0x0F))
2228                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKB._CRS.BUF0 */
2229                     }
2230 
2231                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2232                     {
2233                         IRQ (Level, ActiveLow, Shared, )
2234                             {3,4,5,7,9,10,11,12}
2235                     })
2236                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2237                     {
2238                         CreateWordField (Arg0, One, IRQW)
2239                         FindSetRightBit (IRQW, Local0)
2240                         If (IRQW != Zero)
2241                         {
2242                             Local0 &= 0x7F
2243                             Local0--
2244                         }
2245                         Else
2246                         {
2247                             Local0 |= 0x80
2248                         }
2249 
2250                         PIRB = Local0
2251                     }
2252                 }
2253 
2254                 Device (LNKC)
2255                 {
2256                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2257                     Name (_UID, 0x03)  // _UID: Unique ID
2258                     Method (_STA, 0, NotSerialized)  // _STA: Status
2259                     {
2260                         If (PIRC & 0x80)
2261                         {
2262                             Return (0x09)
2263                         }
2264                         Else
2265                         {
2266                             Return (0x0B)
2267                         }
2268                     }
2269 
2270                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2271                     {
2272                         PIRC |= 0x80
2273                     }
2274 
2275                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2276                     {
2277                         Name (BUF0, ResourceTemplate ()
2278                         {
2279                             IRQ (Level, ActiveLow, Shared, )
2280                                 {0}
2281                         })
2282                         CreateWordField (BUF0, One, IRQW)
2283                         If (PIRC & 0x80)
2284                         {
2285                             Local0 = Zero
2286                         }
2287                         Else
2288                         {
2289                             Local0 = One
2290                         }
2291 
2292                         IRQW = (Local0 << (PIRC & 0x0F))
2293                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKC._CRS.BUF0 */
2294                     }
2295 
2296                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2297                     {
2298                         IRQ (Level, ActiveLow, Shared, )
2299                             {3,4,5,7,9,10,11,12}
2300                     })
2301                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2302                     {
2303                         CreateWordField (Arg0, One, IRQW)
2304                         FindSetRightBit (IRQW, Local0)
2305                         If (IRQW != Zero)
2306                         {
2307                             Local0 &= 0x7F
2308                             Local0--
2309                         }
2310                         Else
2311                         {
2312                             Local0 |= 0x80
2313                         }
2314 
2315                         PIRC = Local0
2316                     }
2317                 }
2318 
2319                 Device (LNKD)
2320                 {
2321                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2322                     Name (_UID, 0x04)  // _UID: Unique ID
2323                     Method (_STA, 0, NotSerialized)  // _STA: Status
2324                     {
2325                         If (PIRD & 0x80)
2326                         {
2327                             Return (0x09)
2328                         }
2329                         Else
2330                         {
2331                             Return (0x0B)
2332                         }
2333                     }
2334 
2335                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2336                     {
2337                         PIRD |= 0x80
2338                     }
2339 
2340                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2341                     {
2342                         Name (BUF0, ResourceTemplate ()
2343                         {
2344                             IRQ (Level, ActiveLow, Shared, )
2345                                 {0}
2346                         })
2347                         CreateWordField (BUF0, One, IRQW)
2348                         If (PIRD & 0x80)
2349                         {
2350                             Local0 = Zero
2351                         }
2352                         Else
2353                         {
2354                             Local0 = One
2355                         }
2356 
2357                         IRQW = (Local0 << (PIRD & 0x0F))
2358                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKD._CRS.BUF0 */
2359                     }
2360 
2361                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2362                     {
2363                         IRQ (Level, ActiveLow, Shared, )
2364                             {3,4,5,7,9,10,11,12}
2365                     })
2366                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2367                     {
2368                         CreateWordField (Arg0, One, IRQW)
2369                         FindSetRightBit (IRQW, Local0)
2370                         If (IRQW != Zero)
2371                         {
2372                             Local0 &= 0x7F
2373                             Local0--
2374                         }
2375                         Else
2376                         {
2377                             Local0 |= 0x80
2378                         }
2379 
2380                         PIRD = Local0
2381                     }
2382                 }
2383 
2384                 Device (LNKE)
2385                 {
2386                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2387                     Name (_UID, 0x05)  // _UID: Unique ID
2388                     Method (_STA, 0, NotSerialized)  // _STA: Status
2389                     {
2390                         If (PIRE & 0x80)
2391                         {
2392                             Return (0x09)
2393                         }
2394                         Else
2395                         {
2396                             Return (0x0B)
2397                         }
2398                     }
2399 
2400                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2401                     {
2402                         PIRE |= 0x80
2403                     }
2404 
2405                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2406                     {
2407                         Name (BUF0, ResourceTemplate ()
2408                         {
2409                             IRQ (Level, ActiveLow, Shared, )
2410                                 {0}
2411                         })
2412                         CreateWordField (BUF0, One, IRQW)
2413                         If (PIRE & 0x80)
2414                         {
2415                             Local0 = Zero
2416                         }
2417                         Else
2418                         {
2419                             Local0 = One
2420                         }
2421 
2422                         IRQW = (Local0 << (PIRE & 0x0F))
2423                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKE._CRS.BUF0 */
2424                     }
2425 
2426                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2427                     {
2428                         IRQ (Level, ActiveLow, Shared, )
2429                             {3,4,5,7,9,10,11,12}
2430                     })
2431                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2432                     {
2433                         CreateWordField (Arg0, One, IRQW)
2434                         FindSetRightBit (IRQW, Local0)
2435                         If (IRQW != Zero)
2436                         {
2437                             Local0 &= 0x7F
2438                             Local0--
2439                         }
2440                         Else
2441                         {
2442                             Local0 |= 0x80
2443                         }
2444 
2445                         PIRE = Local0
2446                     }
2447                 }
2448 
2449                 Device (LNKF)
2450                 {
2451                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2452                     Name (_UID, 0x06)  // _UID: Unique ID
2453                     Method (_STA, 0, NotSerialized)  // _STA: Status
2454                     {
2455                         If (PIRF & 0x80)
2456                         {
2457                             Return (0x09)
2458                         }
2459                         Else
2460                         {
2461                             Return (0x0B)
2462                         }
2463                     }
2464 
2465                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2466                     {
2467                         PIRF |= 0x80
2468                     }
2469 
2470                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2471                     {
2472                         Name (BUF0, ResourceTemplate ()
2473                         {
2474                             IRQ (Level, ActiveLow, Shared, )
2475                                 {0}
2476                         })
2477                         CreateWordField (BUF0, One, IRQW)
2478                         If (PIRF & 0x80)
2479                         {
2480                             Local0 = Zero
2481                         }
2482                         Else
2483                         {
2484                             Local0 = One
2485                         }
2486 
2487                         IRQW = (Local0 << (PIRF & 0x0F))
2488                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKF._CRS.BUF0 */
2489                     }
2490 
2491                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2492                     {
2493                         IRQ (Level, ActiveLow, Shared, )
2494                             {3,4,5,7,9,10,11,12}
2495                     })
2496                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2497                     {
2498                         CreateWordField (Arg0, One, IRQW)
2499                         FindSetRightBit (IRQW, Local0)
2500                         If (IRQW != Zero)
2501                         {
2502                             Local0 &= 0x7F
2503                             Local0--
2504                         }
2505                         Else
2506                         {
2507                             Local0 |= 0x80
2508                         }
2509 
2510                         PIRF = Local0
2511                     }
2512                 }
2513 
2514                 Device (LNKG)
2515                 {
2516                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2517                     Name (_UID, 0x07)  // _UID: Unique ID
2518                     Method (_STA, 0, NotSerialized)  // _STA: Status
2519                     {
2520                         If (PIRG & 0x80)
2521                         {
2522                             Return (0x09)
2523                         }
2524                         Else
2525                         {
2526                             Return (0x0B)
2527                         }
2528                     }
2529 
2530                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2531                     {
2532                         PIRG |= 0x80
2533                     }
2534 
2535                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2536                     {
2537                         Name (BUF0, ResourceTemplate ()
2538                         {
2539                             IRQ (Level, ActiveLow, Shared, )
2540                                 {0}
2541                         })
2542                         CreateWordField (BUF0, One, IRQW)
2543                         If (PIRG & 0x80)
2544                         {
2545                             Local0 = Zero
2546                         }
2547                         Else
2548                         {
2549                             Local0 = One
2550                         }
2551 
2552                         IRQW = (Local0 << (PIRG & 0x0F))
2553                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKG._CRS.BUF0 */
2554                     }
2555 
2556                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2557                     {
2558                         IRQ (Level, ActiveLow, Shared, )
2559                             {3,4,5,7,9,10,11,12}
2560                     })
2561                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2562                     {
2563                         CreateWordField (Arg0, One, IRQW)
2564                         FindSetRightBit (IRQW, Local0)
2565                         If (IRQW != Zero)
2566                         {
2567                             Local0 &= 0x7F
2568                             Local0--
2569                         }
2570                         Else
2571                         {
2572                             Local0 |= 0x80
2573                         }
2574 
2575                         PIRG = Local0
2576                     }
2577                 }
2578 
2579                 Device (LNKH)
2580                 {
2581                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2582                     Name (_UID, 0x08)  // _UID: Unique ID
2583                     Method (_STA, 0, NotSerialized)  // _STA: Status
2584                     {
2585                         If (PIRH & 0x80)
2586                         {
2587                             Return (0x09)
2588                         }
2589                         Else
2590                         {
2591                             Return (0x0B)
2592                         }
2593                     }
2594 
2595                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2596                     {
2597                         PIRH |= 0x80
2598                     }
2599 
2600                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2601                     {
2602                         Name (BUF0, ResourceTemplate ()
2603                         {
2604                             IRQ (Level, ActiveLow, Shared, )
2605                                 {0}
2606                         })
2607                         CreateWordField (BUF0, One, IRQW)
2608                         If (PIRH & 0x80)
2609                         {
2610                             Local0 = Zero
2611                         }
2612                         Else
2613                         {
2614                             Local0 = One
2615                         }
2616 
2617                         IRQW = (Local0 << (PIRH & 0x0F))
2618                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKH._CRS.BUF0 */
2619                     }
2620 
2621                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2622                     {
2623                         IRQ (Level, ActiveLow, Shared, )
2624                             {3,4,5,7,9,10,11,12}
2625                     })
2626                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2627                     {
2628                         CreateWordField (Arg0, One, IRQW)
2629                         FindSetRightBit (IRQW, Local0)
2630                         If (IRQW != Zero)
2631                         {
2632                             Local0 &= 0x7F
2633                             Local0--
2634                         }
2635                         Else
2636                         {
2637                             Local0 |= 0x80
2638                         }
2639 
2640                         PIRH = Local0
2641                     }
2642                 }
2643 
2644                 Device (SYSR)
2645                 {
2646                     Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
2647                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
2648                     {
2649                         IO (Decode16,
2650                             0x002E,             // Range Minimum
2651                             0x002E,             // Range Maximum
2652                             0x01,               // Alignment
2653                             0x02,               // Length
2654                             )
2655                         IO (Decode16,
2656                             0x0068,             // Range Minimum
2657                             0x0068,             // Range Maximum
2658                             0x01,               // Alignment
2659                             0x08,               // Length
2660                             )
2661                         IO (Decode16,
2662                             0x0200,             // Range Minimum
2663                             0x0200,             // Range Maximum
2664                             0x01,               // Alignment
2665                             0x10,               // Length
2666                             )
2667                         IO (Decode16,
2668                             0x164E,             // Range Minimum
2669                             0x164E,             // Range Maximum
2670                             0x01,               // Alignment
2671                             0x02,               // Length
2672                             )
2673                         IO (Decode16,
2674                             0x0061,             // Range Minimum
2675                             0x0061,             // Range Maximum
2676                             0x01,               // Alignment
2677                             0x01,               // Length
2678                             )
2679                         IO (Decode16,
2680                             0x0070,             // Range Minimum
2681                             0x0070,             // Range Maximum
2682                             0x01,               // Alignment
2683                             0x01,               // Length
2684                             )
2685                         IO (Decode16,
2686                             0x0080,             // Range Minimum
2687                             0x0080,             // Range Maximum
2688                             0x01,               // Alignment
2689                             0x01,               // Length
2690                             )
2691                         IO (Decode16,
2692                             0x0092,             // Range Minimum
2693                             0x0092,             // Range Maximum
2694                             0x01,               // Alignment
2695                             0x01,               // Length
2696                             )
2697                         IO (Decode16,
2698                             0x00B2,             // Range Minimum
2699                             0x00B2,             // Range Maximum
2700                             0x01,               // Alignment
2701                             0x02,               // Length
2702                             )
2703                         IO (Decode16,
2704                             0x0063,             // Range Minimum
2705                             0x0063,             // Range Maximum
2706                             0x01,               // Alignment
2707                             0x01,               // Length
2708                             )
2709                         IO (Decode16,
2710                             0x0065,             // Range Minimum
2711                             0x0065,             // Range Maximum
2712                             0x01,               // Alignment
2713                             0x01,               // Length
2714                             )
2715                         IO (Decode16,
2716                             0x0067,             // Range Minimum
2717                             0x0067,             // Range Maximum
2718                             0x01,               // Alignment
2719                             0x01,               // Length
2720                             )
2721                         IO (Decode16,
2722                             0x0600,             // Range Minimum
2723                             0x0600,             // Range Maximum
2724                             0x01,               // Alignment
2725                             0x10,               // Length
2726                             )
2727                         IO (Decode16,
2728                             0x0610,             // Range Minimum
2729                             0x0610,             // Range Maximum
2730                             0x01,               // Alignment
2731                             0x01,               // Length
2732                             )
2733                         IO (Decode16,
2734                             0x0800,             // Range Minimum
2735                             0x0800,             // Range Maximum
2736                             0x01,               // Alignment
2737                             0x10,               // Length
2738                             )
2739                         IO (Decode16,
2740                             0x0400,             // Range Minimum
2741                             0x0400,             // Range Maximum
2742                             0x01,               // Alignment
2743                             0x80,               // Length
2744                             )
2745                         IO (Decode16,
2746                             0x0500,             // Range Minimum
2747                             0x0500,             // Range Maximum
2748                             0x01,               // Alignment
2749                             0x40,               // Length
2750                             )
2751                         Memory32Fixed (ReadWrite,
2752                             0xE0000000,         // Address Base
2753                             0x10000000,         // Address Length
2754                             )
2755                         Memory32Fixed (ReadWrite,
2756                             0xFED1C000,         // Address Base
2757                             0x00004000,         // Address Length
2758                             )
2759                         Memory32Fixed (ReadWrite,
2760                             0xFED14000,         // Address Base
2761                             0x00004000,         // Address Length
2762                             )
2763                         Memory32Fixed (ReadWrite,
2764                             0xFED18000,         // Address Base
2765                             0x00001000,         // Address Length
2766                             )
2767                         Memory32Fixed (ReadWrite,
2768                             0xFED19000,         // Address Base
2769                             0x00001000,         // Address Length
2770                             )
2771                         Memory32Fixed (ReadWrite,
2772                             0xFEC00000,         // Address Base
2773                             0x00001000,         // Address Length
2774                             )
2775                         Memory32Fixed (ReadWrite,
2776                             0xFEE00000,         // Address Base
2777                             0x00001000,         // Address Length
2778                             )
2779                     })
2780                 }
2781 
2782                 Device (DMAC)
2783                 {
2784                     Name (_HID, EisaId ("PNP0200") /* PC-class DMA Controller */)  // _HID: Hardware ID
2785                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
2786                     {
2787                         IO (Decode16,
2788                             0x0000,             // Range Minimum
2789                             0x0000,             // Range Maximum
2790                             0x01,               // Alignment
2791                             0x20,               // Length
2792                             )
2793                         IO (Decode16,
2794                             0x0081,             // Range Minimum
2795                             0x0081,             // Range Maximum
2796                             0x01,               // Alignment
2797                             0x11,               // Length
2798                             )
2799                         IO (Decode16,
2800                             0x0093,             // Range Minimum
2801                             0x0093,             // Range Maximum
2802                             0x01,               // Alignment
2803                             0x0D,               // Length
2804                             )
2805                         IO (Decode16,
2806                             0x00C0,             // Range Minimum
2807                             0x00C0,             // Range Maximum
2808                             0x01,               // Alignment
2809                             0x20,               // Length
2810                             )
2811                         DMA (Compatibility, NotBusMaster, Transfer8_16, )
2812                             {4}
2813                     })
2814                 }
2815 
2816                 Device (RTC)
2817                 {
2818                     Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
2819                     Name (BUF0, ResourceTemplate ()
2820                     {
2821                         IO (Decode16,
2822                             0x0070,             // Range Minimum
2823                             0x0070,             // Range Maximum
2824                             0x01,               // Alignment
2825                             0x08,               // Length
2826                             )
2827                     })
2828                     Name (BUF1, ResourceTemplate ()
2829                     {
2830                         IO (Decode16,
2831                             0x0070,             // Range Minimum
2832                             0x0070,             // Range Maximum
2833                             0x01,               // Alignment
2834                             0x08,               // Length
2835                             )
2836                         IRQNoFlags ()
2837                             {8}
2838                     })
2839                     Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
2840                     {
2841                         If (HPTS == One)
2842                         {
2843                             Return (BUF0) /* \_SB_.PCI0.LPC_.RTC_.BUF0 */
2844                         }
2845                         Else
2846                         {
2847                             Return (BUF1) /* \_SB_.PCI0.LPC_.RTC_.BUF1 */
2848                         }
2849                     }
2850                 }
2851 
2852                 Device (HPET)
2853                 {
2854                     Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
2855                     Name (BUF0, ResourceTemplate ()
2856                     {
2857                         IRQNoFlags ()
2858                             {0}
2859                         IRQNoFlags ()
2860                             {8}
2861                         Memory32Fixed (ReadOnly,
2862                             0xFED00000,         // Address Base
2863                             0x00000400,         // Address Length
2864                             _Y0E)
2865                     })
2866                     Method (_STA, 0, NotSerialized)  // _STA: Status
2867                     {
2868                         If (OSYS >= 0x07D1)
2869                         {
2870                             If (HPTS == One)
2871                             {
2872                                 Return (0x0F)
2873                             }
2874                             Else
2875                             {
2876                                 Return (Zero)
2877                             }
2878                         }
2879                         ElseIf (HPTS)
2880                         {
2881                             Return (0x0B)
2882                         }
2883                         Else
2884                         {
2885                             Return (Zero)
2886                         }
2887                     }
2888 
2889                     Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
2890                     {
2891                         If (HPTS == One)
2892                         {
2893                             CreateDWordField (BUF0, \_SB.PCI0.LPC.HPET._Y0E._BAS, HPT0)  // _BAS: Base Address
2894                             If (HPTA == One)
2895                             {
2896                                 HPT0 = 0xFED01000
2897                             }
2898 
2899                             If (HPTA == 0x02)
2900                             {
2901                                 HPT0 = 0xFED02000
2902                             }
2903 
2904                             If (HPTA == 0x03)
2905                             {
2906                                 HPT0 = 0xFED03000
2907                             }
2908                         }
2909 
2910                         Return (BUF0) /* \_SB_.PCI0.LPC_.HPET.BUF0 */
2911                     }
2912                 }
2913 
2914                 Device (PIC)
2915                 {
2916                     Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */)  // _HID: Hardware ID
2917                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
2918                     {
2919                         IO (Decode16,
2920                             0x0020,             // Range Minimum
2921                             0x0020,             // Range Maximum
2922                             0x01,               // Alignment
2923                             0x02,               // Length
2924                             )
2925                         IO (Decode16,
2926                             0x0024,             // Range Minimum
2927                             0x0024,             // Range Maximum
2928                             0x01,               // Alignment
2929                             0x02,               // Length
2930                             )
2931                         IO (Decode16,
2932                             0x0028,             // Range Minimum
2933                             0x0028,             // Range Maximum
2934                             0x01,               // Alignment
2935                             0x02,               // Length
2936                             )
2937                         IO (Decode16,
2938                             0x002C,             // Range Minimum
2939                             0x002C,             // Range Maximum
2940                             0x01,               // Alignment
2941                             0x02,               // Length
2942                             )
2943                         IO (Decode16,
2944                             0x0030,             // Range Minimum
2945                             0x0030,             // Range Maximum
2946                             0x01,               // Alignment
2947                             0x02,               // Length
2948                             )
2949                         IO (Decode16,
2950                             0x0034,             // Range Minimum
2951                             0x0034,             // Range Maximum
2952                             0x01,               // Alignment
2953                             0x02,               // Length
2954                             )
2955                         IO (Decode16,
2956                             0x0038,             // Range Minimum
2957                             0x0038,             // Range Maximum
2958                             0x01,               // Alignment
2959                             0x02,               // Length
2960                             )
2961                         IO (Decode16,
2962                             0x003C,             // Range Minimum
2963                             0x003C,             // Range Maximum
2964                             0x01,               // Alignment
2965                             0x02,               // Length
2966                             )
2967                         IO (Decode16,
2968                             0x00A0,             // Range Minimum
2969                             0x00A0,             // Range Maximum
2970                             0x01,               // Alignment
2971                             0x02,               // Length
2972                             )
2973                         IO (Decode16,
2974                             0x00A4,             // Range Minimum
2975                             0x00A4,             // Range Maximum
2976                             0x01,               // Alignment
2977                             0x02,               // Length
2978                             )
2979                         IO (Decode16,
2980                             0x00A8,             // Range Minimum
2981                             0x00A8,             // Range Maximum
2982                             0x01,               // Alignment
2983                             0x02,               // Length
2984                             )
2985                         IO (Decode16,
2986                             0x00AC,             // Range Minimum
2987                             0x00AC,             // Range Maximum
2988                             0x01,               // Alignment
2989                             0x02,               // Length
2990                             )
2991                         IO (Decode16,
2992                             0x00B0,             // Range Minimum
2993                             0x00B0,             // Range Maximum
2994                             0x01,               // Alignment
2995                             0x02,               // Length
2996                             )
2997                         IO (Decode16,
2998                             0x00B4,             // Range Minimum
2999                             0x00B4,             // Range Maximum
3000                             0x01,               // Alignment
3001                             0x02,               // Length
3002                             )
3003                         IO (Decode16,
3004                             0x00B8,             // Range Minimum
3005                             0x00B8,             // Range Maximum
3006                             0x01,               // Alignment
3007                             0x02,               // Length
3008                             )
3009                         IO (Decode16,
3010                             0x00BC,             // Range Minimum
3011                             0x00BC,             // Range Maximum
3012                             0x01,               // Alignment
3013                             0x02,               // Length
3014                             )
3015                         IO (Decode16,
3016                             0x04D0,             // Range Minimum
3017                             0x04D0,             // Range Maximum
3018                             0x01,               // Alignment
3019                             0x02,               // Length
3020                             )
3021                         IRQNoFlags ()
3022                             {2}
3023                     })
3024                 }
3025 
3026                 Device (FPU)
3027                 {
3028                     Name (_HID, EisaId ("PNP0C04") /* x87-compatible Floating Point Processing Unit */)  // _HID: Hardware ID
3029                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3030                     {
3031                         IO (Decode16,
3032                             0x00F0,             // Range Minimum
3033                             0x00F0,             // Range Maximum
3034                             0x01,               // Alignment
3035                             0x01,               // Length
3036                             )
3037                         IRQNoFlags ()
3038                             {13}
3039                     })
3040                 }
3041 
3042                 Device (TIMR)
3043                 {
3044                     Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */)  // _HID: Hardware ID
3045                     Name (BUF0, ResourceTemplate ()
3046                     {
3047                         IO (Decode16,
3048                             0x0040,             // Range Minimum
3049                             0x0040,             // Range Maximum
3050                             0x01,               // Alignment
3051                             0x04,               // Length
3052                             )
3053                         IO (Decode16,
3054                             0x0050,             // Range Minimum
3055                             0x0050,             // Range Maximum
3056                             0x10,               // Alignment
3057                             0x04,               // Length
3058                             )
3059                     })
3060                     Name (BUF1, ResourceTemplate ()
3061                     {
3062                         IO (Decode16,
3063                             0x0040,             // Range Minimum
3064                             0x0040,             // Range Maximum
3065                             0x01,               // Alignment
3066                             0x04,               // Length
3067                             )
3068                         IO (Decode16,
3069                             0x0050,             // Range Minimum
3070                             0x0050,             // Range Maximum
3071                             0x10,               // Alignment
3072                             0x04,               // Length
3073                             )
3074                         IRQNoFlags ()
3075                             {0}
3076                     })
3077                     Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
3078                     {
3079                         If (HPTS)
3080                         {
3081                             Return (BUF0) /* \_SB_.PCI0.LPC_.TIMR.BUF0 */
3082                         }
3083 
3084                         Return (BUF1) /* \_SB_.PCI0.LPC_.TIMR.BUF1 */
3085                     }
3086                 }
3087 
3088                 Device (FWHD)
3089                 {
3090                     Name (_HID, EisaId ("INT0800") /* Intel 82802 Firmware Hub Device */)  // _HID: Hardware ID
3091                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3092                     {
3093                         Memory32Fixed (ReadOnly,
3094                             0xFF800000,         // Address Base
3095                             0x00800000,         // Address Length
3096                             )
3097                     })
3098                 }
3099 
3100                 Device (KBC)
3101                 {
3102                     Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
3103                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3104                     {
3105                         IO (Decode16,
3106                             0x0060,             // Range Minimum
3107                             0x0060,             // Range Maximum
3108                             0x01,               // Alignment
3109                             0x01,               // Length
3110                             )
3111                         IO (Decode16,
3112                             0x0064,             // Range Minimum
3113                             0x0064,             // Range Maximum
3114                             0x01,               // Alignment
3115                             0x01,               // Length
3116                             )
3117                         IRQ (Edge, ActiveHigh, Exclusive, )
3118                             {1}
3119                     })
3120                     Method (_STA, 0, NotSerialized)  // _STA: Status
3121                     {
3122                         Return (0x0F)
3123                     }
3124                 }
3125 
3126                 Device (MOUE)
3127                 {
3128                     Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
3129                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3130                     {
3131                         IRQ (Edge, ActiveHigh, Exclusive, )
3132                             {12}
3133                     })
3134                     Method (_STA, 0, NotSerialized)  // _STA: Status
3135                     {
3136                         Return (0x0F)
3137                     }
3138                 }
3139 
3140                 Device (EC0)
3141                 {
3142                     Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */)  // _HID: Hardware ID
3143                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3144                     {
3145                         IO (Decode16,
3146                             0x0062,             // Range Minimum
3147                             0x0062,             // Range Maximum
3148                             0x00,               // Alignment
3149                             0x01,               // Length
3150                             )
3151                         IO (Decode16,
3152                             0x0066,             // Range Minimum
3153                             0x0066,             // Range Maximum
3154                             0x00,               // Alignment
3155                             0x01,               // Length
3156                             )
3157                     })
3158                     Name (_GPE, 0x17)  // _GPE: General Purpose Events
3159                     Name (SEL0, 0xF0)
3160                     Name (BFLG, Zero)
3161                     Method (_REG, 2, NotSerialized)  // _REG: Region Availability
3162                     {
3163                         P80H = 0x17
3164                         If (Arg0 == 0x03)
3165                         {
3166                             Local0 = Arg1
3167                             If (Local0)
3168                             {
3169                                 ECON = One
3170                             }
3171                             Else
3172                             {
3173                                 ECON = Zero
3174                             }
3175                         }
3176 
3177                         If (ECON)
3178                         {
3179                             P80H = 0x18
3180                             RG59 = 0x03
3181                             CPLE = One
3182                         }
3183                     }
3184 
3185                     OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
3186                     Field (ERAM, ByteAcc, NoLock, Preserve)
3187                     {
3188                         Offset (0x04), 
3189                         CMCM,   8, 
3190                         CMD1,   8, 
3191                         CMD2,   8, 
3192                         CMD3,   8, 
3193                         Offset (0x18), 
3194                         SMPR,   8, 
3195                         SMST,   8, 
3196                         SMAD,   8, 
3197                         SMCM,   8, 
3198                         SMD0,   256, 
3199                         BCNT,   8, 
3200                         SMAA,   8, 
3201                         BATD,   16, 
3202                         ACDF,   1, 
3203                         Offset (0x41), 
3204                             ,   5, 
3205                         FLS4,   1, 
3206                         Offset (0x42), 
3207                         Offset (0x4C), 
3208                         ARCD,   1, 
3209                             ,   3, 
3210                         DOCK,   1, 
3211                         LANC,   1, 
3212                         LID2,   1, 
3213                         CRTS,   1, 
3214                         Offset (0x51), 
3215                         BLVL,   8, 
3216                         Offset (0x53), 
3217                         DOFF,   8, 
3218                         Offset (0x58), 
3219                         CTMP,   8, 
3220                         RG59,   8, 
3221                         Offset (0x60), 
3222                         WLAN,   1, 
3223                         BLTH,   1, 
3224                         CPLE,   1, 
3225                             ,   3, 
3226                         WLST,   1, 
3227                         BLTS,   1, 
3228                             ,   2, 
3229                         ST3G,   1, 
3230                         MNST,   1, 
3231                             ,   1, 
3232                         ED3G,   1, 
3233                             ,   3, 
3234                         Offset (0x63), 
3235                         TJ85,   1, 
3236                             ,   6, 
3237                         VGAF,   1, 
3238                         Offset (0x70), 
3239                         BTMD,   8, 
3240                         MBTS,   1, 
3241                         MBTF,   1, 
3242                         BATF,   1, 
3243                             ,   3, 
3244                         MBDX,   1, 
3245                         MBAD,   1, 
3246                         MBTC,   1, 
3247                             ,   2, 
3248                         LION,   1, 
3249                         Offset (0x77), 
3250                         BA1C,   8, 
3251                         MCYC,   16, 
3252                         MTMP,   16, 
3253                         MDAT,   16, 
3254                         MCUR,   16, 
3255                         MBRM,   16, 
3256                         MBVG,   16, 
3257                         MRTF,   16, 
3258                         MMER,   8, 
3259                         BA2C,   8, 
3260                         LFC2,   16, 
3261                         BTSN,   16, 
3262                         BTDC,   16, 
3263                         BTDV,   16, 
3264                         BTMN,   8, 
3265                         Offset (0x93), 
3266                         BTST,   8, 
3267                         Offset (0x9D), 
3268                         OSTP,   1, 
3269                         Offset (0xA0), 
3270                         ABMD,   8, 
3271                         ABTS,   1, 
3272                         ABFC,   1, 
3273                             ,   4, 
3274                         ABDX,   1, 
3275                         ABAD,   1, 
3276                         ABCG,   1, 
3277                             ,   2, 
3278                         ABTP,   1, 
3279                         Offset (0xA8), 
3280                         ACYC,   16, 
3281                         ATMP,   16, 
3282                         ADAT,   16, 
3283                         ABCR,   16, 
3284                         ABRM,   16, 
3285                         ABVG,   16, 
3286                         ARTF,   16, 
3287                         AMER,   8, 
3288                         Offset (0xB8), 
3289                         AFCC,   16, 
3290                         ABSN,   16, 
3291                         ABDC,   16, 
3292                         ABDV,   16, 
3293                         ABMN,   8, 
3294                         Offset (0xD0), 
3295                         EBPL,   1, 
3296                         Offset (0xD1), 
3297                         PWRE,   1, 
3298                         Offset (0xD2), 
3299                             ,   6, 
3300                         VAUX,   1, 
3301                         Offset (0xD6), 
3302                         DBPL,   8, 
3303                         Offset (0xE0), 
3304                         DESP,   8, 
3305                         DTS3,   8, 
3306                         DE0L,   8, 
3307                         DE0H,   8, 
3308                         DE1L,   8, 
3309                         DE1H,   8, 
3310                         DE2L,   8, 
3311                         DE2H,   8, 
3312                         DE3L,   8, 
3313                         DE3H,   8, 
3314                         DE4L,   8, 
3315                         DE4H,   8
3316                     }
3317 
3318                     Method (APOL, 1, NotSerialized)
3319                     {
3320                         P80H = 0x19
3321                         DBPL = Arg0
3322                         EBPL = One
3323                     }
3324 
3325                     Method (CPOL, 1, NotSerialized)
3326                     {
3327                         P80H = 0x1A
3328                         If (PSTA == Zero)
3329                         {
3330                             If (ECON != Zero)
3331                             {
3332                                 APOL (Arg0)
3333                                 PSTA = One
3334                             }
3335                         }
3336                     }
3337 
3338                     Method (_Q20, 0, NotSerialized)  // _Qxx: EC Query
3339                     {
3340                         P80H = 0x20
3341                         If (ECON)
3342                         {
3343                             If (SMST & 0x40)
3344                             {
3345                                 Local0 = SMAA /* \_SB_.PCI0.LPC_.EC0_.SMAA */
3346                                 If (Local0 == 0x14)
3347                                 {
3348                                     SMST &= 0xBF
3349                                     Local1 = PWRE /* \_SB_.PCI0.LPC_.EC0_.PWRE */
3350                                     If (Local1)
3351                                     {
3352                                         PWRE = Zero
3353                                         BFLG = 0x12
3354                                         CPOL (One)
3355                                     }
3356                                 }
3357 
3358                                 If (Local0 == 0x16)
3359                                 {
3360                                     SMST &= 0xBF
3361                                     ^^^^BAT1.BCRI = 0x04
3362                                     Notify (BAT1, 0x80) // Status Change
3363                                 }
3364                                 Else
3365                                 {
3366                                     ^^^^BAT1.BCRI = Zero
3367                                 }
3368                             }
3369                         }
3370                     }
3371 
3372                     Method (_Q09, 0, NotSerialized)  // _Qxx: EC Query
3373                     {
3374                         P80H = 0x09
3375                         If (ECON)
3376                         {
3377                             P80H = 0x1B
3378                             PSTA = Zero
3379                             ^^^^BAT1.BATS ()
3380                             Notify (ACAD, 0x80) // Status Change
3381                             Sleep (0x01F4)
3382                             Notify (BAT1, 0x80) // Status Change
3383                             If (^^^^BAT1.BTCH)
3384                             {
3385                                 P80H = 0x1C
3386                                 ^^^^BAT1.UBIF ()
3387                                 Notify (BAT1, 0x81) // Information Change
3388                                 ^^^^BAT1.BTCH = Zero
3389                             }
3390                         }
3391                     }
3392 
3393                     Method (_Q9B, 0, NotSerialized)  // _Qxx: EC Query
3394                     {
3395                         P80H = 0x9B
3396                         Sleep (0x32)
3397                         Notify (LID0, 0x80) // Status Change
3398                     }
3399                 }
3400             }
3401 
3402             Device (UHC1)
3403             {
3404                 Name (_ADR, 0x001D0000)  // _ADR: Address
3405                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
3406                 {
3407                     0x03, 
3408                     0x03
3409                 })
3410                 OperationRegion (USBR, PCI_Config, 0xC4, One)
3411                 Field (USBR, AnyAcc, NoLock, Preserve)
3412                 {
3413                     URES,   8
3414                 }
3415 
3416                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
3417                 {
3418                     If (Arg0 == Zero)
3419                     {
3420                         URES = Zero
3421                     }
3422 
3423                     If (Arg0 == One)
3424                     {
3425                         URES = 0x03
3426                     }
3427                 }
3428             }
3429 
3430             Device (UHC2)
3431             {
3432                 Name (_ADR, 0x001D0001)  // _ADR: Address
3433                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
3434                 {
3435                     0x04, 
3436                     0x03
3437                 })
3438                 OperationRegion (USBR, PCI_Config, 0xC4, One)
3439                 Field (USBR, AnyAcc, NoLock, Preserve)
3440                 {
3441                     URES,   8
3442                 }
3443 
3444                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
3445                 {
3446                     If (Arg0 == Zero)
3447                     {
3448                         URES = Zero
3449                     }
3450 
3451                     If (Arg0 == One)
3452                     {
3453                         URES = 0x03
3454                     }
3455                 }
3456             }
3457 
3458             Device (UHC3)
3459             {
3460                 Name (_ADR, 0x001D0002)  // _ADR: Address
3461                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
3462                 {
3463                     0x0C, 
3464                     0x03
3465                 })
3466                 OperationRegion (USBR, PCI_Config, 0xC4, One)
3467                 Field (USBR, AnyAcc, NoLock, Preserve)
3468                 {
3469                     URES,   8
3470                 }
3471 
3472                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
3473                 {
3474                     If (Arg0 == Zero)
3475                     {
3476                         URES = Zero
3477                     }
3478 
3479                     If (Arg0 == One)
3480                     {
3481                         URES = 0x03
3482                     }
3483                 }
3484             }
3485 
3486             Device (UHC4)
3487             {
3488                 Name (_ADR, 0x001D0003)  // _ADR: Address
3489                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
3490                 {
3491                     0x0E, 
3492                     0x03
3493                 })
3494                 OperationRegion (USBR, PCI_Config, 0xC4, One)
3495                 Field (USBR, AnyAcc, NoLock, Preserve)
3496                 {
3497                     URES,   8
3498                 }
3499 
3500                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
3501                 {
3502                     If (Arg0 == Zero)
3503                     {
3504                         URES = Zero
3505                     }
3506 
3507                     If (Arg0 == One)
3508                     {
3509                         URES = 0x03
3510                     }
3511                 }
3512             }
3513 
3514             Device (ECHI)
3515             {
3516                 Name (_ADR, 0x001D0007)  // _ADR: Address
3517                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
3518                 {
3519                     0x0D, 
3520                     0x03
3521                 })
3522                 OperationRegion (USBR, PCI_Config, 0xC4, One)
3523                 Field (USBR, AnyAcc, NoLock, Preserve)
3524                 {
3525                     URES,   8
3526                 }
3527 
3528                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
3529                 {
3530                     If (Arg0 == Zero)
3531                     {
3532                         URES = Zero
3533                     }
3534 
3535                     If (Arg0 == One)
3536                     {
3537                         URES = 0x03
3538                     }
3539                 }
3540             }
3541 
3542             Device (EXP1)
3543             {
3544                 Name (_ADR, 0x001C0000)  // _ADR: Address
3545                 OperationRegion (P1CS, PCI_Config, 0x40, 0x0100)
3546                 Field (P1CS, AnyAcc, NoLock, Preserve)
3547                 {
3548                     Offset (0x10), 
3549                         ,   4, 
3550                     LKD1,   1, 
3551                     Offset (0x1A), 
3552                     ABP1,   1, 
3553                         ,   2, 
3554                     PDC1,   1, 
3555                         ,   2, 
3556                     PDS1,   1, 
3557                     Offset (0x20), 
3558                     RID1,   16, 
3559                     PSP1,   1, 
3560                     PPP1,   1, 
3561                     Offset (0x9C), 
3562                         ,   30, 
3563                     HPCS,   1, 
3564                     PMCS,   1
3565                 }
3566 
3567                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
3568                 {
3569                     0x09, 
3570                     0x04
3571                 })
3572                 Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
3573                 {
3574                     If (GPIC == Zero)
3575                     {
3576                         Return (Package (0x04)
3577                         {
3578                             Package (0x04)
3579                             {
3580                                 0xFFFF, 
3581                                 Zero, 
3582                                 ^^LPC.LNKA, 
3583                                 Zero
3584                             }, 
3585 
3586                             Package (0x04)
3587                             {
3588                                 0xFFFF, 
3589                                 One, 
3590                                 ^^LPC.LNKB, 
3591                                 Zero
3592                             }, 
3593 
3594                             Package (0x04)
3595                             {
3596                                 0xFFFF, 
3597                                 0x02, 
3598