soc/intel/tigerlake: Enable and use USB4 PCIe driver

This change enables the USB4/Thunderbolt common layer for Intel SOC,
and enables the Intel USB4 PCIe driver.  This moves the _DSD variables
from the DSDT into the SSDT and allows them to be configured for each
board if necessary.

Change-Id: I2564512d951046e015c148db42fdaf2d4b8b81dd
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/44917
Reviewed-by: Furquan Shaikh <furquan@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Duncan Laurie
2020-08-28 19:44:42 +00:00
committed by Tim Wawrzynczak
parent ce3a9740f1
commit 6f58b991de
4 changed files with 26 additions and 110 deletions

View File

@@ -48,6 +48,8 @@ config CPU_SPECIFIC_OPTIONS
select SOC_INTEL_COMMON_BLOCK_SA select SOC_INTEL_COMMON_BLOCK_SA
select SOC_INTEL_COMMON_BLOCK_SMM select SOC_INTEL_COMMON_BLOCK_SMM
select SOC_INTEL_COMMON_BLOCK_SMM_IO_TRAP select SOC_INTEL_COMMON_BLOCK_SMM_IO_TRAP
select SOC_INTEL_COMMON_BLOCK_USB4
select SOC_INTEL_COMMON_BLOCK_USB4_PCIE
select SOC_INTEL_COMMON_PCH_BASE select SOC_INTEL_COMMON_PCH_BASE
select SOC_INTEL_COMMON_RESET select SOC_INTEL_COMMON_RESET
select SOC_INTEL_COMMON_BLOCK_CAR select SOC_INTEL_COMMON_BLOCK_CAR

View File

@@ -92,30 +92,3 @@ Method (_PRW, 0)
{ {
Return (Package() { 0x6D, 4 }) 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 })
}

View File

@@ -220,85 +220,6 @@ Method (_PS3, 0, Serialized)
} }
} }
Method (_DSD, 0) {
If ((TUID == 0) || (TUID == 1)) {
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 },
},
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () {
Package (2) { "usb4-host-interface", \_SB.PCI0.TDM0 },
Package (2) { "usb4-port-number", TUID },
}
})
} ElseIf (TUID == 2) {
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 },
},
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () {
Package (2) { "usb4-host-interface", \_SB.PCI0.TDM1 },
Package (2) { "usb4-port-number", 0 },
}
})
} Else { /* TUID == 3 */
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 },
},
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () {
Package (2) { "usb4-host-interface", \_SB.PCI0.TDM1 },
Package (2) { "usb4-port-number", 1 },
}
})
}
}
Method (_S0W, 0x0, NotSerialized) Method (_S0W, 0x0, NotSerialized)
{ {
Return (0x4) Return (0x4)

View File

@@ -5,10 +5,30 @@ chip soc/intel/tigerlake
device pci 04.0 alias dptf off end device pci 04.0 alias dptf off end
device pci 05.0 alias ipu off end device pci 05.0 alias ipu off end
device pci 06.0 alias peg off end device pci 06.0 alias peg off end
device pci 07.0 alias tbt_pcie_rp0 off end device pci 07.0 alias tbt_pcie_rp0 off
device pci 07.1 alias tbt_pcie_rp1 off end chip soc/intel/common/block/usb4
device pci 07.2 alias tbt_pcie_rp2 off end use tbt_dma0 as usb4_port
device pci 07.3 alias tbt_pcie_rp3 off end device generic 0 on end
end
end
device pci 07.1 alias tbt_pcie_rp1 off
chip soc/intel/common/block/usb4
use tbt_dma0 as usb4_port
device generic 1 on end
end
end
device pci 07.2 alias tbt_pcie_rp2 off
chip soc/intel/common/block/usb4
use tbt_dma1 as usb4_port
device generic 0 on end
end
end
device pci 07.3 alias tbt_pcie_rp3 off
chip soc/intel/common/block/usb4
use tbt_dma1 as usb4_port
device generic 1 on end
end
end
device pci 08.0 alias gna off end device pci 08.0 alias gna off end
device pci 09.0 alias npk off end device pci 09.0 alias npk off end
device pci 0a.0 alias crashlog off end device pci 0a.0 alias crashlog off end