X-0v3r Posted April 2, 2023 Share Posted April 2, 2023 (edited) TL;DR: My PC has a badly written BIOS, which prevents me to boot 100% of the time. There's some ACPI issues that probably are inside the DSDT and/or SSDT, since putting a quad-core CPU instead of a dual-core "shifted" some ACPI properties (part 3.). Please look at the decompiled DSDT and its log down there (part .4).    0. Hi there I've fiddled a bit with Clover in VirtualBox, and am now confident enough with it so this time I'm trying to use it on a real PC instead of a virtual machine, it's my last step before attempting a hackintosh.  This HP PC has: - an Intel G45 motherboard - an ICH10 Southbridge - an Intel GMA X4500HD iGPU - had an Intel Core 2 Duo E8300 that is now replaced with a Core 2 Quad Q9300 - 2GB of RAM - and the latest official BIOS  I no longer have the Core 2 Duo E8300.  1. The issues.  As a some early tests, I've tried to boot a Linux Mint USB drive when I still had the Core 2 Duo E8300, and things worked fine with a stock Clover. But with the Core 2 Quad Q9300, the boot sequence hung, and showed these errors: ACPI: Using IOAPIC for interrupt routing lpc_ich: Resource conflict(s) found affecting gpio_ich ACPI Warning: SystemIO range 0x0000000000000828-0x000000000000082F conflicts with OpRegion 0x000000000000800-0x00000000000084F (\PMRG) (20200925/utaddress-204) ? intel_irq_postinstall+0x4f4/0x670 [i915] io scheduler mq-deadline registered pcieport 0000:00:1c.0: PME: Signaling with IRQ 24 pcieport 0000:00:1c.0: pciehp: Slot #0 AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Interlock- NoCompl- lbPresDis- LLActRep+ (with Cmd Compl erratum) pcieport 0000:00:1c.1: enabling device (0106 -> 0107) pcieport 0000:00:1c.1: PME: Signaling with IRQ 25 pcieport 0000:00:1c.1: pciehp: Slot #0 AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Interlock- NoCompl- lbPresDis- LLActRep+ (with Cmd Compl erratum) pcieport 0000:00:1c.2: enabling device (0106 -> 0107) pcieport 0000:00:1c.2: PME: Signaling with IRQ 26 pcieport 0000:00:1c.2: pciehp: Slot #0 AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Interlock- NoCompl- lbPresDis- LLActRep+ (with Cmd Compl erratum) pcieport 0000:00:1c.3: enabling device (0106 -> 0107) pcieport 0000:00:1c.3: PME: Signaling with IRQ 27 pcieport 0000:00:1c.3: pciehp: Slot #0 AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Interlock- NoCompl- lbPresDis- LLActRep+ (with Cmd Compl erratum) ACPI: \_PR_.P001: Found 3 idle states  This generally indicates that the BIOS/Firmware is badly written.  2. Some working fixes after investigating for a while (days).  Fortunately, I've almost fixed these issues with the "pci_ports=compat" Linux's kernel paramter in Grub, and only these errors remains: ACPI Warning: SystemIO range 0x0000000000000828-0x000000000000082F conflicts with OpRegion 0x000000000000800-0x00000000000084F (\PMRG) (20200925/utaddress-204) ? intel_irq_postinstall+0x4f4/0x670 [i915] ACPI: \_PR_.P001: Found 3 idle states But alas, nothing has changed and the PC still hangs at boot as before.    3. More investigations, the plot thickens.  However, the issue seems to be related to the CPUs / Firmware C-states. It's worth noting that the Core 2 Quad Q9400 do supports up to C4, but because of the buggy BIOS, it won't go anywhere after C3.   By using "intel_idle.max_cstate=", it gave different results: "0" Always boots like if I used "acpi=off" (which obviously always made Linux Mint boot sucessfully), I had to force shut-down the PC after Linux halted, not good. This also disables the "intel_idle" ACPI driver. "1" Often boots, but can still fail that. When I starts the PC again, it somtimes also go crazy during the BIOS' Boot Device Menu, where everything hangs, the fans all going up to 100% and that I need to force shutdown the PC by holding the power button. The most interesting thing is that more errors showed up: ACPI: \_PR_.P001: Found 3 idle states ACPI: \_PR_.P002: Found 3 idle states ACPI: \_PR_.P003: Found 3 idle states ACPI: \_PR_.P004: Found 3 idle states "2" The PC doesn't go crazy during the BIOS' Boot Device Menu anymore, "pcie_ports=compat" is still set. But when the PC fails to boot, errors are only showing "ACPI: \_PR_.P001: Found 3 idle states" error and nothing else again. "3" Same as "2".  "Found 3 idle cstates" very likely means the C0, C1 and C2 states, which is wrong since C3 does work, sometimes though, just like when no kernel parameters are set except "pcie_ports=compat". It's also interesting that until "intel_idle.max_cstate" was set to "1", only the first core had its C-States detected.     Again, if we consider: That the CPU is a quad-core instead of a dual-core That HP is very known to have badly written Firmware (as them going as far harcoding which CPU the motherboard should support) The PCIE's ACPI errors that I got, and solved. That there was exactly 4 of these PCIE's ACPI errors. 4, like the number of cores the Core 2 Quad Q9300 has. The ACPI Warning: SystemIO range 0x0000000000000828-0x000000000000082F conflicts with OpRegion 0x000000000000800-0x00000000000084F (\PMRG) (20200925/utaddress-204)          error, which "PMRG" definitely has something to do with the CPU.  , I now really do suspect that some ACPI rules have somewhat "shifted", which CPUs rules may have overlapped with the PCIE ports' ones.   4. DSDT and SSDT, who would have thought? Now, all of these ACPI errors like "PMRG", "SystemIO" and "OpRegion" are related to something in the ACPI tables, and most likely the DSDT or SSDT. I first tried Clover's "FixAPIC" setting, but it didn't worked. Then I got both DSDT an SSDT disassembled, then tried to get them recompiled immediately. The SSDTs seems to get compiled, but the DSDT always fails since "iasl" dit spit some re-occuring errors: Intel ACPI Component Architecture ASL+ Optimizing Compiler/Disassembler version 20200925 Copyright (c) 2000 - 2020 Intel Corporation DSDT.dsl 41: Processor (P001, 0x01, 0x00000810, 0x06) {} Warning 3168 - ^ Legacy Processor() keyword detected. Use Device() keyword instead. DSDT.dsl 43: Processor (P002, 0x02, 0x00000000, 0x00) {} Warning 3168 - ^ Legacy Processor() keyword detected. Use Device() keyword instead. DSDT.dsl 45: Processor (P003, 0x03, 0x00000000, 0x00) {} Warning 3168 - ^ Legacy Processor() keyword detected. Use Device() keyword instead. DSDT.dsl 47: Processor (P004, 0x04, 0x00000000, 0x00) {} Warning 3168 - ^ Legacy Processor() keyword detected. Use Device() keyword instead. DSDT.dsl 121: Method (RRIO, 4, NotSerialized) Remark 2146 - ^ Method Argument is never used (Arg0) DSDT.dsl 121: Method (RRIO, 4, NotSerialized) Remark 2146 - ^ Method Argument is never used (Arg1) DSDT.dsl 121: Method (RRIO, 4, NotSerialized) Remark 2146 - ^ Method Argument is never used (Arg2) DSDT.dsl 121: Method (RRIO, 4, NotSerialized) Remark 2146 - ^ Method Argument is never used (Arg3) DSDT.dsl 126: Method (RDMA, 3, NotSerialized) Remark 2146 - ^ Method Argument is never used (Arg0) DSDT.dsl 126: Method (RDMA, 3, NotSerialized) Remark 2146 - ^ Method Argument is never used (Arg1) DSDT.dsl 126: Method (RDMA, 3, NotSerialized) Remark 2146 - ^ Method Argument is never used (Arg2) DSDT.dsl 147: Method (OSFL, 0, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\OSFL) DSDT.dsl 188: Method (MCTH, 2, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\MCTH) DSDT.dsl 196: Name (BUF0, Buffer (Local0) {}) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\MCTH) DSDT.dsl 197: Name (BUF1, Buffer (Local0) {}) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\MCTH) DSDT.dsl 265: If (CondRefOf (_OSI, Local1)) Warning 3144 - ^ Method Local is set but never used (Local1) DSDT.dsl 1228: Device (PCI0) Warning 3073 - Multiple types ^ (Device object requires either a _HID or _ADR, but not both) DSDT.dsl 1283: Method (NPTS, 1, NotSerialized) Remark 2146 - ^ Method Argument is never used (Arg0) DSDT.dsl 1287: Method (NWAK, 1, NotSerialized) Remark 2146 - ^ Method Argument is never used (Arg0) DSDT.dsl 1324: Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\_SB.PCI0.P0P2.VGA._DSM) DSDT.dsl 1324: Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method Warning 3115 - ^ Not all control paths return a value (\_SB.PCI0.P0P2.VGA._DSM) DSDT.dsl 1324: Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method Warning 3107 - ^ Reserved method must return a value (Integer/String/Buffer/Package/Reference required for _DSM) DSDT.dsl 1469: Method (SMOD, 1, NotSerialized) Remark 2146 - Method Argument is never used ^ (Arg0) DSDT.dsl 1479: Method (SPTS, 1, NotSerialized) Remark 2146 - ^ Method Argument is never used (Arg0) DSDT.dsl 1692: ShiftLeft (One, 0x0A, Local0) Warning 3134 - Statement is unreachable ^ DSDT.dsl 1727: ShiftLeft (One, 0x0C, Local0) Warning 3134 - Statement is unreachable ^ DSDT.dsl 2091: Method (RRIO, 4, NotSerialized) Remark 2146 - ^ Method Argument is never used (Arg3) DSDT.dsl 2140: Method (RDMA, 3, NotSerialized) Remark 2146 - ^ Method Argument is never used (Arg0) DSDT.dsl 2140: Method (RDMA, 3, NotSerialized) Remark 2146 - ^ Method Argument is never used (Arg1) DSDT.dsl 2140: Method (RDMA, 3, NotSerialized) Remark 2146 - ^ Method Argument is never used (Arg2) DSDT.dsl 2865: Method (GTM, 7, Serialized) Remark 2146 - ^ Method Argument is never used (Arg6) DSDT.dsl 3076: Name (ID49, 0x0C00) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SATA.GTF) DSDT.dsl 3077: Name (ID59, Zero) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SATA.GTF) DSDT.dsl 3078: Name (ID53, 0x04) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SATA.GTF) DSDT.dsl 3079: Name (ID63, 0x0F00) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SATA.GTF) DSDT.dsl 3080: Name (ID88, 0x0F00) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SATA.GTF) DSDT.dsl 3081: Name (IRDY, One) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SATA.GTF) DSDT.dsl 3082: Name (PIOT, Zero) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SATA.GTF) DSDT.dsl 3083: Name (DMAT, Zero) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SATA.GTF) DSDT.dsl 3587: Method (GTM, 7, Serialized) Remark 2146 - ^ Method Argument is never used (Arg6) DSDT.dsl 3798: Name (ID49, 0x0C00) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SAT1.GTF) DSDT.dsl 3799: Name (ID59, Zero) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SAT1.GTF) DSDT.dsl 3800: Name (ID53, 0x04) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SAT1.GTF) DSDT.dsl 3801: Name (ID63, 0x0F00) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SAT1.GTF) DSDT.dsl 3802: Name (ID88, 0x0F00) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SAT1.GTF) DSDT.dsl 3803: Name (IRDY, One) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SAT1.GTF) DSDT.dsl 3804: Name (PIOT, Zero) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SAT1.GTF) DSDT.dsl 3805: Name (DMAT, Zero) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.SAT1.GTF) DSDT.dsl 3954: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 3993: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4076: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4115: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4198: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4237: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4320: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4359: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4411: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4450: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4489: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4528: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4567: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4606: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4689: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4728: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4811: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4850: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4933: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 4972: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 5024: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 5063: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 5102: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 5141: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 5180: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 5219: PLD_Revision = 0x1, Error 6105 - Invalid object type for reserved name ^ (_PLD: found Buffer, Package required) DSDT.dsl 5836: Method (RBPE, 1, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\_SB.RBPE) DSDT.dsl 5838: Acquire (MUTE, 0x03E8) Warning 3130 - ^ Result is not used, possible operator timeout will be missed DSDT.dsl 5840: OperationRegion (PCFG, SystemMemory, Local0, One) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.RBPE) DSDT.dsl 5850: Method (RWPE, 1, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\_SB.RWPE) DSDT.dsl 5852: Acquire (MUTE, 0x03E8) Warning 3130 - ^ Result is not used, possible operator timeout will be missed DSDT.dsl 5855: OperationRegion (PCFG, SystemMemory, Local0, 0x02) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.RWPE) DSDT.dsl 5865: Method (RDPE, 1, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\_SB.RDPE) DSDT.dsl 5867: Acquire (MUTE, 0x03E8) Warning 3130 - ^ Result is not used, possible operator timeout will be missed DSDT.dsl 5870: OperationRegion (PCFG, SystemMemory, Local0, 0x04) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.RDPE) DSDT.dsl 5880: Method (WBPE, 2, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\_SB.WBPE) DSDT.dsl 5882: Acquire (MUTE, 0x0FFF) Warning 3130 - ^ Result is not used, possible operator timeout will be missed DSDT.dsl 5884: OperationRegion (PCFG, SystemMemory, Local0, One) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.WBPE) DSDT.dsl 5894: Method (WWPE, 2, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\_SB.WWPE) DSDT.dsl 5896: Acquire (MUTE, 0x03E8) Warning 3130 - ^ Result is not used, possible operator timeout will be missed DSDT.dsl 5899: OperationRegion (PCFG, SystemMemory, Local0, 0x02) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.WWPE) DSDT.dsl 5909: Method (WDPE, 2, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\_SB.WDPE) DSDT.dsl 5911: Acquire (MUTE, 0x03E8) Warning 3130 - ^ Result is not used, possible operator timeout will be missed DSDT.dsl 5914: OperationRegion (PCFG, SystemMemory, Local0, 0x04) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.WDPE) DSDT.dsl 5924: Method (RWDP, 3, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\_SB.RWDP) DSDT.dsl 5926: Acquire (MUTE, 0x03E8) Warning 3130 - ^ Result is not used, possible operator timeout will be missed DSDT.dsl 5929: OperationRegion (PCFG, SystemMemory, Local0, 0x04) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.RWDP) DSDT.dsl 5963: Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\_SB.PCI0._OSC) DSDT.dsl 5965: Name (SUPP, Zero) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0._OSC) DSDT.dsl 6186: Method (GBDA, 0, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\_SB.PCI0.GFX0.GBDA) DSDT.dsl 6233: Name (MEMS, 0x0D) Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0.GFX0.GBDA) DSDT.dsl 6830: Method (DC2S, 1, NotSerialized) Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\DC2S) DSDT.dsl 7075: Sleep (0x0BB8) Remark 2159 - ^ Very long Sleep, greater than 1 second ASL Input: DSDT.dsl - 262878 bytes 3391 keywords 7178 source lines Hex Dump: DSDT.hex - 222089 bytes C Include: DSDT.h - 46051 bytes Compilation failed. 26 Errors, 17 Warnings, 58 Remarks No AML files were generated due to compiler error(s) The offending DSDT, disassembled with a "refs.txt" file: /* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20200925 (64-bit version) * Copyright (c) 2000 - 2020 Intel Corporation * * Disassembling to non-symbolic legacy ASL operators * * Disassembly of DSDT, Wed Mar 29 17:27:13 2023 * * Original Table Header: * Signature "DSDT" * Length 0x00005BF2 (23538) * Revision 0x01 **** 32-bit table (V1), no 64-bit math support * Checksum 0x17 * OEM ID "HPQOEM" * OEM Table ID "SLIC-CPC" * OEM Revision 0x00000011 (17) * Compiler ID "INTL" * Compiler Version 0x20051117 (537202967) */ DefinitionBlock ("", "DSDT", 1, "HPQOEM", "SLIC-CPC", 0x00000011) { /* * External declarations were imported from * a reference file -- refs.txt */ External (_GPE.MMTB, MethodObj) // 0 Arguments // From external reference file External (_GPE.VHOV, MethodObj) // 3 Arguments // From external reference file External (_SB_.PCI0.GFX0.DD02._BCM, MethodObj) // 1 Arguments // From external reference file External (_SB_.PCI0.LPCB.H_EC.ECMD, MethodObj) // 1 Arguments // From external reference file External (_SB_.PCI0.LPCB.H_EC.ECRD, MethodObj) // 1 Arguments // From external reference file External (_SB_.PCI0.LPCB.H_EC.ECWT, MethodObj) // 2 Arguments // From external reference file External (_SB_.PCI0.PEG0.PEGP.SGPO, MethodObj) // 2 Arguments // From external reference file External (_SB_.PCI0.SAT0.SDSM, MethodObj) // 4 Arguments // From external reference file External (_SB_.PCI0.XHC_.RHUB.TPLD, MethodObj) // 2 Arguments // From external reference file External (MDBG, MethodObj) // 1 Arguments // From external reference file Scope (_PR) { Processor (P001, 0x01, 0x00000810, 0x06) {} Alias (P001, CPU1) Processor (P002, 0x02, 0x00000000, 0x00) {} Alias (P002, CPU2) Processor (P003, 0x03, 0x00000000, 0x00) {} Alias (P003, CPU3) Processor (P004, 0x04, 0x00000000, 0x00) {} Alias (P004, CPU4) } Name (DP80, 0x80) Name (DP90, 0x90) Name (APIC, One) Name (SMIP, 0xB2) Name (PMBS, 0x0800) Name (PMLN, 0x80) Name (GPBS, 0x0500) Name (GPLN, 0x80) Name (SMBS, Zero) Name (SMBL, Zero) Name (PM30, 0x0830) Name (SUSW, 0xFF) Name (TPBA, 0xFED40000) Name (TPBL, Zero) Name (MIEC, Zero) Name (BWRN, 0x07) Name (BLOW, 0x05) Name (BCRT, 0x03) Name (TOBS, 0x0860) Name (SUCC, One) Name (NVLD, 0x02) Name (CRIT, 0x04) Name (NCRT, 0x06) Name (LIDS, One) Name (ECIO, 0x2E) Name (PCIB, 0xF0000000) Name (PCIL, 0x08000000) Name (PEHP, One) Name (SHPC, Zero) Name (PEPM, One) Name (PEER, One) Name (PECS, One) OperationRegion (BIOS, SystemMemory, 0xDDD9E064, 0xFF) Field (BIOS, ByteAcc, NoLock, Preserve) { SS1, 1, SS2, 1, SS3, 1, SS4, 1, Offset (0x01), IOST, 16, TOPM, 32, ROMS, 32, MG1B, 32, MG1L, 32, MG2B, 32, MG2L, 32, Offset (0x1C), DMAX, 8, HPTA, 32, CPB0, 32, CPB1, 32, CPB2, 32, CPB3, 32, ASSB, 8, AOTB, 8, AAXB, 32, SMIF, 8, DTSE, 8, DTS1, 8, DTS2, 8, MPEN, 8, TPMF, 8, MG3B, 32, MG3L, 32, MH1B, 32, MH1L, 32, OSTP, 8 } Method (RRIO, 4, NotSerialized) { Store ("RRIO", Debug) } Method (RDMA, 3, NotSerialized) { Store ("rDMA", Debug) } Name (PICM, Zero) Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model { If (Arg0) { Store (0xAA, DBG8) /* \DBG8 */ } Else { Store (0xAC, DBG8) /* \DBG8 */ } Store (Arg0, PICM) /* \PICM */ } Name (OSVR, Ones) Method (OSFL, 0, NotSerialized) { If (LNotEqual (OSVR, Ones)) { Return (OSVR) /* \OSVR */ } Name (TTT0, Zero) Store (OSYS (), TTT0) /* \OSFL.TTT0 */ If (LEqual (TTT0, One)) { Store (0x03, OSVR) /* \OSVR */ } ElseIf (LEqual (TTT0, 0x10)) { Store (One, OSVR) /* \OSVR */ } ElseIf (LEqual (TTT0, 0x11)) { Store (0x02, OSVR) /* \OSVR */ } ElseIf (LEqual (TTT0, 0x12)) { Store (0x04, OSVR) /* \OSVR */ } ElseIf (LEqual (TTT0, 0x13)) { Store (Zero, OSVR) /* \OSVR */ } ElseIf (LEqual (TTT0, 0x14)) { Store (Zero, OSVR) /* \OSVR */ } ElseIf (LEqual (TTT0, 0x15)) { Store (Zero, OSVR) /* \OSVR */ } Return (OSVR) /* \OSVR */ } Method (MCTH, 2, NotSerialized) { If (LLess (SizeOf (Arg0), SizeOf (Arg1))) { Return (Zero) } Add (SizeOf (Arg0), One, Local0) Name (BUF0, Buffer (Local0) {}) Name (BUF1, Buffer (Local0) {}) Store (Arg0, BUF0) /* \MCTH.BUF0 */ Store (Arg1, BUF1) /* \MCTH.BUF1 */ While (Local0) { Decrement (Local0) If (LNotEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (BUF1, Local0 )))) { Return (Zero) } } Return (One) } Name (PRWP, Package (0x02) { Zero, Zero }) Method (GPRW, 2, NotSerialized) { Store (Arg0, Index (PRWP, Zero)) Store (ShiftLeft (SS1, One), Local0) Or (Local0, ShiftLeft (SS2, 0x02), Local0) Or (Local0, ShiftLeft (SS3, 0x03), Local0) Or (Local0, ShiftLeft (SS4, 0x04), Local0) If (And (ShiftLeft (One, Arg1), Local0)) { Store (Arg1, Index (PRWP, One)) } Else { ShiftRight (Local0, One, Local0) If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) { FindSetLeftBit (Local0, Index (PRWP, One)) } Else { FindSetRightBit (Local0, Index (PRWP, One)) } } Return (PRWP) /* \PRWP */ } Name (WAKP, Package (0x02) { Zero, Zero }) OperationRegion (DEB0, SystemIO, DP80, One) Field (DEB0, ByteAcc, NoLock, Preserve) { DBG8, 8 } OperationRegion (DEB1, SystemIO, DP90, 0x02) Field (DEB1, WordAcc, NoLock, Preserve) { DBG9, 16 } Method (OSYS, 0, NotSerialized) { Store (0x10, Local0) If (CondRefOf (_OSI, Local1)) { If (_OSI ("Windows 2000")) { Store (0x12, Local0) } If (_OSI ("Windows 2001")) { Store (0x13, Local0) } If (_OSI ("Windows 2001 SP1")) { Store (0x13, Local0) } If (_OSI ("Windows 2001 SP2")) { Store (0x13, Local0) } If (_OSI ("Windows 2001.1")) { Store (0x14, Local0) } If (_OSI ("Windows 2001.1 SP1")) { Store (0x14, Local0) } If (_OSI ("Windows 2006")) { Store (0x15, Local0) } } ElseIf (MCTH (_OS, "Microsoft Windows NT")) { Store (0x12, Local0) } ElseIf (MCTH (_OS, "Microsoft WindowsME: Millennium Edition")) { Store (0x11, Local0) } Return (Local0) } Scope (_SB) { Name (PR00, Package (0x1A) { Package (0x04) { 0x0001FFFF, Zero, LNKA, Zero }, Package (0x04) { 0x0001FFFF, One, LNKB, Zero }, Package (0x04) { 0x0001FFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x0001FFFF, 0x03, LNKD, Zero }, Package (0x04) { 0x0006FFFF, Zero, LNKA, Zero }, Package (0x04) { 0x0006FFFF, One, LNKB, Zero }, Package (0x04) { 0x0006FFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x0006FFFF, 0x03, LNKD, Zero }, Package (0x04) { 0x001FFFFF, Zero, LNKC, Zero }, Package (0x04) { 0x001FFFFF, One, LNKD, Zero }, Package (0x04) { 0x001FFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x001DFFFF, Zero, LNKH, Zero }, Package (0x04) { 0x001DFFFF, One, LNKD, Zero }, Package (0x04) { 0x001DFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x001DFFFF, 0x03, LNKA, Zero }, Package (0x04) { 0x001AFFFF, Zero, LNKA, Zero }, Package (0x04) { 0x001AFFFF, One, LNKF, Zero }, Package (0x04) { 0x001AFFFF, 0x03, LNKD, Zero }, Package (0x04) { 0x001AFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x001BFFFF, Zero, LNKG, Zero }, Package (0x04) { 0x0019FFFF, Zero, LNKE, Zero }, Package (0x04) { 0x001CFFFF, Zero, LNKB, Zero }, Package (0x04) { 0x001CFFFF, One, LNKA, Zero }, Package (0x04) { 0x001CFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x001CFFFF, 0x03, LNKD, Zero }, Package (0x04) { 0x0002FFFF, Zero, LNKA, Zero } }) Name (AR00, Package (0x1A) { Package (0x04) { 0x0001FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0001FFFF, One, Zero, 0x11 }, Package (0x04) { 0x0001FFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x0001FFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x0006FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0006FFFF, One, Zero, 0x11 }, Package (0x04) { 0x0006FFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x0006FFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x001FFFFF, Zero, Zero, 0x12 }, Package (0x04) { 0x001FFFFF, One, Zero, 0x13 }, Package (0x04) { 0x001FFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x001DFFFF, Zero, Zero, 0x17 }, Package (0x04) { 0x001DFFFF, One, Zero, 0x13 }, Package (0x04) { 0x001DFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x001DFFFF, 0x03, Zero, 0x10 }, Package (0x04) { 0x001AFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x001AFFFF, One, Zero, 0x15 }, Package (0x04) { 0x001AFFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x001AFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x001BFFFF, Zero, Zero, 0x16 }, Package (0x04) { 0x0019FFFF, Zero, Zero, 0x14 }, Package (0x04) { 0x001CFFFF, Zero, Zero, 0x11 }, Package (0x04) { 0x001CFFFF, One, Zero, 0x10 }, Package (0x04) { 0x001CFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x001CFFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x0002FFFF, Zero, Zero, 0x10 } }) Name (PR04, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKA, Zero }, Package (0x04) { 0xFFFF, One, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKD, Zero } }) Name (AR04, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0xFFFF, One, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 } }) Name (PR05, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKB, Zero }, Package (0x04) { 0xFFFF, One, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKD, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKA, Zero } }) Name (AR05, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x11 }, Package (0x04) { 0xFFFF, One, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x10 } }) Name (PR06, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKC, Zero }, Package (0x04) { 0xFFFF, One, LNKD, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKA, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKB, Zero } }) Name (AR06, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x12 }, Package (0x04) { 0xFFFF, One, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x10 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x11 } }) Name (PR07, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKD, Zero }, Package (0x04) { 0xFFFF, One, LNKA, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKC, Zero } }) Name (AR07, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x13 }, Package (0x04) { 0xFFFF, One, Zero, 0x10 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x12 } }) Name (PR08, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKA, Zero }, Package (0x04) { 0xFFFF, One, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKD, Zero } }) Name (AR08, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0xFFFF, One, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 } }) Name (PR09, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKB, Zero }, Package (0x04) { 0xFFFF, One, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKD, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKA, Zero } }) Name (AR09, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x11 }, Package (0x04) { 0xFFFF, One, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x10 } }) Name (PR01, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKF, Zero }, Package (0x04) { 0xFFFF, One, LNKG, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKH, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKE, Zero } }) Name (AR01, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x15 }, Package (0x04) { 0xFFFF, One, Zero, 0x16 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x17 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x14 } }) Name (PRSA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {3,4,6,7,10,11,12,14,15} }) Name (PRSB, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {5} }) Alias (PRSA, PRSC) Alias (PRSA, PRSD) Alias (PRSA, PRSE) Alias (PRSA, PRSF) Alias (PRSA, PRSG) Alias (PRSA, PRSH) Device (PCI0) { Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID Name (_ADR, Zero) // _ADR: Address Method (^BN00, 0, NotSerialized) { Return (Zero) } Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number { Return (BN00 ()) } Name (_UID, Zero) // _UID: Unique ID Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AR00) /* \_SB_.AR00 */ } Return (PR00) /* \_SB_.PR00 */ } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID Device (MCH) { Name (_HID, EisaId ("PNP0C01") /* System Board */) // _HID: Hardware ID Name (_UID, 0x0A) // _UID: Unique ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { Memory32Fixed (ReadWrite, 0xFED14000, // Address Base 0x00006000, // Address Length ) Memory32Fixed (ReadWrite, 0xFED90000, // Address Base 0x00004000, // Address Length ) }) } Method (NPTS, 1, NotSerialized) { } Method (NWAK, 1, NotSerialized) { } Device (P0P2) { Name (_ADR, 0x00010000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x09, 0x04)) } Device (VGA) { Name (_ADR, Zero) // _ADR: Address Name (DSMD, One) Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching { } Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices { Return (Package (0x01) { 0x0110 }) } Name (M30S, Buffer (0x2D) { /* 0000 */ 0x4D, 0x58, 0x4D, 0x5F, 0x03, 0x00, 0x21, 0x00, // MXM_..!. /* 0008 */ 0x30, 0x11, 0xB8, 0xF7, 0xF9, 0x3E, 0x20, 0x00, // 0....> . /* 0010 */ 0x01, 0xF4, 0x01, 0x00, 0x13, 0x02, 0xF4, 0x01, // ........ /* 0018 */ 0x03, 0x02, 0xF4, 0x01, 0x06, 0x14, 0x00, 0x00, // ........ /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ /* 0028 */ 0x30 // 0 }) Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg0, ToUUID ("4004a400-917d-4cf2-b89c-79b62fd55665") /* Unknown UUID */)) { Name (TTT0, Zero) Store (Arg2, TTT0) /* \_SB_.PCI0.P0P2.VGA_._DSM.TTT0 */ If (LEqual (TTT0, Zero)) { Return (Buffer (0x04) { 0x01, 0x00, 0x01, 0x01 // .... }) } ElseIf (LEqual (TTT0, 0x18)) { Return (0x30) } ElseIf (LEqual (TTT0, 0x10)) { Return (M30S) /* \_SB_.PCI0.P0P2.VGA_.M30S */ } } } Name (LCDA, One) Name (HDMA, One) Name (CRTA, One) Device (LCD) { Name (_ADR, 0x0110) // _ADR: Address Name (_DCS, 0x1F) // _DCS: Display Current Status Name (_DGS, One) // _DGS: Display Graphics State Method (_DSS, 1, NotSerialized) // _DSS: Device Set State { } Name (PBCL, Package (0x12) { 0x07, Zero, Zero, One, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }) Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels { Return (PBCL) /* \_SB_.PCI0.P0P2.VGA_.LCD_.PBCL */ } Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method { Store (Arg0, ^^^^SBRG.EC0.ECBR) /* \_SB_.PCI0.SBRG.EC0_.ECBR */ } Method (_BQC, 0, NotSerialized) // _BQC: Brightness Query Current { Store (^^^^SBRG.EC0.ECBR, Local0) Return (Local0) } } } } Device (P0P3) { Name (_ADR, 0x00060000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x09, 0x04)) } } Device (P0P1) { Name (_ADR, 0x001E0000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x0B, 0x04)) } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AR01) /* \_SB_.AR01 */ } Return (PR01) /* \_SB_.PR01 */ } } Device (SBRG) { Name (_ADR, 0x001F0000) // _ADR: Address Device (IELK) { Name (_HID, "AWY0001") // _HID: Hardware ID OperationRegion (RXA0, PCI_Config, 0xA0, 0x20) Field (RXA0, ByteAcc, NoLock, Preserve) { , 9, PBLV, 1, Offset (0x10), , 1, PBMS, 1, , 1, PMCS, 1, ECNS, 1, Offset (0x11), ECT1, 16, ELEN, 1, Offset (0x14) } Method (\_GPE._L0A, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { Notify (\_SB.PCI0.SBRG.IELK, 0x81) // Information Change Store (One, \_SB.PCI0.SBRG.IELK.PMCS) } Method (_STA, 0, NotSerialized) // _STA: Status { If (ELEN) { Return (0x0F) } Else { Return (Zero) } } Method (SMOD, 1, NotSerialized) { } Method (GPBS, 0, NotSerialized) { Return (XOr (PBLV, One)) } } Method (SPTS, 1, NotSerialized) { Store (One, PS1S) /* \_SB_.PCI0.SBRG.PS1S */ Store (One, PS1E) /* \_SB_.PCI0.SBRG.PS1E */ Store (One, SLPS) /* \_SB_.SLPS */ } Method (SWAK, 1, NotSerialized) { Store (Zero, SLPS) /* \_SB_.SLPS */ Store (Zero, PS1E) /* \_SB_.PCI0.SBRG.PS1E */ If (LAnd (LEqual (Arg0, One), RTCS)) {} ElseIf (LAnd (LEqual (Arg0, 0x03), BRTC)) {} Else { Notify (PWRB, 0x02) // Device Wake } } OperationRegion (APMP, SystemIO, SMIP, 0x02) Field (APMP, ByteAcc, NoLock, Preserve) { APMC, 8, APMS, 8 } Field (APMP, ByteAcc, NoLock, Preserve) { Offset (0x01), , 1, BRTC, 1 } OperationRegion (PMS0, SystemIO, PMBS, 0x04) Field (PMS0, ByteAcc, NoLock, Preserve) { , 10, RTCS, 1, , 4, WAKS, 1, Offset (0x03), PWBT, 1, Offset (0x04) } OperationRegion (SMIE, SystemIO, PM30, 0x08) Field (SMIE, ByteAcc, NoLock, Preserve) { , 4, PS1E, 1, , 31, PS1S, 1, Offset (0x08) } Scope (\_SB) { Name (SLPS, Zero) Mutex (IOMX, 0x00) OperationRegion (SMI0, SystemIO, SMIP, 0x02) Field (SMI0, ByteAcc, NoLock, Preserve) { ECSM, 8 } Device (SLPB) { Name (_HID, EisaId ("PNP0C0E") /* Sleep Button Device */) // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { If (LNotEqual (SUSW, 0xFF)) { Return (0x0F) } Return (Zero) } Method (SBEV, 0, NotSerialized) { If (SLPS) { Notify (SLPB, 0x02) // Device Wake } Else { Notify (SLPB, 0x80) // Status Change } } Method (\_GPE._L1B, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { \_SB.SLPB.SBEV () } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (Package (0x02) { 0x1B, 0x04 }) } } } Device (PIC) { Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0020, // Range Minimum 0x0020, // Range Maximum 0x00, // Alignment 0x02, // Length ) IO (Decode16, 0x00A0, // Range Minimum 0x00A0, // Range Maximum 0x00, // Alignment 0x02, // Length ) IRQNoFlags () {2} }) } Device (DMAD) { Name (_HID, EisaId ("PNP0200") /* PC-class DMA Controller */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { DMA (Compatibility, BusMaster, Transfer8, ) {4} IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x00, // Alignment 0x10, // Length ) IO (Decode16, 0x0081, // Range Minimum 0x0081, // Range Maximum 0x00, // Alignment 0x03, // Length ) IO (Decode16, 0x0087, // Range Minimum 0x0087, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0089, // Range Minimum 0x0089, // Range Maximum 0x00, // Alignment 0x03, // Length ) IO (Decode16, 0x008F, // Range Minimum 0x008F, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x00C0, // Range Minimum 0x00C0, // Range Maximum 0x00, // Alignment 0x20, // Length ) }) } Device (TMR) { Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0040, // Range Minimum 0x0040, // Range Maximum 0x00, // Alignment 0x04, // Length ) IRQNoFlags () {0} }) } Device (RTC0) { Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0070, // Range Minimum 0x0070, // Range Maximum 0x00, // Alignment 0x02, // Length ) IRQNoFlags () {8} }) } Device (PS2K) { Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID Name (_CID, EisaId ("PNP030B")) // _CID: Compatible ID Method (_STA, 0, NotSerialized) // _STA: Status { Return (Zero) ShiftLeft (One, 0x0A, Local0) If (And (IOST, Local0)) { Return (0x0F) } Return (Zero) } Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0060, // Range Minimum 0x0060, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0064, // Range Minimum 0x0064, // Range Maximum 0x00, // Alignment 0x01, // Length ) IRQNoFlags () {1} }) } Device (PS2M) { Name (_HID, EisaId ("PNP0F03") /* Microsoft PS/2-style Mouse */) // _HID: Hardware ID Name (_CID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _CID: Compatible ID Method (_STA, 0, NotSerialized) // _STA: Status { Return (Zero) ShiftLeft (One, 0x0C, Local0) If (And (IOST, Local0)) { Return (0x0F) } Return (Zero) } Name (M2R0, ResourceTemplate () { IRQNoFlags () {12} }) Name (M2R1, ResourceTemplate () { FixedIO ( 0x0060, // Address 0x01, // Length ) FixedIO ( 0x0064, // Address 0x01, // Length ) IRQNoFlags () {12} }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { ShiftLeft (One, 0x0A, Local0) If (And (IOST, Local0)) { Return (M2R0) /* \_SB_.PCI0.SBRG.PS2M.M2R0 */ } Else { Return (M2R1) /* \_SB_.PCI0.SBRG.PS2M.M2R1 */ } } } Device (SPKR) { Name (_HID, EisaId ("PNP0800") /* Microsoft Sound System Compatible Device */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0061, // Range Minimum 0x0061, // Range Maximum 0x00, // Alignment 0x01, // Length ) }) } Device (COPR) { Name (_HID, EisaId ("PNP0C04") /* x87-compatible Floating Point Processing Unit */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x00F0, // Range Minimum 0x00F0, // Range Maximum 0x00, // Alignment 0x10, // Length ) IRQNoFlags () {13} }) } Device (RMSC) { Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID Name (_UID, 0x10) // _UID: Unique ID Name (CRS, ResourceTemplate () { IO (Decode16, 0x0010, // Range Minimum 0x0010, // Range Maximum 0x00, // Alignment 0x10, // Length ) IO (Decode16, 0x0022, // Range Minimum 0x0022, // Range Maximum 0x00, // Alignment 0x1E, // Length ) IO (Decode16, 0x0044, // Range Minimum 0x0044, // Range Maximum 0x00, // Alignment 0x1C, // Length ) IO (Decode16, 0x0063, // Range Minimum 0x0063, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0065, // Range Minimum 0x0065, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0067, // Range Minimum 0x0067, // Range Maximum 0x00, // Alignment 0x09, // Length ) IO (Decode16, 0x0072, // Range Minimum 0x0072, // Range Maximum 0x00, // Alignment 0x0E, // Length ) IO (Decode16, 0x0080, // Range Minimum 0x0080, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0084, // Range Minimum 0x0084, // Range Maximum 0x00, // Alignment 0x03, // Length ) IO (Decode16, 0x0088, // Range Minimum 0x0088, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x008C, // Range Minimum 0x008C, // Range Maximum 0x00, // Alignment 0x03, // Length ) IO (Decode16, 0x0090, // Range Minimum 0x0090, // Range Maximum 0x00, // Alignment 0x10, // Length ) IO (Decode16, 0x00A2, // Range Minimum 0x00A2, // Range Maximum 0x00, // Alignment 0x1E, // Length ) IO (Decode16, 0x00E0, // Range Minimum 0x00E0, // Range Maximum 0x00, // Alignment 0x10, // Length ) IO (Decode16, 0x04D0, // Range Minimum 0x04D0, // Range Maximum 0x00, // Alignment 0x02, // Length ) IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x00, // Alignment 0x00, // Length _Y00) IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x00, // Alignment 0x00, // Length _Y01) IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x00, // Alignment 0x00, // Length _Y02) Memory32Fixed (ReadWrite, 0xFED1C000, // Address Base 0x00004000, // Address Length ) Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00000000, // Address Length _Y03) Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x00000000, // Address Length _Y04) }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y00._MIN, GP00) // _MIN: Minimum Base Address CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y00._MAX, GP01) // _MAX: Maximum Base Address CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y00._LEN, GP0L) // _LEN: Length Store (PMBS, GP00) /* \_SB_.PCI0.SBRG.RMSC._CRS.GP00 */ Store (PMBS, GP01) /* \_SB_.PCI0.SBRG.RMSC._CRS.GP01 */ Store (PMLN, GP0L) /* \_SB_.PCI0.SBRG.RMSC._CRS.GP0L */ If (SMBS) { CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y01._MIN, GP10) // _MIN: Minimum Base Address CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y01._MAX, GP11) // _MAX: Maximum Base Address CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y01._LEN, GP1L) // _LEN: Length Store (SMBS, GP10) /* \_SB_.PCI0.SBRG.RMSC._CRS.GP10 */ Store (SMBS, GP11) /* \_SB_.PCI0.SBRG.RMSC._CRS.GP11 */ Store (SMBL, GP1L) /* \_SB_.PCI0.SBRG.RMSC._CRS.GP1L */ } If (GPBS) { CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y02._MIN, GP20) // _MIN: Minimum Base Address CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y02._MAX, GP21) // _MAX: Maximum Base Address CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y02._LEN, GP2L) // _LEN: Length Store (GPBS, GP20) /* \_SB_.PCI0.SBRG.RMSC._CRS.GP20 */ Store (GPBS, GP21) /* \_SB_.PCI0.SBRG.RMSC._CRS.GP21 */ Store (GPLN, GP2L) /* \_SB_.PCI0.SBRG.RMSC._CRS.GP2L */ } CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y03._LEN, TML1) // _LEN: Length CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y03._BAS, TMB1) // _BAS: Base Address CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y04._LEN, TML2) // _LEN: Length CreateDWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y04._BAS, TMB2) // _BAS: Base Address Store (0xFED20000, TMB1) /* \_SB_.PCI0.SBRG.RMSC._CRS.TMB1 */ Subtract (TPBA, 0xFED20000, TML1) /* \_SB_.PCI0.SBRG.RMSC._CRS.TML1 */ If (TPMF) { Add (TPBA, TPBL, TMB2) /* \_SB_.PCI0.SBRG.RMSC._CRS.TMB2 */ } Else { Add (TPBA, Zero, TMB2) /* \_SB_.PCI0.SBRG.RMSC._CRS.TMB2 */ } Subtract (0xFED90000, TMB2, TML2) /* \_SB_.PCI0.SBRG.RMSC._CRS.TML2 */ Return (CRS) /* \_SB_.PCI0.SBRG.RMSC.CRS_ */ } } Device (HPET) { Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0xFED00000, // Address Base 0x00000400, // Address Length _Y05) }) OperationRegion (^LPCR, SystemMemory, 0xFED1F404, 0x04) Field (LPCR, AnyAcc, NoLock, Preserve) { HPTS, 2, , 5, HPTE, 1, Offset (0x04) } Method (_STA, 0, NotSerialized) // _STA: Status { If (LEqual (OSFL (), Zero)) { If (HPTE) { Return (0x0F) } } ElseIf (HPTE) { Return (0x0B) } Return (Zero) } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateDWordField (CRS, \_SB.PCI0.SBRG.HPET._Y05._BAS, HPT) // _BAS: Base Address Multiply (HPTS, 0x1000, Local0) Add (Local0, 0xFED00000, HPT) /* \_SB_.PCI0.SBRG.HPET._CRS.HPT_ */ Return (CRS) /* \_SB_.PCI0.SBRG.HPET.CRS_ */ } } OperationRegion (RX80, PCI_Config, Zero, 0xFF) Field (RX80, ByteAcc, NoLock, Preserve) { Offset (0x80), LPCD, 16, LPCE, 16 } Name (DBPT, Package (0x04) { Package (0x08) { 0x03F8, 0x02F8, 0x0220, 0x0228, 0x0238, 0x02E8, 0x0338, 0x03E8 }, Package (0x08) { 0x03F8, 0x02F8, 0x0220, 0x0228, 0x0238, 0x02E8, 0x0338, 0x03E8 }, Package (0x03) { 0x0378, 0x0278, 0x03BC }, Package (0x02) { 0x03F0, 0x0370 } }) Name (DDLT, Package (0x04) { Package (0x02) { Zero, 0xFFF8 }, Package (0x02) { 0x04, 0xFF8F }, Package (0x02) { 0x08, 0xFCFF }, Package (0x02) { 0x0C, 0xEFFF } }) Method (RRIO, 4, NotSerialized) { If (LAnd (LLessEqual (Arg0, 0x03), LGreaterEqual (Arg0, Zero))) { Store (Match (DerefOf (Index (DBPT, Arg0)), MEQ, Arg2, MTR, Zero, Zero), Local0) If (LNotEqual (Local0, Ones)) { Store (DerefOf (Index (DerefOf (Index (DDLT, Arg0)), Zero)), Local1) Store (DerefOf (Index (DerefOf (Index (DDLT, Arg0)), One)), Local2) ShiftLeft (Local0, Local1, Local0) And (LPCD, Local2, LPCD) /* \_SB_.PCI0.SBRG.LPCD */ Or (LPCD, Local0, LPCD) /* \_SB_.PCI0.SBRG.LPCD */ WX82 (Arg0, Arg1) } } If (LEqual (Arg0, 0x08)) { If (LEqual (Arg2, 0x0200)) { WX82 (0x08, Arg0) } ElseIf (LEqual (Arg2, 0x0208)) { WX82 (0x09, Arg0) } } If (LAnd (LLessEqual (Arg0, 0x0D), LGreaterEqual (Arg0, 0x0A))) { WX82 (Arg0, Arg1) } } Method (WX82, 2, NotSerialized) { ShiftLeft (One, Arg0, Local0) If (Arg1) { Or (LPCE, Local0, LPCE) /* \_SB_.PCI0.SBRG.LPCE */ } Else { Not (Local0, Local0) And (LPCE, Local0, LPCE) /* \_SB_.PCI0.SBRG.LPCE */ } } Method (RDMA, 3, NotSerialized) { } Device (ECIR) { Name (_UID, One) // _UID: Unique ID Name (_HID, EisaId ("ITE8715")) // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { If (_OSI ("Windows 2006")) { Store (0x0A, ILDN) /* \_SB_.PCI0.SBRG.ECIR.ILDN */ Store (IACT, Local0) If (LEqual (Local0, 0xFF)) { Return (Zero) } If (And (Local0, One)) { Return (0x0F) } Else { Return (0x0D) } } Return (Zero) } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { Store (0x0A, ILDN) /* \_SB_.PCI0.SBRG.ECIR.ILDN */ And (IACT, 0xFE, IACT) /* \_SB_.PCI0.SBRG.ECIR.IACT */ } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Store (0x0A, ILDN) /* \_SB_.PCI0.SBRG.ECIR.ILDN */ ShiftLeft (IOH1, 0x08, IIOL) /* \_SB_.PCI0.SBRG.ECIR.IIOL */ Or (IOL1, IIOL, IIOL) /* \_SB_.PCI0.SBRG.ECIR.IIOL */ Store (IIOL, IIOM) /* \_SB_.PCI0.SBRG.ECIR.IIOM */ Store (0x08, ILEN) /* \_SB_.PCI0.SBRG.ECIR.ILEN */ If (IRQN) { ShiftLeft (One, IRQN, IRQM) /* \_SB_.PCI0.SBRG.ECIR.IRQM */ } Else { Store (Zero, IRQM) /* \_SB_.PCI0.SBRG.ECIR.IRQM */ } Return (ICRS) /* \_SB_.PCI0.SBRG.ECIR.ICRS */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, 0x09, IRQM) CreateWordField (Arg0, 0x02, IO11) Store (0x0A, ILDN) /* \_SB_.PCI0.SBRG.ECIR.ILDN */ And (IO11, 0xFF, IOL1) /* \_SB_.PCI0.SBRG.ECIR.IOL1 */ ShiftRight (IO11, 0x08, IOH1) /* \_SB_.PCI0.SBRG.ECIR.IOH1 */ Or (IACT, One, IACT) /* \_SB_.PCI0.SBRG.ECIR.IACT */ If (IRQM) { FindSetRightBit (IRQM, Local0) Subtract (Local0, One, IRQN) /* \_SB_.PCI0.SBRG.ECIR.IRQN */ } Else { Store (Zero, IRQN) /* \_SB_.PCI0.SBRG.ECIR.IRQN */ } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (IRPR) /* \_SB_.PCI0.SBRG.ECIR.IRPR */ } OperationRegion (IOIR, SystemIO, ECIO, 0x02) Field (IOIR, ByteAcc, NoLock, Preserve) { ECIX, 8, ECDA, 8 } IndexField (ECIX, ECDA, ByteAcc, NoLock, Preserve) { Offset (0x07), ILDN, 8, Offset (0x30), IACT, 8, Offset (0x60), IOH1, 8, IOL1, 8, IOH2, 8, IOL2, 8, Offset (0x70), IRQN, 8 } Name (ICRS, ResourceTemplate () { IO (Decode16, 0x0000, // Range Minimum 0x0000, // Range Maximum 0x01, // Alignment 0x08, // Length _Y07) IRQNoFlags (_Y06) {11} }) CreateWordField (ICRS, \_SB.PCI0.SBRG.ECIR._Y06._INT, IRQM) // _INT: Interrupts CreateWordField (ICRS, \_SB.PCI0.SBRG.ECIR._Y07._MIN, IIOL) // _MIN: Minimum Base Address CreateWordField (ICRS, \_SB.PCI0.SBRG.ECIR._Y07._MAX, IIOM) // _MAX: Maximum Base Address CreateByteField (ICRS, \_SB.PCI0.SBRG.ECIR._Y07._LEN, ILEN) // _LEN: Length Name (IRPR, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IO (Decode16, 0x0310, // Range Minimum 0x0310, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {11} } StartDependentFnNoPri () { IO (Decode16, 0x0310, // Range Minimum 0x0310, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {3,6,11} } StartDependentFnNoPri () { IO (Decode16, 0x0320, // Range Minimum 0x0320, // Range Maximum 0x01, // Alignment 0x08, // Length ) IRQNoFlags () {3,6,11} } EndDependentFn () }) } Device (^PCIE) { Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID Name (_UID, 0x11) // _UID: Unique ID Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0xE0000000, // Address Base 0x10000000, // Address Length _Y08) }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateDWordField (CRS, \_SB.PCI0.PCIE._Y08._BAS, BAS1) // _BAS: Base Address CreateDWordField (CRS, \_SB.PCI0.PCIE._Y08._LEN, LEN1) // _LEN: Length Store (PCIB, BAS1) /* \_SB_.PCI0.PCIE._CRS.BAS1 */ Store (PCIL, LEN1) /* \_SB_.PCI0.PCIE._CRS.LEN1 */ Return (CRS) /* \_SB_.PCI0.PCIE.CRS_ */ } } Device (OMSC) { Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID Name (_UID, Zero) // _UID: Unique ID Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y09) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y0A) }) Name (CRS1, ResourceTemplate () { FixedIO ( 0x0060, // Address 0x01, // Length ) FixedIO ( 0x0064, // Address 0x01, // Length ) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y0B) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y0C) }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (APIC) { CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y09._LEN, ML01) // _LEN: Length CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y09._BAS, MB01) // _BAS: Base Address CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y0A._LEN, ML02) // _LEN: Length CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y0A._BAS, MB02) // _BAS: Base Address Store (0xFEC00000, MB01) /* \_SB_.PCI0.SBRG.OMSC._CRS.MB01 */ Store (0x1000, ML01) /* \_SB_.PCI0.SBRG.OMSC._CRS.ML01 */ Store (0xFEE00000, MB02) /* \_SB_.PCI0.SBRG.OMSC._CRS.MB02 */ Store (0x1000, ML02) /* \_SB_.PCI0.SBRG.OMSC._CRS.ML02 */ CreateDWordField (CRS1, \_SB.PCI0.SBRG.OMSC._Y0B._LEN, ML03) // _LEN: Length CreateDWordField (CRS1, \_SB.PCI0.SBRG.OMSC._Y0B._BAS, MB03) // _BAS: Base Address CreateDWordField (CRS1, \_SB.PCI0.SBRG.OMSC._Y0C._LEN, ML04) // _LEN: Length CreateDWordField (CRS1, \_SB.PCI0.SBRG.OMSC._Y0C._BAS, MB04) // _BAS: Base Address Store (0xFEC00000, MB03) /* \_SB_.PCI0.SBRG.OMSC._CRS.MB03 */ Store (0x1000, ML03) /* \_SB_.PCI0.SBRG.OMSC._CRS.ML03 */ Store (0xFEE00000, MB04) /* \_SB_.PCI0.SBRG.OMSC._CRS.MB04 */ Store (0x1000, ML04) /* \_SB_.PCI0.SBRG.OMSC._CRS.ML04 */ } ShiftLeft (0x05, 0x0A, Local0) If (And (IOST, Local0)) { Return (CRS) /* \_SB_.PCI0.SBRG.OMSC.CRS_ */ } Else { Return (CRS1) /* \_SB_.PCI0.SBRG.OMSC.CRS1 */ } } } Device (^^RMEM) { Name (_HID, EisaId ("PNP0C01") /* System Board */) // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID Name (CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x00000000, // Address Base 0x000A0000, // Address Length ) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y0D) Memory32Fixed (ReadOnly, 0x000E0000, // Address Base 0x00020000, // Address Length _Y0E) Memory32Fixed (ReadWrite, 0x00100000, // Address Base 0x00000000, // Address Length _Y0F) Memory32Fixed (ReadOnly, 0x00000000, // Address Base 0x00000000, // Address Length _Y10) }) Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { CreateDWordField (CRS, \_SB.RMEM._Y0D._BAS, BAS1) // _BAS: Base Address CreateDWordField (CRS, \_SB.RMEM._Y0D._LEN, LEN1) // _LEN: Length CreateDWordField (CRS, \_SB.RMEM._Y0E._BAS, BAS2) // _BAS: Base Address CreateDWordField (CRS, \_SB.RMEM._Y0E._LEN, LEN2) // _LEN: Length CreateDWordField (CRS, \_SB.RMEM._Y0F._LEN, LEN3) // _LEN: Length CreateDWordField (CRS, \_SB.RMEM._Y10._BAS, BAS4) // _BAS: Base Address CreateDWordField (CRS, \_SB.RMEM._Y10._LEN, LEN4) // _LEN: Length If (OSFL ()) {} Else { If (MG1B) { If (LGreater (MG1B, 0x000C0000)) { Store (0x000C0000, BAS1) /* \_SB_.RMEM._CRS.BAS1 */ Subtract (MG1B, BAS1, LEN1) /* \_SB_.RMEM._CRS.LEN1 */ } } Else { Store (0x000C0000, BAS1) /* \_SB_.RMEM._CRS.BAS1 */ Store (0x00020000, LEN1) /* \_SB_.RMEM._CRS.LEN1 */ } If (Add (MG1B, MG1L, Local0)) { Store (Local0, BAS2) /* \_SB_.RMEM._CRS.BAS2 */ Subtract (0x00100000, BAS2, LEN2) /* \_SB_.RMEM._CRS.LEN2 */ } } Subtract (MG2B, 0x00100000, LEN3) /* \_SB_.RMEM._CRS.LEN3 */ Store (MH1B, BAS4) /* \_SB_.RMEM._CRS.BAS4 */ Subtract (Zero, BAS4, LEN4) /* \_SB_.RMEM._CRS.LEN4 */ Return (CRS) /* \_SB_.RMEM.CRS_ */ } } } Device (SATA) { Name (_ADR, 0x001F0002) // _ADR: Address Name (^NATA, Package (0x01) { 0x001F0002 }) Name (\FZTF, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5 // ....... }) Name (REGF, One) Method (_REG, 2, NotSerialized) // _REG: Region Availability { If (LEqual (Arg0, 0x02)) { Store (Arg1, REGF) /* \_SB_.PCI0.SATA.REGF */ } } Name (TIM0, Package (0x08) { Package (0x04) { 0x78, 0xB4, 0xF0, 0x0384 }, Package (0x04) { 0x23, 0x21, 0x10, Zero }, Package (0x04) { 0x0B, 0x09, 0x04, Zero }, Package (0x06) { 0x78, 0x5A, 0x3C, 0x28, 0x1E, 0x14 }, Package (0x06) { Zero, One, 0x02, One, 0x02, One }, Package (0x06) { Zero, Zero, Zero, One, One, One }, Package (0x04) { 0x04, 0x03, 0x02, Zero }, Package (0x04) { 0x02, One, Zero, Zero } }) Name (TMD0, Buffer (0x14) {}) CreateDWordField (TMD0, Zero, PIO0) CreateDWordField (TMD0, 0x04, DMA0) CreateDWordField (TMD0, 0x08, PIO1) CreateDWordField (TMD0, 0x0C, DMA1) CreateDWordField (TMD0, 0x10, CHNF) OperationRegion (CFG2, PCI_Config, 0x40, 0x20) Field (CFG2, DWordAcc, NoLock, Preserve) { PMPT, 4, PSPT, 4, PMRI, 6, Offset (0x02), SMPT, 4, SSPT, 4, SMRI, 6, Offset (0x04), PSRI, 4, SSRI, 4, Offset (0x08), PM3E, 1, PS3E, 1, SM3E, 1, SS3E, 1, Offset (0x0A), PMUT, 2, , 2, PSUT, 2, Offset (0x0B), SMUT, 2, , 2, SSUT, 2, Offset (0x0C), Offset (0x14), PM6E, 1, PS6E, 1, SM6E, 1, SS6E, 1, PMCR, 1, PSCR, 1, SMCR, 1, SSCR, 1, , 4, PMAE, 1, PSAE, 1, SMAE, 1, SSAE, 1 } Name (GMPT, Zero) Name (GMUE, Zero) Name (GMUT, Zero) Name (GMCR, Zero) Name (GSPT, Zero) Name (GSUE, Zero) Name (GSUT, Zero) Name (GSCR, Zero) Device (CHN0) { Name (_ADR, Zero) // _ADR: Address Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode { ShiftLeft (PSCR, One, Local1) Or (PMCR, Local1, Local0) ShiftLeft (PMAE, 0x02, Local3) ShiftLeft (PM6E, One, Local4) Or (Local3, Local4, Local3) Or (PM3E, Local3, Local1) ShiftLeft (PMPT, 0x04, Local3) Or (Local1, Local3, Local1) ShiftLeft (PSAE, 0x02, Local3) ShiftLeft (PS6E, One, Local4) Or (Local3, Local4, Local3) Or (PS3E, Local3, Local2) ShiftLeft (PSPT, 0x04, Local3) Or (Local2, Local3, Local2) Return (GTM (PMRI, Local1, PMUT, PSRI, Local2, PSUT, Local0)) } Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode { Store (Arg0, Debug) Store (Arg0, TMD0) /* \_SB_.PCI0.SATA.TMD0 */ ShiftLeft (PMAE, 0x02, Local3) ShiftLeft (PM6E, One, Local4) Or (Local3, Local4, Local3) Or (PM3E, Local3, Local0) ShiftLeft (PMPT, 0x04, Local3) Or (Local0, Local3, Local0) ShiftLeft (PSAE, 0x02, Local3) ShiftLeft (PS6E, One, Local4) Or (Local3, Local4, Local3) Or (PS3E, Local3, Local1) ShiftLeft (PSPT, 0x04, Local3) Or (Local1, Local3, Local1) Store (PMRI, GMPT) /* \_SB_.PCI0.SATA.GMPT */ Store (Local0, GMUE) /* \_SB_.PCI0.SATA.GMUE */ Store (PMUT, GMUT) /* \_SB_.PCI0.SATA.GMUT */ Store (PMCR, GMCR) /* \_SB_.PCI0.SATA.GMCR */ Store (PSRI, GSPT) /* \_SB_.PCI0.SATA.GSPT */ Store (Local1, GSUE) /* \_SB_.PCI0.SATA.GSUE */ Store (PSUT, GSUT) /* \_SB_.PCI0.SATA.GSUT */ Store (PSCR, GSCR) /* \_SB_.PCI0.SATA.GSCR */ STM () Store (GMPT, PMRI) /* \_SB_.PCI0.SATA.PMRI */ Store (GMUE, Local0) Store (GMUT, PMUT) /* \_SB_.PCI0.SATA.PMUT */ Store (GMCR, PMCR) /* \_SB_.PCI0.SATA.PMCR */ Store (GSUE, Local1) Store (GSUT, PSUT) /* \_SB_.PCI0.SATA.PSUT */ Store (GSCR, PSCR) /* \_SB_.PCI0.SATA.PSCR */ If (And (Local0, One)) { Store (One, PM3E) /* \_SB_.PCI0.SATA.PM3E */ } Else { Store (Zero, PM3E) /* \_SB_.PCI0.SATA.PM3E */ } If (And (Local0, 0x02)) { Store (One, PM6E) /* \_SB_.PCI0.SATA.PM6E */ } Else { Store (Zero, PM6E) /* \_SB_.PCI0.SATA.PM6E */ } If (And (Local0, 0x04)) { Store (One, PMAE) /* \_SB_.PCI0.SATA.PMAE */ } Else { Store (Zero, PMAE) /* \_SB_.PCI0.SATA.PMAE */ } If (And (Local1, One)) { Store (One, PS3E) /* \_SB_.PCI0.SATA.PS3E */ } Else { Store (Zero, PS3E) /* \_SB_.PCI0.SATA.PS3E */ } If (And (Local1, 0x02)) { Store (One, PS6E) /* \_SB_.PCI0.SATA.PS6E */ } Else { Store (Zero, PS6E) /* \_SB_.PCI0.SATA.PS6E */ } If (And (Local1, 0x04)) { Store (One, PSAE) /* \_SB_.PCI0.SATA.PSAE */ } Else { Store (Zero, PSAE) /* \_SB_.PCI0.SATA.PSAE */ } Store (GTF (Zero, Arg1), ATA0) /* \_SB_.PCI0.SATA.ATA0 */ Store (GTF (One, Arg2), ATA1) /* \_SB_.PCI0.SATA.ATA1 */ } Device (DRV0) { Name (_ADR, Zero) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Return (RATA (ATA0)) } } Device (DRV1) { Name (_ADR, One) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Return (RATA (ATA1)) } } } Device (CHN1) { Name (_ADR, One) // _ADR: Address Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode { ShiftLeft (SSCR, One, Local1) Or (SMCR, Local1, Local0) ShiftLeft (SMAE, 0x02, Local3) ShiftLeft (SM6E, One, Local4) Or (Local3, Local4, Local3) Or (SM3E, Local3, Local1) ShiftLeft (SMPT, 0x04, Local3) Or (Local1, Local3, Local1) ShiftLeft (SSAE, 0x02, Local3) ShiftLeft (SS6E, One, Local4) Or (Local3, Local4, Local3) Or (SS3E, Local3, Local2) ShiftLeft (SSPT, 0x04, Local3) Or (Local2, Local3, Local2) Return (GTM (SMRI, Local1, SMUT, SSRI, Local2, SSUT, Local0)) } Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode { Store (Arg0, Debug) Store (Arg0, TMD0) /* \_SB_.PCI0.SATA.TMD0 */ ShiftLeft (SMAE, 0x02, Local3) ShiftLeft (SM6E, One, Local4) Or (Local3, Local4, Local3) Or (SM3E, Local3, Local0) ShiftLeft (SMPT, 0x04, Local3) Or (Local0, Local3, Local0) ShiftLeft (SSAE, 0x02, Local3) ShiftLeft (SS6E, One, Local4) Or (Local3, Local4, Local3) Or (SS3E, Local3, Local1) ShiftLeft (SSPT, 0x04, Local3) Or (Local1, Local3, Local1) Store (SMRI, GMPT) /* \_SB_.PCI0.SATA.GMPT */ Store (Local0, GMUE) /* \_SB_.PCI0.SATA.GMUE */ Store (SMUT, GMUT) /* \_SB_.PCI0.SATA.GMUT */ Store (SMCR, GMCR) /* \_SB_.PCI0.SATA.GMCR */ Store (SSRI, GSPT) /* \_SB_.PCI0.SATA.GSPT */ Store (Local1, GSUE) /* \_SB_.PCI0.SATA.GSUE */ Store (SSUT, GSUT) /* \_SB_.PCI0.SATA.GSUT */ Store (SSCR, GSCR) /* \_SB_.PCI0.SATA.GSCR */ STM () Store (GMPT, SMRI) /* \_SB_.PCI0.SATA.SMRI */ Store (GMUE, Local0) Store (GMUT, SMUT) /* \_SB_.PCI0.SATA.SMUT */ Store (GMCR, SMCR) /* \_SB_.PCI0.SATA.SMCR */ Store (GSUE, Local1) Store (GSUT, SSUT) /* \_SB_.PCI0.SATA.SSUT */ Store (GSCR, SSCR) /* \_SB_.PCI0.SATA.SSCR */ If (And (Local0, One)) { Store (One, SM3E) /* \_SB_.PCI0.SATA.SM3E */ } Else { Store (Zero, SM3E) /* \_SB_.PCI0.SATA.SM3E */ } If (And (Local0, 0x02)) { Store (One, SM6E) /* \_SB_.PCI0.SATA.SM6E */ } Else { Store (Zero, SM6E) /* \_SB_.PCI0.SATA.SM6E */ } If (And (Local0, 0x04)) { Store (One, SMAE) /* \_SB_.PCI0.SATA.SMAE */ } Else { Store (Zero, SMAE) /* \_SB_.PCI0.SATA.SMAE */ } If (And (Local1, One)) { Store (One, SS3E) /* \_SB_.PCI0.SATA.SS3E */ } Else { Store (Zero, SS3E) /* \_SB_.PCI0.SATA.SS3E */ } If (And (Local1, 0x02)) { Store (One, SS6E) /* \_SB_.PCI0.SATA.SS6E */ } Else { Store (Zero, SS6E) /* \_SB_.PCI0.SATA.SS6E */ } If (And (Local1, 0x04)) { Store (One, SSAE) /* \_SB_.PCI0.SATA.SSAE */ } Else { Store (Zero, SSAE) /* \_SB_.PCI0.SATA.SSAE */ } Store (GTF (Zero, Arg1), ATA2) /* \_SB_.PCI0.SATA.ATA2 */ Store (GTF (One, Arg2), ATA3) /* \_SB_.PCI0.SATA.ATA3 */ } Device (DRV0) { Name (_ADR, Zero) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Return (RATA (ATA2)) } } Device (DRV1) { Name (_ADR, One) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Return (RATA (ATA3)) } } } Method (GTM, 7, Serialized) { Store (Ones, PIO0) /* \_SB_.PCI0.SATA.PIO0 */ Store (Ones, PIO1) /* \_SB_.PCI0.SATA.PIO1 */ Store (Ones, DMA0) /* \_SB_.PCI0.SATA.DMA0 */ Store (Ones, DMA1) /* \_SB_.PCI0.SATA.DMA1 */ Store (0x10, CHNF) /* \_SB_.PCI0.SATA.CHNF */ If (REGF) {} Else { Return (TMD0) /* \_SB_.PCI0.SATA.TMD0 */ } If (And (Arg1, 0x20)) { Or (CHNF, 0x02, CHNF) /* \_SB_.PCI0.SATA.CHNF */ } Store (Match (DerefOf (Index (TIM0, One)), MEQ, Arg0, MTR, Zero, Zero), Local6) Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)), Local7) Store (Local7, DMA0) /* \_SB_.PCI0.SATA.DMA0 */ Store (Local7, PIO0) /* \_SB_.PCI0.SATA.PIO0 */ If (And (Arg4, 0x20)) { Or (CHNF, 0x08, CHNF) /* \_SB_.PCI0.SATA.CHNF */ } Store (Match (DerefOf (Index (TIM0, 0x02)), MEQ, Arg3, MTR, Zero, Zero), Local6) Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)), Local7) Store (Local7, DMA1) /* \_SB_.PCI0.SATA.DMA1 */ Store (Local7, PIO1) /* \_SB_.PCI0.SATA.PIO1 */ If (And (Arg1, 0x07)) { Store (Arg2, Local5) If (And (Arg1, 0x02)) { Add (Local5, 0x02, Local5) } If (And (Arg1, 0x04)) { Add (Local5, 0x04, Local5) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA0) /* \_SB_.PCI0.SATA.DMA0 */ Or (CHNF, One, CHNF) /* \_SB_.PCI0.SATA.CHNF */ } If (And (Arg4, 0x07)) { Store (Arg5, Local5) If (And (Arg4, 0x02)) { Add (Local5, 0x02, Local5) } If (And (Arg4, 0x04)) { Add (Local5, 0x04, Local5) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA1) /* \_SB_.PCI0.SATA.DMA1 */ Or (CHNF, 0x04, CHNF) /* \_SB_.PCI0.SATA.CHNF */ } Store (TMD0, Debug) Return (TMD0) /* \_SB_.PCI0.SATA.TMD0 */ } Method (STM, 0, Serialized) { If (REGF) { Store (Zero, GMUE) /* \_SB_.PCI0.SATA.GMUE */ Store (Zero, GMUT) /* \_SB_.PCI0.SATA.GMUT */ Store (Zero, GSUE) /* \_SB_.PCI0.SATA.GSUE */ Store (Zero, GSUT) /* \_SB_.PCI0.SATA.GSUT */ If (And (CHNF, One)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA0, MTR, Zero, Zero), Local0) If (LGreater (Local0, 0x05)) { Store (0x05, Local0) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GMUT) /* \_SB_.PCI0.SATA.GMUT */ Or (GMUE, One, GMUE) /* \_SB_.PCI0.SATA.GMUE */ If (LGreater (Local0, 0x02)) { Or (GMUE, 0x02, GMUE) /* \_SB_.PCI0.SATA.GMUE */ } If (LGreater (Local0, 0x04)) { And (GMUE, 0xFD, GMUE) /* \_SB_.PCI0.SATA.GMUE */ Or (GMUE, 0x04, GMUE) /* \_SB_.PCI0.SATA.GMUE */ } } ElseIf (Or (LEqual (PIO0, Ones), LEqual (PIO0, Zero))) { If (And (LLess (DMA0, Ones), LGreater (DMA0, Zero))) { Store (DMA0, PIO0) /* \_SB_.PCI0.SATA.PIO0 */ Or (GMUE, 0x80, GMUE) /* \_SB_.PCI0.SATA.GMUE */ } } If (And (CHNF, 0x04)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA1, MTR, Zero, Zero), Local0) If (LGreater (Local0, 0x05)) { Store (0x05, Local0) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GSUT) /* \_SB_.PCI0.SATA.GSUT */ Or (GSUE, One, GSUE) /* \_SB_.PCI0.SATA.GSUE */ If (LGreater (Local0, 0x02)) { Or (GSUE, 0x02, GSUE) /* \_SB_.PCI0.SATA.GSUE */ } If (LGreater (Local0, 0x04)) { And (GSUE, 0xFD, GSUE) /* \_SB_.PCI0.SATA.GSUE */ Or (GSUE, 0x04, GSUE) /* \_SB_.PCI0.SATA.GSUE */ } } ElseIf (Or (LEqual (PIO1, Ones), LEqual (PIO1, Zero))) { If (And (LLess (DMA1, Ones), LGreater (DMA1, Zero))) { Store (DMA1, PIO1) /* \_SB_.PCI0.SATA.PIO1 */ Or (GSUE, 0x80, GSUE) /* \_SB_.PCI0.SATA.GSUE */ } } If (And (CHNF, 0x02)) { Or (GMUE, 0x20, GMUE) /* \_SB_.PCI0.SATA.GMUE */ } If (And (CHNF, 0x08)) { Or (GSUE, 0x20, GSUE) /* \_SB_.PCI0.SATA.GSUE */ } And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO0, MTR, Zero, Zero), 0x07, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, One)), Local0)), Local1) Store (Local1, GMPT) /* \_SB_.PCI0.SATA.GMPT */ If (LLess (Local0, 0x03)) { Or (GMUE, 0x50, GMUE) /* \_SB_.PCI0.SATA.GMUE */ } And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO1, MTR, Zero, Zero), 0x07, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local0)), Local1) Store (Local1, GSPT) /* \_SB_.PCI0.SATA.GSPT */ If (LLess (Local0, 0x03)) { Or (GSUE, 0x50, GSUE) /* \_SB_.PCI0.SATA.GSUE */ } } } Name (AT01, Buffer (0x07) { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF // ....... }) Name (AT02, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90 // ....... }) Name (AT03, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6 // ....... }) Name (AT04, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91 // ....... }) Name (ATA0, Buffer (0x1D) {}) Name (ATA1, Buffer (0x1D) {}) Name (ATA2, Buffer (0x1D) {}) Name (ATA3, Buffer (0x1D) {}) Name (ATAB, Buffer (0x1D) {}) CreateByteField (ATAB, Zero, CMDC) Method (GTFB, 3, Serialized) { Multiply (CMDC, 0x38, Local0) Add (Local0, 0x08, Local1) CreateField (ATAB, Local1, 0x38, CMDX) Multiply (CMDC, 0x07, Local0) CreateByteField (ATAB, Add (Local0, 0x02), A001) CreateByteField (ATAB, Add (Local0, 0x06), A005) Store (Arg0, CMDX) /* \_SB_.PCI0.SATA.GTFB.CMDX */ Store (Arg1, A001) /* \_SB_.PCI0.SATA.GTFB.A001 */ Store (Arg2, A005) /* \_SB_.PCI0.SATA.GTFB.A005 */ Increment (CMDC) } Method (GTF, 2, Serialized) { Store (Arg1, Debug) Store (Zero, CMDC) /* \_SB_.PCI0.SATA.CMDC */ Name (ID49, 0x0C00) Name (ID59, Zero) Name (ID53, 0x04) Name (ID63, 0x0F00) Name (ID88, 0x0F00) Name (IRDY, One) Name (PIOT, Zero) Name (DMAT, Zero) If (LEqual (SizeOf (Arg1), 0x0200)) { CreateWordField (Arg1, 0x62, IW49) Store (IW49, ID49) /* \_SB_.PCI0.SATA.GTF_.ID49 */ CreateWordField (Arg1, 0x6A, IW53) Store (IW53, ID53) /* \_SB_.PCI0.SATA.GTF_.ID53 */ CreateWordField (Arg1, 0x7E, IW63) Store (IW63, ID63) /* \_SB_.PCI0.SATA.GTF_.ID63 */ CreateWordField (Arg1, 0x76, IW59) Store (IW59, ID59) /* \_SB_.PCI0.SATA.GTF_.ID59 */ CreateWordField (Arg1, 0xB0, IW88) Store (IW88, ID88) /* \_SB_.PCI0.SATA.GTF_.ID88 */ } Store (0xA0, Local7) If (Arg0) { Store (0xB0, Local7) And (CHNF, 0x08, IRDY) /* \_SB_.PCI0.SATA.GTF_.IRDY */ If (And (CHNF, 0x10)) { Store (PIO1, PIOT) /* \_SB_.PCI0.SATA.GTF_.PIOT */ } Else { Store (PIO0, PIOT) /* \_SB_.PCI0.SATA.GTF_.PIOT */ } If (And (CHNF, 0x04)) { If (And (CHNF, 0x10)) { Store (DMA1, DMAT) /* \_SB_.PCI0.SATA.GTF_.DMAT */ } Else { Store (DMA0, DMAT) /* \_SB_.PCI0.SATA.GTF_.DMAT */ } } } Else { And (CHNF, 0x02, IRDY) /* \_SB_.PCI0.SATA.GTF_.IRDY */ Store (PIO0, PIOT) /* \_SB_.PCI0.SATA.GTF_.PIOT */ If (And (CHNF, One)) { Store (DMA0, DMAT) /* \_SB_.PCI0.SATA.GTF_.DMAT */ } } If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00)), DMAT)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMAT, MTR, Zero, Zero), Local1) If (LGreater (Local1, 0x05)) { Store (0x05, Local1) } GTFB (AT01, Or (0x40, Local1), Local7) } ElseIf (LAnd (And (ID63, 0xFF00), PIOT)) { And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIOT, MTR, Zero, Zero), 0x03, Local0) Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x07)), Local0)), Local1) GTFB (AT01, Local1, Local7) } If (IRDY) { And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIOT, MTR, Zero, Zero), 0x07, Local0) Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), Local1) GTFB (AT01, Local1, Local7) } ElseIf (And (ID49, 0x0400)) { GTFB (AT01, One, Local7) } If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF))) { GTFB (AT03, And (ID59, 0xFF), Local7) } Store (ATAB, Debug) Return (ATAB) /* \_SB_.PCI0.SATA.ATAB */ } Method (RATA, 1, NotSerialized) { CreateByteField (Arg0, Zero, CMDN) Multiply (CMDN, 0x38, Local0) CreateField (Arg0, 0x08, Local0, RETB) Store (RETB, Debug) Return (Concatenate (RETB, FZTF)) } } Device (SAT1) { Name (_ADR, 0x001F0005) // _ADR: Address Name (REGF, One) Method (_REG, 2, NotSerialized) // _REG: Region Availability { If (LEqual (Arg0, 0x02)) { Store (Arg1, REGF) /* \_SB_.PCI0.SAT1.REGF */ } } Name (TIM0, Package (0x08) { Package (0x04) { 0x78, 0xB4, 0xF0, 0x0384 }, Package (0x04) { 0x23, 0x21, 0x10, Zero }, Package (0x04) { 0x0B, 0x09, 0x04, Zero }, Package (0x06) { 0x78, 0x5A, 0x3C, 0x28, 0x1E, 0x14 }, Package (0x06) { Zero, One, 0x02, One, 0x02, One }, Package (0x06) { Zero, Zero, Zero, One, One, One }, Package (0x04) { 0x04, 0x03, 0x02, Zero }, Package (0x04) { 0x02, One, Zero, Zero } }) Name (TMD0, Buffer (0x14) {}) CreateDWordField (TMD0, Zero, PIO0) CreateDWordField (TMD0, 0x04, DMA0) CreateDWordField (TMD0, 0x08, PIO1) CreateDWordField (TMD0, 0x0C, DMA1) CreateDWordField (TMD0, 0x10, CHNF) OperationRegion (CFG2, PCI_Config, 0x40, 0x20) Field (CFG2, DWordAcc, NoLock, Preserve) { PMPT, 4, PSPT, 4, PMRI, 6, Offset (0x02), SMPT, 4, SSPT, 4, SMRI, 6, Offset (0x04), PSRI, 4, SSRI, 4, Offset (0x08), PM3E, 1, PS3E, 1, SM3E, 1, SS3E, 1, Offset (0x0A), PMUT, 2, , 2, PSUT, 2, Offset (0x0B), SMUT, 2, , 2, SSUT, 2, Offset (0x0C), Offset (0x14), PM6E, 1, PS6E, 1, SM6E, 1, SS6E, 1, PMCR, 1, PSCR, 1, SMCR, 1, SSCR, 1, , 4, PMAE, 1, PSAE, 1, SMAE, 1, SSAE, 1 } Name (GMPT, Zero) Name (GMUE, Zero) Name (GMUT, Zero) Name (GMCR, Zero) Name (GSPT, Zero) Name (GSUE, Zero) Name (GSUT, Zero) Name (GSCR, Zero) Device (CHN0) { Name (_ADR, Zero) // _ADR: Address Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode { ShiftLeft (PSCR, One, Local1) Or (PMCR, Local1, Local0) ShiftLeft (PMAE, 0x02, Local3) ShiftLeft (PM6E, One, Local4) Or (Local3, Local4, Local3) Or (PM3E, Local3, Local1) ShiftLeft (PMPT, 0x04, Local3) Or (Local1, Local3, Local1) ShiftLeft (PSAE, 0x02, Local3) ShiftLeft (PS6E, One, Local4) Or (Local3, Local4, Local3) Or (PS3E, Local3, Local2) ShiftLeft (PSPT, 0x04, Local3) Or (Local2, Local3, Local2) Return (GTM (PMRI, Local1, PMUT, PSRI, Local2, PSUT, Local0)) } Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode { Store (Arg0, Debug) Store (Arg0, TMD0) /* \_SB_.PCI0.SAT1.TMD0 */ ShiftLeft (PMAE, 0x02, Local3) ShiftLeft (PM6E, One, Local4) Or (Local3, Local4, Local3) Or (PM3E, Local3, Local0) ShiftLeft (PMPT, 0x04, Local3) Or (Local0, Local3, Local0) ShiftLeft (PSAE, 0x02, Local3) ShiftLeft (PS6E, One, Local4) Or (Local3, Local4, Local3) Or (PS3E, Local3, Local1) ShiftLeft (PSPT, 0x04, Local3) Or (Local1, Local3, Local1) Store (PMRI, GMPT) /* \_SB_.PCI0.SAT1.GMPT */ Store (Local0, GMUE) /* \_SB_.PCI0.SAT1.GMUE */ Store (PMUT, GMUT) /* \_SB_.PCI0.SAT1.GMUT */ Store (PMCR, GMCR) /* \_SB_.PCI0.SAT1.GMCR */ Store (PSRI, GSPT) /* \_SB_.PCI0.SAT1.GSPT */ Store (Local1, GSUE) /* \_SB_.PCI0.SAT1.GSUE */ Store (PSUT, GSUT) /* \_SB_.PCI0.SAT1.GSUT */ Store (PSCR, GSCR) /* \_SB_.PCI0.SAT1.GSCR */ STM () Store (GMPT, PMRI) /* \_SB_.PCI0.SAT1.PMRI */ Store (GMUE, Local0) Store (GMUT, PMUT) /* \_SB_.PCI0.SAT1.PMUT */ Store (GMCR, PMCR) /* \_SB_.PCI0.SAT1.PMCR */ Store (GSUE, Local1) Store (GSUT, PSUT) /* \_SB_.PCI0.SAT1.PSUT */ Store (GSCR, PSCR) /* \_SB_.PCI0.SAT1.PSCR */ If (And (Local0, One)) { Store (One, PM3E) /* \_SB_.PCI0.SAT1.PM3E */ } Else { Store (Zero, PM3E) /* \_SB_.PCI0.SAT1.PM3E */ } If (And (Local0, 0x02)) { Store (One, PM6E) /* \_SB_.PCI0.SAT1.PM6E */ } Else { Store (Zero, PM6E) /* \_SB_.PCI0.SAT1.PM6E */ } If (And (Local0, 0x04)) { Store (One, PMAE) /* \_SB_.PCI0.SAT1.PMAE */ } Else { Store (Zero, PMAE) /* \_SB_.PCI0.SAT1.PMAE */ } If (And (Local1, One)) { Store (One, PS3E) /* \_SB_.PCI0.SAT1.PS3E */ } Else { Store (Zero, PS3E) /* \_SB_.PCI0.SAT1.PS3E */ } If (And (Local1, 0x02)) { Store (One, PS6E) /* \_SB_.PCI0.SAT1.PS6E */ } Else { Store (Zero, PS6E) /* \_SB_.PCI0.SAT1.PS6E */ } If (And (Local1, 0x04)) { Store (One, PSAE) /* \_SB_.PCI0.SAT1.PSAE */ } Else { Store (Zero, PSAE) /* \_SB_.PCI0.SAT1.PSAE */ } Store (GTF (Zero, Arg1), ATA0) /* \_SB_.PCI0.SAT1.ATA0 */ Store (GTF (One, Arg2), ATA1) /* \_SB_.PCI0.SAT1.ATA1 */ } Device (DRV0) { Name (_ADR, Zero) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Return (RATA (ATA0)) } } Device (DRV1) { Name (_ADR, One) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Return (RATA (ATA1)) } } } Device (CHN1) { Name (_ADR, One) // _ADR: Address Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode { ShiftLeft (SSCR, One, Local1) Or (SMCR, Local1, Local0) ShiftLeft (SMAE, 0x02, Local3) ShiftLeft (SM6E, One, Local4) Or (Local3, Local4, Local3) Or (SM3E, Local3, Local1) ShiftLeft (SMPT, 0x04, Local3) Or (Local1, Local3, Local1) ShiftLeft (SSAE, 0x02, Local3) ShiftLeft (SS6E, One, Local4) Or (Local3, Local4, Local3) Or (SS3E, Local3, Local2) ShiftLeft (SSPT, 0x04, Local3) Or (Local2, Local3, Local2) Return (GTM (SMRI, Local1, SMUT, SSRI, Local2, SSUT, Local0)) } Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode { Store (Arg0, Debug) Store (Arg0, TMD0) /* \_SB_.PCI0.SAT1.TMD0 */ ShiftLeft (SMAE, 0x02, Local3) ShiftLeft (SM6E, One, Local4) Or (Local3, Local4, Local3) Or (SM3E, Local3, Local0) ShiftLeft (SMPT, 0x04, Local3) Or (Local0, Local3, Local0) ShiftLeft (SSAE, 0x02, Local3) ShiftLeft (SS6E, One, Local4) Or (Local3, Local4, Local3) Or (SS3E, Local3, Local1) ShiftLeft (SSPT, 0x04, Local3) Or (Local1, Local3, Local1) Store (SMRI, GMPT) /* \_SB_.PCI0.SAT1.GMPT */ Store (Local0, GMUE) /* \_SB_.PCI0.SAT1.GMUE */ Store (SMUT, GMUT) /* \_SB_.PCI0.SAT1.GMUT */ Store (SMCR, GMCR) /* \_SB_.PCI0.SAT1.GMCR */ Store (SSRI, GSPT) /* \_SB_.PCI0.SAT1.GSPT */ Store (Local1, GSUE) /* \_SB_.PCI0.SAT1.GSUE */ Store (SSUT, GSUT) /* \_SB_.PCI0.SAT1.GSUT */ Store (SSCR, GSCR) /* \_SB_.PCI0.SAT1.GSCR */ STM () Store (GMPT, SMRI) /* \_SB_.PCI0.SAT1.SMRI */ Store (GMUE, Local0) Store (GMUT, SMUT) /* \_SB_.PCI0.SAT1.SMUT */ Store (GMCR, SMCR) /* \_SB_.PCI0.SAT1.SMCR */ Store (GSUE, Local1) Store (GSUT, SSUT) /* \_SB_.PCI0.SAT1.SSUT */ Store (GSCR, SSCR) /* \_SB_.PCI0.SAT1.SSCR */ If (And (Local0, One)) { Store (One, SM3E) /* \_SB_.PCI0.SAT1.SM3E */ } Else { Store (Zero, SM3E) /* \_SB_.PCI0.SAT1.SM3E */ } If (And (Local0, 0x02)) { Store (One, SM6E) /* \_SB_.PCI0.SAT1.SM6E */ } Else { Store (Zero, SM6E) /* \_SB_.PCI0.SAT1.SM6E */ } If (And (Local0, 0x04)) { Store (One, SMAE) /* \_SB_.PCI0.SAT1.SMAE */ } Else { Store (Zero, SMAE) /* \_SB_.PCI0.SAT1.SMAE */ } If (And (Local1, One)) { Store (One, SS3E) /* \_SB_.PCI0.SAT1.SS3E */ } Else { Store (Zero, SS3E) /* \_SB_.PCI0.SAT1.SS3E */ } If (And (Local1, 0x02)) { Store (One, SS6E) /* \_SB_.PCI0.SAT1.SS6E */ } Else { Store (Zero, SS6E) /* \_SB_.PCI0.SAT1.SS6E */ } If (And (Local1, 0x04)) { Store (One, SSAE) /* \_SB_.PCI0.SAT1.SSAE */ } Else { Store (Zero, SSAE) /* \_SB_.PCI0.SAT1.SSAE */ } Store (GTF (Zero, Arg1), ATA2) /* \_SB_.PCI0.SAT1.ATA2 */ Store (GTF (One, Arg2), ATA3) /* \_SB_.PCI0.SAT1.ATA3 */ } Device (DRV0) { Name (_ADR, Zero) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Return (RATA (ATA2)) } } Device (DRV1) { Name (_ADR, One) // _ADR: Address Method (_GTF, 0, NotSerialized) // _GTF: Get Task File { Return (RATA (ATA3)) } } } Method (GTM, 7, Serialized) { Store (Ones, PIO0) /* \_SB_.PCI0.SAT1.PIO0 */ Store (Ones, PIO1) /* \_SB_.PCI0.SAT1.PIO1 */ Store (Ones, DMA0) /* \_SB_.PCI0.SAT1.DMA0 */ Store (Ones, DMA1) /* \_SB_.PCI0.SAT1.DMA1 */ Store (0x10, CHNF) /* \_SB_.PCI0.SAT1.CHNF */ If (REGF) {} Else { Return (TMD0) /* \_SB_.PCI0.SAT1.TMD0 */ } If (And (Arg1, 0x20)) { Or (CHNF, 0x02, CHNF) /* \_SB_.PCI0.SAT1.CHNF */ } Store (Match (DerefOf (Index (TIM0, One)), MEQ, Arg0, MTR, Zero, Zero), Local6) Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)), Local7) Store (Local7, DMA0) /* \_SB_.PCI0.SAT1.DMA0 */ Store (Local7, PIO0) /* \_SB_.PCI0.SAT1.PIO0 */ If (And (Arg4, 0x20)) { Or (CHNF, 0x08, CHNF) /* \_SB_.PCI0.SAT1.CHNF */ } Store (Match (DerefOf (Index (TIM0, 0x02)), MEQ, Arg3, MTR, Zero, Zero), Local6) Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)), Local7) Store (Local7, DMA1) /* \_SB_.PCI0.SAT1.DMA1 */ Store (Local7, PIO1) /* \_SB_.PCI0.SAT1.PIO1 */ If (And (Arg1, 0x07)) { Store (Arg2, Local5) If (And (Arg1, 0x02)) { Add (Local5, 0x02, Local5) } If (And (Arg1, 0x04)) { Add (Local5, 0x04, Local5) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA0) /* \_SB_.PCI0.SAT1.DMA0 */ Or (CHNF, One, CHNF) /* \_SB_.PCI0.SAT1.CHNF */ } If (And (Arg4, 0x07)) { Store (Arg5, Local5) If (And (Arg4, 0x02)) { Add (Local5, 0x02, Local5) } If (And (Arg4, 0x04)) { Add (Local5, 0x04, Local5) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA1) /* \_SB_.PCI0.SAT1.DMA1 */ Or (CHNF, 0x04, CHNF) /* \_SB_.PCI0.SAT1.CHNF */ } Store (TMD0, Debug) Return (TMD0) /* \_SB_.PCI0.SAT1.TMD0 */ } Method (STM, 0, Serialized) { If (REGF) { Store (Zero, GMUE) /* \_SB_.PCI0.SAT1.GMUE */ Store (Zero, GMUT) /* \_SB_.PCI0.SAT1.GMUT */ Store (Zero, GSUE) /* \_SB_.PCI0.SAT1.GSUE */ Store (Zero, GSUT) /* \_SB_.PCI0.SAT1.GSUT */ If (And (CHNF, One)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA0, MTR, Zero, Zero), Local0) If (LGreater (Local0, 0x05)) { Store (0x05, Local0) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GMUT) /* \_SB_.PCI0.SAT1.GMUT */ Or (GMUE, One, GMUE) /* \_SB_.PCI0.SAT1.GMUE */ If (LGreater (Local0, 0x02)) { Or (GMUE, 0x02, GMUE) /* \_SB_.PCI0.SAT1.GMUE */ } If (LGreater (Local0, 0x04)) { And (GMUE, 0xFD, GMUE) /* \_SB_.PCI0.SAT1.GMUE */ Or (GMUE, 0x04, GMUE) /* \_SB_.PCI0.SAT1.GMUE */ } } ElseIf (Or (LEqual (PIO0, Ones), LEqual (PIO0, Zero))) { If (And (LLess (DMA0, Ones), LGreater (DMA0, Zero))) { Store (DMA0, PIO0) /* \_SB_.PCI0.SAT1.PIO0 */ Or (GMUE, 0x80, GMUE) /* \_SB_.PCI0.SAT1.GMUE */ } } If (And (CHNF, 0x04)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA1, MTR, Zero, Zero), Local0) If (LGreater (Local0, 0x05)) { Store (0x05, Local0) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GSUT) /* \_SB_.PCI0.SAT1.GSUT */ Or (GSUE, One, GSUE) /* \_SB_.PCI0.SAT1.GSUE */ If (LGreater (Local0, 0x02)) { Or (GSUE, 0x02, GSUE) /* \_SB_.PCI0.SAT1.GSUE */ } If (LGreater (Local0, 0x04)) { And (GSUE, 0xFD, GSUE) /* \_SB_.PCI0.SAT1.GSUE */ Or (GSUE, 0x04, GSUE) /* \_SB_.PCI0.SAT1.GSUE */ } } ElseIf (Or (LEqual (PIO1, Ones), LEqual (PIO1, Zero))) { If (And (LLess (DMA1, Ones), LGreater (DMA1, Zero))) { Store (DMA1, PIO1) /* \_SB_.PCI0.SAT1.PIO1 */ Or (GSUE, 0x80, GSUE) /* \_SB_.PCI0.SAT1.GSUE */ } } If (And (CHNF, 0x02)) { Or (GMUE, 0x20, GMUE) /* \_SB_.PCI0.SAT1.GMUE */ } If (And (CHNF, 0x08)) { Or (GSUE, 0x20, GSUE) /* \_SB_.PCI0.SAT1.GSUE */ } And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO0, MTR, Zero, Zero), 0x07, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, One)), Local0)), Local1) Store (Local1, GMPT) /* \_SB_.PCI0.SAT1.GMPT */ If (LLess (Local0, 0x03)) { Or (GMUE, 0x50, GMUE) /* \_SB_.PCI0.SAT1.GMUE */ } And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO1, MTR, Zero, Zero), 0x07, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local0)), Local1) Store (Local1, GSPT) /* \_SB_.PCI0.SAT1.GSPT */ If (LLess (Local0, 0x03)) { Or (GSUE, 0x50, GSUE) /* \_SB_.PCI0.SAT1.GSUE */ } } } Name (AT01, Buffer (0x07) { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF // ....... }) Name (AT02, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90 // ....... }) Name (AT03, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6 // ....... }) Name (AT04, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91 // ....... }) Name (ATA0, Buffer (0x1D) {}) Name (ATA1, Buffer (0x1D) {}) Name (ATA2, Buffer (0x1D) {}) Name (ATA3, Buffer (0x1D) {}) Name (ATAB, Buffer (0x1D) {}) CreateByteField (ATAB, Zero, CMDC) Method (GTFB, 3, Serialized) { Multiply (CMDC, 0x38, Local0) Add (Local0, 0x08, Local1) CreateField (ATAB, Local1, 0x38, CMDX) Multiply (CMDC, 0x07, Local0) CreateByteField (ATAB, Add (Local0, 0x02), A001) CreateByteField (ATAB, Add (Local0, 0x06), A005) Store (Arg0, CMDX) /* \_SB_.PCI0.SAT1.GTFB.CMDX */ Store (Arg1, A001) /* \_SB_.PCI0.SAT1.GTFB.A001 */ Store (Arg2, A005) /* \_SB_.PCI0.SAT1.GTFB.A005 */ Increment (CMDC) } Method (GTF, 2, Serialized) { Store (Arg1, Debug) Store (Zero, CMDC) /* \_SB_.PCI0.SAT1.CMDC */ Name (ID49, 0x0C00) Name (ID59, Zero) Name (ID53, 0x04) Name (ID63, 0x0F00) Name (ID88, 0x0F00) Name (IRDY, One) Name (PIOT, Zero) Name (DMAT, Zero) If (LEqual (SizeOf (Arg1), 0x0200)) { CreateWordField (Arg1, 0x62, IW49) Store (IW49, ID49) /* \_SB_.PCI0.SAT1.GTF_.ID49 */ CreateWordField (Arg1, 0x6A, IW53) Store (IW53, ID53) /* \_SB_.PCI0.SAT1.GTF_.ID53 */ CreateWordField (Arg1, 0x7E, IW63) Store (IW63, ID63) /* \_SB_.PCI0.SAT1.GTF_.ID63 */ CreateWordField (Arg1, 0x76, IW59) Store (IW59, ID59) /* \_SB_.PCI0.SAT1.GTF_.ID59 */ CreateWordField (Arg1, 0xB0, IW88) Store (IW88, ID88) /* \_SB_.PCI0.SAT1.GTF_.ID88 */ } Store (0xA0, Local7) If (Arg0) { Store (0xB0, Local7) And (CHNF, 0x08, IRDY) /* \_SB_.PCI0.SAT1.GTF_.IRDY */ If (And (CHNF, 0x10)) { Store (PIO1, PIOT) /* \_SB_.PCI0.SAT1.GTF_.PIOT */ } Else { Store (PIO0, PIOT) /* \_SB_.PCI0.SAT1.GTF_.PIOT */ } If (And (CHNF, 0x04)) { If (And (CHNF, 0x10)) { Store (DMA1, DMAT) /* \_SB_.PCI0.SAT1.GTF_.DMAT */ } Else { Store (DMA0, DMAT) /* \_SB_.PCI0.SAT1.GTF_.DMAT */ } } } Else { And (CHNF, 0x02, IRDY) /* \_SB_.PCI0.SAT1.GTF_.IRDY */ Store (PIO0, PIOT) /* \_SB_.PCI0.SAT1.GTF_.PIOT */ If (And (CHNF, One)) { Store (DMA0, DMAT) /* \_SB_.PCI0.SAT1.GTF_.DMAT */ } } If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00)), DMAT)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMAT, MTR, Zero, Zero), Local1) If (LGreater (Local1, 0x05)) { Store (0x05, Local1) } GTFB (AT01, Or (0x40, Local1), Local7) } ElseIf (LAnd (And (ID63, 0xFF00), PIOT)) { And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIOT, MTR, Zero, Zero), 0x03, Local0) Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x07)), Local0)), Local1) GTFB (AT01, Local1, Local7) } If (IRDY) { And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIOT, MTR, Zero, Zero), 0x07, Local0) Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), Local1) GTFB (AT01, Local1, Local7) } ElseIf (And (ID49, 0x0400)) { GTFB (AT01, One, Local7) } If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF))) { GTFB (AT03, And (ID59, 0xFF), Local7) } Store (ATAB, Debug) Return (ATAB) /* \_SB_.PCI0.SAT1.ATAB */ } Method (RATA, 1, NotSerialized) { CreateByteField (Arg0, Zero, CMDN) Multiply (CMDN, 0x38, Local0) CreateField (Arg0, 0x08, Local0, RETB) Store (RETB, Debug) Return (Concatenate (RETB, FZTF)) } } Device (USB0) { Name (_ADR, 0x001D0000) // _ADR: Address OperationRegion (BAR0, PCI_Config, 0xC4, One) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 2, Offset (0x01) } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (Arg0) { Store (0x03, USBW) /* \_SB_.PCI0.USB0.USBW */ } Else { Store (Zero, USBW) /* \_SB_.PCI0.USB0.USBW */ } } Device (RHUB) { Name (_ADR, Zero) // _ADR: Address Device (PRT1) { Name (_ADR, One) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT2) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x03, 0x03)) } } Device (USB1) { Name (_ADR, 0x001D0001) // _ADR: Address OperationRegion (BAR0, PCI_Config, 0xC4, One) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 2, Offset (0x01) } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (Arg0) { Store (0x03, USBW) /* \_SB_.PCI0.USB1.USBW */ } Else { Store (Zero, USBW) /* \_SB_.PCI0.USB1.USBW */ } } Device (RHUB) { Name (_ADR, Zero) // _ADR: Address Device (PRT1) { Name (_ADR, One) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT2) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x04, 0x03)) } } Device (USB2) { Name (_ADR, 0x001D0002) // _ADR: Address OperationRegion (BAR0, PCI_Config, 0xC4, One) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 2, Offset (0x01) } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (Arg0) { Store (0x03, USBW) /* \_SB_.PCI0.USB2.USBW */ } Else { Store (Zero, USBW) /* \_SB_.PCI0.USB2.USBW */ } } Device (RHUB) { Name (_ADR, Zero) // _ADR: Address Device (PRT1) { Name (_ADR, One) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT2) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x0C, 0x03)) } } Device (USB5) { Name (_ADR, 0x001D0003) // _ADR: Address OperationRegion (BAR0, PCI_Config, 0xC4, One) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 2, Offset (0x01) } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (Arg0) { Store (0x03, USBW) /* \_SB_.PCI0.USB5.USBW */ } Else { Store (Zero, USBW) /* \_SB_.PCI0.USB5.USBW */ } } Device (RHUB) { Name (_ADR, Zero) // _ADR: Address Device (PRT1) { Name (_ADR, One) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT2) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x20, 0x03)) } } Device (EUSB) { Name (_ADR, 0x001D0007) // _ADR: Address Device (RHUB) { Name (_ADR, Zero) // _ADR: Address Device (PRT1) { Name (_ADR, One) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT2) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT3) { Name (_ADR, 0x03) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT4) { Name (_ADR, 0x04) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT5) { Name (_ADR, 0x05) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT6) { Name (_ADR, 0x06) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x0D, 0x03)) } } Device (USB3) { Name (_ADR, 0x001A0000) // _ADR: Address OperationRegion (BAR0, PCI_Config, 0xC4, One) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 2, Offset (0x01) } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (Arg0) { Store (0x03, USBW) /* \_SB_.PCI0.USB3.USBW */ } Else { Store (Zero, USBW) /* \_SB_.PCI0.USB3.USBW */ } } Device (RHUB) { Name (_ADR, Zero) // _ADR: Address Device (PRT1) { Name (_ADR, One) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x0, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT2) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x0E, 0x03)) } } Device (USB4) { Name (_ADR, 0x001A0001) // _ADR: Address OperationRegion (BAR0, PCI_Config, 0xC4, One) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 2, Offset (0x01) } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (Arg0) { Store (0x03, USBW) /* \_SB_.PCI0.USB4.USBW */ } Else { Store (Zero, USBW) /* \_SB_.PCI0.USB4.USBW */ } } Device (RHUB) { Name (_ADR, Zero) // _ADR: Address Device (PRT1) { Name (_ADR, One) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT2) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x05, 0x03)) } } Device (USB6) { Name (_ADR, 0x001A0002) // _ADR: Address OperationRegion (BAR0, PCI_Config, 0xC4, One) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 2, Offset (0x01) } Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State { If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake { If (Arg0) { Store (0x03, USBW) /* \_SB_.PCI0.USB6.USBW */ } Else { Store (Zero, USBW) /* \_SB_.PCI0.USB6.USBW */ } } Device (RHUB) { Name (_ADR, Zero) // _ADR: Address Device (PRT1) { Name (_ADR, One) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT2) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x20, 0x03)) } } Device (USBE) { Name (_ADR, 0x001A0007) // _ADR: Address Device (RHUB) { Name (_ADR, Zero) // _ADR: Address Device (PRT1) { Name (_ADR, One) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT2) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT3) { Name (_ADR, 0x03) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT4) { Name (_ADR, 0x04) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT5) { Name (_ADR, 0x05) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } Device (PRT6) { Name (_ADR, 0x06) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, Zero, Zero, Zero }) Name (_PLD, ToPLD ( PLD_Revision = 0x1, PLD_IgnoreColor = 0x1, PLD_Red = 0x0, PLD_Green = 0x0, PLD_Blue = 0x0, PLD_Width = 0x0, PLD_Height = 0x0, PLD_UserVisible = 0x1, PLD_Dock = 0x0, PLD_Lid = 0x0, PLD_Panel = "BACK", PLD_VerticalPosition = "CENTER", PLD_HorizontalPosition = "RIGHT", PLD_Shape = "HORIZONTALRECTANGLE", PLD_GroupOrientation = 0x0, PLD_GroupToken = 0x0, PLD_GroupPosition = 0x0, PLD_Bay = 0x0, PLD_Ejectable = 0x0, PLD_EjectRequired = 0x0, PLD_CabinetNumber = 0x0, PLD_CardCageNumber = 0x0, PLD_Reference = 0x0, PLD_Rotation = 0x0, PLD_Order = 0x0) ) // _PLD: Physical Location of Device } } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x0D, 0x03)) } } Device (GBE) { Name (_ADR, 0x00190000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x0D, 0x04)) } } Device (P0P4) { Name (_ADR, 0x001C0000) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x09, 0x04)) } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AR04) /* \_SB_.AR04 */ } Return (PR04) /* \_SB_.PR04 */ } } Device (P0P5) { Name (_ADR, 0x001C0001) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x09, 0x04)) } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AR05) /* \_SB_.AR05 */ } Return (PR05) /* \_SB_.PR05 */ } } Device (P0P6) { Name (_ADR, 0x001C0002) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x09, 0x04)) } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AR06) /* \_SB_.AR06 */ } Return (PR06) /* \_SB_.PR06 */ } } Device (P0P7) { Name (_ADR, 0x001C0003) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x09, 0x04)) } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AR07) /* \_SB_.AR07 */ } Return (PR07) /* \_SB_.PR07 */ } } Device (P0P8) { Name (_ADR, 0x001C0004) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x09, 0x04)) } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AR08) /* \_SB_.AR08 */ } Return (PR08) /* \_SB_.PR08 */ } } Device (P0P9) { Name (_ADR, 0x001C0005) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x09, 0x04)) } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AR09) /* \_SB_.AR09 */ } Return (PR09) /* \_SB_.PR09 */ } } } Scope (\_GPE) { Method (_L09, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { Notify (\_SB.PCI0.P0P2, 0x02) // Device Wake Notify (\_SB.PCI0.P0P3, 0x02) // Device Wake Notify (\_SB.PCI0.P0P4, 0x02) // Device Wake Notify (\_SB.PCI0.P0P5, 0x02) // Device Wake Notify (\_SB.PCI0.P0P6, 0x02) // Device Wake Notify (\_SB.PCI0.P0P7, 0x02) // Device Wake Notify (\_SB.PCI0.P0P8, 0x02) // Device Wake Notify (\_SB.PCI0.P0P9, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } Method (_L0B, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { Notify (\_SB.PCI0.P0P1, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } Method (_L03, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { Notify (\_SB.PCI0.USB0, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } Method (_L04, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { Notify (\_SB.PCI0.USB1, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } Method (_L0C, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { Notify (\_SB.PCI0.USB2, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } Method (_L20, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { Notify (\_SB.PCI0.USB5, 0x02) // Device Wake Notify (\_SB.PCI0.USB6, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } Method (_L0D, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { Notify (\_SB.PCI0.EUSB, 0x02) // Device Wake Notify (\_SB.PCI0.USBE, 0x02) // Device Wake Notify (\_SB.PCI0.GBE, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } Method (_L0E, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { Notify (\_SB.PCI0.USB3, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } Method (_L05, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { Notify (\_SB.PCI0.USB4, 0x02) // Device Wake Notify (\_SB.PWRB, 0x02) // Device Wake } } Device (PWRB) { Name (_HID, EisaId ("PNP0C0C") /* Power Button Device */) // _HID: Hardware ID Name (_UID, 0xAA) // _UID: Unique ID Name (_STA, 0x0B) // _STA: Status } } OperationRegion (_SB.PCI0.SBRG.PIX0, PCI_Config, 0x60, 0x0C) Field (\_SB.PCI0.SBRG.PIX0, ByteAcc, NoLock, Preserve) { PIRA, 8, PIRB, 8, PIRC, 8, PIRD, 8, Offset (0x08), PIRE, 8, PIRF, 8, PIRG, 8, PIRH, 8 } Scope (_SB) { Name (BUFA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {15} }) CreateWordField (BUFA, One, IRA0) Device (LNKA) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, One) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { And (PIRA, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRSA) /* \_SB_.PRSA */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { Or (PIRA, 0x80, PIRA) /* \PIRA */ } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { And (PIRA, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) /* \_SB_.IRA0 */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRA) /* \PIRA */ } } Device (LNKB) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x02) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { And (PIRB, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRSB) /* \_SB_.PRSB */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { Or (PIRB, 0x80, PIRB) /* \PIRB */ } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { And (PIRB, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) /* \_SB_.IRA0 */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRB) /* \PIRB */ } } Device (LNKC) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x03) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { And (PIRC, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRSC) /* \_SB_.PRSC */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { Or (PIRC, 0x80, PIRC) /* \PIRC */ } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { And (PIRC, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) /* \_SB_.IRA0 */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRC) /* \PIRC */ } } Device (LNKD) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x04) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { And (PIRD, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRSD) /* \_SB_.PRSD */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { Or (PIRD, 0x80, PIRD) /* \PIRD */ } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { And (PIRD, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) /* \_SB_.IRA0 */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRD) /* \PIRD */ } } Device (LNKE) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x05) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { And (PIRE, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRSE) /* \_SB_.PRSE */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { Or (PIRE, 0x80, PIRE) /* \PIRE */ } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { And (PIRE, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) /* \_SB_.IRA0 */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRE) /* \PIRE */ } } Device (LNKF) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x06) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { And (PIRF, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRSF) /* \_SB_.PRSF */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { Or (PIRF, 0x80, PIRF) /* \PIRF */ } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { And (PIRF, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) /* \_SB_.IRA0 */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRF) /* \PIRF */ } } Device (LNKG) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x07) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { And (PIRG, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRSG) /* \_SB_.PRSG */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { Or (PIRG, 0x80, PIRG) /* \PIRG */ } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { And (PIRG, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) /* \_SB_.IRA0 */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRG) /* \PIRG */ } } Device (LNKH) { Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID Name (_UID, 0x08) // _UID: Unique ID Method (_STA, 0, NotSerialized) // _STA: Status { And (PIRH, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings { Return (PRSH) /* \_SB_.PRSH */ } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { Or (PIRH, 0x80, PIRH) /* \PIRH */ } Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { And (PIRH, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) /* \_SB_.IRA0 */ Return (BUFA) /* \_SB_.BUFA */ } Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRH) /* \PIRH */ } } } Scope (_SB) { Name (XCPD, Zero) Name (XNPT, One) Name (XCAP, 0x02) Name (XDCP, 0x04) Name (XDCT, 0x08) Name (XDST, 0x0A) Name (XLCP, 0x0C) Name (XLCT, 0x10) Name (XLST, 0x12) Name (XSCP, 0x14) Name (XSCT, 0x18) Name (XSST, 0x1A) Name (XRCT, 0x1C) Mutex (MUTE, 0x00) Method (RBPE, 1, NotSerialized) { Acquire (MUTE, 0x03E8) Add (Arg0, PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, One) Field (PCFG, ByteAcc, NoLock, Preserve) { XCFG, 8 } Release (MUTE) Return (XCFG) /* \_SB_.RBPE.XCFG */ } Method (RWPE, 1, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFE, Arg0) Add (Arg0, PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x02) Field (PCFG, WordAcc, NoLock, Preserve) { XCFG, 16 } Release (MUTE) Return (XCFG) /* \_SB_.RWPE.XCFG */ } Method (RDPE, 1, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFC, Arg0) Add (Arg0, PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x04) Field (PCFG, DWordAcc, NoLock, Preserve) { XCFG, 32 } Release (MUTE) Return (XCFG) /* \_SB_.RDPE.XCFG */ } Method (WBPE, 2, NotSerialized) { Acquire (MUTE, 0x0FFF) Add (Arg0, PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, One) Field (PCFG, ByteAcc, NoLock, Preserve) { XCFG, 8 } Store (Arg1, XCFG) /* \_SB_.WBPE.XCFG */ Release (MUTE) } Method (WWPE, 2, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFE, Arg0) Add (Arg0, PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x02) Field (PCFG, WordAcc, NoLock, Preserve) { XCFG, 16 } Store (Arg1, XCFG) /* \_SB_.WWPE.XCFG */ Release (MUTE) } Method (WDPE, 2, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFC, Arg0) Add (Arg0, PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x04) Field (PCFG, DWordAcc, NoLock, Preserve) { XCFG, 32 } Store (Arg1, XCFG) /* \_SB_.WDPE.XCFG */ Release (MUTE) } Method (RWDP, 3, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFC, Arg0) Add (Arg0, PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x04) Field (PCFG, DWordAcc, NoLock, Preserve) { XCFG, 32 } And (XCFG, Arg2, Local1) Or (Local1, Arg1, XCFG) /* \_SB_.RWDP.XCFG */ Release (MUTE) } Method (RPME, 1, NotSerialized) { Add (Arg0, 0x84, Local0) Store (RDPE (Local0), Local1) If (LEqual (Local1, Ones)) { Return (Zero) } Else { If (LAnd (Local1, 0x00010000)) { WDPE (Local0, And (Local1, 0x00010000)) Return (One) } Return (Zero) } } } Scope (_SB.PCI0) { Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities { Name (SUPP, Zero) Name (CTRL, Zero) CreateDWordField (Arg3, Zero, CDW1) CreateDWordField (Arg3, 0x04, CDW2) CreateDWordField (Arg3, 0x08, CDW3) If (LEqual (Arg0, ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) { Store (CDW2, SUPP) /* \_SB_.PCI0._OSC.SUPP */ Store (CDW3, CTRL) /* \_SB_.PCI0._OSC.CTRL */ If (LNotEqual (And (SUPP, 0x16), 0x16)) { And (CTRL, 0x1E, CTRL) /* \_SB_.PCI0._OSC.CTRL */ } If (LNot (PEHP)) { And (CTRL, 0x1E, CTRL) /* \_SB_.PCI0._OSC.CTRL */ } If (LNot (SHPC)) { And (CTRL, 0x1D, CTRL) /* \_SB_.PCI0._OSC.CTRL */ } If (LNot (PEPM)) { And (CTRL, 0x1B, CTRL) /* \_SB_.PCI0._OSC.CTRL */ } If (LNot (PEER)) { And (CTRL, 0x15, CTRL) /* \_SB_.PCI0._OSC.CTRL */ } If (LNot (PECS)) { And (CTRL, 0x0F, CTRL) /* \_SB_.PCI0._OSC.CTRL */ } If (Not (And (CDW1, One))) { If (And (CTRL, One)) {} If (And (CTRL, 0x04)) {} If (And (CTRL, 0x10)) {} } If (LNotEqual (Arg1, One)) { Or (CDW1, 0x08, CDW1) /* \_SB_.PCI0._OSC.CDW1 */ } If (LNotEqual (CDW3, CTRL)) { Or (CDW1, 0x10, CDW1) /* \_SB_.PCI0._OSC.CDW1 */ } Store (CTRL, CDW3) /* \_SB_.PCI0._OSC.CDW3 */ Return (Arg3) } Else { Or (CDW1, 0x04, CDW1) /* \_SB_.PCI0._OSC.CDW1 */ Return (Arg3) } } } Scope (_SB.PCI0) { Device (GFX0) { Name (_ADR, 0x00020000) // _ADR: Address OperationRegion (IGDM, SystemMemory, 0xDDD9E0E4, 0x2000) Field (IGDM, AnyAcc, NoLock, Preserve) { SIGN, 128, SIZE, 32, OVER, 32, SVER, 256, VVER, 128, GVER, 128, MBOX, 32, Offset (0xE0), KSV0, 32, KSV1, 8, Offset (0xF0), IBTT, 8, IPSC, 2, IPAT, 4, Offset (0xF2), IBIA, 3, IBLC, 2, , 1, ITVF, 4, ITVM, 4, Offset (0xF4), IDVM, 1, IDVS, 2, ISSC, 1, Offset (0xF5), Offset (0x100), DRDY, 32, CSTS, 32, CEVT, 32, Offset (0x120), DIDL, 32, DDL2, 32, DDL3, 32, DDL4, 32, DDL5, 32, DDL6, 32, DDL7, 32, DDL8, 32, CPDL, 32, CPL2, 32, CPL3, 32, CPL4, 32, CPL5, 32, CPL6, 32, CPL7, 32, CPL8, 32, CADL, 32, CAL2, 32, CAL3, 32, CAL4, 32, CAL5, 32, CAL6, 32, CAL7, 32, CAL8, 32, NADL, 32, NDL2, 32, NDL3, 32, NDL4, 32, NDL5, 32, NDL6, 32, NDL7, 32, NDL8, 32, ASLP, 32, TIDX, 32, CHPD, 32, CLID, 32, CDCK, 32, SXSW, 32, EVTS, 32, CNOT, 32, NRDY, 32, Offset (0x200), SCIE, 1, GEFC, 4, GXFC, 3, GESF, 8, Offset (0x204), PARM, 32, DSLP, 32, Offset (0x300), ARDY, 32, ASLC, 32, TCHE, 32, ALSI, 32, BCLP, 32, PFIT, 32, CBLV, 32, BCLM, 320, CPFM, 32, EPFM, 32, Offset (0x400), GVD1, 57344 } OperationRegion (TCOI, SystemIO, TOBS, 0x08) Field (TCOI, WordAcc, NoLock, Preserve) { Offset (0x04), , 9, SCIS, 1, Offset (0x06) } Name (DBTB, Package (0x15) { Zero, 0x07, 0x38, 0x01C0, 0x0E00, 0x3F, 0x01C7, 0x0E07, 0x01F8, 0x0E38, 0x0FC0, Zero, Zero, Zero, Zero, Zero, 0x7000, 0x7007, 0x7038, 0x71C0, 0x7E00 }) Method (GSCI, 0, NotSerialized) { If (LEqual (GEFC, 0x04)) { Store (GBDA (), GXFC) /* \_SB_.PCI0.GFX0.GXFC */ } If (LEqual (GEFC, 0x06)) { Store (SBCB (), GXFC) /* \_SB_.PCI0.GFX0.GXFC */ } Store (One, SCIS) /* \_SB_.PCI0.GFX0.SCIS */ Store (Zero, GEFC) /* \_SB_.PCI0.GFX0.GEFC */ Store (Zero, GSSE) /* \_SB_.PCI0.GFX0.GSSE */ Store (Zero, SCIE) /* \_SB_.PCI0.GFX0.SCIE */ Return (Zero) } Method (GBDA, 0, NotSerialized) { If (LEqual (GESF, Zero)) { Store (0x0279, PARM) /* \_SB_.PCI0.GFX0.PARM */ Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, One)) { Store (0x0240, PARM) /* \_SB_.PCI0.GFX0.PARM */ Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x04)) { And (PARM, 0xEFFF0000, PARM) /* \_SB_.PCI0.GFX0.PARM */ And (PARM, ShiftLeft (DerefOf (Index (DBTB, IBTT)), 0x10), PARM) /* \_SB_.PCI0.GFX0.PARM */ Or (IBTT, PARM, PARM) /* \_SB_.PCI0.GFX0.PARM */ Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x05)) { Store (IPSC, PARM) /* \_SB_.PCI0.GFX0.PARM */ Or (PARM, ShiftLeft (IPAT, 0x08), PARM) /* \_SB_.PCI0.GFX0.PARM */ Add (PARM, 0x0100, PARM) /* \_SB_.PCI0.GFX0.PARM */ Or (PARM, ShiftLeft (LIDS, 0x10), PARM) /* \_SB_.PCI0.GFX0.PARM */ XOr (PARM, 0x00010000, PARM) /* \_SB_.PCI0.GFX0.PARM */ Or (PARM, ShiftLeft (IBIA, 0x14), PARM) /* \_SB_.PCI0.GFX0.PARM */ Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x06)) { Store (ITVF, PARM) /* \_SB_.PCI0.GFX0.PARM */ Or (PARM, ShiftLeft (ITVM, 0x04), PARM) /* \_SB_.PCI0.GFX0.PARM */ Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x07)) { Name (MEMS, 0x0D) Store (GIVD, PARM) /* \_SB_.PCI0.GFX0.PARM */ XOr (PARM, One, PARM) /* \_SB_.PCI0.GFX0.PARM */ Or (PARM, ShiftLeft (GMFN, One), PARM) /* \_SB_.PCI0.GFX0.PARM */ Or (PARM, 0x1000, PARM) /* \_SB_.PCI0.GFX0.PARM */ Or (ShiftLeft (CDCT, 0x15), PARM, PARM) /* \_SB_.PCI0.GFX0.PARM */ If (LEqual (IDVM, One)) { Store (0x11, MEMS) /* \_SB_.PCI0.GFX0.GBDA.MEMS */ } If (LLess (TASM, M512)) { Or (PARM, ShiftLeft (One, MEMS), PARM) /* \_SB_.PCI0.GFX0.PARM */ } ElseIf (LLess (TASM, M1GB)) { If (LLess (IDVS, 0x03)) { Or (PARM, ShiftLeft (IDVS, MEMS), PARM) /* \_SB_.PCI0.GFX0.PARM */ } Else { Or (PARM, ShiftLeft (0x02, MEMS), PARM) /* \_SB_.PCI0.GFX0.PARM */ } } Else { Or (PARM, ShiftLeft (IDVS, MEMS), PARM) /* \_SB_.PCI0.GFX0.PARM */ } Store (One, GESF) /* \_SB_.PCI0.GFX0.GESF */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x0A)) { Store (Zero, PARM) /* \_SB_.PCI0.GFX0.PARM */ If (ISSC) { Or (PARM, 0x03, PARM) /* \_SB_.PCI0.GFX0.PARM */ } Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x0B)) { Store (KSV0, PARM) /* \_SB_.PCI0.GFX0.PARM */ Store (KSV1, GESF) /* \_SB_.PCI0.GFX0.GESF */ Return (SUCC) /* \SUCC */ } Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Return (CRIT) /* \CRIT */ } Method (SBCB, 0, NotSerialized) { If (LEqual (GESF, Zero)) { Store (0x20, PARM) /* \_SB_.PCI0.GFX0.PARM */ Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, One)) { Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Store (Zero, PARM) /* \_SB_.PCI0.GFX0.PARM */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x03)) { Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Store (Zero, PARM) /* \_SB_.PCI0.GFX0.PARM */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x04)) { Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Store (Zero, PARM) /* \_SB_.PCI0.GFX0.PARM */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x05)) { Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Store (Zero, PARM) /* \_SB_.PCI0.GFX0.PARM */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x06)) { ShiftRight (PARM, 0x1C, Local0) If (LEqual (Local0, Zero)) { And (PARM, 0x0F, ITVF) /* \_SB_.PCI0.GFX0.ITVF */ And (PARM, 0xF0, ITVM) /* \_SB_.PCI0.GFX0.ITVM */ } Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Store (Zero, PARM) /* \_SB_.PCI0.GFX0.PARM */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x07)) { Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Store (Zero, PARM) /* \_SB_.PCI0.GFX0.PARM */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x08)) { Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Store (Zero, PARM) /* \_SB_.PCI0.GFX0.PARM */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x09)) { And (PARM, 0xFF, IBTT) /* \_SB_.PCI0.GFX0.IBTT */ Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Store (Zero, PARM) /* \_SB_.PCI0.GFX0.PARM */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x0A)) { ShiftRight (PARM, 0x1C, Local0) If (LEqual (Local0, Zero)) { And (PARM, 0xFF, IPSC) /* \_SB_.PCI0.GFX0.IPSC */ Subtract (And (ShiftRight (PARM, 0x08), 0xFF), One, IPAT) /* \_SB_.PCI0.GFX0.IPAT */ And (ShiftRight (PARM, 0x12), 0x03, IBLC) /* \_SB_.PCI0.GFX0.IBLC */ And (ShiftRight (PARM, 0x14), 0x07, IBIA) /* \_SB_.PCI0.GFX0.IBIA */ } Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Store (Zero, PARM) /* \_SB_.PCI0.GFX0.PARM */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x0B)) { If (LEqual (And (ShiftRight (PARM, 0x0B), 0x03), 0x02)) { And (ShiftRight (PARM, 0x0D), 0x0F, Local0) And (ShiftRight (PARM, 0x11), 0x0F, Local1) If (Local0) { Store (Zero, IDVM) /* \_SB_.PCI0.GFX0.IDVM */ Store (Local0, IDVS) /* \_SB_.PCI0.GFX0.IDVS */ } If (Local1) { Store (One, IDVM) /* \_SB_.PCI0.GFX0.IDVM */ Store (Local1, IDVS) /* \_SB_.PCI0.GFX0.IDVS */ } } Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Store (Zero, PARM) /* \_SB_.PCI0.GFX0.PARM */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x10)) { Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Store (Zero, PARM) /* \_SB_.PCI0.GFX0.PARM */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x11)) { Store (ShiftLeft (LIDS, 0x08), PARM) /* \_SB_.PCI0.GFX0.PARM */ Add (PARM, 0x0100, PARM) /* \_SB_.PCI0.GFX0.PARM */ Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x12)) { If (And (PARM, One)) { If (LEqual (ShiftRight (PARM, One), One)) { Store (One, ISSC) /* \_SB_.PCI0.GFX0.ISSC */ } Else { Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Return (CRIT) /* \CRIT */ } } Else { Store (Zero, ISSC) /* \_SB_.PCI0.GFX0.ISSC */ } Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Store (Zero, PARM) /* \_SB_.PCI0.GFX0.PARM */ Return (SUCC) /* \SUCC */ } If (LEqual (GESF, 0x13)) { Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Store (Zero, PARM) /* \_SB_.PCI0.GFX0.PARM */ Return (SUCC) /* \SUCC */ } Store (Zero, GESF) /* \_SB_.PCI0.GFX0.GESF */ Return (SUCC) /* \SUCC */ } Scope (^^PCI0) { OperationRegion (MCHP, PCI_Config, 0x40, 0xC0) Field (MCHP, AnyAcc, NoLock, Preserve) { Offset (0x60), TASM, 10, Offset (0x62) } } OperationRegion (IGDP, PCI_Config, 0x40, 0xC0) Field (IGDP, AnyAcc, NoLock, Preserve) { Offset (0x12), , 1, GIVD, 1, , 2, GUMA, 3, Offset (0x14), , 4, GMFN, 1, Offset (0x18), Offset (0x8C), CDCT, 10, Offset (0x8E), Offset (0xA8), GSSE, 1, GSSB, 14, GSES, 1, Offset (0xBC), ASLS, 32 } Name (M512, 0x08) Name (M1GB, 0x10) Scope (\_GPE) { Method (_L06, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF { \_SB.PCI0.GFX0.GSCI () } } Name (OPBS, 0xFFFFFF00) Method (OPTS, 1, NotSerialized) { If (LEqual (Arg0, 0x03)) { Store (ASLS, OPBS) /* \_SB_.PCI0.GFX0.OPBS */ } } Method (OWAK, 1, NotSerialized) { If (LEqual (Arg0, 0x03)) { Store (OPBS, ASLS) /* \_SB_.PCI0.GFX0.ASLS */ Store (One, GSES) /* \_SB_.PCI0.GFX0.GSES */ } } Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching { } Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices { Return (Package (0x01) { 0x0110 }) } Device (LCD) { Name (_ADR, 0x0110) // _ADR: Address Name (_DCS, 0x1F) // _DCS: Display Current Status Name (_DGS, One) // _DGS: Display Graphics State Method (_DSS, 1, NotSerialized) // _DSS: Device Set State { } Name (PBCL, Package (0x12) { 0x0F, 0x07, Zero, One, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }) Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels { Return (PBCL) /* \_SB_.PCI0.GFX0.LCD_.PBCL */ } Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method { Store (Arg0, ^^^SBRG.EC0.ECBR) /* \_SB_.PCI0.SBRG.EC0_.ECBR */ } Method (_BQC, 0, NotSerialized) // _BQC: Brightness Query Current { Store (^^^SBRG.EC0.ECBR, Local0) Return (Local0) } } } } Mutex (MUEC, 0x00) Name (ECON, Zero) Name (LIDF, One) Scope (_SB.PCI0.SBRG) { Device (EC0) { Name (_GPE, 0x1A) // _GPE: General Purpose Events Name (TPS, One) Name (ATT, 0x3C) Name (PTT, 0x3C) Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */) // _HID: Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { IO (Decode16, 0x0062, // Range Minimum 0x0062, // Range Maximum 0x00, // Alignment 0x01, // Length ) IO (Decode16, 0x0066, // Range Minimum 0x0066, // Range Maximum 0x00, // Alignment 0x01, // Length ) }) Method (_REG, 2, NotSerialized) // _REG: Region Availability { If (LAnd (LEqual (Arg0, 0x03), LEqual (Arg1, One))) { Store (Arg1, ECON) /* \ECON */ } } Method (ECAV, 0, NotSerialized) { Return (ECON) /* \ECON */ } OperationRegion (OPR5, SystemIO, 0x66, One) Field (OPR5, ByteAcc, NoLock, Preserve) { ECCM, 8 } OperationRegion (OPR6, SystemIO, 0x62, One) Field (OPR6, ByteAcc, NoLock, Preserve) { ECDA, 8 } OperationRegion (ECRM, EmbeddedControl, Zero, 0xFF) Field (ECRM, ByteAcc, NoLock, Preserve) { B1RD, 1, B1FU, 1, B1LO, 1, B1CL, 1, , 2, B1TW, 1, B1NG, 1, B1PC, 8, B1ST, 16, B1FC, 16, B1RM, 16, B1TP, 16, B1VT, 16, B1CR, 16, B1FG, 16, Offset (0x20), B2RD, 1, B2FU, 1, B2LO, 1, B2CL, 1, , 2, B2TW, 1, B2NG, 1, B2PC, 8, B2ST, 16, B2FC, 16, B2RM, 16, B2TP, 16, B2VT, 16, B2CR, 16, B2FG, 16, Offset (0x40), ECOS, 4, Offset (0x41), RTMP, 8, LTMP, 8, Offset (0x44), QTEC, 8, Offset (0x48), ACS, 1, BT1S, 1, BT2S, 1, Offset (0x4A), , 1, , 1, , 1, , 1, Offset (0x4B), , 1, , 1, , 1, , 1, Offset (0x4F), LIDW, 1, Offset (0x58), TMZO, 8, Offset (0x60), ECMD, 8, EDA1, 8, EDA2, 8, EDA3, 8, Offset (0x7B), ECBR, 8, Offset (0x80), SPTC, 8, SSTS, 8, SADR, 8, SCMD, 8, SDAT, 16, Offset (0xA4), SBCT, 8, SALA, 8, SAD0, 8, SAD1, 8 } Field (ECRM, ByteAcc, NoLock, Preserve) { Offset (0x4E), LSTE, 1, Offset (0x84), SBLK, 256 } Field (ECRM, ByteAcc, NoLock, Preserve) { Offset (0x84), SMD0, 8, SMD1, 8 } Method (_Q91, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { Acquire (IOMX, 0xFFFF) Store (0x91, ECSM) /* \_SB_.ECSM */ Release (IOMX) } Method (_Q0F, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { Acquire (MUEC, 0xFFFF) Notify (^^^GFX0.LCD, 0x86) // Device-Specific Release (MUEC) } Method (_Q10, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { Acquire (MUEC, 0xFFFF) Notify (^^^GFX0.LCD, 0x87) // Device-Specific Release (MUEC) } Method (_Q11, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { Acquire (MUEC, 0xFFFF) Notify (^^^P0P2.VGA.LCD, 0x86) // Device-Specific Release (MUEC) } Method (_Q12, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { Acquire (MUEC, 0xFFFF) Notify (^^^P0P2.VGA.LCD, 0x87) // Device-Specific Release (MUEC) } Method (_QE1, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { } Method (_QE2, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { } Method (_QE3, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { } Method (_QE4, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { } Method (_QE5, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { } Method (_QE6, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { } Method (_QE7, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { } Method (_QE8, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { } Method (_QE9, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { } Method (_QEA, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { } Method (_QEB, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { } Method (_Q80, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { Notify (\_TZ.TZ01, 0x80) // Thermal Status Change } Method (_Q81, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { Notify (\_TZ.TZ01, 0x80) // Thermal Status Change } Method (EPTS, 1, NotSerialized) { If (LEqual (Arg0, One)) { Or (QTEC, 0x40, QTEC) /* \_SB_.PCI0.SBRG.EC0_.QTEC */ } } Method (EWAK, 1, NotSerialized) { If (LEqual (Arg0, One)) { And (QTEC, 0xBF, QTEC) /* \_SB_.PCI0.SBRG.EC0_.QTEC */ } } } } Method (DC2S, 1, NotSerialized) { Name (STR1, Buffer (0x21) { "000000 " }) Store (Arg0, Local1) Store (0x05, Local3) While (LGreater (Local1, Zero)) { Store (Zero, Local0) Divide (Local1, 0x0A, Local0, Local1) And (Local0, 0x0F, Local0) Or (Local0, 0x30, Local0) Store (Local0, Index (STR1, Local3)) Decrement (Local3) } Return (STR1) /* \DC2S.STR1 */ } Name (TSAD, 0x12) Name (TMIN, 0x91) Name (TMAX, 0xA5) Name (TCRT, 0x5D) Name (THOT, 0x5A) Name (TSP, 0x3C) Name (TC1, 0x04) Name (TC2, 0x03) Name (FAN, One) Alias (\_SB.PCI0.SBRG.EC0.RTMP, RTMP) Alias (\_SB.PCI0.SBRG.EC0.PTT, PTT) Alias (\_SB.PCI0.SBRG.EC0.ATT, ATT) Scope (_TZ) { PowerResource (PFAN, 0x00, 0x0000) { Method (_STA, 0, NotSerialized) // _STA: Status { Return (FAN) /* \FAN_ */ } Method (_ON, 0, NotSerialized) // _ON_: Power On { Store (One, FAN) /* \FAN_ */ } Method (_OFF, 0, NotSerialized) // _OFF: Power Off { Store (Zero, FAN) /* \FAN_ */ } } Method (KELV, 1, NotSerialized) { And (Arg0, 0xFF, Local0) Multiply (Local0, 0x0A, Local0) Add (Local0, 0x0AAC, Local0) Return (Local0) } Device (FAN0) { Name (_HID, EisaId ("PNP0C0B") /* Fan (Thermal Solution) */) // _HID: Hardware ID Name (_PR0, Package (0x01) // _PR0: Power Resources for D0 { PFAN }) } ThermalZone (TZ01) { Name (SCP, Zero) Name (TAL0, 0x32) Name (TPSV, 0x46) Method (_SCP, 1, NotSerialized) // _SCP: Set Cooling Policy { If (\_SB.PCI0.SBRG.EC0.ECAV ()) { If (LNotEqual (Arg0, SCP)) { Store (Arg0, SCP) /* \_TZ_.TZ01.SCP_ */ Store (TAL0, Local0) Store (TPSV, TAL0) /* \_TZ_.TZ01.TAL0 */ Store (Local0, TPSV) /* \_TZ_.TZ01.TPSV */ If (MIEC) { Store (TAL0, ATT) /* \ATT_ */ Store (TPSV, PTT) /* \PTT_ */ } Notify (TZ01, 0x81) // Thermal Trip Point Change } } } Method (_TMP, 0, NotSerialized) // _TMP: Temperature { Store (\_SB.PCI0.SBRG.EC0.TMZO, Local0) Return (KELV (Local0)) } Method (_AC0, 0, NotSerialized) // _ACx: Active Cooling, x=0-9 { Return (Add (0x0AAC, Multiply (TAL0, 0x0A))) } Name (_AL0, Package (0x01) // _ALx: Active List, x=0-9 { FAN0 }) Method (_CRT, 0, NotSerialized) // _CRT: Critical Temperature { Return (0x0E62) } Method (_PSV, 0, NotSerialized) // _PSV: Passive Temperature { Return (Add (0x0AAC, Multiply (TPSV, 0x0A))) } Name (PSL1, Package (0x01) { \_PR.CPU1 }) Name (PSL2, Package (0x01) { \_PR.CPU1 }) Method (_PSL, 0, NotSerialized) // _PSL: Passive List { Return (PSL1) /* \_TZ_.TZ01.PSL1 */ } Name (_TC1, 0x04) // _TC1: Thermal Constant 1 Name (_TC2, 0x03) // _TC2: Thermal Constant 2 Name (_TSP, 0x96) // _TSP: Thermal Sampling Period } } Scope (_SB) { Scope (PCI0) { Name (CRS, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, 0x0000, // Granularity 0x0000, // Range Minimum 0x00FF, // Range Maximum 0x0000, // Translation Offset 0x0100, // Length ,, ) IO (Decode16, 0x0CF8, // Range Minimum 0x0CF8, // Range Maximum 0x01, // Alignment 0x08, // Length ) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, // Granularity 0x0000, // Range Minimum 0x0CF7, // Range Maximum 0x0000, // Translation Offset 0x0CF8, // Length ,, , TypeStatic, DenseTranslation) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, // Granularity 0x0D00, // Range Minimum 0xFFFF, // Range Maximum 0x0000, // Translation Offset 0xF300, // Length ,, , TypeStatic, DenseTranslation) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000A0000, // Range Minimum 0x000BFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00020000, // Length ,, , AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x000C0000, // Range Minimum 0x000DFFFF, // Range Maximum 0x00000000, // Translation Offset 0x00020000, // Length ,, _Y11, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x00000000, // Range Minimum 0x00000000, // Range Maximum 0x00000000, // Translation Offset 0x00000000, // Length ,, _Y12, AddressRangeMemory, TypeStatic) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // Granularity 0x00000000, // Range Minimum 0x00000000, // Range Maximum 0x00000000, // Translation Offset 0x00000000, // Length ,, _Y13, AddressRangeMemory, TypeStatic) }) CreateDWordField (CRS, \_SB.PCI0._Y11._MIN, MIN5) // _MIN: Minimum Base Address CreateDWordField (CRS, \_SB.PCI0._Y11._MAX, MAX5) // _MAX: Maximum Base Address CreateDWordField (CRS, \_SB.PCI0._Y11._LEN, LEN5) // _LEN: Length CreateDWordField (CRS, \_SB.PCI0._Y12._MIN, MIN6) // _MIN: Minimum Base Address CreateDWordField (CRS, \_SB.PCI0._Y12._MAX, MAX6) // _MAX: Maximum Base Address CreateDWordField (CRS, \_SB.PCI0._Y12._LEN, LEN6) // _LEN: Length CreateDWordField (CRS, \_SB.PCI0._Y13._MIN, MIN7) // _MIN: Minimum Base Address CreateDWordField (CRS, \_SB.PCI0._Y13._MAX, MAX7) // _MAX: Maximum Base Address CreateDWordField (CRS, \_SB.PCI0._Y13._LEN, LEN7) // _LEN: Length Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Store (MG1L, Local0) If (Local0) { Store (MG1B, MIN5) /* \_SB_.PCI0.MIN5 */ Store (MG1L, LEN5) /* \_SB_.PCI0.LEN5 */ Add (MIN5, Decrement (Local0), MAX5) /* \_SB_.PCI0.MAX5 */ } Store (MG2B, MIN6) /* \_SB_.PCI0.MIN6 */ Store (MG2L, LEN6) /* \_SB_.PCI0.LEN6 */ Store (MG2L, Local0) Add (MIN6, Decrement (Local0), MAX6) /* \_SB_.PCI0.MAX6 */ Store (MG3B, MIN7) /* \_SB_.PCI0.MIN7 */ Store (MG3L, LEN7) /* \_SB_.PCI0.LEN7 */ Store (MG3L, Local0) Add (MIN7, Decrement (Local0), MAX7) /* \_SB_.PCI0.MAX7 */ Return (CRS) /* \_SB_.PCI0.CRS_ */ } } } Name (WOTB, Zero) Name (WSSB, Zero) Name (WAXB, Zero) Method (_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep { Store (Arg0, DBG8) /* \DBG8 */ PTS (Arg0) Store (Zero, Index (WAKP, Zero)) Store (Zero, Index (WAKP, One)) If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02))) { Sleep (0x0BB8) } Store (ASSB, WSSB) /* \WSSB */ Store (AOTB, WOTB) /* \WOTB */ Store (AAXB, WAXB) /* \WAXB */ Store (Arg0, ASSB) /* \ASSB */ Store (OSFL (), AOTB) /* \AOTB */ Store (OSYS (), OSTP) /* \OSTP */ Store (Zero, AAXB) /* \AAXB */ } Method (_WAK, 1, NotSerialized) // _WAK: Wake { WAK (Arg0) If (ASSB) { Store (WSSB, ASSB) /* \ASSB */ Store (WOTB, AOTB) /* \AOTB */ Store (WAXB, AAXB) /* \AAXB */ } If (DerefOf (Index (WAKP, Zero))) { Store (Zero, Index (WAKP, One)) } Else { Store (Arg0, Index (WAKP, One)) } ShiftLeft (Arg0, 0x04, DBG8) /* \DBG8 */ Return (WAKP) /* \WAKP */ } Name (_S0, Package (0x04) // _S0_: S0 System State { Zero, Zero, Zero, Zero }) If (SS1) { Name (_S1, Package (0x04) // _S1_: S1 System State { One, Zero, Zero, Zero }) } If (SS3) { Name (_S3, Package (0x04) // _S3_: S3 System State { 0x05, Zero, Zero, Zero }) } If (SS4) { Name (_S4, Package (0x04) // _S4_: S4 System State { 0x06, Zero, Zero, Zero }) } Name (_S5, Package (0x04) // _S5_: S5 System State { 0x07, Zero, Zero, Zero }) Method (PTS, 1, NotSerialized) { If (Arg0) { \_SB.PCI0.NPTS (Arg0) \_SB.PCI0.SBRG.SPTS (Arg0) \_SB.PCI0.GFX0.OPTS (Arg0) \_SB.PCI0.SBRG.EC0.EPTS (Arg0) } } Method (WAK, 1, NotSerialized) { \_SB.PCI0.NWAK (Arg0) \_SB.PCI0.SBRG.SWAK (Arg0) \_SB.PCI0.GFX0.OWAK (Arg0) \_SB.PCI0.SBRG.EC0.EWAK (Arg0) } } And this is where I can't move forward, since I don't know how to code, much less doing so with the seemingly very specific programming language that is used in ACPI tables or simply what to do (add, remove or edit something?, etc). I did read the Dortania guides, which looks fine for simple issues, but the "shifting" ACPI rules are on another whole level. For more details, I've attached the DSDT and SSDTs in a zip file. There's untouched files, then the simply disassembled ones, the ones that were disassembled with a "refs.txt" file. There's also the command lines that were used for each steps, their outputs, the "refs.txt" file when it's used, the C Headers, Hex files and .aml files if things got successfully compiled. Do note that there's also SSDTs in every "dynamic" folder. Thanks for anyone who'll be able to fix that issue, or give me clues about how to solve it. It did questioned my sanity though. ACPI-Tables.zip Edited April 3, 2023 by X-0v3r Quote Link to comment https://www.insanelymac.com/forum/topic/356210-cannot-boot-due-to-acpi-issues-theres-definitely-something-wrong-about-the-cpu-in-the-dsdt-or-ssdts/ Share on other sites More sharing options...
X-0v3r Posted April 5, 2023 Author Share Posted April 5, 2023 Am I doing something wrong to be the only guy who hasn't got any replies since February 5? If someone needs more intel, please do tell me so I can add more. I may not know what you guys exactly need. Quote Link to comment https://www.insanelymac.com/forum/topic/356210-cannot-boot-due-to-acpi-issues-theres-definitely-something-wrong-about-the-cpu-in-the-dsdt-or-ssdts/#findComment-2803186 Share on other sites More sharing options...
etorix Posted May 24, 2023 Share Posted May 24, 2023 You've done nothing wrong, much to the contrary, but you have old hardware, which many may be unfamiliar with, you have complex issues and you've already been far in analysing them. It's unfortunately possible that no one has any further insight. Quote Link to comment https://www.insanelymac.com/forum/topic/356210-cannot-boot-due-to-acpi-issues-theres-definitely-something-wrong-about-the-cpu-in-the-dsdt-or-ssdts/#findComment-2805077 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.