soc/amd/stoneyridge/acpi: Convert to ASL 2.0 syntax

Generated dsdt.dsl files are same.

Change-Id: Ife9bb37817815beec6dad4bc791abba4d91abe00
Signed-off-by: Elyes HAOUAS <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/45690
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
Elyes HAOUAS
2020-09-24 15:47:34 +02:00
committed by Patrick Georgi
parent 11fdb17564
commit 8684643911
5 changed files with 403 additions and 345 deletions

View File

@@ -21,7 +21,7 @@ External (\_SB.P007, DeviceObj)
/* Return a package containing enabled processor entries */ /* Return a package containing enabled processor entries */
Method (PPKG) Method (PPKG)
{ {
If (LGreaterEqual (\PCNT, 4)) { If (\PCNT >= 4) {
Return (Package () Return (Package ()
{ {
\_SB.P000, \_SB.P000,
@@ -29,7 +29,7 @@ Method (PPKG)
\_SB.P002, \_SB.P002,
\_SB.P003 \_SB.P003
}) })
} ElseIf (LGreaterEqual (\PCNT, 2)) { } ElseIf (\PCNT>= 2) {
Return (Package () Return (Package ()
{ {
\_SB.P000, \_SB.P000,

View File

@@ -151,7 +151,7 @@
Method(_CRS ,0) { Method(_CRS ,0) {
/* DBGO("\\_SB\\LNKA\\_CRS\n") */ /* DBGO("\\_SB\\LNKA\\_CRS\n") */
CreateWordField(IRQB, 0x1, IRQN) CreateWordField(IRQB, 0x1, IRQN)
ShiftLeft(1, PIRA, IRQN) IRQN = 1 << PIRA
Return (IRQB) Return (IRQB)
} /* Method(_SB.INTA._CRS) */ } /* Method(_SB.INTA._CRS) */
@@ -162,9 +162,9 @@
/* Use lowest available IRQ */ /* Use lowest available IRQ */
FindSetRightBit(IRQM, Local0) FindSetRightBit(IRQM, Local0)
if (Local0) { if (Local0) {
Decrement(Local0) Local0--
} }
Store(Local0, PIRA) PIRA = Local0
} /* End Method(_SB.INTA._SRS) */ } /* End Method(_SB.INTA._SRS) */
} /* End Device(INTA) */ } /* End Device(INTA) */
@@ -192,7 +192,7 @@
Method(_CRS ,0) { Method(_CRS ,0) {
/* DBGO("\\_SB\\LNKB\\_CRS\n") */ /* DBGO("\\_SB\\LNKB\\_CRS\n") */
CreateWordField(IRQB, 0x1, IRQN) CreateWordField(IRQB, 0x1, IRQN)
ShiftLeft(1, PIRB, IRQN) IRQN = 1 << PIRB
Return (IRQB) Return (IRQB)
} /* Method(_SB.INTB._CRS) */ } /* Method(_SB.INTB._CRS) */
@@ -203,9 +203,9 @@
/* Use lowest available IRQ */ /* Use lowest available IRQ */
FindSetRightBit(IRQM, Local0) FindSetRightBit(IRQM, Local0)
if (Local0) { if (Local0) {
Decrement(Local0) Local0--
} }
Store(Local0, PIRB) PIRB = Local0
} /* End Method(_SB.INTB._SRS) */ } /* End Method(_SB.INTB._SRS) */
} /* End Device(INTB) */ } /* End Device(INTB) */
@@ -233,7 +233,7 @@
Method(_CRS ,0) { Method(_CRS ,0) {
/* DBGO("\\_SB\\LNKC\\_CRS\n") */ /* DBGO("\\_SB\\LNKC\\_CRS\n") */
CreateWordField(IRQB, 0x1, IRQN) CreateWordField(IRQB, 0x1, IRQN)
ShiftLeft(1, PIRC, IRQN) IRQN = 1 << PIRC
Return (IRQB) Return (IRQB)
} /* Method(_SB.INTC._CRS) */ } /* Method(_SB.INTC._CRS) */
@@ -244,9 +244,9 @@
/* Use lowest available IRQ */ /* Use lowest available IRQ */
FindSetRightBit(IRQM, Local0) FindSetRightBit(IRQM, Local0)
if (Local0) { if (Local0) {
Decrement(Local0) Local0--
} }
Store(Local0, PIRC) PIRC = Local0
} /* End Method(_SB.INTC._SRS) */ } /* End Method(_SB.INTC._SRS) */
} /* End Device(INTC) */ } /* End Device(INTC) */
@@ -274,7 +274,7 @@
Method(_CRS ,0) { Method(_CRS ,0) {
/* DBGO("\\_SB\\LNKD\\_CRS\n") */ /* DBGO("\\_SB\\LNKD\\_CRS\n") */
CreateWordField(IRQB, 0x1, IRQN) CreateWordField(IRQB, 0x1, IRQN)
ShiftLeft(1, PIRD, IRQN) IRQN = 1 << PIRD
Return (IRQB) Return (IRQB)
} /* Method(_SB.INTD._CRS) */ } /* Method(_SB.INTD._CRS) */
@@ -285,9 +285,9 @@
/* Use lowest available IRQ */ /* Use lowest available IRQ */
FindSetRightBit(IRQM, Local0) FindSetRightBit(IRQM, Local0)
if (Local0) { if (Local0) {
Decrement(Local0) Local0--
} }
Store(Local0, PIRD) PIRD = Local0
} /* End Method(_SB.INTD._SRS) */ } /* End Method(_SB.INTD._SRS) */
} /* End Device(INTD) */ } /* End Device(INTD) */
@@ -315,7 +315,7 @@
Method(_CRS ,0) { Method(_CRS ,0) {
/* DBGO("\\_SB\\LNKE\\_CRS\n") */ /* DBGO("\\_SB\\LNKE\\_CRS\n") */
CreateWordField(IRQB, 0x1, IRQN) CreateWordField(IRQB, 0x1, IRQN)
ShiftLeft(1, PIRE, IRQN) IRQN = 1 << PIRE
Return (IRQB) Return (IRQB)
} /* Method(_SB.INTE._CRS) */ } /* Method(_SB.INTE._CRS) */
@@ -326,9 +326,9 @@
/* Use lowest available IRQ */ /* Use lowest available IRQ */
FindSetRightBit(IRQM, Local0) FindSetRightBit(IRQM, Local0)
if (Local0) { if (Local0) {
Decrement(Local0) Local0--
} }
Store(Local0, PIRE) PIRE = Local0
} /* End Method(_SB.INTE._SRS) */ } /* End Method(_SB.INTE._SRS) */
} /* End Device(INTE) */ } /* End Device(INTE) */
@@ -356,7 +356,7 @@
Method(_CRS ,0) { Method(_CRS ,0) {
/* DBGO("\\_SB\\LNKF\\_CRS\n") */ /* DBGO("\\_SB\\LNKF\\_CRS\n") */
CreateWordField(IRQB, 0x1, IRQN) CreateWordField(IRQB, 0x1, IRQN)
ShiftLeft(1, PIRF, IRQN) IRQN = 1 << PIRF
Return (IRQB) Return (IRQB)
} /* Method(_SB.INTF._CRS) */ } /* Method(_SB.INTF._CRS) */
@@ -367,9 +367,9 @@
/* Use lowest available IRQ */ /* Use lowest available IRQ */
FindSetRightBit(IRQM, Local0) FindSetRightBit(IRQM, Local0)
if (Local0) { if (Local0) {
Decrement(Local0) Local0--
} }
Store(Local0, PIRF) PIRF = Local0
} /* End Method(_SB.INTF._SRS) */ } /* End Method(_SB.INTF._SRS) */
} /* End Device(INTF) */ } /* End Device(INTF) */
@@ -397,7 +397,7 @@
Method(_CRS ,0) { Method(_CRS ,0) {
/* DBGO("\\_SB\\LNKG\\_CRS\n") */ /* DBGO("\\_SB\\LNKG\\_CRS\n") */
CreateWordField(IRQB, 0x1, IRQN) CreateWordField(IRQB, 0x1, IRQN)
ShiftLeft(1, PIRG, IRQN) IRQN = 1 << PIRG
Return (IRQB) Return (IRQB)
} /* Method(_SB.INTG._CRS) */ } /* Method(_SB.INTG._CRS) */
@@ -408,9 +408,9 @@
/* Use lowest available IRQ */ /* Use lowest available IRQ */
FindSetRightBit(IRQM, Local0) FindSetRightBit(IRQM, Local0)
if (Local0) { if (Local0) {
Decrement(Local0) Local0--
} }
Store(Local0, PIRG) PIRG= Local0
} /* End Method(_SB.INTG._SRS) */ } /* End Method(_SB.INTG._SRS) */
} /* End Device(INTG) */ } /* End Device(INTG) */
@@ -438,7 +438,7 @@
Method(_CRS ,0) { Method(_CRS ,0) {
/* DBGO("\\_SB\\LNKH\\_CRS\n") */ /* DBGO("\\_SB\\LNKH\\_CRS\n") */
CreateWordField(IRQB, 0x1, IRQN) CreateWordField(IRQB, 0x1, IRQN)
ShiftLeft(1, PIRH, IRQN) IRQN = 1 << PIRH
Return (IRQB) Return (IRQB)
} /* Method(_SB.INTH._CRS) */ } /* Method(_SB.INTH._CRS) */
@@ -449,8 +449,8 @@
/* Use lowest available IRQ */ /* Use lowest available IRQ */
FindSetRightBit(IRQM, Local0) FindSetRightBit(IRQM, Local0)
if (Local0) { if (Local0) {
Decrement(Local0) Local0--
} }
Store(Local0, PIRH) PIRH = Local0
} /* End Method(_SB.INTH._SRS) */ } /* End Method(_SB.INTH._SRS) */
} /* End Device(INTH) */ } /* End Device(INTH) */

View File

@@ -9,13 +9,13 @@ External(\_SB.ALIB, MethodObj)
Method(_OSC,4) Method(_OSC,4)
{ {
/* Check for proper PCI/PCIe UUID */ /* Check for proper PCI/PCIe UUID */
If(LEqual(Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) If (Arg0 == ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))
{ {
/* Let OS control everything */ /* Let OS control everything */
Return (Arg3) Return (Arg3)
} Else { } Else {
CreateDWordField(Arg3,0,CDW1) CreateDWordField(Arg3,0,CDW1)
Or(CDW1,4,CDW1) // Unrecognized UUID CDW1 |= 4 // Unrecognized UUID
Return (Arg3) Return (Arg3)
} }
} }
@@ -104,10 +104,10 @@ Method(_CRS, 0) {
* 32bit (0x00000000 - TOM1) will wrap and give the same * 32bit (0x00000000 - TOM1) will wrap and give the same
* result as 64bit (0x100000000 - TOM1). * result as 64bit (0x100000000 - TOM1).
*/ */
Store(TOM1, MM1B) MM1B = TOM1
ShiftLeft(0x10000000, 4, Local0) Local0 = 0x10000000 << 4
Subtract(Local0, TOM1, Local0) Local0 -= TOM1
Store(Local0, MM1L) MM1L = Local0
Return (CRES) /* note to change the Name buffer */ Return (CRES) /* note to change the Name buffer */
} /* end of Method(_SB.PCI0._CRS) */ } /* end of Method(_SB.PCI0._CRS) */
@@ -142,8 +142,8 @@ Method(_INI, 0, Serialized) {
CreateWordField(F1BF, 0, F1SZ) CreateWordField(F1BF, 0, F1SZ)
CreateByteField(F1BF, 2, F1DA) CreateByteField(F1BF, 2, F1DA)
Store(3, F1SZ) F1SZ = 3
Store(\PWRS, F1DA) F1DA= \PWRS
\_SB.ALIB(1, F1BF) \_SB.ALIB(1, F1BF)
@@ -151,20 +151,20 @@ Method(_INI, 0, Serialized) {
Method(OSFL, 0){ Method(OSFL, 0){
if (LNotEqual(OSVR, Ones)) {Return(OSVR)} /* OS version was already detected */ if (OSVR != Ones) {Return (OSVR)} /* OS version was already detected */
if (CondRefOf(\_OSI)) if (CondRefOf(\_OSI))
{ {
Store(1, OSVR) /* Assume some form of XP */ OSVR = 1 /* Assume some form of XP */
if (\_OSI("Windows 2006")) /* Vista */ if (\_OSI("Windows 2006")) /* Vista */
{ {
Store(2, OSVR) OSVR = 2
} }
} else { } else {
If (WCMP(\_OS,"Linux")) { If (WCMP(\_OS,"Linux")) {
Store(3, OSVR) /* Linux */ OSVR = 3 /* Linux */
} Else { } Else {
Store(4, OSVR) /* Gotta be WinCE */ OSVR = 4 /* Gotta be WinCE */
} }
} }
Return (OSVR) Return (OSVR)
@@ -356,74 +356,75 @@ Method(FDDC, 2, Serialized)
{ {
Acquire(FDAS, 0xffff) Acquire(FDAS, 0xffff)
if(LEqual(Arg1, 0)) { if (Arg1 == 0) {
Switch(ToInteger(Arg0)) { Switch(ToInteger(Arg0)) {
Case(Package() {5, 15, 24}) { Case(Package() {5, 15, 24}) {
Store(One, PG1A) PG1A = One
} }
Case(Package() {6, 7, 8, 11, 12, 18}) { Case(Package() {6, 7, 8, 11, 12, 18}) {
Store(One, PG2_) PG2_ = One
} }
} }
/* put device into D0 */ /* put device into D0 */
Switch(ToInteger(Arg0)) Switch(ToInteger(Arg0))
{ {
Case(5) { Case(5) {
Store(0x00, I0TD) I0TD = 0x00
Store(One, I0PD) I0PD = One
Store(I0DS, Local0) Local0 = I0DS
while(LNotEqual(Local0,0x7)) { while(Local0 != 0x7) {
Store(I0DS, Local0) Local0 = I0DS
} }
} }
Case(6) { Case(6) {
Store(0x00, I1TD) I1TD = 0x00
Store(One, I1PD) I1PD = One
Store(I1DS, Local0) Local0 = I1DS
while(LNotEqual(Local0,0x7)) { while(Local0 != 0x7) {
Store(I1DS, Local0) Local0 = I1DS
} }
} }
Case(7) { Case(7) {
Store(0x00, I2TD) I2TD = 0x00
Store(One, I2PD) I2PD = One
Store(I2DS, Local0) Local0 = I2DS
while(LNotEqual(Local0,0x7)) { while(Local0 != 0x7) {
Store(I2DS, Local0) Local0 = I2DS
} }
} }
Case(8) {Store(0x00, I3TD) Case(8) {
Store(One, I3PD) I3TD = 0x00
Store(I3DS, Local0) I3PD = One
while(LNotEqual(Local0,0x7)) { Local0 = I3DS
Store(I3DS, Local0) while(Local0 != 0x7) {
Local0 = I3DS
} }
} }
Case(11) { Case(11) {
Store(0x00, U0TD) U0TD = 0x00
Store(One, U0PD) U0PD = One
Store(U0DS, Local0) Local0 = U0DS
while(LNotEqual(Local0,0x7)) { while(Local0 != 0x7) {
Store(U0DS, Local0) Local0 = U0DS
} }
} }
Case(12) { Case(12) {
Store(0x00, U1TD) U1TD = 0x00
Store(One, U1PD) U1PD = One
Store(U1DS, Local0) Local0 = U1DS
while(LNotEqual(Local0,0x7)) { while(Local0 != 0x7) {
Store(U1DS, Local0) Local0 = U1DS
} }
} }
/* todo Case(15) { STD0()} */ /* SATA */ /* todo Case(15) { STD0()} */ /* SATA */
Case(18) { U2D0()} /* EHCI */ Case(18) { U2D0()} /* EHCI */
Case(23) { U3D0()} /* XHCI */ Case(23) { U3D0()} /* XHCI */
Case(24) { /* SD */ Case(24) { /* SD */
Store(0x00, SDTD) SDTD = 0x00
Store(One, SDPD) SDPD = One
Store(SDDS, Local0) Local0 = SDDS
while(LNotEqual(Local0,0x7)) { while(Local0 != 0x7) {
Store(SDDS, Local0) Local0 = SDDS
} }
} }
} }
@@ -432,77 +433,78 @@ Method(FDDC, 2, Serialized)
Switch(ToInteger(Arg0)) Switch(ToInteger(Arg0))
{ {
Case(5) { Case(5) {
Store(Zero, I0PD) I0PD = Zero
Store(I0DS, Local0) Local0 = I0DS
while(LNotEqual(Local0,0x0)) { while(Local0 != 0x0) {
Store(I0DS, Local0) Local0 = I0DS
} }
Store(0x03, I0TD) I0TD = 0x03
} }
Case(6) { Case(6) {
Store(Zero, I1PD) I1PD = Zero
Store(I1DS, Local0) Local0 = I1DS
while(LNotEqual(Local0,0x0)) { while(Local0 != 0x0) {
Store(I1DS, Local0) Local0 = I1DS
} }
Store(0x03, I1TD) I1TD = 0x03
} }
Case(7) { Case(7) {
Store(Zero, I2PD) I2PD = Zero
Store(I2DS, Local0) Local0 = I2DS
while(LNotEqual(Local0,0x0)) { while(Local0 != 0x0) {
Store(I2DS, Local0) Local0 = I2DS
}
I2TD = 0x03
} }
Store(0x03, I2TD)}
Case(8) { Case(8) {
Store(Zero, I3PD) I3PD = Zero
Store(I3DS, Local0) Local0 = I3DS
while(LNotEqual(Local0,0x0)) { while(Local0 != 0x0) {
Store(I3DS, Local0) Local0 = I3DS
} }
Store(0x03, I3TD) I3TD = 0x03
} }
Case(11) { Case(11) {
Store(Zero, U0PD) U0PD = Zero
Store(U0DS, Local0) Local0 = U0DS
while(LNotEqual(Local0,0x0)) { while(Local0 != 0x0) {
Store(U0DS, Local0) Local0 = U0DS
} }
Store(0x03, U0TD) U0TD = 0x03
} }
Case(12) { Case(12) {
Store(Zero, U1PD) U1PD = Zero
Store(U1DS, Local0) Local0 = U1DS
while(LNotEqual(Local0,0x0)) { while(Local0 != 0x0) {
Store(U1DS, Local0) Local0 = U1DS
} }
Store(0x03, U1TD) U1TD = 0x03
} }
/* todo Case(15) { STD3()} */ /* SATA */ /* todo Case(15) { STD3()} */ /* SATA */
Case(18) { U2D3()} /* EHCI */ Case(18) { U2D3()} /* EHCI */
Case(23) { U3D3()} /* XHCI */ Case(23) { U3D3()} /* XHCI */
Case(24) { /* SD */ Case(24) { /* SD */
Store(Zero, SDPD) SDPD = Zero
Store(SDDS, Local0) Local0 = SDDS
while(LNotEqual(Local0,0x0)) { while(Local0 != 0x0) {
Store(SDDS, Local0) Local0 = SDDS
} }
Store(0x03, SDTD) SDTD = 0x03
} }
} }
/* Turn off Power */ /* Turn off Power */
if(LEqual(I0TD, 3)) { if (I0TD == 3) {
if(LEqual(SATD, 3)) { if (SATD == 3) {
if(LEqual(SDTD, 3)) { Store(Zero, PG1A) } if (SDTD == 3) { PG1A = Zero }
} }
} }
if(LEqual(I1TD, 3)) { if (I1TD == 3) {
if(LEqual(I2TD, 3)) { if (I2TD == 3) {
if(LEqual(I3TD, 3)) { if (I3TD == 3) {
if(LEqual(U0TD, 3)) { if (U0TD == 3) {
if(LEqual(U1TD, 3)) { if (U1TD == 3) {
if(LEqual(U2TD, 3)) { if (U2TD == 3) {
Store(Zero, PG2_) PG2_ = Zero
} }
} }
} }
@@ -515,53 +517,53 @@ Method(FDDC, 2, Serialized)
Method(FPTS,0, Serialized) /* FCH _PTS */ Method(FPTS,0, Serialized) /* FCH _PTS */
{ {
if(LEqual(\XHCE, one)) { if (\XHCE == one) {
if(LNotEqual(U3TD, 0x03)) { if (U3TD != 0x03) {
FDDC(23, 3) FDDC(23, 3)
} }
} }
if(LNotEqual(U2TD, 0x03)) { if (U2TD != 0x03) {
FDDC(18, 3) FDDC(18, 3)
} }
} }
Method(FWAK,0, Serialized) /* FCH _WAK */ Method(FWAK,0, Serialized) /* FCH _WAK */
{ {
if(LEqual(\XHCE, one)) { if (\XHCE == one) {
if(LEqual(U3TD, 0x03)) { if (U3TD == 0x03) {
FDDC(23, 0) FDDC(23, 0)
} }
} }
if(LEqual(U2TD, 0x03)) { if (U2TD == 0x03) {
FDDC(18, 0) FDDC(18, 0)
} }
if(LEqual(\UT0E, zero)) { if (\UT0E == zero) {
if(LNotEqual(U0TD, 0x03)) { if (U0TD != 0x03) {
FDDC(11, 3) FDDC(11, 3)
} }
} }
if(LEqual(\UT1E, zero)) { if (\UT1E == zero) {
if(LNotEqual(U1TD, 0x03)) { if (U1TD != 0x03) {
FDDC(12, 3) FDDC(12, 3)
} }
} }
if(LEqual(\IC0E, zero)) { if (\IC0E == zero) {
if(LNotEqual(I0TD, 0x03)) { if (I0TD != 0x03) {
FDDC(5, 3) FDDC(5, 3)
} }
} }
if(LEqual(\IC1E, zero)) { if (\IC1E == zero) {
if(LNotEqual(I1TD, 0x03)) { if (I1TD != 0x03) {
FDDC(6, 3) FDDC(6, 3)
} }
} }
if(LEqual(\IC2E, zero)) { if (\IC2E == zero) {
if(LNotEqual(I2TD, 0x03)) { if (I2TD != 0x03) {
FDDC(7, 3) FDDC(7, 3)
} }
} }
if(LEqual(\IC3E, zero)) { if (\IC3E == zero) {
if(LNotEqual(I3TD, 0x03)) { if (I3TD != 0x03) {
FDDC(8, 3) FDDC(8, 3)
} }
} }
@@ -574,20 +576,20 @@ Method(FWAK,0, Serialized) /* FCH _WAK */
*/ */
Method(PWGC,2, Serialized) Method(PWGC,2, Serialized)
{ {
And (PGA3, 0xdf, Local0) /* do SwUsb3SlpShutdown below */ Local0 = PGA3 & 0xdf /* do SwUsb3SlpShutdown below */
if (Arg1) { if (Arg1) {
Or(Arg0, Local0, Local0) Local0 |= Arg0
} else { } else {
Not(Arg0, Local1) Local1 = ~Arg0
And(Local1, Local0, Local0) Local0 &= Local1
} }
Store(Local0, PGA3) Store(Local0, PGA3)
if(LEqual(Arg0, 0x20)) { /* if SwUsb3SlpShutdown */ if (Arg0 == 0x20) { /* if SwUsb3SlpShutdown */
Store(PGA3, Local0) Local0 = PGA3
And(Arg0, Local0, Local0) Local0 &= Arg0
while(LNot(Local0)) { /* wait SwUsb3SlpShutdown to complete */ while(!Local0) { /* wait SwUsb3SlpShutdown to complete */
Store(PGA3, Local0) Local0 = PGA3
And(Arg0, Local0, Local0) Local0 &= Arg0
} }
} }
} }

View File

@@ -3,25 +3,25 @@
/* S1 support: bit 0, S2 Support: bit 1, etc. S0 & S5 assumed */ /* S1 support: bit 0, S2 Support: bit 1, etc. S0 & S5 assumed */
Name(SSFG, 0x09) Name(SSFG, 0x09)
If (CONFIG(HAVE_ACPI_RESUME)) { If (CONFIG(HAVE_ACPI_RESUME)) {
Store(0x0D, SSFG) SSFG = 0x0d
} }
If (CONFIG(DISABLE_ACPI_HIBERNATE)) { If (CONFIG(DISABLE_ACPI_HIBERNATE)) {
Store(And(SSFG, 0xF7), SSFG) SSFG &= 0xf7
} }
/* Supported sleep states: */ /* Supported sleep states: */
Name(\_S0, Package () {0x00, 0x00, 0x00, 0x00} ) /* (S0) - working state */ Name(\_S0, Package () {0x00, 0x00, 0x00, 0x00} ) /* (S0) - working state */
If (And(SSFG, 0x01)) { If (SSFG & 0x01) {
Name(\_S1, Package () {0x01, 0x01, 0x00, 0x00} ) /* (S1) - sleeping w/CPU context */ Name(\_S1, Package () {0x01, 0x01, 0x00, 0x00} ) /* (S1) - sleeping w/CPU context */
} }
If (And(SSFG, 0x02)) { If (SSFG & 0x02) {
Name(\_S2, Package () {0x02, 0x02, 0x00, 0x00} ) /* (S2) - "light" Suspend to RAM */ Name(\_S2, Package () {0x02, 0x02, 0x00, 0x00} ) /* (S2) - "light" Suspend to RAM */
} }
If (And(SSFG, 0x04)) { If (SSFG & 0x04) {
Name(\_S3, Package () {0x03, 0x03, 0x00, 0x00} ) /* (S3) - Suspend to RAM */ Name(\_S3, Package () {0x03, 0x03, 0x00, 0x00} ) /* (S3) - Suspend to RAM */
} }
If (And(SSFG, 0x08)) { If (SSFG & 0x08) {
Name(\_S4, Package () {0x04, 0x04, 0x00, 0x00} ) /* (S4) - Suspend to Disk */ Name(\_S4, Package () {0x04, 0x04, 0x00, 0x00} ) /* (S4) - Suspend to Disk */
} }

View File

@@ -67,10 +67,10 @@ Scope(\_SB)
Return(XHD0) Return(XHD0)
} }
Method(_ON) { Method(_ON) {
Store(0x01, XHD0) XHD0 = 0x01
} }
Method(_OFF) { Method(_OFF) {
Store(0x00, XHD0) XHD0 = 0x00
} }
} }
PowerResource(P3U3, 0, 0) { PowerResource(P3U3, 0, 0) {
@@ -78,10 +78,10 @@ Scope(\_SB)
Return(XHD3) Return(XHD3)
} }
Method(_ON) { Method(_ON) {
Store(0x01, XHD3) XHD3 = 0x01
} }
Method(_OFF) { Method(_OFF) {
Store(0x00, XHD3) XHD3 = 0x00
} }
} }
@@ -92,10 +92,10 @@ Scope(\_SB)
Return(EHD0) Return(EHD0)
} }
Method(_ON) { Method(_ON) {
Store(0x01, EHD0) EHD0 = 0x01
} }
Method(_OFF) { Method(_OFF) {
Store(0x00, EHD0) EHD0 = 0x00
} }
} }
PowerResource(P3U2, 0, 0) { PowerResource(P3U2, 0, 0) {
@@ -103,10 +103,10 @@ Scope(\_SB)
Return(EHD3) Return(EHD3)
} }
Method(_ON) { Method(_ON) {
Store(0x01, EHD3) EHD3 = 0x01
} }
Method(_OFF) { Method(_OFF) {
Store(0x00, EHD3) EHD3 = 0x00
} }
} }
} }
@@ -121,33 +121,33 @@ Field(EHMC, DwordAcc, NoLock, Preserve)
Method(U2D3,0, Serialized) Method(U2D3,0, Serialized)
{ {
if (LNotEqual(EH10, Zero)) { if (EH10 != Zero) {
Store (EH10, EHBA) EHBA = EH10
Store (One, EHME) EHME = One
Store (ESIM, SSIM) SSIM = ESIM
} }
if (LEqual(E_PS, 3)) { if (E_PS == 3) {
Store (Zero, RQTY) RQTY = Zero
Store (One, RQ18) RQ18 = One
Store (U2SR, Local0) Local0 = U2SR
while (Local0) { while (Local0) {
Store (U2SR, Local0) Local0 = U2SR
} }
Store (Zero, U2PD) U2PD = Zero
Store (U2DS, Local0) Local0 = U2DS
while (LNotEqual(Local0, Zero)) { while (Local0 != Zero) {
Store (U2DS, Local0) Local0 = U2DS
} }
Store (0x03,U2TD) U2TD = 0x03
if (LEqual(U3TD, 0x03)) { /* Shutdown USB2 PLL */ if (U3TD == 0x03) { /* Shutdown USB2 PLL */
PWGC (0x40, 0) PWGC (0x40, 0)
Store (One, U2RP) U2RP = One
} }
} }
} }
@@ -155,115 +155,115 @@ Method(U2D3,0, Serialized)
Method(U2D0,0, Serialized) Method(U2D0,0, Serialized)
{ {
PWGC (0x40, 1) PWGC (0x40, 1)
Store (Zero, U2RP) U2RP = Zero
Store (0x00,U2TD) U2TD = 0x00
Store (Zero, U2TD) U2TD = Zero
Store (One, U2PD) U2PD = One
Store (U2DS, Local0) Local0 = U2DS
while (LNotEqual(Local0,0x7)) { while (Local0 != 0x7) {
Store (U2DS, Local0) Local0 = U2DS
} }
Store (One, RQTY) RQTY = One
Store (One, RQ18) RQ18 = One
Store (U2SR, Local0) Local0 = U2SR
while (LNot(Local0)) { while (!Local0) {
Store (U2SR, Local0) Local0 = U2SR
} }
Store (EHID, EH2C) EH2C = EHID
if (LNotEqual(EH10, Zero)) { if (EH10 != Zero) {
Store (EH10, EHBA) EHBA = EH10
Store (One, EHME) EHME = One
Store (SSIM, ESIM) ESIM = SSIM
} }
Store (ES54, EH54) EH54 = ES54
Store (ES64, EH64) EH64 = ES64
} }
Method(LXFW,3, Serialized) //Load Xhci FirmWare Method(LXFW,3, Serialized) //Load Xhci FirmWare
{ {
Store (One, FWLM) /* Firmware Load Mode */ FWLM = One /* Firmware Load Mode */
Store (Arg0, ROAM) /* ROM/RAM */ ROAM = Arg0 /* ROM/RAM */
Store (Arg1, UA04) UA04 = Arg1
Store (Arg2, UA08) UA08 = Arg2
Store (One, FPLS) /* Firmware Preload Start */ FPLS = One /* Firmware Preload Start */
Store (FPLC, Local0) /* Firmware Preload Complete */ Local0 = FPLC /* Firmware Preload Complete */
while (LNot(Local0)) { while (!Local0) {
Store (FPLC, Local0) Local0 = FPLC
} }
Store (Zero, FPLS) FPLS = Zero
} }
Method(U3D3,0, Serialized) Method(U3D3,0, Serialized)
{ {
if (LEqual(U_PS, 3)) { if (U_PS == 3) {
X0_S () X0_S ()
Or (PGA3, 0x20, PGA3) /* SwUsb3SlpShutdown */ PGA3 |= 0x20 /* SwUsb3SlpShutdown */
And (PGA3, 0x20, Local0) Local0 = PGA3 & 0x20
while (LNot(Local0)) { /* wait for it to complete */ while (!Local0) { /* wait for it to complete */
And (PGA3, 0x20, Local0) Local0 = PGA3 & 0x20
} }
Store (One, UD3P) /* U3P_D3Cold_PWRDN */ UD3P = One /* U3P_D3Cold_PWRDN */
Store (Zero, U3PD) /* PwrOnDev */ U3PD = Zero /* PwrOnDev */
Store (U3DS, Local0) Local0 = U3DS
while (Local0) { /* RstBState, RefClkOkState, PwrRstBState */ while (Local0) { /* RstBState, RefClkOkState, PwrRstBState */
Store (U3DS, Local0) Local0 = U3DS
} }
Store (0x3, U3TD) /* TargetedDeviceState */ U3TD = 0x3 /* TargetedDeviceState */
Store (One, U3RP) /* USB3_RefClk_Pwdn */ U3RP = One /* USB3_RefClk_Pwdn */
if (Lequal(U2TD, 0x3)) { /* If EHCI targeted in D3cold */ if (U2TD == 0x3) { /* If EHCI targeted in D3cold */
And (PGA3, 0x9f, PGA3) /* SwUsb2S5RstB */ PGA3 &= 0x9f /* SwUsb2S5RstB */
Store (One, U2RP) /* USB2_RefClk_Pwdn */ U2RP = One /* USB2_RefClk_Pwdn */
} }
Store (Zero, U3PG) /* XhcPwrGood */ U3PG = Zero /* XhcPwrGood */
Store (One, U3PS) /* Usb3PowerSel */ U3PS = One /* Usb3PowerSel */
} }
} }
Method(U3D0,0, Serialized) Method(U3D0,0, Serialized)
{ {
Store (Zero, U3PS) /* Usb3PowerSel */ U3PS = Zero /* Usb3PowerSel */
Store (One, U3PG) /* XhcPwrGood */ U3PG = One /* XhcPwrGood */
Store (Zero, U2RP) U2RP = Zero
Store (Zero, U3RP) U3RP = Zero
And (PGA3, 0xdf, Local0) Local0 = PGA3 & 0xdf
Or (Local0, 0x40, Local0) Local0 |= 0x40
Store (Local0, PGA3) /* SwUsb2S5RstB */ PGA3 = Local0 /* SwUsb2S5RstB */
Store (Zero, U3TD) /* TargetedDeviceState */ U3TD = Zero /* TargetedDeviceState */
Store (One, U3PD) /* PwrOnDev */ U3PD = One /* PwrOnDev */
Store (U3DS, Local0) /* wait for RstBState, RefClkOkState, PwrRstBState */ Local0 = U3DS /* wait for RstBState, RefClkOkState, PwrRstBState */
while (LNot(Lequal(Local0, 0x7))) { while (Local0 != 0x7) {
Store (U3DS, Local0) Local0 = U3DS
} }
Store (U3PY, Local0) /* USB3 PHY Lock */ Local0 = U3PY /* USB3 PHY Lock */
while (LNot(Local0)) { while (!Local0) {
Store (U3PY, Local0) Local0 = U3PY
} }
Store (Zero, U3PR) /* U3P_RESTORE_RESET */ U3PR = Zero /* U3P_RESTORE_RESET */
Store (AUSS, Local0) /* AutoSizeStart */ Local0 = AUSS /* AutoSizeStart */
if (LNotEqual(Local0,1)) { if (Local0 != 1) {
Store(One, AUSS) AUSS = One
} }
Store (AUSS, Local0) Local0 = AUSS
while (LNotEqual(Local0,1)) { while (Local0 != 1) {
Store (AUSS, Local0) Local0 = AUSS
} }
LXFW (1, FW00, FW01) LXFW (1, FW00, FW01)
@@ -271,9 +271,9 @@ Method(U3D0,0, Serialized)
X0_R () X0_R ()
Store (One, U3PR) /* U3P_RESTORE_RESET */ U3PR = One /* U3P_RESTORE_RESET */
Store (Zero, UD3P) /* U3P_D3Cold_PWRDN */ UD3P = Zero /* U3P_D3Cold_PWRDN */
Store (One, U3TD) /* TargetedDeviceState */ U3TD = One /* TargetedDeviceState */
} }
Name (SVBF, Buffer (0x1000) {0}) /* length from FchCarrizo.asl, new fields */ Name (SVBF, Buffer (0x1000) {0}) /* length from FchCarrizo.asl, new fields */
@@ -313,66 +313,122 @@ CreateDWordField(SVBF, 0x7B0, SSIM) /* EHCI SIM BIT */
Method(X0_S,0) Method(X0_S,0)
{ {
Store (XH2C, XHID) XHID = XH2C
Store (0x00000000, IDEX) Store (DATA, S000) IDEX = Zero
Store (0x00000004, IDEX) Store (DATA, S004) S000 = DATA
Store (0x00000008, IDEX) Store (DATA, S008) IDEX = 0x00000004
Store (0x0000000c, IDEX) Store (DATA, S00C) S004 = DATA
Store (0x00000018, IDEX) Store (DATA, S018) IDEX = 0x00000008
Store (0x0000001c, IDEX) Store (DATA, S01C) S008 = DATA
Store (0x00000020, IDEX) Store (DATA, S020) IDEX = 0x0000000C
Store (0x00000030, IDEX) Store (DATA, S030) S00C = DATA
Store (0x00000118, IDEX) Store (DATA, S118) IDEX = 0x00000018
Store (0x00000158, IDEX) Store (DATA, S158) S018 = DATA
Store (0x00000198, IDEX) Store (DATA, S198) IDEX = 0x0000001C
Store (0x000001d8, IDEX) Store (DATA, S1D8) S01C = DATA
Store (0x00000300, IDEX) Store (DATA, S300) IDEX = 0x00000020
Store (0x00000304, IDEX) Store (DATA, S304) S020 = DATA
Store (0x00000308, IDEX) Store (DATA, S308) IDEX = 0x00000030
Store (0x0000030c, IDEX) Store (DATA, S30C) S030 = DATA
Store (0x00000310, IDEX) Store (DATA, S310) IDEX = 0x00000118
Store (0x40000028, IDEX) Store (DATA, S428) S118 = DATA
Store (0x40000038, IDEX) Store (DATA, S438) IDEX = 0x00000158
Store (0x4000003c, IDEX) Store (DATA, S43C) S158 = DATA
Store (0x40000058, IDEX) Store (DATA, S458) IDEX = 0x00000198
Store (0x40000068, IDEX) Store (DATA, S468) S198 = DATA
Store (0x4000006c, IDEX) Store (DATA, S46C) IDEX = 0x000001D8
Store (0x40000070, IDEX) Store (DATA, S470) S1D8 = DATA
Store (0x40000080, IDEX) Store (DATA, S480) IDEX = 0x00000300
Store (0x40000084, IDEX) Store (DATA, S484) S300 = DATA
Store (0x40000088, IDEX) Store (DATA, S488) IDEX = 0x00000304
Store (0x4000008c, IDEX) Store (DATA, S48C) S304 = DATA
IDEX = 0x00000308
S308 = DATA
IDEX = 0x0000030C
S30C = DATA
IDEX = 0x00000310
S310 = DATA
IDEX = 0x40000028
S428 = DATA
IDEX = 0x40000038
S438 = DATA
IDEX = 0x4000003C
S43C = DATA
IDEX = 0x40000058
S458 = DATA
IDEX = 0x40000068
S468 = DATA
IDEX = 0x4000006C
S46C = DATA
IDEX = 0x40000070
S470 = DATA
IDEX = 0x40000080
S480 = DATA
IDEX = 0x40000084
S484 = DATA
IDEX = 0x40000088
S488 = DATA
IDEX = 0x4000008C
S48C = DATA
} }
Method(X0_R,0) Method(X0_R,0)
{ {
Store (XHID, XH2C) XH2C = XHID
Store (0x00000000, IDEX) Store (S000, DATA) IDEX = Zero
Store (0x00000004, IDEX) Store (S004, DATA) DATA = S000
Store (0x00000008, IDEX) Store (S008, DATA) IDEX = 0x000000004
Store (0x0000000c, IDEX) Store (S00C, DATA) DATA = S004
Store (0x00000018, IDEX) Store (S018, DATA) IDEX = 0x000000008
Store (0x0000001c, IDEX) Store (S01C, DATA) DATA = S008
Store (0x00000020, IDEX) Store (S020, DATA) IDEX = 0x00000000C
Store (0x00000030, IDEX) Store (S030, DATA) DATA = S00C
Store (0x00000118, IDEX) Store (S118, DATA) IDEX = 0x000000018
Store (0x00000158, IDEX) Store (S158, DATA) DATA = S018
Store (0x00000198, IDEX) Store (S198, DATA) IDEX = 0x00000001C
Store (0x000001d8, IDEX) Store (S1D8, DATA) DATA = S01C
Store (0x00000300, IDEX) Store (S300, DATA) IDEX = 0x000000020
Store (0x00000304, IDEX) Store (S304, DATA) DATA = S020
Store (0x00000308, IDEX) Store (S308, DATA) IDEX = 0x00000030
Store (0x0000030c, IDEX) Store (S30C, DATA) DATA = S030
Store (0x00000310, IDEX) Store (S310, DATA) IDEX = 0x00000118
Store (0x40000028, IDEX) Store (S428, DATA) DATA = S118
Store (0x40000038, IDEX) Store (S438, DATA) IDEX = 0x00000158
Store (0x4000003c, IDEX) Store (S43C, DATA) DATA = S158
Store (0x40000058, IDEX) Store (S458, DATA) IDEX = 0x00000198
Store (0x40000068, IDEX) Store (S468, DATA) DATA = S198
Store (0x4000006c, IDEX) Store (S46C, DATA) IDEX = 0x000001D8
Store (0x40000070, IDEX) Store (S470, DATA) DATA = S1D8
Store (0x40000080, IDEX) Store (S480, DATA) IDEX = 0x00000300
Store (0x40000084, IDEX) Store (S484, DATA) DATA = S300
Store (0x40000088, IDEX) Store (S488, DATA) IDEX = 0x00000304
Store (0x4000008c, IDEX) Store (S48C, DATA) DATA = S304
IDEX = 0x00000308
DATA = S308
IDEX = 0x0000030C
DATA = S30C
IDEX = 0x00000310
DATA = S310
IDEX = 0x40000028
DATA = S428
IDEX = 0x40000038
DATA = S438
IDEX = 0x4000003C
DATA = S43C
IDEX = 0x40000058
DATA = S458
IDEX = 0x40000068
DATA = S468
IDEX = 0x4000006C
DATA = S46C
IDEX = 0x40000070
DATA = S470
IDEX = 0x40000080
DATA = S480
IDEX = 0x40000084
DATA = S484
IDEX = 0x40000088
DATA = S488
IDEX = 0x4000008C
DATA = S48C
} }