John Zhao has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
soc/intel/tigerlake: Configure TCSS xHCI power management
Add Type-C subsystem xHCI power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build. Booted to kernel and read tcss IOM package state through ITP. Verified xhci state transition from D0 to D3.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 2 files changed, 711 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/1
diff --git a/src/soc/intel/tigerlake/acpi/tcss.asl b/src/soc/intel/tigerlake/acpi/tcss.asl new file mode 100755 index 0000000..d2f75b4 --- /dev/null +++ b/src/soc/intel/tigerlake/acpi/tcss.asl @@ -0,0 +1,472 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2020 Intel Corp. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#define TCSS_TBT_PCIE0_RP0 0 +#define TCSS_TBT_PCIE0_RP1 1 +#define TCSS_TBT_PCIE0_RP2 2 +#define TCSS_TBT_PCIE0_RP3 3 +#define TCSS_XHCI 4 +#define TCSS_XDCI 5 +#define TCSS_NHI0 6 +#define TCSS_NHI1 7 + +/* + * MAILBOX_BIOS_CMD_TCSS_DEVEN_INTERFACE + * Command code 0x15 + * Description: Gateway command for handling TCSS DEVEN clear/restore. + * Field PARAM1[15:8] of the _INTERFACE register is used in this command to select from + * a pre-defined set of subcommands: + */ +#define MAILBOX_BIOS_CMD_TCSS_DEVEN_INTERFACE 0x00000015 +#define TCSS_DEVEN_MAILBOX_SUBCMD_GET_STATUS 0 // Sub-command 0 +#define TCSS_DEVEN_MAILBOX_SUBCMD_TCSS_CHANGE_REQ 1 // Sub-command 1 + +#define TCSS_IOM_ACK_TIMEOUT_IN_MS 100 + +Scope (_SB) { + + /* + * Procedure: GPRW + * + * Description: Generic Wake up Control Method to detect the Max Sleep State + * available in ASL Name scope and return the package compatible with _PRW format. + * Input: Arg0 = bit offset within GPE register space device event will be triggered to. + * Arg1 = Max Sleep state, device can resume the System from. + * If Arg1 = 0, Update Arg1 with Max _Sx state enabled in the System. + * Output: _PRW package + */ + Name (PRWP, Package(){ Zero, Zero }) // _PRW Package + Name (SS1, 0) + Name (SS2, 0) + Name (SS3, 1) + Name (SS4, 1) + + Method(GPRW, 2) + { + Store (Arg0, Index(PRWP, 0)) // copy GPE# + /* + * SS1-SS4 - Setup sleep states + */ + Store (ShiftLeft(SS1, 1), Local0) // S1 + Or (Local0, ShiftLeft(SS2, 2), Local0) // S2 + Or (Local0, ShiftLeft(SS3, 3), Local0) // S3 + Or (Local0, ShiftLeft(SS4, 4), Local0) // S4 + /* + * Local0 has a bit mask of enabled Sx(1 based) + * bit mask of enabled in setup sleep states(1 based) + */ + If (And (ShiftLeft(1, Arg1), Local0)) + { + /* + * Requested wake up value (Arg1) is present in Sx list of available + * Sleep states + */ + Store (Arg1, Index(PRWP, 1)) // copy Sx# + } + Else + { + /* + * Not available -> match Wake up value to the higher Sx state + */ + ShiftRight(Local0, 1, Local0) + FindSetLeftBit(Local0, Index(PRWP, 1)) // Arg1 == Min Sx + } + + Return (PRWP) + } + + /* + * Define PCH ACPIBASE I/O as an ACPI operating region. The base address can be + * found in Device 31, Function 2, Offset 40h. + */ + OperationRegion (PMIO, SystemIO, 0x1800, 0x80) + Field (PMIO, ByteAcc, NoLock, Preserve) { + , 8, + PBSS, 1, // Power Button Status + Offset(0x40), // 0x40, General Purpose Event Control + , 17, + GPEC, 1, // Software GPE Control + Offset(0x6C), // 0x6C, General Purpose Event 0 Status [127:96] + , 19, + CPWS, 1, // CPU WAKE STATUS + Offset(0x7C), // 0x7C, General Purpose Event 0 Enable [127:96] + , 19, + CPWE, 1 // CPU WAKE EN + } + + Name (C2PW, 0) // Set Default value 0 to Tcss CPU to PCH WAKE Value + + /* + * C2PM (CPU to PCH Method) + * + * This object is Enable/Disable GPE_CPU_WAKE_EN. + * Arguments: (4) + * Arg0 - An Integer containing the device wake capability + * Arg1 - An Integer containing the target system state + * Arg2 - An Integer containing the target device state + * Arg3 - An Integer containing the request device type + * Return Value: + * return 0 + */ + Method (C2PM, 4, NotSerialized) { + Store (0, Local1) + ShiftLeft (0x1, ToInteger(Arg3), Local1) + /* This method is used to enable/disable wake from Tcss Device (WKEN) */ + If (LAnd(Arg0, Arg1)) + { // If entering Sx and enabling wake, need to enable WAKE capability + If (LEqual (CPWE, 0)) { // If CPU WAKE EN is not set, Set it. + If (CPWS) { // If CPU WAKE STATUS is set, Clear it. + /* Clear CPU WAKE STATUS by writing 1. */ + Store (1, CPWS) + } + Store (1, CPWE) // Set CPU WAKE EN by writing 1. + } + If (LEqual (And (C2PW, Local1), 0)) { + /* Set Corresponding Device En BIT in C2PW */ + Or (C2PW, Local1, C2PW) + } + } Else { // If Staying in S0 or Disabling Wake + If (LOr (Arg0, Arg2)) // Check if Exiting D0 and arming for wake + { + /* If CPU WAKE EN is not set, Set it. */ + If (LEqual (CPWE, 0)) { + /* If CPU WAKE STATUS is set, Clear it. */ + If (CPWS) { + /* Clear CPU WAKE STATUS by writing 1. */ + Store (1, CPWS) + } + Store (1, CPWE) // Set CPU WAKE EN by writing 1. + } + If (LEqual (And (C2PW, Local1), 0)) { + /* Set Corresponding Device En BIT in C2PW */ + Or (C2PW, Local1, C2PW) + } + } Else { + /* + * Disable runtime PME, either because staying in D0 or + * disabling wake + */ + If (LNotEqual (And (C2PW, Local1), 0)) { + /* + * Clear Corresponding Device En BIT in C2PW + */ + And (C2PW, Not (Local1), C2PW) + } + If (LAnd (LNotEqual (CPWE, 0), LEqual (C2PW, 0))) { + /* + * If CPU WAKE EN is set, Clear it. + * Clear CPU WAKE EN by writing 0 + */ + Store (0, CPWE) + } + } + } + + Return (0) + } +} + +Scope (_SB.PCI0) { + + /* + * Operation region defined to access the IOM REGBAR. Get the MCHBAR in offset + * 0x48 in B0:D0:F0. REGBAR Base address is in offset 0x7110 of MCHBAR. + */ + OperationRegion (MBAR, SystemMemory, Add(_SB.PCI0.GMHB(), 0x7100), 0x1000) + Field (MBAR, ByteAcc, NoLock, Preserve) + { + Offset(0x10), + RBAR, 64 // RegBar, offset 0x7110 in MCHBAR + } + Field (MBAR, DWordAcc, NoLock, Preserve) + { + Offset(0x304), // PRIMDN_MASK1_0_0_0_MCHBAR_IMPH, offset 0x7404 + , 31, + TCD3, 1 // [31:31] TCSS IN D3 bit + } + + /* + * Operation region defined to access the pCode mailbox interface. Get the MCHBAR + * in offset 0x48 in B0:D0:F0. MMIO address is in offset 0x5DA0 of MCHBAR. + */ + OperationRegion (PBAR, SystemMemory, Add(_SB.PCI0.GMHB(), 0x5DA0), 0x08) + Field (PBAR, DWordAcc, NoLock, Preserve) + { + PMBD, 32, // pCode MailBox Data, offset 0x5DA0 in MCHBAR + PMBC, 8, // pCode MailBox Command, [7:0] of offset 0x5DA4 in MCHBAR + PSCM, 8, // pCode MailBox Sub-Command, [15:8] of offset 0x5DA4 in MCHBAR + , 15, // Reserved + PMBR, 1 // pCode MailBox RunBit, [31:31] of offset 0x5DA4 in MCHBAR + } + + /* + * Poll pCode MailBox Ready + * + * Return 0xFF - Timeout + * 0x00 - Ready + */ + Method (PMBY, 0) + { + Store (0, Local0) + While (LAnd (PMBR, LLess (Local0, 1000))) { + Increment (Local0) + Stall (1) + } + If (LEqual (Local0, 1000)) { + /* + * Timeout occurred + */ + Return (0xFF) + } + Return (0) + } + + /* + * Method to send pCode MailBox command TCSS_DEVEN_MAILBOX_SUBCMD_GET_STATUS + * + * Result will be updated in DATA[1:0] + * DATA[0:0] TCSS_DEVEN_CURRENT_STATE: + * 0 - TCSS Deven in normal state + * 1 - TCSS Deven is cleared by BIOS Mailbox request + * DATA[1:1] TCSS_DEVEN_REQUEST_STATUS: + * 0 - IDLE. TCSS DEVEN has reached its final requested state + * 1 - In Progress. TCSS DEVEN is currently in progress of switching state + * according to given request (bit 0 reflects source state). + * + * Return 0x00 - TCSS Deven in normal state + * 0x01 - TCSS Deven is cleared by BIOS Mailbox request + * 0x1x - TCSS Deven is in progress of switching state according to given request + * 0xFE - Command timeout + * 0xFF - Command corrupt + */ + Method (DSGS, 0) + { + If (LEqual (PMBY (), 0)) { + Store (MAILBOX_BIOS_CMD_TCSS_DEVEN_INTERFACE, PMBC) + Store (TCSS_DEVEN_MAILBOX_SUBCMD_GET_STATUS, PSCM) + Store (1, PMBR) + If (LEqual (PMBY (), 0)) { + Store (PMBD, Local0) + Store (PMBC, Local1) + Stall (10) + If (LOr (LNotEqual (Local0, PMBD), LNotEqual (Local1, PMBC))) { + /* pCode MailBox is corrupt */ + Return (0xFF) + } + Return (Local0) + } Else { + /* pCode MailBox is not ready */ + Return (0xFE) + } + } Else { + /* pCode MailBox is not ready */ + Return (0xFE) + } + } + + /* + * Method to send pCode MailBox command TCSS_DEVEN_MAILBOX_SUBCMD_TCSS_CHANGE_REQ + * + * Arg0 : 0 - Restore to previously saved value of TCSS DEVEN + * 1 - Save current TCSS DEVEN value and clear it + * + * Return 0x00 - MAILBOX_BIOS_CMD_CLEAR_TCSS_DEVEN command completed + * 0xFD - Input argument is invalid + * 0xFE - Command timeout + * 0xFF - Command corrupt + */ + Method (DSCR, 1) + { + If (LGreater (Arg0, 1)) { + /* pCode MailBox is corrupt */ + Return (0xFD) + } + If (LEqual (PMBY (), 0)) { + Store (MAILBOX_BIOS_CMD_TCSS_DEVEN_INTERFACE, PMBC) + Store (TCSS_DEVEN_MAILBOX_SUBCMD_TCSS_CHANGE_REQ, PSCM) + Store (Arg0, PMBD) + Store (1, PMBR) + If (LEqual (PMBY (), 0)) { + Store (PMBD, Local0) + Store (PMBC, Local1) + Stall (10) + If (LOr (LNotEqual(Local0, PMBD), + LNotEqual (Local1, PMBC))) { + /* pCode MailBox is corrupt */ + Return (0xFF) + } + /* Poll TCSS_DEVEN_REQUEST_STATUS, timeout value is 10ms */ + Store (0, Local0) + While (LAnd (And(DSGS (), 0x2), LLess (Local0, 100))) { + Stall (100) + Increment (Local0) + } + If (LEqual (Local0, 100)) { + Return (0xFE) + } Else { + Return (0x00) + } + } Else { + /* pCode MailBox is not ready */ + Return (0xFE) + } + } Else { + /* pCode MailBox is not ready */ + Return (0xFE) + } + } + + /* + * IOM REG BAR Base address is in offset 0x7110 in MCHBAR + */ + Method (IOMA, 0) + { + Return (And (^RBAR, 0xFFFFFFFFFFFFFFFE)) + } + + /* + * Method to dynamically assign register offset based on stepping Port ID value + */ + Method (PIDS, 0) + { + return (0xC10000) + } + + /* + * From RegBar Base, IOM_TypeC_SW_configuration_1 is in offset 0xC10040, where + * 0x07(in A0) is the IOM port id and 0x0040 is the register offset + */ + OperationRegion (IOMR, SystemMemory, Add(IOMA(), PIDS()), 0x100) + Field (IOMR, DWordAcc, NoLock, Preserve) + { + Offset(0x40), + , 15, + TD3C, 1, // [15:15] Type C D3 cold bit + TACK, 1, // [16:16] IOM Acknowledge bit + DPOF, 1, // [17:17] Set 1 to indicate IOM, all the + // display is OFF, clear otherwise + Offset(0x70), // Pyhical addr is offset 0x70. + IMCD, 32, // R_SA_IOM_BIOS_MAIL_BOX_CMD + IMDA, 32 // R_SA_IOM_BIOS_MAIL_BOX_DATA + } + + Method (TCON, 0) { + /* Reset IOM D3 cold bit if it is in D3 cold now. */ + If (LEqual (TD3C, 1)) // It was in D3 cold before. + { + /* Reset IOM D3 cold bit */ + Store (0, TD3C) // Request IOM for D3 cold exit sequence + Store (0, Local0) //Time check counter variable + /* Wait for ack, the maximum wait time for the ack is 100 msec. */ + While (LAnd (LNotEqual (TACK, 0), LLess (Local0, + TCSS_IOM_ACK_TIMEOUT_IN_MS))) { + /* + * Wait in this loop until TACK becomes 0 with timeout + * TCSS_IOM_ACK_TIMEOUT_IN_MS by default + */ + Sleep (1) // Delay of 1ms + Increment (Local0) + } + + If (LEqual (Local0, TCSS_IOM_ACK_TIMEOUT_IN_MS)) { + /* if TCSS_IOM_ACK_TIMEOUT_IN_MS timeout occurred */ + } + Else + { + /* + * Program IOP MCTP Drop (TCSS_IN_D3) after D3 cold exit and + * acknowledgement by IOM. + */ + Store (0, TCD3) + /* + * If the TCSS Deven is cleared by BIOS Mailbox request, then + * Restore to previously saved value of TCSS DEVNE. + */ + If (LEqual (DSGS (), 1)) { + DSCR (0) + } + } + } Else { + /* Drop this method due to it is alredy exit D3 cold */ + Return + } + } + + Method (TCOF, 0) { + If (LNotEqual (_SB.PCI0.TXHC.SD3C, 0)) // TBD along with NHI + { + Return // Skip D3C entry + } + + /* + * If the TCSS Deven in normal state, then Save current TCSS DEVEN value and + * clear it. + */ + If (LEqual (DSGS (), 0)) { + DSCR (1) + } + + /* + * Program IOM MCTP Drop (TCSS_IN_D3) in D3Cold entry before entering D3 cold. + */ + Store (1, TCD3) + + /* + * Request IOM for D3 cold entry sequence. + */ + Store (1, TD3C) + } + + PowerResource(D3C, 5, 0) { + /* + * Variable to save power state + * 1 - TC Cold request cleared, + * 0 - TC Cold request sent + */ + Name (STAT, 0x1) + + Method (_STA, 0) + { + Return (STAT) + } + + Method (_ON, 0) + { + _SB.PCI0.TCON() + Store (1, STAT) + } + + Method (_OFF, 0) + { + _SB.PCI0.TCOF() + Store (0, STAT) + } + } + + /* + * TCSS xHCI device + */ + Device(TXHC) { + Name (_ADR, 0x000D0000) + Name (_DDN, "North XHCI controller") + Name (_STR, Unicode ("North XHCI controller")) + Name (DCPM, TCSS_XHCI) + + Method (_STA, 0x0, NotSerialized) { + Return (0x0F) + } + #include "tcss_xhci.asl" + } +} diff --git a/src/soc/intel/tigerlake/acpi/tcss_xhci.asl b/src/soc/intel/tigerlake/acpi/tcss_xhci.asl new file mode 100755 index 0000000..5babd43 --- /dev/null +++ b/src/soc/intel/tigerlake/acpi/tcss_xhci.asl @@ -0,0 +1,239 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2020 Intel Corp. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * xHCI device base address + */ +Method (BASE, 0) { + Store (And (_ADR, 0x7), Local0) // Function number + Store (And (ShiftRight (_ADR, 16), 0x1F), Local1) // Device number + Add (ShiftLeft (Local0, 12), ShiftLeft (Local1, 15), Local2) + Add (_SB.PCI0.GPCB(), Local2, Local3) + Return (Local3) +} + +OperationRegion(XPRT, SystemMemory, BASE(), 0x100) +/* + * Byte access for PMCS field to avoid race condition on device D-state + */ +Field(XPRT, ByteAcc, NoLock, Preserve) +{ + Offset(0x74), // 0x74, XHCI CFG Power Control And Status + D0D3, 2, // 0x74 BIT[1:0] + , 6, + PMEE, 1, // PME Enable + , 6, + PMES, 1, // PME Status +} + +Method (_PS0, 0, Serialized) +{ + If (LEqual (_SB.PCI0.TXHC.PMEE, 1)) { + /* Clear PME_EN of CPU xHCI */ + Store (0, _SB.PCI0.TXHC.PMEE) + } +} + +Method (_PS3, 0, Serialized) +{ + If (LEqual (_SB.PCI0.TXHC.PMEE, 0)) { + /* Set PME_EN of CPU xHCI */ + Store (1, _SB.PCI0.TXHC.PMEE) + } +} + +Method (_S0W, 0x0, NotSerialized) +{ + Return (0x4) +} + +/* + * Variable to skip TCSS/TBT D3 cold; 1+: Skip D3CE, 0 - Enable D3CE + * TCSS D3 Cold and TBT RTD3 is only available when system power state is in S0. + */ +Name (SD3C, 0) + +/* + * To evaluate to a list of power resources that are dependent on this device. + * For OSPM to "put the device in" the D0 device state. + */ +Method (_PR0) +{ + Return (Package () { _SB.PCI0.D3C }) +} + +/* + * To evaluates to a list of power resources upon which this device is dependent + * when it is in the D3hot state. The PMSS is in D3H when this method is called. + * For devices that support both D3hot and D3 exposed to OSPM via _PR3, device + * software/drivers must always assume OSPM will target D3 and must assume all + * device context will be lost and the device will no longer be enumerable. + */ +Method (_PR3) +{ + Return (Package () { _SB.PCI0.D3C }) +} + +/* + * XHCI controller _DSM method + */ +Method (_DSM, 4, serialized) +{ + Return (Buffer() { 0 }) +} + +/* + * _SXD and _SXW methods + */ +Method (_S3D, 0, NotSerialized) +{ + Return (3) +} + +Method (_S4D, 0, NotSerialized) +{ + Return (3) +} + +Method (_S3W, 0, NotSerialized) +{ + Return (3) +} + +Method (_S4W, 0, NotSerialized) +{ + Return (3) +} + +/* + * Power resource for wake + */ +Method (_PRW, 0) +{ + Return (GPRW(0x6D, 4)) +} + +/* + * Device sleep wake + */ +Method (_DSW, 3) +{ + C2PM (Arg0, Arg1, Arg2, DCPM) + Store (Arg1, SD3C) // If entering Sx (Arg1 > 1), need to skip TCSS D3Cold & TBT + // RTD3/D3Cold. +} + +/* + * xHCI Root Hub Device + */ +Device (RHUB) +{ + Name (_ADR, Zero) + + /* + * Method for creating Type C _PLD buffers + * _PLD contains lots of data, but for purpose of internal validation we only care + * about ports visibility and pairing (this requires group position). So these are + * only those 2 configurable parameters. + */ + Method (TPLD, 2, Serialized) + { + /* + * Arg0: Visible + * Arg1: Group position + */ + Name (PCKG, Package() { Buffer(0x10) {} } ) + CreateField (DerefOf (Index(PCKG, 0)), 0, 7, REV) + Store (1, REV) + CreateField (DerefOf (Index(PCKG, 0)), 64, 1, VISI) + Store (Arg0, VISI) + CreateField (DerefOf (Index(PCKG, 0)), 87, 8, GPOS) + Store (Arg1, GPOS) + + /* For USB type C, Standard values */ + CreateField (DerefOf (Index(PCKG, 0)), 74, 4, SHAP) // Shape set to Oval + Store (1, SHAP) + CreateField (DerefOf (Index(PCKG, 0)), 32, 16, WID) // Width of the + // connector, 8.34mm + Store (8, WID) + CreateField (DerefOf (Index(PCKG, 0)), 48, 16, HGT) // Height of the + // connector, 2.56mm + Store (3, HGT) + return (PCKG) + } + + /* + * Method for creating Type C _UPC buffers + * Similar to _PLD, for internal testing we only care about 1 parameter. + */ + Method (TUPC, 2, Serialized) + { + /* + * Arg0: Connectable + * Arg1: Type + * Type: + * 0x08: Type C connector - USB2-only + * 0x09: Type C connector - USB2 and SS with Switch + * 0x0A: Type C connector - USB2 and SS without Switch + */ + Name (PCKG, Package(4) { 1, 0x00, 0, 0 } ) + Store (Arg0, Index(PCKG, 0)) + Store (Arg1, Index(PCKG, 1)) + return (PCKG) + } + + /* + * High Speed Ports + */ + Device (HS01) + { + Name (_ADR, 0x01) + } + + /* + * Super Speed Ports + */ + Device (SS01) + { + Name (_ADR, 0x02) + } + + Device (SS02) + { + Name (_ADR, 0x03) + } + + Device (SS03) + { + Name (_ADR, 0x04) + } + + Device (SS04) + { + Name (_ADR, 0x05) + } + + Method (_PS0, 0, Serialized) + { + } + + Method (_PS2, 0, Serialized) + { + } + + Method (_PS3, 0, Serialized) + { + } +}
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 1:
(9 comments)
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 62: Store (ShiftLeft(SS1, 1), Local0) // S1 trailing whitespace
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 63: Or (Local0, ShiftLeft(SS2, 2), Local0) // S2 trailing whitespace
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 64: Or (Local0, ShiftLeft(SS3, 3), Local0) // S3 trailing whitespace
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 65: Or (Local0, ShiftLeft(SS4, 4), Local0) // S4 trailing whitespace
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 239: * Result will be updated in DATA[1:0] trailing whitespace
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 325: } Else { trailing whitespace
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 402: /* Drop this method due to it is alredy exit D3 cold */ 'alredy' may be misspelled - perhaps 'already'?
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 16: /* trailing whitespace
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 121: * Power resource for wake trailing whitespace
Hello build bot (Jenkins), Patrick Rudolph,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#2).
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
soc/intel/tigerlake: Configure TCSS xHCI power management
Add Type-C subsystem xHCI power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build. Booted to kernel and read tcss IOM package state through ITP. Verified xhci state transition from D0 to D3.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 2 files changed, 711 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/2
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 2:
(9 comments)
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 62: Store (ShiftLeft(SS1, 1), Local0) // S1
trailing whitespace
Done
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 63: Or (Local0, ShiftLeft(SS2, 2), Local0) // S2
trailing whitespace
Done
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 64: Or (Local0, ShiftLeft(SS3, 3), Local0) // S3
trailing whitespace
Done
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 65: Or (Local0, ShiftLeft(SS4, 4), Local0) // S4
trailing whitespace
Done
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 239: * Result will be updated in DATA[1:0]
trailing whitespace
Done
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 325: } Else {
trailing whitespace
Done
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 402: /* Drop this method due to it is alredy exit D3 cold */
'alredy' may be misspelled - perhaps 'already'?
Ack
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 16: /*
trailing whitespace
Done
https://review.coreboot.org/c/coreboot/+/39785/1/src/soc/intel/tigerlake/acp... PS1, Line 121: * Power resource for wake
trailing whitespace
Done
Hello build bot (Jenkins), Patrick Rudolph,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#3).
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
soc/intel/tigerlake: Configure TCSS xHCI power management
Add Type-C subsystem xHCI power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build. Booted to kernel and read tcss IOM package state through ITP. Verified xhci state transition from D0 to D3.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 2 files changed, 711 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/3
Duncan Laurie has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 3:
(2 comments)
I hate to suggest it but this whole bit of ASL would be much more readable with ASL2.0 syntax..
https://review.coreboot.org/c/coreboot/+/39785/3/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/3/src/soc/intel/tigerlake/acp... PS3, Line 40: /* : * Procedure: GPRW : * : * Description: Generic Wake up Control Method to detect the Max Sleep State : * available in ASL Name scope and return the package compatible with _PRW format. : * Input: Arg0 = bit offset within GPE register space device event will be triggered to. : * Arg1 = Max Sleep state, device can resume the System from. : * If Arg1 = 0, Update Arg1 with Max _Sx state enabled in the System. : * Output: _PRW package : */ : Name (PRWP, Package(){ Zero, Zero }) // _PRW Package : Name (SS1, 0) : Name (SS2, 0) : Name (SS3, 1) : Name (SS4, 1) : : Method(GPRW, 2) : { : Store (Arg0, Index(PRWP, 0)) // copy GPE# : /* : * SS1-SS4 - Setup sleep states : */ : Store (ShiftLeft(SS1, 1), Local0) // S1 : Or (Local0, ShiftLeft(SS2, 2), Local0) // S2 : Or (Local0, ShiftLeft(SS3, 3), Local0) // S3 : Or (Local0, ShiftLeft(SS4, 4), Local0) // S4 : /* : * Local0 has a bit mask of enabled Sx(1 based) : * bit mask of enabled in setup sleep states(1 based) : */ : If (And (ShiftLeft(1, Arg1), Local0)) : { : /* : * Requested wake up value (Arg1) is present in Sx list of available : * Sleep states : */ : Store (Arg1, Index(PRWP, 1)) // copy Sx# : } : Else : { : /* : * Not available -> match Wake up value to the higher Sx state : */ : ShiftRight(Local0, 1, Local0) : FindSetLeftBit(Local0, Index(PRWP, 1)) // Arg1 == Min Sx : } : : Return (PRWP) : } I feel like this function is unnecessary? Maybe as part of the full reference code where PRW is some abstracted thing, but why can't the _PRW just return the expected value?
https://review.coreboot.org/c/coreboot/+/39785/3/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/3/src/soc/intel/tigerlake/acp... PS3, Line 145: /* : * Method for creating Type C _PLD buffers : * _PLD contains lots of data, but for purpose of internal validation we only care : * about ports visibility and pairing (this requires group position). So these are : * only those 2 configurable parameters. : */ : Method (TPLD, 2, Serialized) : { : /* : * Arg0: Visible : * Arg1: Group position : */ : Name (PCKG, Package() { Buffer(0x10) {} } ) : CreateField (DerefOf (Index(PCKG, 0)), 0, 7, REV) : Store (1, REV) : CreateField (DerefOf (Index(PCKG, 0)), 64, 1, VISI) : Store (Arg0, VISI) : CreateField (DerefOf (Index(PCKG, 0)), 87, 8, GPOS) : Store (Arg1, GPOS) : : /* For USB type C, Standard values */ : CreateField (DerefOf (Index(PCKG, 0)), 74, 4, SHAP) // Shape set to Oval : Store (1, SHAP) : CreateField (DerefOf (Index(PCKG, 0)), 32, 16, WID) // Width of the : // connector, 8.34mm : Store (8, WID) : CreateField (DerefOf (Index(PCKG, 0)), 48, 16, HGT) // Height of the : // connector, 2.56mm : Store (3, HGT) : return (PCKG) : } : : /* : * Method for creating Type C _UPC buffers : * Similar to _PLD, for internal testing we only care about 1 parameter. : */ : Method (TUPC, 2, Serialized) : { : /* : * Arg0: Connectable : * Arg1: Type : * Type: : * 0x08: Type C connector - USB2-only : * 0x09: Type C connector - USB2 and SS with Switch : * 0x0A: Type C connector - USB2 and SS without Switch : */ : Name (PCKG, Package(4) { 1, 0x00, 0, 0 } ) : Store (Arg0, Index(PCKG, 0)) : Store (Arg1, Index(PCKG, 1)) : return (PCKG) : } these don't look to be used. we generate the _PLD and _UPC from devicetree.
Hello build bot (Jenkins), Furquan Shaikh, Wonkyu Kim, Shamile Khan, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#4).
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
soc/intel/tigerlake: Configure TCSS xHCI power management
Add Type-C subsystem xHCI power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build. Booted to kernel and read tcss IOM package state through ITP. Verified xhci state transition from D0 to D3.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 2 files changed, 609 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/4
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 4:
(2 comments)
https://review.coreboot.org/c/coreboot/+/39785/3/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/3/src/soc/intel/tigerlake/acp... PS3, Line 40: /* : * Procedure: GPRW : * : * Description: Generic Wake up Control Method to detect the Max Sleep State : * available in ASL Name scope and return the package compatible with _PRW format. : * Input: Arg0 = bit offset within GPE register space device event will be triggered to. : * Arg1 = Max Sleep state, device can resume the System from. : * If Arg1 = 0, Update Arg1 with Max _Sx state enabled in the System. : * Output: _PRW package : */ : Name (PRWP, Package(){ Zero, Zero }) // _PRW Package : Name (SS1, 0) : Name (SS2, 0) : Name (SS3, 1) : Name (SS4, 1) : : Method(GPRW, 2) : { : Store (Arg0, Index(PRWP, 0)) // copy GPE# : /* : * SS1-SS4 - Setup sleep states : */ : Store (ShiftLeft(SS1, 1), Local0) // S1 : Or (Local0, ShiftLeft(SS2, 2), Local0) // S2 : Or (Local0, ShiftLeft(SS3, 3), Local0) // S3 : Or (Local0, ShiftLeft(SS4, 4), Local0) // S4 : /* : * Local0 has a bit mask of enabled Sx(1 based) : * bit mask of enabled in setup sleep states(1 based) : */ : If (And (ShiftLeft(1, Arg1), Local0)) : { : /* : * Requested wake up value (Arg1) is present in Sx list of available : * Sleep states : */ : Store (Arg1, Index(PRWP, 1)) // copy Sx# : } : Else : { : /* : * Not available -> match Wake up value to the higher Sx state : */ : ShiftRight(Local0, 1, Local0) : FindSetLeftBit(Local0, Index(PRWP, 1)) // Arg1 == Min Sx : } : : Return (PRWP) : }
I feel like this function is unnecessary? Maybe as part of the full reference code where PRW is som […]
Ack
https://review.coreboot.org/c/coreboot/+/39785/3/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/3/src/soc/intel/tigerlake/acp... PS3, Line 145: /* : * Method for creating Type C _PLD buffers : * _PLD contains lots of data, but for purpose of internal validation we only care : * about ports visibility and pairing (this requires group position). So these are : * only those 2 configurable parameters. : */ : Method (TPLD, 2, Serialized) : { : /* : * Arg0: Visible : * Arg1: Group position : */ : Name (PCKG, Package() { Buffer(0x10) {} } ) : CreateField (DerefOf (Index(PCKG, 0)), 0, 7, REV) : Store (1, REV) : CreateField (DerefOf (Index(PCKG, 0)), 64, 1, VISI) : Store (Arg0, VISI) : CreateField (DerefOf (Index(PCKG, 0)), 87, 8, GPOS) : Store (Arg1, GPOS) : : /* For USB type C, Standard values */ : CreateField (DerefOf (Index(PCKG, 0)), 74, 4, SHAP) // Shape set to Oval : Store (1, SHAP) : CreateField (DerefOf (Index(PCKG, 0)), 32, 16, WID) // Width of the : // connector, 8.34mm : Store (8, WID) : CreateField (DerefOf (Index(PCKG, 0)), 48, 16, HGT) // Height of the : // connector, 2.56mm : Store (3, HGT) : return (PCKG) : } : : /* : * Method for creating Type C _UPC buffers : * Similar to _PLD, for internal testing we only care about 1 parameter. : */ : Method (TUPC, 2, Serialized) : { : /* : * Arg0: Connectable : * Arg1: Type : * Type: : * 0x08: Type C connector - USB2-only : * 0x09: Type C connector - USB2 and SS with Switch : * 0x0A: Type C connector - USB2 and SS without Switch : */ : Name (PCKG, Package(4) { 1, 0x00, 0, 0 } ) : Store (Arg0, Index(PCKG, 0)) : Store (Arg1, Index(PCKG, 1)) : return (PCKG) : }
these don't look to be used. we generate the _PLD and _UPC from devicetree.
Ack
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 4:
Patch Set 3:
(2 comments)
I hate to suggest it but this whole bit of ASL would be much more readable with ASL2.0 syntax..
ok, will work on it.
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 4:
Patch Set 3:
(2 comments)
I hate to suggest it but this whole bit of ASL would be much more readable with ASL2.0 syntax..
ok, will work on it.
Wonkyu Kim has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 4:
Can you add topic?
Hello build bot (Jenkins), Furquan Shaikh, Wonkyu Kim, Shamile Khan, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#5).
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
soc/intel/tigerlake: Configure TCSS xHCI power management
Add Type-C subsystem xHCI power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build. Booted to kernel and read tcss IOM package state through ITP. Verified xhci state transition from D0 to D3.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 2 files changed, 595 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/5
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 5:
(1 comment)
https://review.coreboot.org/c/coreboot/+/39785/5/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/5/src/soc/intel/tigerlake/acp... PS5, Line 253: If ((Local0 != PMBD) || (Local1 != PMBC)) { trailing whitespace
Hello build bot (Jenkins), Furquan Shaikh, Wonkyu Kim, Shamile Khan, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#6).
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
soc/intel/tigerlake: Configure TCSS xHCI power management
Add Type-C subsystem xHCI power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build. Booted to kernel and read tcss IOM package state through ITP. Verified xhci state transition from D0 to D3.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 2 files changed, 595 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/6
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 6:
(1 comment)
https://review.coreboot.org/c/coreboot/+/39785/6/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/6/src/soc/intel/tigerlake/acp... PS6, Line 253: If ((Local0 != PMBD) || (Local1 != PMBC)) { trailing whitespace
Hello build bot (Jenkins), Furquan Shaikh, Wonkyu Kim, Shamile Khan, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#7).
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
soc/intel/tigerlake: Configure TCSS xHCI power management
Add Type-C subsystem xHCI power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build. Booted to kernel and read tcss IOM package state through ITP. Verified xhci state transition from D0 to D3.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 2 files changed, 595 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/7
Hello build bot (Jenkins), Furquan Shaikh, Wonkyu Kim, Shamile Khan, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#8).
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
soc/intel/tigerlake: Configure TCSS xHCI power management
Add Type-C subsystem xHCI power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build. Booted to kernel and read tcss IOM package state through ITP. Verified xhci D3 state entry/exit transition.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 2 files changed, 595 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/8
Duncan Laurie has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 8:
(19 comments)
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 46: , 8, : PBSS, 1, // Power Button Status : Offset(0x40), // 0x40, General Purpose Event Control : , 17, : GPEC, 1, // Software GPE Control this looks unused?
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 74: ToInteger comment above says this should be an integer?
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 135: _SB.PCI0. already in _SB.PCI0 scope
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 141: MBAR does this work to re-use the same field name as above? can they just be merged or is the ByteAcc vs DWordAcc important?
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 263: LEqual (Local0, 100) Local0 == 100
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 283: And (^RBAR, 0xFFFFFFFFFFFFFFFE) Does (^RBAR & ~1) work?
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 287: dynamically Nothing seems dynamic about this method
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 312: { nit: CR before {
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 314: LEqual (TD3C, 1) TD3C == 1
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 317: Store (0, TD3C) TD3C = 0
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 318: Store (0, Local0) Local0 = 0
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 318: / nit: space after //
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 321: ///TCSS_IOM_ACK_TIMEOUT_IN_MS))) { left over?
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 330: LEqual maybe us LNotEqual so the if clause isn't empty? (or the ASL2.0 variant)
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 348: } Else { : /* Drop this method due to it is already exit D3 cold */ : Return : } this is unnecessary
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 379: PowerResource this PowerResource is for _SB.PCI0 itself?
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 408: ( nit: space before (
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 415: nit: extra tab
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 31: ( nit: space after (
Hello build bot (Jenkins), Furquan Shaikh, Wonkyu Kim, Shamile Khan, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#9).
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
soc/intel/tigerlake: Configure TCSS xHCI power management
Add Type-C subsystem xHCI power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build. Booted to kernel and read tcss IOM package state through ITP. Verified xhci state transition from D0 to D3.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 2 files changed, 589 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/9
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 9:
(19 comments)
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 46: , 8, : PBSS, 1, // Power Button Status : Offset(0x40), // 0x40, General Purpose Event Control : , 17, : GPEC, 1, // Software GPE Control
this looks unused?
Ack
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 74: ToInteger
comment above says this should be an integer?
Looks redundant as Arg3 is referred to xhci variable DCPM which already has definition of integer value 4.
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 135: _SB.PCI0.
already in _SB. […]
Ack
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 141: MBAR
does this work to re-use the same field name as above? can they just be merged or is the ByteAcc vs […]
It seems valid to refer to same filed name. DWordAcc validates index values of 0, 4, 8, etc. The above BMAR ByteAcc has 64 bytes of RBAR which is referred by IOMA method execution. It seems fine to keep two access type to differentiate RBAR and TCD3 bit access effectively.
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 263: LEqual (Local0, 100)
Local0 == 100
Ack
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 283: And (^RBAR, 0xFFFFFFFFFFFFFFFE)
Does (^RBAR & ~1) work?
Ack
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 287: dynamically
Nothing seems dynamic about this method
Ack
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 312: {
nit: CR before {
Ack
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 314: LEqual (TD3C, 1)
TD3C == 1
Ack
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 317: Store (0, TD3C)
TD3C = 0
Ack
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 318: Store (0, Local0)
Local0 = 0
Ack
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 318: /
nit: space after //
Ack
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 321: ///TCSS_IOM_ACK_TIMEOUT_IN_MS))) {
left over?
Ack
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 330: LEqual
maybe us LNotEqual so the if clause isn't empty? (or the ASL2. […]
Ack
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 348: } Else { : /* Drop this method due to it is already exit D3 cold */ : Return : }
this is unnecessary
Ack
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 379: PowerResource
this PowerResource is for _SB. […]
D3C is referred by xhci _PR0/_PR3 methods as _SB.PCI0.D3C.
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 408: (
nit: space before (
Ack
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 415:
nit: extra tab
Ack
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/7/src/soc/intel/tigerlake/acp... PS7, Line 31: (
nit: space after (
Ack
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 9:
Patch Set 4:
Can you add topic?
done.
Paul Menzel has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 9:
(1 comment)
https://review.coreboot.org/c/coreboot/+/39785/9/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/9/src/soc/intel/tigerlake/acp... PS9, Line 27: OperationRegion(XPRT, SystemMemory, BASE(), 0x100) Please add a space before the (.
Hello build bot (Jenkins), Furquan Shaikh, Wonkyu Kim, Shamile Khan, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#10).
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
soc/intel/tigerlake: Configure TCSS xHCI power management
Add Type-C subsystem xHCI power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build. Booted to kernel and read tcss IOM package state through ITP. Verified xhci state transition from D0 to D3.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 2 files changed, 587 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/10
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 10:
(1 comment)
https://review.coreboot.org/c/coreboot/+/39785/9/src/soc/intel/tigerlake/acp... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/9/src/soc/intel/tigerlake/acp... PS9, Line 27: OperationRegion(XPRT, SystemMemory, BASE(), 0x100)
Please add a space before the (.
Done
Hello build bot (Jenkins), Furquan Shaikh, Wonkyu Kim, Shamile Khan, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#11).
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
soc/intel/tigerlake: Configure TCSS xHCI power management
Add Type-C subsystem xHCI power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build. Booted to kernel and read tcss IOM package state through ITP. Verified xhci state transition from D0 to D3.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 2 files changed, 591 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/11
Wonkyu Kim has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 11:
(12 comments)
Use same comment style
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 33: // Sub-command 0 Use same comments style.
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 34: // Sub-command 1 Use same comments style.
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 43: // Function number Use same comments style.
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 44: // Device number Use same comments style.
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 56: // 0x6C, General Purpose Event 0 Status [127:96] Use same comments style.
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 58: // CPU WAKE STATUS Use same comments style.
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 59: // 0x7C, General Purpose Event 0 Enable [127:96 Use same comments style.
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 61: // CPU WAKE EN Use same comments style.
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 22: // 0x74, XHCI CFG Power Control And Status Use same comments style.
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 23: // 0x74 BIT[1:0] Use same comments style.
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 25: // PME Enable Use same comments style.
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 27: // PME Status Use same comments style.
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 11:
(12 comments)
Patch Set 9:
(1 comment)
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 33: // Sub-command 0
Use same comments style.
Done
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 34: // Sub-command 1
Use same comments style.
Done
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 43: // Function number
Use same comments style.
Done
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 44: // Device number
Use same comments style.
Done
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 56: // 0x6C, General Purpose Event 0 Status [127:96]
Use same comments style.
Done
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 58: // CPU WAKE STATUS
Use same comments style.
Done
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 59: // 0x7C, General Purpose Event 0 Enable [127:96
Use same comments style.
Done
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 61: // CPU WAKE EN
Use same comments style.
Done
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 22: // 0x74, XHCI CFG Power Control And Status
Use same comments style.
Done
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 23: // 0x74 BIT[1:0]
Use same comments style.
Done
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 25: // PME Enable
Use same comments style.
Done
https://review.coreboot.org/c/coreboot/+/39785/11/src/soc/intel/tigerlake/ac... PS11, Line 27: // PME Status
Use same comments style.
Done
Hello build bot (Jenkins), Furquan Shaikh, Wonkyu Kim, Shamile Khan, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#12).
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
soc/intel/tigerlake: Configure TCSS xHCI power management
Add Type-C subsystem xHCI power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build. Booted to kernel and read tcss IOM package state through ITP. Verified xhci state transition from D0 to D3.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 2 files changed, 585 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/12
Wonkyu Kim has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 12: Code-Review+1
Duncan Laurie has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 12:
(8 comments)
only minor stuff
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 6: * This program is free software; you can redistribute it and/or modify : * it under the terms of the GNU General Public License as published by : * the Free Software Foundation; version 2 of the License. : * : * This program is distributed in the hope that it will be useful, : * but WITHOUT ANY WARRANTY; without even the implied warranty of : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the : * GNU General Public License for more details. Change to SPDX format?
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 163: */
96 columns
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 203: * 0xFE - Command timeout One of the calls to DSGS is doing "DSGS() & 0x2" which would return true with these failure return values.
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 381: ( nit: space before (
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 6: * This program is free software; you can redistribute it and/or modify : * it under the terms of the GNU General Public License as published by : * the Free Software Foundation; version 2 of the License. : * : * This program is distributed in the hope that it will be useful, : * but WITHOUT ANY WARRANTY; without even the implied warranty of : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the : * GNU General Public License for more details. change to SPDX style
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 16: BASE(_ADR), 0x100 Is there any downside to taking the whole 256 byte config space? Could this instead just expose one byte by setting the base to BASE(_ADR) + 0x74?
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 34: PMEE Are we sure this is posted write and doesn't need read back?
(this was an issue with the emmc controller on kabylake)
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 150: Method (_PS0, 0, Serialized) : { : } : : Method (_PS2, 0, Serialized) : { : } : : Method (_PS3, 0, Serialized) : { : } do these empty methods need to exist?
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 12:
(8 comments)
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 6: * This program is free software; you can redistribute it and/or modify : * it under the terms of the GNU General Public License as published by : * the Free Software Foundation; version 2 of the License. : * : * This program is distributed in the hope that it will be useful, : * but WITHOUT ANY WARRANTY; without even the implied warranty of : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the : * GNU General Public License for more details.
Change to SPDX format?
Removed Copyright (C) 2020 Intel Corp.
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 163: */
96 columns
Ack
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 203: * 0xFE - Command timeout
One of the calls to DSGS is doing "DSGS() & 0x2" which would return true with these failure return v […]
Ack
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 381: (
nit: space before (
Ack
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 6: * This program is free software; you can redistribute it and/or modify : * it under the terms of the GNU General Public License as published by : * the Free Software Foundation; version 2 of the License. : * : * This program is distributed in the hope that it will be useful, : * but WITHOUT ANY WARRANTY; without even the implied warranty of : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the : * GNU General Public License for more details.
change to SPDX style
Removed Copyright (C) 2020 Intel Corp.
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 16: BASE(_ADR), 0x100
Is there any downside to taking the whole 256 byte config space? Could this instead just expose one […]
Ack. Keep D0D3 for debug purpose.
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 34: PMEE
Are we sure this is posted write and doesn't need read back? […]
Kernel notifies pci bus driver that xhci D0 entry has commenced. ACPI updates PMCSR by setting PME_en=0. The power flow specification specify "This could be done conditionally based on whether or not the xhci was armed for wake". It does not specifically require read back. It seems ok.
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 150: Method (_PS0, 0, Serialized) : { : } : : Method (_PS2, 0, Serialized) : { : } : : Method (_PS3, 0, Serialized) : { : }
do these empty methods need to exist?
Ack
Hello Shaunak Saha, build bot (Jenkins), Furquan Shaikh, Wonkyu Kim, Caveh Jalali, Shamile Khan, Nick Vaccaro, Srinidhi N Kaushik, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#13).
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
soc/intel/tigerlake: Configure TCSS xHCI power management
Add Type-C subsystem xHCI power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build. Booted to kernel and read tcss IOM package state through ITP. Verified xhci state transition from D0 to D3.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 2 files changed, 571 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/13
Duncan Laurie has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS xHCI power management ......................................................................
Patch Set 13:
(1 comment)
https://review.coreboot.org/c/coreboot/+/39785/13/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/13/src/soc/intel/tigerlake/ac... PS13, Line 4: * : * This program is free software; you can redistribute it and/or modify : * it under the terms of the GNU General Public License as published by : * the Free Software Foundation; version 2 of the License. : * : * This program is distributed in the hope that it will be useful, : * but WITHOUT ANY WARRANTY; without even the implied warranty of : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the : * GNU General Public License for more details. Sorry I should have been clearer, this whole block can be replaced by: SPDX-License-Identifier: GPL-2.0-only
Hello build bot (Jenkins), Shaunak Saha, Furquan Shaikh, Wonkyu Kim, Caveh Jalali, Shamile Khan, Nick Vaccaro, Srinidhi N Kaushik, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#14).
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
soc/intel/tigerlake: Configure TCSS power management
Add Type-C subsystem power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build with the firmware CM. Added acpi debug and booted to kernel. Probed devices PM_STATE transition from D0 to D3 entry/exit while system at S0. TBT PCIe root ports: 00:07.0/00:07.1/00:07.2/00:07.3, offset:0xA4, PM_STATE:D3HT. xhci:00:0d.0, offset:0x74, PM_STATE:D0D3. dma:00:0d.2/00.0d.3, offset:0x84, PM_STATE:PMST. Verified xhci/dma/pcie root ports power runtime_status to be suspended and suspended time tick through /sys/bus/pci/devices/bus:device:func/power.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_dma.asl A src/soc/intel/tigerlake/acpi/tcss_pcierp.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 4 files changed, 1,455 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/14
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 14:
(2 comments)
https://review.coreboot.org/c/coreboot/+/39785/14/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_dma.asl:
https://review.coreboot.org/c/coreboot/+/39785/14/src/soc/intel/tigerlake/ac... PS14, Line 123: * 2 - wait in progress trailing whitespace
https://review.coreboot.org/c/coreboot/+/39785/14/src/soc/intel/tigerlake/ac... PS14, Line 203: Method (_DSD, 0) trailing whitespace
Duncan Laurie has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 14:
This change just got a lot bigger, was it squashed with another commit?
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 14:
(3 comments)
Patch Set 14:
This change just got a lot bigger, was it squashed with another commit?
Correct. It has PM support for TBT pcie root ports and dma along with xchi. xdci is not yet included.
https://review.coreboot.org/c/coreboot/+/39785/13/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/13/src/soc/intel/tigerlake/ac... PS13, Line 4: * : * This program is free software; you can redistribute it and/or modify : * it under the terms of the GNU General Public License as published by : * the Free Software Foundation; version 2 of the License. : * : * This program is distributed in the hope that it will be useful, : * but WITHOUT ANY WARRANTY; without even the implied warranty of : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the : * GNU General Public License for more details.
Sorry I should have been clearer, this whole block can be replaced by: SPDX-License-Identifier: GPL- […]
Ack
https://review.coreboot.org/c/coreboot/+/39785/14/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_dma.asl:
https://review.coreboot.org/c/coreboot/+/39785/14/src/soc/intel/tigerlake/ac... PS14, Line 123: * 2 - wait in progress
trailing whitespace
Ack
https://review.coreboot.org/c/coreboot/+/39785/14/src/soc/intel/tigerlake/ac... PS14, Line 203: Method (_DSD, 0)
trailing whitespace
Ack
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 14:
Patch Set 14:
(3 comments)
Patch Set 14:
This change just got a lot bigger, was it squashed with another commit?
Correct. It has PM support for TBT pcie root ports and dma along with xchi. xdci is not yet included.
Hello build bot (Jenkins), Shaunak Saha, Furquan Shaikh, Wonkyu Kim, Caveh Jalali, Shamile Khan, Nick Vaccaro, Srinidhi N Kaushik, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#15).
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
soc/intel/tigerlake: Configure TCSS power management
Add Type-C subsystem power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build with the firmware CM. Added acpi debug and booted to kernel. Probed devices PM_STATE transition from D0 to D3 entry/exit while system at S0. TBT PCIe root ports: 00:07.0/00:07.1/00:07.2/00:07.3, offset:0xA4, PM_STATE:D3HT. xhci:00:0d.0, offset:0x74, PM_STATE:D0D3. dma:00:0d.2/00.0d.3, offset:0x84, PM_STATE:PMST. Verified xhci/dma/pcie root ports power runtime_status to be suspended and suspended time tick through /sys/bus/pci/devices/bus:device:func/power.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_dma.asl A src/soc/intel/tigerlake/acpi/tcss_pcierp.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 4 files changed, 1,423 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/15
Duncan Laurie has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 15:
(3 comments)
https://review.coreboot.org/c/coreboot/+/39785/14/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_dma.asl:
https://review.coreboot.org/c/coreboot/+/39785/14/src/soc/intel/tigerlake/ac... PS14, Line 44: 0x01 in general there seems to be a mix of 0x1/1 and 0x0/0 throughout. The 0x seems redundant, so can you make these all just use 0/1?
https://review.coreboot.org/c/coreboot/+/39785/14/src/soc/intel/tigerlake/ac... PS14, Line 66: >= below method uses >0, would be good to be consistent
https://review.coreboot.org/c/coreboot/+/39785/14/src/soc/intel/tigerlake/ac... PS14, Line 71: Local0++ should be --?
Duncan Laurie has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 15:
Patch Set 15:
(3 comments)
I need to look closer, this is just a quick pass on one file
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 15:
(3 comments)
Patch Set 15:
Patch Set 15:
(3 comments)
I need to look closer, this is just a quick pass on one file
sure, thanks a lot for your help to review.
https://review.coreboot.org/c/coreboot/+/39785/14/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_dma.asl:
https://review.coreboot.org/c/coreboot/+/39785/14/src/soc/intel/tigerlake/ac... PS14, Line 44: 0x01
in general there seems to be a mix of 0x1/1 and 0x0/0 throughout. […]
Since this refers to bit0 (0x1), it seems ok by changing those to be 0x0/0x1 instead of original redundant 0x01.
https://review.coreboot.org/c/coreboot/+/39785/14/src/soc/intel/tigerlake/ac... PS14, Line 66: >=
below method uses >0, would be good to be consistent
Ack
https://review.coreboot.org/c/coreboot/+/39785/14/src/soc/intel/tigerlake/ac... PS14, Line 71: Local0++
should be --?
Ack
Hello build bot (Jenkins), Shaunak Saha, Furquan Shaikh, Wonkyu Kim, Caveh Jalali, Shamile Khan, Nick Vaccaro, Srinidhi N Kaushik, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#16).
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
soc/intel/tigerlake: Configure TCSS power management
Add Type-C subsystem power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build with the firmware CM. Added acpi debug and booted to kernel. Probed devices PM_STATE transition from D0 to D3 entry/exit while system at S0. TBT PCIe root ports: 00:07.0/00:07.1/00:07.2/00:07.3, offset:0xA4, PM_STATE:D3HT. xhci:00:0d.0, offset:0x74, PM_STATE:D0D3. dma:00:0d.2/00.0d.3, offset:0x84, PM_STATE:PMST. Verified xhci/dma/pcie root ports power runtime_status to be suspended and suspended time tick through /sys/bus/pci/devices/bus:device:func/power.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_dma.asl A src/soc/intel/tigerlake/acpi/tcss_pcierp.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 4 files changed, 1,423 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/16
Duncan Laurie has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 16:
(12 comments)
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 532: /* DBG("Error: Error: Timeout occurred.") */ It does not seem like a bad idea to leave these Printf() in place (and add them to other error paths) for later debug.
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_pcierp.asl:
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 12: L0SE, 1, /* 0, L0s Entry Enabled */ : , 3, : LDIS, 1, : , 3, some of these are not used, can you scrub for the ones that are?
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 96: _L61 I was confused as to why it was specifically _L61, but GPE 0x61 looks like GPE0_HOT_PLUG so that makese sense. Can you add a comment here? Will the definition of _L61 be added separately?
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 102: all this doesn't seem to clear all status bits, just a couple
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 107: ^ is this legal? the spec defines ^ as a prefix that is followed by "ParentPrefix or Name"
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 107: 0 0 is "bus check" to force a re-enumerate? can you add a comment indicating that is what this notify is doing?
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 182: spaces before tab
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 245: ethod (CHKH, 0) { : If (PDCX == 1) { : If (DLSC == 0) { : /* Clear PDC since it is not a hotplug. */ : PDCX = 1 : } : } : } this only seems to be used once, might as well fold it into _PS3 so it is easier to follow the code.
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 260: HotPlugSupportInD3 can you add a comment with a pointer to where these are defined? i assume the microsoft doc is authoritative: https://docs.microsoft.com/en-us/windows-hardware/drivers/pci/dsd-for-pcie-r...
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 267: - 1 long line
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 311: Consume one pending PME notification to prevent it from blocking the queue. is this to work around an OS behavior?
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 10: VDID, 32, this doesn't look used
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 16:
(12 comments)
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 532: /* DBG("Error: Error: Timeout occurred.") */
It does not seem like a bad idea to leave these Printf() in place (and add them to other error paths […]
Ack
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_pcierp.asl:
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 12: L0SE, 1, /* 0, L0s Entry Enabled */ : , 3, : LDIS, 1, : , 3,
some of these are not used, can you scrub for the ones that are?
For debug purpose, it seems ok to keep them here.
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 96: _L61
I was confused as to why it was specifically _L61, but GPE 0x61 looks like GPE0_HOT_PLUG so that mak […]
The _L61 is GPE_L61. The sub-method HPEV of _L61 checks and handles Hot Plug SCI status.
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 102: all
this doesn't seem to clear all status bits, just a couple
This method handles Hot-Plug event. It seems both of PDCX(Presence Detect Changed) and HPSX(Hot Plug SCI status) clearing are all for this event.
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 107: ^
is this legal? the spec defines ^ as a prefix that is followed by "ParentPrefix or Name"
It seems legal as '^' is defined to be parentprefix. It notifies OS with object like _SB.PCI0.TRP0,_SB.PCI0.TRP1,_SB.PCI0.TRP2, or _SB.PCI0.TRP3.
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 107: 0
0 is "bus check" to force a re-enumerate? can you add a comment indicating that is what this notify […]
You are right. Once the bus check notification value '0' is received, bus re-enumeration is required (starting at the target object): Walk the bus from the target device down. Remove devices that are not present any more. Add devices that has just appeared.
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 182:
spaces before tab
Ack
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 245: ethod (CHKH, 0) { : If (PDCX == 1) { : If (DLSC == 0) { : /* Clear PDC since it is not a hotplug. */ : PDCX = 1 : } : } : }
this only seems to be used once, might as well fold it into _PS3 so it is easier to follow the code.
Ack
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 260: HotPlugSupportInD3
can you add a comment with a pointer to where these are defined? i assume the microsoft doc is auth […]
Sorry, I did not have documents. I was informed Chromeos/linux/Windows share the same tcss pcie root ports device specification data(_DSD).
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 267: - 1
long line
Ack
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 311: Consume one pending PME notification to prevent it from blocking the queue.
is this to work around an OS behavior?
When PME Status(PSPX) is set, it indicates that PME was asserted. Subsequent PMEs are kept pending until this bit is cleared.
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/16/src/soc/intel/tigerlake/ac... PS16, Line 10: VDID, 32,
this doesn't look used
xhci VDID is used in TCOF method as "While (_SB.PCI0.TXHC.VDID != 0xFFFFFFFF) {".
Hello build bot (Jenkins), Shaunak Saha, Furquan Shaikh, Wonkyu Kim, Caveh Jalali, Shamile Khan, Nick Vaccaro, Srinidhi N Kaushik, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#17).
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
soc/intel/tigerlake: Configure TCSS power management
Add Type-C subsystem power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build with the firmware CM. Added acpi debug and booted to kernel. Probed devices PM_STATE transition from D0 to D3 entry/exit while system at S0. TBT PCIe root ports: 00:07.0/00:07.1/00:07.2/00:07.3, offset:0xA4, PM_STATE:D3HT. xhci:00:0d.0, offset:0x74, PM_STATE:D0D3. dma:00:0d.2/00.0d.3, offset:0x84, PM_STATE:PMST. Verified xhci/dma/pcie root ports power runtime_status to be suspended and suspended time tick through /sys/bus/pci/devices/bus:device:func/power.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_dma.asl A src/soc/intel/tigerlake/acpi/tcss_pcierp.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 4 files changed, 1,422 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/17
Caveh Jalali has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 17:
(1 comment)
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 44: extra space
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 17:
(1 comment)
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/12/src/soc/intel/tigerlake/ac... PS12, Line 44:
extra space
Ack
Hello build bot (Jenkins), Shaunak Saha, Furquan Shaikh, Wonkyu Kim, Caveh Jalali, Shamile Khan, Nick Vaccaro, Srinidhi N Kaushik, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#18).
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
soc/intel/tigerlake: Configure TCSS power management
Add Type-C subsystem power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build with the firmware CM. Added acpi debug and booted to kernel. Probed devices PM_STATE transition from D0 to D3 entry/exit while system at S0. TBT PCIe root ports: 00:07.0/00:07.1/00:07.2/00:07.3, offset:0xA4, PM_STATE:D3HT. xhci:00:0d.0, offset:0x74, PM_STATE:D0D3. dma:00:0d.2/00.0d.3, offset:0x84, PM_STATE:PMST. Verified xhci/dma/pcie root ports power runtime_status to be suspended and suspended time tick through /sys/bus/pci/devices/bus:device:func/power.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_dma.asl A src/soc/intel/tigerlake/acpi/tcss_pcierp.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 4 files changed, 1,422 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/18
Duncan Laurie has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 18:
(15 comments)
This would really benefit from some sort of overview indicating how it these pieces fit together. I'm not expecting a formal Intel IBL doc, but could you put something in a comment at the top of tcss.asl describing the different pieces?
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 45: 0x1800 should be able to include <soc/iomap.h> and use ACPI_BASE_ADDRESS
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 55: Set Default value 0 to this comment isn't very readable, maybe "set default value to 0 for ..." here?
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 172: * DBG("Timeout occurred.") */ leave as 'Printf ("pCode Mailbox timeout occurred")' for debugging?
same for all the other DBG statements that are commented out. I don't think there is a downside to printing this, by default the kernel will ignore but it may be useful for debug.
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 282: Method This only seems to get used once, maybe just make a #define for the 0xc10000 constant at the top of the file with the others?
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 324: != you could reduce the indent level on all of these by changing this to an == and returning early if it is not found.
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 595: extra space
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 686: Name (LTEN, 0) /* Latency Tolerance Reporting Mechanism, 0:Disable, 1:Enable */ : Name (LMSL, 0x88C8) /* PCIE LTR max snoop Latency */ : Name (LNSL, 0x88C8) /* PCIE LTR max no snoop Latency */ I don't see any of these values getting used
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_dma.asl:
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 122: other thread's _PS0 I don't understand how this works, WACT variable is local to this DMA device, and this is a serialized method.
Should WACT be in the parent device? Maybe use a mutex instead?
edit: I see it these manipulated in the pcierp _PS0 method now. Can you expand on the comments here so this is not so confusing?
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 195: _DSD can you add a comment with a pointer to the location in the kernel where this is used?
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_pcierp.asl:
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 232: If (PDCX == 1) { : If (DLSC == 0) { : /* Clear PDC since it is not a hotplug. */ : PDCX = 1 : } : } tab indent
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 249: _DSD can you add a comment with a pointer to the location in the kernel where this is used?
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 299: ( space
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 129: extra space
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 134: extra space
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 135: extra space
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 18:
(15 comments)
Patch Set 18:
(15 comments)
This would really benefit from some sort of overview indicating how it these pieces fit together. I'm not expecting a formal Intel IBL doc, but could you put something in a comment at the top of tcss.asl describing the different pieces?
I added the following brief description. Please let us know whether we need to add more. Thanks. /* * Type C Subsystem(TCSS) topology provides Runtime D3 support for USB host controller(xHCI), * USB device controller(xDCI), Thunderbolt DMA devices and Thunderbolt PCIe controlers. * PCIe RP0/RP1 is grouped with DMA0 and PCIe RP2/RP3 is grouped with DMA1. */
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 45: 0x1800
should be able to include <soc/iomap. […]
Ack
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 55: Set Default value 0 to
this comment isn't very readable, maybe "set default value to 0 for ... […]
Ack
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 172: * DBG("Timeout occurred.") */
leave as 'Printf ("pCode Mailbox timeout occurred")' for debugging? […]
DBG is the pseudo name. APRT is the actual method for acpi debug.
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 282: Method
This only seems to get used once, maybe just make a #define for the 0xc10000 constant at the top of […]
Ack
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 324: !=
you could reduce the indent level on all of these by changing this to an == and returning early if i […]
Ack
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 595:
extra space
Ack
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 686: Name (LTEN, 0) /* Latency Tolerance Reporting Mechanism, 0:Disable, 1:Enable */ : Name (LMSL, 0x88C8) /* PCIE LTR max snoop Latency */ : Name (LNSL, 0x88C8) /* PCIE LTR max no snoop Latency */
I don't see any of these values getting used
Ack
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_dma.asl:
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 122: other thread's _PS0
I don't understand how this works, WACT variable is local to this DMA device, and this is a serializ […]
Updated with comments.
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 195: _DSD
can you add a comment with a pointer to the location in the kernel where this is used?
Done
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_pcierp.asl:
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 232: If (PDCX == 1) { : If (DLSC == 0) { : /* Clear PDC since it is not a hotplug. */ : PDCX = 1 : } : }
tab indent
Ack
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 249: _DSD
can you add a comment with a pointer to the location in the kernel where this is used?
Done
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 299: (
space
Ack
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_xhci.asl:
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 129:
extra space
Done
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 134:
extra space
Done
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 135:
extra space
Done
Hello build bot (Jenkins), Shaunak Saha, Furquan Shaikh, Wonkyu Kim, Caveh Jalali, Shamile Khan, Nick Vaccaro, Srinidhi N Kaushik, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#19).
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
soc/intel/tigerlake: Configure TCSS power management
Add Type-C subsystem power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build with the firmware CM. Added acpi debug and booted to kernel. Probed devices PM_STATE transition from D0 to D3 entry/exit while system at S0. TBT PCIe root ports: 00:07.0/00:07.1/00:07.2/00:07.3, offset:0xA4, PM_STATE:D3HT. xhci:00:0d.0, offset:0x74, PM_STATE:D0D3. dma:00:0d.2/00.0d.3, offset:0x84, PM_STATE:PMST. Verified xhci/dma/pcie root ports power runtime_status to be suspended and suspended time tick through /sys/bus/pci/devices/bus:device:func/power.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_dma.asl A src/soc/intel/tigerlake/acpi/tcss_pcierp.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 4 files changed, 1,464 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/19
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 19:
(3 comments)
https://review.coreboot.org/c/coreboot/+/39785/19/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/19/src/soc/intel/tigerlake/ac... PS19, Line 11: * USB device controller(xDCI), Thunderbolt DMA devices and Thunderbolt PCIe controlers. 'controlers' may be misspelled - perhaps 'controllers'?
https://review.coreboot.org/c/coreboot/+/39785/19/src/soc/intel/tigerlake/ac... PS19, Line 11: * USB device controller(xDCI), Thunderbolt DMA devices and Thunderbolt PCIe controlers. trailing whitespace
https://review.coreboot.org/c/coreboot/+/39785/19/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_dma.asl:
https://review.coreboot.org/c/coreboot/+/39785/19/src/soc/intel/tigerlake/ac... PS19, Line 126: * other thread's _PS0 to wait for the command completition. WACT is cleared to 'completition' may be misspelled - perhaps 'completion'?
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 19:
(3 comments)
Patch Set 19:
(3 comments)
https://review.coreboot.org/c/coreboot/+/39785/19/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/19/src/soc/intel/tigerlake/ac... PS19, Line 11: * USB device controller(xDCI), Thunderbolt DMA devices and Thunderbolt PCIe controlers.
'controlers' may be misspelled - perhaps 'controllers'?
Ack
https://review.coreboot.org/c/coreboot/+/39785/19/src/soc/intel/tigerlake/ac... PS19, Line 11: * USB device controller(xDCI), Thunderbolt DMA devices and Thunderbolt PCIe controlers.
trailing whitespace
Ack
https://review.coreboot.org/c/coreboot/+/39785/19/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss_dma.asl:
https://review.coreboot.org/c/coreboot/+/39785/19/src/soc/intel/tigerlake/ac... PS19, Line 126: * other thread's _PS0 to wait for the command completition. WACT is cleared to
'completition' may be misspelled - perhaps 'completion'?
Ack
Hello build bot (Jenkins), Shaunak Saha, Furquan Shaikh, Wonkyu Kim, Caveh Jalali, Shamile Khan, Nick Vaccaro, Srinidhi N Kaushik, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#20).
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
soc/intel/tigerlake: Configure TCSS power management
Add Type-C subsystem power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build with the firmware CM. Added acpi debug and booted to kernel. Probed devices PM_STATE transition from D0 to D3 entry/exit while system at S0. TBT PCIe root ports: 00:07.0/00:07.1/00:07.2/00:07.3, offset:0xA4, PM_STATE:D3HT. xhci:00:0d.0, offset:0x74, PM_STATE:D0D3. dma:00:0d.2/00.0d.3, offset:0x84, PM_STATE:PMST. Verified xhci/dma/pcie root ports power runtime_status to be suspended and suspended time tick through /sys/bus/pci/devices/bus:device:func/power.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_dma.asl A src/soc/intel/tigerlake/acpi/tcss_pcierp.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 4 files changed, 1,464 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/20
Duncan Laurie has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 20:
(1 comment)
just a minor formatting change.
https://review.coreboot.org/c/coreboot/+/39785/20/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/20/src/soc/intel/tigerlake/ac... PS20, Line 47: : /* : * Define PCH ACPIBASE I/O as an ACPI operating region. The base address can be : * found in Device 31, Function 2, Offset 40h. : */ : OperationRegion (PMIO, SystemIO, PCH_PWRM_BASE_ADDRESS, 0x80) : Field (PMIO, ByteAcc, NoLock, Preserve) { : Offset(0x6C), /* 0x6C, General Purpose Event 0 Status [127:96] */ : , 19, : CPWS, 1, /* CPU WAKE STATUS */ : Offset(0x7C), /* 0x7C, General Purpose Event 0 Enable [127:96] */ : , 19, : CPWE, 1 /* CPU WAKE EN */ : } tab indent
Nick Vaccaro has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 20: Code-Review+1
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 20:
(1 comment)
https://review.coreboot.org/c/coreboot/+/39785/20/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/20/src/soc/intel/tigerlake/ac... PS20, Line 47: : /* : * Define PCH ACPIBASE I/O as an ACPI operating region. The base address can be : * found in Device 31, Function 2, Offset 40h. : */ : OperationRegion (PMIO, SystemIO, PCH_PWRM_BASE_ADDRESS, 0x80) : Field (PMIO, ByteAcc, NoLock, Preserve) { : Offset(0x6C), /* 0x6C, General Purpose Event 0 Status [127:96] */ : , 19, : CPWS, 1, /* CPU WAKE STATUS */ : Offset(0x7C), /* 0x7C, General Purpose Event 0 Enable [127:96] */ : , 19, : CPWE, 1 /* CPU WAKE EN */ : }
tab indent
Ack
Hello build bot (Jenkins), Shaunak Saha, Furquan Shaikh, Wonkyu Kim, Caveh Jalali, Shamile Khan, Nick Vaccaro, Srinidhi N Kaushik, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#21).
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
soc/intel/tigerlake: Configure TCSS power management
Add Type-C subsystem power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build with the firmware CM. Added acpi debug and booted to kernel. Probed devices PM_STATE transition from D0 to D3 entry/exit while system at S0. TBT PCIe root ports: 00:07.0/00:07.1/00:07.2/00:07.3, offset:0xA4, PM_STATE:D3HT. xhci:00:0d.0, offset:0x74, PM_STATE:D0D3. dma:00:0d.2/00.0d.3, offset:0x84, PM_STATE:PMST. Verified xhci/dma/pcie root ports power runtime_status to be suspended and suspended time tick through /sys/bus/pci/devices/bus:device:func/power.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_dma.asl A src/soc/intel/tigerlake/acpi/tcss_pcierp.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 4 files changed, 1,464 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/21
Duncan Laurie has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 21:
(1 comment)
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 172: * DBG("Timeout occurred.") */
DBG is the pseudo name. APRT is the actual method for acpi debug.
Printf() will output to the debug object which goes to /dev/null by default. So if you just leave these in place and uncommented with Printf() they will be silenced by default but will be able to be enabled with a simple: echo 1 > /sys/module/acpi/parameters/aml_debug_output
I think this will be useful for s0ix testing and debug without needing a special built BIOS.
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 21:
(1 comment)
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/18/src/soc/intel/tigerlake/ac... PS18, Line 172: * DBG("Timeout occurred.") */
Printf() will output to the debug object which goes to /dev/null by default. […]
Done
Hello build bot (Jenkins), Shaunak Saha, Furquan Shaikh, Wonkyu Kim, Caveh Jalali, Shamile Khan, Nick Vaccaro, Srinidhi N Kaushik, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#22).
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
soc/intel/tigerlake: Configure TCSS power management
Add Type-C subsystem power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build with the firmware CM. Added acpi debug and booted to kernel. Probed devices PM_STATE transition from D0 to D3 entry/exit while system at S0. TBT PCIe root ports: 00:07.0/00:07.1/00:07.2/00:07.3, offset:0xA4, PM_STATE:D3HT. xhci:00:0d.0, offset:0x74, PM_STATE:D0D3. dma:00:0d.2/00.0d.3, offset:0x84, PM_STATE:PMST. Verified xhci/dma/pcie root ports power runtime_status to be suspended and suspended time tick through /sys/bus/pci/devices/bus:device:func/power.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_dma.asl A src/soc/intel/tigerlake/acpi/tcss_pcierp.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 4 files changed, 1,464 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/22
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 22:
(1 comment)
https://review.coreboot.org/c/coreboot/+/39785/22/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/22/src/soc/intel/tigerlake/ac... PS22, Line 444: Printf("Drop TG1N due to it is already exit D3 cold.") trailing whitespace
John Zhao has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 22:
(1 comment)
https://review.coreboot.org/c/coreboot/+/39785/22/src/soc/intel/tigerlake/ac... File src/soc/intel/tigerlake/acpi/tcss.asl:
https://review.coreboot.org/c/coreboot/+/39785/22/src/soc/intel/tigerlake/ac... PS22, Line 444: Printf("Drop TG1N due to it is already exit D3 cold.")
trailing whitespace
Ack
Hello build bot (Jenkins), Shaunak Saha, Furquan Shaikh, Wonkyu Kim, Caveh Jalali, Shamile Khan, Nick Vaccaro, Srinidhi N Kaushik, Patrick Rudolph, Divya S Sasidharan,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/39785
to look at the new patch set (#23).
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
soc/intel/tigerlake: Configure TCSS power management
Add Type-C subsystem power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build with the firmware CM. Added acpi debug and booted to kernel. Probed devices PM_STATE transition from D0 to D3 entry/exit while system at S0. TBT PCIe root ports: 00:07.0/00:07.1/00:07.2/00:07.3, offset:0xA4, PM_STATE:D3HT. xhci:00:0d.0, offset:0x74, PM_STATE:D0D3. dma:00:0d.2/00.0d.3, offset:0x84, PM_STATE:PMST. Verified xhci/dma/pcie root ports power runtime_status to be suspended and suspended time tick through /sys/bus/pci/devices/bus:device:func/power.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_dma.asl A src/soc/intel/tigerlake/acpi/tcss_pcierp.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 4 files changed, 1,464 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/85/39785/23
Duncan Laurie has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 23: Code-Review+2
Patrick Georgi has submitted this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
soc/intel/tigerlake: Configure TCSS power management
Add Type-C subsystem power management support for RTD3.
BUG=b:140290596 TEST=Include "tcss.asl" in platform "dsdt.asl" for coreboot build with the firmware CM. Added acpi debug and booted to kernel. Probed devices PM_STATE transition from D0 to D3 entry/exit while system at S0. TBT PCIe root ports: 00:07.0/00:07.1/00:07.2/00:07.3, offset:0xA4, PM_STATE:D3HT. xhci:00:0d.0, offset:0x74, PM_STATE:D0D3. dma:00:0d.2/00.0d.3, offset:0x84, PM_STATE:PMST. Verified xhci/dma/pcie root ports power runtime_status to be suspended and suspended time tick through /sys/bus/pci/devices/bus:device:func/power.
Change-Id: I127d3700ad426a44639ee93b4477be6638b42e1b Signed-off-by: John Zhao john.zhao@intel.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/39785 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Duncan Laurie dlaurie@chromium.org --- A src/soc/intel/tigerlake/acpi/tcss.asl A src/soc/intel/tigerlake/acpi/tcss_dma.asl A src/soc/intel/tigerlake/acpi/tcss_pcierp.asl A src/soc/intel/tigerlake/acpi/tcss_xhci.asl 4 files changed, 1,464 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Duncan Laurie: Looks good to me, approved
diff --git a/src/soc/intel/tigerlake/acpi/tcss.asl b/src/soc/intel/tigerlake/acpi/tcss.asl new file mode 100644 index 0000000..9f03aa9 --- /dev/null +++ b/src/soc/intel/tigerlake/acpi/tcss.asl @@ -0,0 +1,784 @@ +/* + * This file is part of the coreboot project. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include <soc/iomap.h> + +/* + * Type C Subsystem(TCSS) topology provides Runtime D3 support for USB host controller(xHCI), + * USB device controller(xDCI), Thunderbolt DMA devices and Thunderbolt PCIe controllers. + * PCIe RP0/RP1 is grouped with DMA0 and PCIe RP2/RP3 is grouped with DMA1. + */ +#define TCSS_TBT_PCIE0_RP0 0 +#define TCSS_TBT_PCIE0_RP1 1 +#define TCSS_TBT_PCIE0_RP2 2 +#define TCSS_TBT_PCIE0_RP3 3 +#define TCSS_XHCI 4 +#define TCSS_XDCI 5 +#define TCSS_DMA0 6 +#define TCSS_DMA1 7 + +/* + * MAILBOX_BIOS_CMD_TCSS_DEVEN_INTERFACE + * Command code 0x15 + * Description: Gateway command for handling TCSS DEVEN clear/restore. + * Field PARAM1[15:8] of the _INTERFACE register is used in this command to select from + * a pre-defined set of subcommands. + */ +#define MAILBOX_BIOS_CMD_TCSS_DEVEN_INTERFACE 0x00000015 +#define TCSS_DEVEN_MAILBOX_SUBCMD_GET_STATUS 0 /* Sub-command 0 */ +#define TCSS_DEVEN_MAILBOX_SUBCMD_TCSS_CHANGE_REQ 1 /* Sub-command 1 */ + +#define TCSS_IOM_ACK_TIMEOUT_IN_MS 100 + +Scope (_SB) +{ + /* Device base address */ + Method (BASE, 1) + { + Local0 = Arg0 & 0x7 /* Function number */ + Local1 = (Arg0 >> 16) & 0x1F /* Device number */ + Local2 = (Local0 << 12) + (Local1 << 15) + Local3 = _SB.PCI0.GPCB() + Local2 + Return (Local3) + } + + /* + * Define PCH ACPIBASE I/O as an ACPI operating region. The base address can be + * found in Device 31, Function 2, Offset 40h. + */ + OperationRegion (PMIO, SystemIO, PCH_PWRM_BASE_ADDRESS, 0x80) + Field (PMIO, ByteAcc, NoLock, Preserve) { + Offset(0x6C), /* 0x6C, General Purpose Event 0 Status [127:96] */ + , 19, + CPWS, 1, /* CPU WAKE STATUS */ + Offset(0x7C), /* 0x7C, General Purpose Event 0 Enable [127:96] */ + , 19, + CPWE, 1 /* CPU WAKE EN */ + } + + Name (C2PW, 0) /* Set default value to 0. */ + + /* + * C2PM (CPU to PCH Method) + * + * This object is Enable/Disable GPE_CPU_WAKE_EN. + * Arguments: (4) + * Arg0 - An Integer containing the device wake capability + * Arg1 - An Integer containing the target system state + * Arg2 - An Integer containing the target device state + * Arg3 - An Integer containing the request device type + * Return Value: + * return 0 + */ + Method (C2PM, 4, NotSerialized) + { + Local0 = 0x1 << Arg3 + /* This method is used to enable/disable wake from Tcss Device (WKEN). */ + If (Arg0 && Arg1) + { /* If entering Sx and enabling wake, need to enable WAKE capability. */ + If (CPWE == 0) { /* If CPU WAKE EN is not set, Set it. */ + If (CPWS) { /* If CPU WAKE STATUS is set, Clear it. */ + /* Clear CPU WAKE STATUS by writing 1. */ + CPWS = 1 + } + CPWE = 1 /* Set CPU WAKE EN by writing 1. */ + } + If ((C2PW & Local0) == 0) { + /* Set Corresponding Device En BIT in C2PW. */ + C2PW |= Local0 + } + } Else { /* If Staying in S0 or Disabling Wake. */ + If (Arg0 || Arg2) { /* Check if Exiting D0 and arming for wake. */ + /* If CPU WAKE EN is not set, Set it. */ + If (CPWE == 0) { + /* If CPU WAKE STATUS is set, Clear it. */ + If (CPWS) { + /* Clear CPU WAKE STATUS by writing 1. */ + CPWS = 1 + } + CPWE = 1 /* Set CPU WAKE EN by writing 1. */ + } + If ((C2PW & Local0) == 0) { + /* Set Corresponding Device En BIT in C2PW. */ + C2PW |= Local0 + } + } Else { + /* + * Disable runtime PME, either because staying in D0 or + * disabling wake. + */ + If ((C2PW & Local0) != 0) { + /* + * Clear Corresponding Device En BIT in C2PW. + */ + C2PW &= ~Local0 + } + If ((CPWE != 0) && (C2PW == 0)) { + /* + * If CPU WAKE EN is set, Clear it. Clear CPU WAKE EN + * by writing 0. + */ + CPWE = 0 + } + } + } + Return (0) + } +} + +Scope (_SB.PCI0) +{ + /* + * Operation region defined to access the IOM REGBAR. Get the MCHBAR in offset + * 0x48 in B0:D0:F0. REGBAR Base address is in offset 0x7110 of MCHBAR. + */ + OperationRegion (MBAR, SystemMemory, (GMHB() + 0x7100), 0x1000) + Field (MBAR, ByteAcc, NoLock, Preserve) + { + Offset(0x10), + RBAR, 64 /* RegBar, offset 0x7110 in MCHBAR */ + } + Field (MBAR, DWordAcc, NoLock, Preserve) + { + Offset(0x304), /* PRIMDN_MASK1_0_0_0_MCHBAR_IMPH, offset 0x7404 */ + , 31, + TCD3, 1 /* [31:31] TCSS IN D3 bit */ + } + + /* + * Operation region defined to access the pCode mailbox interface. Get the MCHBAR + * in offset 0x48 in B0:D0:F0. MMIO address is in offset 0x5DA0 of MCHBAR. + */ + OperationRegion (PBAR, SystemMemory, (GMHB() + 0x5DA0), 0x08) + Field (PBAR, DWordAcc, NoLock, Preserve) + { + PMBD, 32, /* pCode MailBox Data, offset 0x5DA0 in MCHBAR */ + PMBC, 8, /* pCode MailBox Command, [7:0] of offset 0x5DA4 in MCHBAR */ + PSCM, 8, /* pCode MailBox Sub-Command, [15:8] of offset 0x5DA4 in MCHBAR */ + , 15, /* Reserved */ + PMBR, 1 /* pCode MailBox RunBit, [31:31] of offset 0x5DA4 in MCHBAR */ + } + + /* + * Poll pCode MailBox Ready + * + * Return 0xFF - Timeout + * 0x00 - Ready + */ + Method (PMBY, 0) + { + Local0 = 0 + While (PMBR && (Local0 < 1000)) { + Local0++ + Stall (1) + } + If (Local0 == 1000) { + Printf("Timeout occurred.") + Return (0xFF) + } + Return (0) + } + + /* + * Method to send pCode MailBox command TCSS_DEVEN_MAILBOX_SUBCMD_GET_STATUS + * + * Result will be updated in DATA[1:0] + * DATA[0:0] TCSS_DEVEN_CURRENT_STATE: + * 0 - TCSS Deven in normal state. + * 1 - TCSS Deven is cleared by BIOS Mailbox request. + * DATA[1:1] TCSS_DEVEN_REQUEST_STATUS: + * 0 - IDLE. TCSS DEVEN has reached its final requested state. + * 1 - In Progress. TCSS DEVEN is currently in progress of switching state + * according to given request (bit 0 reflects source state). + * + * Return 0x00 - TCSS Deven in normal state + * 0x01 - TCSS Deven is cleared by BIOS Mailbox request + * 0x1x - TCSS Deven is in progress of switching state according to given request + * 0xFE - Command timeout + * 0xFF - Command corrupt + */ + Method (DSGS, 0) + { + If ((PMBY () == 0)) { + PMBC = MAILBOX_BIOS_CMD_TCSS_DEVEN_INTERFACE + PSCM = TCSS_DEVEN_MAILBOX_SUBCMD_GET_STATUS + PMBR = 1 + If (PMBY () == 0) { + Local0 = PMBD + Local1 = PMBC + Stall (10) + If ((Local0 != PMBD) || (Local1 != PMBC)) { + Printf("pCode MailBox is corrupt.") + Return (0xFF) + } + Return (Local0) + } Else { + Printf("pCode MailBox is not ready.") + Return (0xFE) + } + } Else { + Printf("pCode MailBox is not ready.") + Return (0xFE) + } + } + + /* + * Method to send pCode MailBox command TCSS_DEVEN_MAILBOX_SUBCMD_TCSS_CHANGE_REQ + * + * Arg0 : 0 - Restore to previously saved value of TCSS DEVEN + * 1 - Save current TCSS DEVEN value and clear it + * + * Return 0x00 - MAILBOX_BIOS_CMD_CLEAR_TCSS_DEVEN command completed + * 0xFD - Input argument is invalid + * 0xFE - Command timeout + * 0xFF - Command corrupt + */ + Method (DSCR, 1) + { + If (Arg0 > 1) { + Printf("pCode MailBox is corrupt.") + Return (0xFD) + } + If ((PMBY () == 0)) { + PMBC = MAILBOX_BIOS_CMD_TCSS_DEVEN_INTERFACE + PSCM = TCSS_DEVEN_MAILBOX_SUBCMD_TCSS_CHANGE_REQ + PMBD = Arg0 + PMBR = 1 + If ((PMBY () == 0)) { + Local0 = PMBD + Local1 = PMBC + Stall (10) + If ((Local0 != PMBD) || (Local1 != PMBC)) { + Printf("pCode MailBox is corrupt.") + Return (0xFF) + } + /* Poll TCSS_DEVEN_REQUEST_STATUS, timeout value is 10ms. */ + Local0 = 0 + While ((DSGS () & 0x10) && (Local0 < 100)) { + Stall (100) + Local0++ + } + If (Local0 == 100) { + Printf("pCode MailBox is not ready.") + Return (0xFE) + } Else { + Return (0x00) + } + } Else { + Printf("pCode MailBox is not ready.") + Return (0xFE) + } + } Else { + Printf("pCode MailBox is not ready.") + Return (0xFE) + } + } + + /* + * IOM REG BAR Base address is in offset 0x7110 in MCHBAR. + */ + Method (IOMA, 0) + { + Return (^RBAR & ~0x1) + } + + /* + * From RegBar Base, IOM_TypeC_SW_configuration_1 is in offset 0xC10040, where + * 0x40 is the register offset. + */ + OperationRegion (IOMR, SystemMemory, (IOMA() + 0xC10000), 0x100) + Field (IOMR, DWordAcc, NoLock, Preserve) + { + Offset(0x40), + , 15, + TD3C, 1, /* [15:15] Type C D3 cold bit */ + TACK, 1, /* [16:16] IOM Acknowledge bit */ + DPOF, 1, /* [17:17] Set 1 to indicate IOM, all the */ + /* display is OFF, clear otherwise */ + Offset(0x70), /* Pyhsical addr is offset 0x70. */ + IMCD, 32, /* R_SA_IOM_BIOS_MAIL_BOX_CMD */ + IMDA, 32 /* R_SA_IOM_BIOS_MAIL_BOX_DATA */ + } + + /* + * Below is a variable to store devices connect state for TBT PCIe RP before + * entering D3 cold. + * Value 0 - no device connected before enter D3 cold, no need to send + * CONNECT_TOPOLOGY in D3 cold exit. + * Value 1 - has device connected before enter D3 cold, need to send + * CONNECT_TOPOLOGY in D3 cold exit. + */ + Name (CTP0, 0) /* Variable of device connecet status for TBT0 group. */ + Name (CTP1, 0) /* Variable of device connecet status for TBT1 group. */ + + /* + * TBT Group0 ON method + */ + Method (TG0N, 0) + { + If (_SB.PCI0.TDM0.VDID == 0xFFFFFFFF) { + Printf("TDM0 does not exist.") + } + + If (_SB.PCI0.TDM0.STAT == 0) { + /* DMA0 is in D3Cold early. */ + _SB.PCI0.TDM0.D3CX() /* RTD3 Exit */ + + Printf("Bring TBT RPs out of D3Code.") + If (_SB.PCI0.TRP0.VDID != 0xFFFFFFFF) { + /* RP0 D3 cold exit. */ + _SB.PCI0.TRP0.D3CX() + } + If (_SB.PCI0.TRP1.VDID != 0xFFFFFFFF) { + /* RP1 D3 cold exit. */ + _SB.PCI0.TRP1.D3CX() + } + + /* + * Need to send Connect-Topology command when TBT host + * controller back to D0 from D3. + */ + If (_SB.PCI0.TDM0.ALCT == 1) { + If (CTP0 == 1) { + /* + * Send Connect-Topology command if there is + * device present on PCIe RP. + */ + _SB.PCI0.TDM0.CNTP() + + /* Indicate to wait Connect-Topology command. */ + _SB.PCI0.TDM0.WACT = 1 + + /* Clear the connect states. */ + CTP0 = 0 + } + /* Disallow to send Connect-Topology command. */ + _SB.PCI0.TDM0.ALCT = 0 + } + } Else { + Printf("Drop TG0N due to it is already exit D3 cold.") + } + /* TBT RTD3 exit 10ms delay. */ + Sleep (10) + } + + /* + * TBT Group0 OFF method + */ + Method (TG0F, 0) + { + If (_SB.PCI0.TDM0.VDID == 0xFFFFFFFF) { + Printf("TDM0 does not exist.") + } + + If (_SB.PCI0.TDM0.STAT == 1) { + /* DMA0 is not in D3Cold now. */ + _SB.PCI0.TDM0.D3CE() /* Enable DMA RTD3 */ + + Printf("Push TBT RPs to D3Cold together") + If (_SB.PCI0.TRP0.VDID != 0xFFFFFFFF) { + If (_SB.PCI0.TRP0.PDSX == 1) { + CTP0 = 1 + } + /* Put RP0 to D3 cold. */ + _SB.PCI0.TRP0.D3CE() + } + If (_SB.PCI0.TRP1.VDID != 0xFFFFFFFF) { + If (_SB.PCI0.TRP1.PDSX == 1) { + CTP0 = 1 + } + /* Put RP1 to D3 cold. */ + _SB.PCI0.TRP1.D3CE() + } + } + } + + /* + * TBT Group1 ON method + */ + Method (TG1N, 0) + { + If (_SB.PCI0.TDM1.VDID == 0xFFFFFFFF) { + Printf("TDM1 does not exist.") + } + + If (_SB.PCI0.TDM1.STAT == 0) { + /* DMA1 is in D3Cold early. */ + _SB.PCI0.TDM1.D3CX() /* RTD3 Exit */ + + Printf("Bring TBT RPs out of D3Code.") + If (_SB.PCI0.TRP2.VDID != 0xFFFFFFFF) { + /* RP2 D3 cold exit. */ + _SB.PCI0.TRP2.D3CX() + } + If (_SB.PCI0.TRP3.VDID != 0xFFFFFFFF) { + /* RP3 D3 cold exit. */ + _SB.PCI0.TRP3.D3CX() + } + + /* + * Need to send Connect-Topology command when TBT host + * controller back to D0 from D3. + */ + If (_SB.PCI0.TDM1.ALCT == 1) { + If (CTP1 == 1) { + /* + * Send Connect-Topology command if there is + * device present on PCIe RP. + */ + _SB.PCI0.TDM1.CNTP() + + /* Indicate to wait Connect-Topology command. */ + _SB.PCI0.TDM1.WACT = 1 + + /* Clear the connect states. */ + CTP1 = 0 + } + /* Disallow to send Connect-Topology cmd. */ + _SB.PCI0.TDM1.ALCT = 0 + } + } Else { + Printf("Drop TG1N due to it is already exit D3 cold.") + } + /* TBT RTD3 exit 10ms delay. */ + Sleep (10) + } + + /* + * TBT Group1 OFF method + */ + Method (TG1F, 0) + { + If (_SB.PCI0.TDM1.VDID == 0xFFFFFFFF) { + Printf("TDM1 does not exist.") + } + + If (_SB.PCI0.TDM1.STAT == 1) { + /* DMA1 is not in D3Cold now */ + _SB.PCI0.TDM1.D3CE() /* Enable DMA RTD3. */ + + Printf("Push TBT RPs to D3Cold together") + If (_SB.PCI0.TRP2.VDID != 0xFFFFFFFF) { + If (_SB.PCI0.TRP2.PDSX == 1) { + CTP1 = 1 + } + /* Put RP2 to D3 cold. */ + _SB.PCI0.TRP2.D3CE() + } + If (_SB.PCI0.TRP3.VDID != 0xFFFFFFFF) { + If (_SB.PCI0.TRP3.PDSX == 1) { + CTP1 = 1 + } + /* Put RP3 to D3 cold */ + _SB.PCI0.TRP3.D3CE() + } + } + } + + PowerResource (TBT0, 5, 1) + { + Method (_STA, 0) + { + Return (_SB.PCI0.TDM0.STAT) + } + + Method (_ON, 0) + { + TG0N() + } + + Method (_OFF, 0) + { + If (_SB.PCI0.TDM0.SD3C == 0) { + TG0F() + } + } + } + + PowerResource (TBT1, 5, 1) + { + Method (_STA, 0) + { + Return (_SB.PCI0.TDM1.STAT) + } + + Method (_ON, 0) + { + TG1N() + } + + Method (_OFF, 0) + { + If (_SB.PCI0.TDM1.SD3C == 0) { + TG1F() + } + } + } + + Method (TCON, 0) + { + /* Reset IOM D3 cold bit if it is in D3 cold now. */ + If (TD3C == 1) /* It was in D3 cold before. */ + { + /* Reset IOM D3 cold bit. */ + TD3C = 0 /* Request IOM for D3 cold exit sequence. */ + Local0 = 0 /* Time check counter variable */ + /* Wait for ack, the maximum wait time for the ack is 100 msec. */ + While ((TACK != 0) && (Local0 < TCSS_IOM_ACK_TIMEOUT_IN_MS)) { + /* + * Wait in this loop until TACK becomes 0 with timeout + * TCSS_IOM_ACK_TIMEOUT_IN_MS by default. + */ + Sleep (1) /* Delay of 1ms. */ + Local0++ + } + + If (Local0 == TCSS_IOM_ACK_TIMEOUT_IN_MS) { + Printf("Error: Error: Timeout occurred.") + } + Else + { + /* + * Program IOP MCTP Drop (TCSS_IN_D3) after D3 cold exit and + * acknowledgement by IOM. + */ + TCD3 = 0 + /* + * If the TCSS Deven is cleared by BIOS Mailbox request, then + * restore to previously saved value of TCSS DEVNE. + */ + Local0 = 0 + While (_SB.PCI0.TXHC.VDID == 0xFFFFFFFF) { + If (DSGS () == 1) { + DSCR (0) + } + Local0++ + If (Local0 == 5) { + Printf("pCode mailbox command failed.") + Break + } + } + } + } + Else { + Printf("Drop TCON due to it is already exit D3 cold.") + } + } + + Method (TCOF, 0) + { + If ((_SB.PCI0.TXHC.SD3C != 0) || (_SB.PCI0.TDM0.SD3C != 0) + || (_SB.PCI0.TDM1.SD3C != 0)) + { + Printf("Skip D3C entry.") + Return + } + + /* + * If the TCSS Deven in normal state, then Save current TCSS DEVEN value and + * clear it. + */ + Local0 = 0 + While (_SB.PCI0.TXHC.VDID != 0xFFFFFFFF) { + If (DSGS () == 0) { + DSCR (1) + } + Local0++ + If (Local0 == 5) { + Printf("pCode mailbox command failed.") + Break + } + } + + /* + * Program IOM MCTP Drop (TCSS_IN_D3) in D3Cold entry before entering D3 cold. + */ + TCD3 = 1 + + /* Request IOM for D3 cold entry sequence. */ + TD3C = 1 + } + + PowerResource (D3C, 5, 0) + { + /* + * Variable to save power state + * 1 - TC Cold request cleared. + * 0 - TC Cold request sent. + */ + Name (STAT, 0x1) + + Method (_STA, 0) + { + Return (STAT) + } + + Method (_ON, 0) + { + _SB.PCI0.TCON() + STAT = 1 + } + + Method (_OFF, 0) + { + _SB.PCI0.TCOF() + STAT = 0 + } + } + + /* + * TCSS xHCI device + */ + Device (TXHC) + { + Name (_ADR, 0x000D0000) + Name (_DDN, "North XHCI controller") + Name (_STR, Unicode ("North XHCI controller")) + Name (DCPM, TCSS_XHCI) + + Method (_STA, 0x0, NotSerialized) + { + Return (0x0F) + } + #include "tcss_xhci.asl" + } + + /* + * TCSS DMA0 device + */ + Device (TDM0) + { + Name (_ADR, 0x000D0002) + Name (_DDN, "TBT DMA0 controller") + Name (_STR, Unicode ("TBT DMA0 controller")) + Name (DUID, 0) /* TBT DMA number */ + Name (DCPM, TCSS_DMA0) + + Method (_STA, 0x0, NotSerialized) + { + Return (0x0F) + } + #include "tcss_dma.asl" + } + + /* + * TCSS DMA1 device + */ + Device (TDM1) + { + Name (_ADR, 0x000D0003) + Name (_DDN, "TBT DMA1 controller") + Name (_STR, Unicode ("TBT DMA1 controller")) + Name (DUID, 1) /* TBT DMA number */ + Name (DCPM, TCSS_DMA1) + + Method (_STA, 0x0, NotSerialized) + { + Return (0x0F) + } + #include "tcss_dma.asl" + } + + /* + * TCSS PCIE Root Port #00 + */ + Device (TRP0) + { + Name (_ADR, 0x00070000) + Name (TUID, 0) /* TBT PCIE RP Number 0 for RP00 */ + Name (LTEN, 0) /* Latency Tolerance Reporting Mechanism, 0:Disable, 1:Enable */ + Name (LMSL, 0) /* PCIE LTR max snoop Latency */ + Name (LNSL, 0) /* PCIE LTR max no snoop Latency */ + Name (DCPM, TCSS_TBT_PCIE0_RP0) + + Method (_STA, 0x0, NotSerialized) + { + Return (0x0F) + } + Method (_INI) + { + LTEN = 0 + LMSL = 0x88C8 + LNSL = 0x88C8 + } + #include "tcss_pcierp.asl" + } + + /* + * TCSS PCIE Root Port #01 + */ + Device (TRP1) + { + Name (_ADR, 0x00070001) + Name (TUID, 1) /* TBT PCIE RP Number 1 for RP01 */ + Name (LTEN, 0) /* Latency Tolerance Reporting Mechanism, 0:Disable, 1:Enable */ + Name (LMSL, 0) /* PCIE LTR max snoop Latency */ + Name (LNSL, 0) /* PCIE LTR max no snoop Latency */ + Name (DCPM, TCSS_TBT_PCIE0_RP1) + + Method (_STA, 0x0, NotSerialized) + { + Return (0x0F) + } + Method (_INI) + { + LTEN = 0 + LMSL = 0x88C8 + LNSL = 0x88C8 + } + #include "tcss_pcierp.asl" + } + + /* + * TCSS PCIE Root Port #02 + */ + Device (TRP2) + { + Name (_ADR, 0x00070002) + Name (TUID, 2) /* TBT PCIE RP Number 2 for RP02 */ + Name (LTEN, 0) /* Latency Tolerance Reporting Mechanism, 0:Disable, 1:Enable */ + Name (LMSL, 0) /* PCIE LTR max snoop Latency */ + Name (LNSL, 0) /* PCIE LTR max no snoop Latency */ + Name (DCPM, TCSS_TBT_PCIE0_RP2) + + Method (_STA, 0x0, NotSerialized) + { + Return (0x0F) + } + Method (_INI) + { + LTEN = 0 + LMSL = 0x88C8 + LNSL = 0x88C8 + } + #include "tcss_pcierp.asl" + } + + /* + * TCSS PCIE Root Port #03 + */ + Device (TRP3) + { + Name (_ADR, 0x00070003) + Name (TUID, 3) /* TBT PCIE RP Number 3 for RP03 */ + Name (LTEN, 0) /* Latency Tolerance Reporting Mechanism, 0:Disable, 1:Enable */ + Name (LMSL, 0) /* PCIE LTR max snoop Latency */ + Name (LNSL, 0) /* PCIE LTR max no snoop Latency */ + Name (DCPM, TCSS_TBT_PCIE0_RP3) + + Method (_STA, 0x0, NotSerialized) + { + Return (0x0F) + } + Method (_INI) + { + LTEN = 0 + LMSL = 0x88C8 + LNSL = 0x88C8 + } + #include "tcss_pcierp.asl" + } +} diff --git a/src/soc/intel/tigerlake/acpi/tcss_dma.asl b/src/soc/intel/tigerlake/acpi/tcss_dma.asl new file mode 100644 index 0000000..a2f86ba --- /dev/null +++ b/src/soc/intel/tigerlake/acpi/tcss_dma.asl @@ -0,0 +1,227 @@ +/* + * This file is part of the coreboot project. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +OperationRegion (DPME, SystemMemory, BASE(_ADR), 0x100) +Field (DPME, AnyAcc, NoLock, Preserve) +{ + VDID, 32, + Offset(0x84), /* 0x84, DMA CFG PM CAP */ + PMST, 2, /* 1:0, PM_STATE */ + , 6, + PMEE, 1, /* 8, PME_EN */ + , 6, + PMES, 1, /* 15, PME_STATUS */ + Offset(0xC8), /* 0xC8, TBT NVM FW Revision */ + , 31, + INFR, 1, /* TBT NVM FW Ready */ + Offset(0xEC), /* 0xEC, TBT TO PCIE Register */ + TB2P, 32, /* TBT to PCIe */ + P2TB, 32, /* PCIe to TBT */ + Offset(0xFC), /* 0xFC, DMA RTD3 Force Power */ + DD3E, 1, /* 0:0 DMA RTD3 Enable */ + DFPE, 1, /* 1:1 DMA Force Power */ + , 22, + DMAD, 8 /* 31:24 DMA Active Delay */ +} + +/* + * TBT MailBox Command Method + * Arg0 - MailBox Cmd ID + */ +Method (ITMB, 1, Serialized) +{ + Local0 = Arg0 | 0x1 /* 0x1, PCIE2TBT_VLD_B */ + P2TB = Local0 +} + +/* + * Wait For Command Completed + * Arg0 - TimeOut value (unit is 1 millisecond) + */ +Method (WFCC, 1, Serialized) +{ + WTBS (Arg0) + P2TB = 0 + WTBC (Arg0) +} + +/* + * Wait For Command Set + * Arg0 - TimeOut value + */ +Method (WTBS, 1, Serialized) +{ + Local0 = Arg0 + While (Local0 > 0) { + /* Wait for Bit to Set. */ + If (TB2P & 0x1) { /* 0x1, TBT2PCIE_DON_R */ + Break + } + Local0-- + Sleep (1) + } +} + +/* + * Wait For Command Clear + * Arg0 - TimeOut value + */ +Method (WTBC, 1, Serialized) +{ + Local0 = Arg0 + While (Local0 > 0) { + /* Wait for Bit to Clear. */ + If ((TB2P & 0x1) != 0x0) { /* 0x1, TBT2PCIE_DON_R */ + Break + } + Local0-- + Sleep (1) + } +} + +/* + * TCSS TBT CONNECT_TOPOLOGY MailBox Command Method + */ +Method (CNTP, 0, Serialized) +{ + Local0 = 0 + /* Set Force Power if it is not set */ + If (DFPE == 0) { + DMAD = 0x22 + DFPE = 1 + /* + * Poll the TBT NVM FW Ready bit with timeout(default is 500ms) before + * send the TBT MailBox command. + */ + While ((INFR == 0) && (Local0 < 500)) { + Sleep (1) + Local0++ + } + } + If (Local0 != 100) { + ITMB (0x3E) /* 0x3E, PCIE2TBT_CONNECT_TOPOLOGY_COMMAND */ + } +} + +Name (STAT, 0x1) /* Variable to save power state 1 - D0, 0 - D3C */ +Name (ALCT, 0x0) /* Connect-Topology cmd can be sent or not 1 - yes, 0 - no */ +/* + * Wait Connect-Topology cmd done + * 0 - no need to wait + * 1 - need to wait + * 2 - wait in progress + */ +Name (WACT, 0x0) + +Method (_PS0, 0, Serialized) +{ + If (WACT == 1) { + /* + * PCIe rp0/rp1 is grouped with DMA0 and PCIe rp2/rp3 is grouped wit DMA1. + * Whenever the Connect-Topology command is in the process, WACT flag is set 1. + * PCIe root ports 0/1/2/3/ and DMA 0/1 _PS0 method set WACT to 2 to indicate + * other thread's _PS0 to wait for the command completion. WACT is cleared to + * be 0 after command is finished. + */ + WACT = 2 + WFCC (100) /* Wait for command complete. */ + WACT = 0 + } ElseIf (WACT == 2) { + While (WACT != 0) { + Sleep (5) + } + } +} + +Method (_PS3, 0, Serialized) +{ +} + +Method (_S0W, 0x0) +{ + Return (0x4) +} + +Method (_PR0) +{ + If (DUID == 0) { + Return (Package() { _SB.PCI0.D3C, _SB.PCI0.TBT0 }) + } Else { + Return (Package() { _SB.PCI0.D3C, _SB.PCI0.TBT1 }) + } +} + +Method (_PR3) +{ + If (DUID == 0) { + Return (Package() { _SB.PCI0.D3C, _SB.PCI0.TBT0 }) + } Else { + Return (Package() { _SB.PCI0.D3C, _SB.PCI0.TBT1 }) + } +} + +/* + * RTD3 Exit Method to bring TBT controller out of RTD3 mode. + */ +Method (D3CX, 0, Serialized) +{ + DD3E = 0 /* Disable DMA RTD3 */ + STAT = 0x1 +} + +/* + * RTD3 Entry method to enable TBT controller RTD3 mode. + */ +Method (D3CE, 0, Serialized) +{ + DD3E = 1 /* Enable DMA RTD3 */ + STAT = 0 + ALCT = 0x1 /* Allow to send Connect-Topology cmd. */ +} + +/* + * Variable to skip TCSS/TBT D3 cold; 1+: Skip D3CE, 0 - Enable D3CE + * TCSS D3 Cold and TBT RTD3 is only available when system power state is in S0. + */ +Name (SD3C, 0) + +Method (_DSW, 3) +{ + /* If entering Sx (Arg1 > 1), need to skip TCSS D3Cold & TBT RTD3/D3Cold. */ + SD3C = Arg1 +} + +Method (_PRW, 0) +{ + Return (Package() { 0x6D, 4 }) +} + +Method (_DSD, 0) +{ + Return( + Package() + { + /* Thunderbolt GUID for IMR_VALID at ../drivers/acpi/property.c */ + ToUUID("C44D002F-69F9-4E7D-A904-A7BAABDF43F7"), + Package () + { + Package (2) { "IMR_VALID", 1 } + }, + + /* Thunderbolt GUID for WAKE_SUPPORTED at ../drivers/acpi/property.c */ + ToUUID("6C501103-C189-4296-BA72-9BF5A26EBE5D"), + Package () + { + Package (2) { "WAKE_SUPPORTED", 1 } + } + } + ) +} + +Method (_DSM, 4, Serialized) +{ + Return (Buffer() { 0 }) +} diff --git a/src/soc/intel/tigerlake/acpi/tcss_pcierp.asl b/src/soc/intel/tigerlake/acpi/tcss_pcierp.asl new file mode 100644 index 0000000..6532661 --- /dev/null +++ b/src/soc/intel/tigerlake/acpi/tcss_pcierp.asl @@ -0,0 +1,315 @@ +/* + * This file is part of the coreboot project. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +OperationRegion (PXCS, SystemMemory, BASE(_ADR), 0x800) +Field (PXCS, AnyAcc, NoLock, Preserve) +{ + VDID, 32, + Offset(0x50), /* LCTL - Link Control Register */ + L0SE, 1, /* 0, L0s Entry Enabled */ + , 3, + LDIS, 1, /* 1, Link Disable */ + , 3, + Offset(0x52), /* LSTS - Link Status Register */ + , 13, + LASX, 1, /* 0, Link Active Status */ + Offset(0x5A), /* SLSTS[7:0] - Slot Status Register */ + ABPX, 1, /* 0, Attention Button Pressed */ + , 2, + PDCX, 1, /* 3, Presence Detect Changed */ + , 2, + PDSX, 1, /* 6, Presence Detect State */ + , 1, + DLSC, 1, /* 8, Data Link Layer State Changed */ + Offset(0x60), /* RSTS - Root Status Register */ + , 16, + PSPX, 1, /* 16, PME Status */ + Offset(0xA4), + D3HT, 2, /* Power State */ + Offset(0xD8), /* 0xD8, MPC - Miscellaneous Port Configuration Register */ + , 30, + HPEX, 1, /* 30, Hot Plug SCI Enable */ + PMEX, 1, /* 31, Power Management SCI Enable */ + Offset(0xE2), /* 0xE2, RPPGEN - Root Port Power Gating Enable */ + , 2, + L23E, 1, /* 2, L23_Rdy Entry Request (L23ER) */ + L23R, 1, /* 3, L23_Rdy to Detect Transition (L23R2DT) */ + Offset(0x420), /* 0x420, PCIEPMECTL (PCIe PM Extension Control) */ + , 30, + DPGE, 1, /* PCIEPMECTL[30]: Disabled, Detect and L23_Rdy State PHY Lane */ + /* Power Gating Enable (DLSULPPGE) */ + Offset(0x5BC), /* 0x5BC, PCIE ADVMCTRL */ + , 3, + RPER, 1, /* RTD3PERST[3] */ + RPFE, 1, /* RTD3PFETDIS[4] */ +} + +Field (PXCS, AnyAcc, NoLock, WriteAsZeros) +{ + Offset(0xDC), /* 0xDC, SMSCS - SMI/SCI Status Register */ + , 30, + HPSX, 1, /* 30, Hot Plug SCI Status */ + PMSX, 1 /* 31, Power Management SCI Status */ +} + +/* + * _DSM Device Specific Method + * + * Arg0: UUID Unique function identifier + * Arg1: Integer Revision Level + * Arg2: Integer Function Index (0 = Return Supported Functions) + * Arg3: Package Parameters + */ +Method (_DSM, 4, Serialized) +{ + return (Buffer() {0x00}) +} + +Device (PXSX) +{ + Name (_ADR, 0x00000000) + + Method (_PRW, 0) + { + Return (Package() { 0x69, 4 }) + } +} + +Method (_DSW, 3) +{ + C2PM (Arg0, Arg1, Arg2, DCPM) + /* If entering Sx (Arg1 > 1), need to skip TCSS D3Cold & TBT RTD3/D3Cold. */ + _SB.PCI0.TDM0.SD3C = Arg1 + _SB.PCI0.TDM1.SD3C = Arg1 +} + +Method (_PRW, 0) +{ + Return (Package() { 0x69, 4 }) +} + +/* + * Sub-Method of _L61 Hot-Plug event + * _L61 event handler should invoke this method to support HotPlug wake event from TBT RP. + */ +Method (HPEV, 0, Serialized) +{ + If ((VDID != 0xFFFFFFFF) && HPSX) { + If ((PDCX == 1) && (DLSC == 1)) { + /* Clear all status bits first. */ + PDCX = 1 + HPSX = 1 + + /* Perform proper notification to the OS. */ + Notify (^, 0) + } Else { + /* False event. Clear Hot-Plug Status, then exit. */ + HPSX = 1 + } + } +} + +/* + * Power Management routine for D3 + */ +Name (STAT, 0x1) /* Variable to save power state 1 - D0, 0 - D3C */ + +/* + * RTD3 Exit Method to bring TBT controller out of RTD3 mode. + */ +Method (D3CX, 0, Serialized) +{ + If (STAT == 0x1) { + Return + } + + RPFE = 0 /* Set RTD3PFETDIS = 0 */ + RPER = 0 /* Set RTD3PERST = 0 */ + L23R = 1 /* Set L23r2dt = 1 */ + + /* + * Poll for L23r2dt == 0. Wait for transition to Detect. + */ + Local0 = 0 + Local1 = L23R + While (Local1) { + If (Local0 > 20) { + Break + } + Sleep(5) + Local0++ + Local1 = L23R + } + STAT = 0x1 + + /* Wait for LA = 1 */ + Local0 = 0 + Local1 = LASX + While (Local1 == 0) { + If (Local0 > 20) { + Break + } + Sleep(5) + Local0++ + Local1 = LASX + } +} + +/* + * RTD3 Entry method to enable TBT controller RTD3 mode. + */ +Method (D3CE, 0, Serialized) +{ + If (STAT == 0x0) { + Return + } + + L23E = 1 /* Set L23er = 1 */ + + /* Poll until L23er == 0 */ + Local0 = 0 + Local1 = L23E + While (Local1) { + If (Local0 > 20) { + Break + } + Sleep(5) + Local0++ + Local1 = L23E + } + + STAT = 0 /* D3Cold */ + RPFE = 1 /* Set RTD3PFETDIS = 1 */ + RPER = 1 /* Set RTD3PERST = 1 */ +} + +Method (_PS0, 0, Serialized) +{ + HPEV () /* Check and handle Hot Plug SCI status. */ + If (HPEX == 1) { + HPEX = 0 /* Disable Hot Plug SCI */ + } + HPME () /* Check and handle PME SCI status */ + If (PMEX == 1) { + PMEX = 0 /* Disable Power Management SCI */ + } + Sleep(100) /* Wait for 100ms before return to OS starts any DS activities. */ + If ((TUID == 0) || (TUID == 1)) { + If (_SB.PCI0.TDM0.WACT == 1) { + /* + * Indicate other thread's _PS0 to wait the response. + */ + _SB.PCI0.TDM0.WACT = 2 + _SB.PCI0.TDM0.WFCC (10) /* Wait for command complete. */ + _SB.PCI0.TDM0.WACT = 0 + } ElseIf (_SB.PCI0.TDM0.WACT == 2) { + While (_SB.PCI0.TDM0.WACT != 0) { + Sleep (5) + } + } + } Else { + If (_SB.PCI0.TDM1.WACT == 1) { + /* + * Indicate other thread's _PS0 to wait the response. + */ + _SB.PCI0.TDM1.WACT = 2 + _SB.PCI0.TDM1.WFCC (10) /* Wait for command complete. */ + _SB.PCI0.TDM1.WACT = 0 + } ElseIf (_SB.PCI0.TDM1.WACT == 2) { + While (_SB.PCI0.TDM1.WACT != 0) { + Sleep (5) + } + } + } +} + +Method (_PS3, 0, Serialized) +{ + /* Check it is hotplug SCI or not, then clear PDC accordingly */ + If (PDCX == 1) { + If (DLSC == 0) { + /* Clear PDC since it is not a hotplug. */ + PDCX = 1 + } + } + + If (HPEX == 0) { + HPEX = 1 /* Enable Hot Plug SCI. */ + HPEV () /* Check and handle Hot Plug SCI status. */ + } + If (PMEX == 0) { + PMEX = 1 /* Enable Power Management SCI. */ + HPME () /* Check and handle PME SCI status. */ + } +} + +Method (_DSD, 0) { + Return ( + Package () { + /* acpi_pci_bridge_d3 at ../drivers/pci/pci-acpi.c */ + ToUUID("6211E2C0-58A3-4AF3-90E1-927A4E0C55A4"), + Package () + { + Package (2) { "HotPlugSupportInD3", 1 }, + }, + + /* pci_acpi_set_untrusted at ../drivers/pci/pci-acpi.c */ + ToUUID("EFCC06CC-73AC-4BC3-BFF0-76143807C389"), + Package () { + Package (2) { "ExternalFacingPort", 1 }, /* TBT/CIO port */ + /* + * UID of the TBT RP on platform, range is: 0, 1 ..., + * (NumOfTBTRP - 1). + */ + Package (2) { "UID", TUID }, + } + } + ) +} + +Method (_S0W, 0x0, NotSerialized) +{ + Return (0x4) +} + +Method (_PR0) +{ + If ((TUID == 0) || (TUID == 1)) { + Return (Package() { _SB.PCI0.D3C, _SB.PCI0.TBT0 }) + } Else { + Return (Package() { _SB.PCI0.D3C, _SB.PCI0.TBT1 }) + } +} + +Method (_PR3) +{ + If ((TUID == 0) || (TUID == 1)) { + Return (Package() { _SB.PCI0.D3C, _SB.PCI0.TBT0 }) + } Else { + Return (Package() { _SB.PCI0.D3C, _SB.PCI0.TBT1 }) + } +} + +/* + * PCI_EXP_STS Handler for PCIE Root Port + */ +Method (HPME, 0, Serialized) +{ + If ((VDID != 0xFFFFFFFF) && (PMSX == 1)) { /* if port exists and PME SCI Status set */ + /* + * Notify child device; this will cause its driver to clear PME_Status from + * device. + */ + Notify (PXSX, 0x2) + PMSX = 1 /* clear rootport's PME SCI status */ + /* + * Consume one pending PME notification to prevent it from blocking the queue. + */ + PSPX = 1 + Return (0x01) + } + Return (0x00) +} diff --git a/src/soc/intel/tigerlake/acpi/tcss_xhci.asl b/src/soc/intel/tigerlake/acpi/tcss_xhci.asl new file mode 100644 index 0000000..e78cc1d --- /dev/null +++ b/src/soc/intel/tigerlake/acpi/tcss_xhci.asl @@ -0,0 +1,138 @@ +/* + * This file is part of the coreboot project. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +OperationRegion (XPRT, SystemMemory, BASE(_ADR), 0x100) +Field (XPRT, ByteAcc, NoLock, Preserve) +{ + VDID, 32, + Offset(0x74), /* 0x74, XHCI CFG Power Control And Status */ + D0D3, 2, /* 0x74 BIT[1:0] */ + , 6, + PMEE, 1, /* PME Enable */ + , 6, + PMES, 1, /* PME Status */ +} + +Method (_PS0, 0, Serialized) +{ + If (_SB.PCI0.TXHC.PMEE == 1) { + /* Clear PME_EN of CPU xHCI */ + _SB.PCI0.TXHC.PMEE = 0 + } +} + +Method (_PS3, 0, Serialized) +{ + If (_SB.PCI0.TXHC.PMEE == 0) { + /* Set PME_EN of CPU xHCI */ + _SB.PCI0.TXHC.PMEE = 1 + } +} + +Method (_S0W, 0x0, NotSerialized) +{ + Return (0x4) +} + +/* + * Variable to skip TCSS/TBT D3 cold; 1+: Skip D3CE, 0 - Enable D3CE + * TCSS D3 Cold and TBT RTD3 is only available when system power state is in S0. + */ +Name (SD3C, 0) + +Method (_PR0) +{ + Return (Package () { _SB.PCI0.D3C }) +} + +Method (_PR3) +{ + Return (Package () { _SB.PCI0.D3C }) +} + +/* + * XHCI controller _DSM method + */ +Method (_DSM, 4, serialized) +{ + Return (Buffer() { 0 }) +} + +/* + * _SXD and _SXW methods + */ +Method (_S3D, 0, NotSerialized) +{ + Return (3) +} + +Method (_S4D, 0, NotSerialized) +{ + Return (3) +} + +Method (_S3W, 0, NotSerialized) +{ + Return (3) +} + +Method (_S4W, 0, NotSerialized) +{ + Return (3) +} + +/* + * Power resource for wake + */ +Method (_PRW, 0) +{ + Return (Package() { 0x6D, 4 }) +} + +/* + * Device sleep wake + */ +Method (_DSW, 3) +{ + C2PM (Arg0, Arg1, Arg2, DCPM) + /* If entering Sx (Arg1 > 1), need to skip TCSS D3Cold & TBT RTD3/D3Cold. */ + SD3C = Arg1 +} + +/* + * xHCI Root Hub Device + */ +Device (RHUB) +{ + Name (_ADR, Zero) + + /* High Speed Ports */ + Device (HS01) + { + Name (_ADR, 0x01) + } + + /* Super Speed Ports */ + Device (SS01) + { + Name (_ADR, 0x02) + } + + Device (SS02) + { + Name (_ADR, 0x03) + } + + Device (SS03) + { + Name (_ADR, 0x04) + } + + Device (SS04) + { + Name (_ADR, 0x05) + } +}
9elements QA has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/39785 )
Change subject: soc/intel/tigerlake: Configure TCSS power management ......................................................................
Patch Set 24:
Automatic boot test returned (PASS/FAIL/TOTAL): 4/0/4 Emulation targets: "QEMU x86 q35/ich9" using payload TianoCore : SUCCESS : https://lava.9esec.io/r/2514 "QEMU x86 q35/ich9" using payload SeaBIOS : SUCCESS : https://lava.9esec.io/r/2513 "QEMU x86 i440fx/piix4" using payload SeaBIOS : SUCCESS : https://lava.9esec.io/r/2512 "QEMU AArch64" using payload LinuxBoot_u-root_kexec : SUCCESS : https://lava.9esec.io/r/2511
Please note: This test is under development and might not be accurate at all!