Duncan Laurie has uploaded this change for review.

View Change

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.

Signed-off-by: Duncan Laurie <dlaurie@google.com>
Change-Id: I2564512d951046e015c148db42fdaf2d4b8b81dd
---
M src/mainboard/google/volteer/variants/baseboard/devicetree.cb
M src/mainboard/google/volteer/variants/halvor/overridetree.cb
M src/mainboard/google/volteer/variants/lindar/overridetree.cb
M src/mainboard/google/volteer/variants/malefor/overridetree.cb
M src/soc/intel/tigerlake/Kconfig
M src/soc/intel/tigerlake/acpi/tcss_dma.asl
M src/soc/intel/tigerlake/acpi/tcss_pcierp.asl
M src/soc/intel/tigerlake/chipset.cb
8 files changed, 59 insertions(+), 125 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/17/44917/1
diff --git a/src/mainboard/google/volteer/variants/baseboard/devicetree.cb b/src/mainboard/google/volteer/variants/baseboard/devicetree.cb
index 636d946..2717acd 100644
--- a/src/mainboard/google/volteer/variants/baseboard/devicetree.cb
+++ b/src/mainboard/google/volteer/variants/baseboard/devicetree.cb
@@ -377,13 +377,17 @@
device generic 0 on end
end
end
- device ref tbt_pcie_rp0 on
- probe DB_USB USB4_GEN2
- probe DB_USB USB4_GEN3
+ chip drivers/intel/usb4/pcie
+ device ref tbt_pcie_rp0 on
+ probe DB_USB USB4_GEN2
+ probe DB_USB USB4_GEN3
+ end
end
- device ref tbt_pcie_rp1 on
- probe DB_USB USB4_GEN2
- probe DB_USB USB4_GEN3
+ chip drivers/intel/usb4/pcie
+ device ref tbt_pcie_rp1 on
+ probe DB_USB USB4_GEN2
+ probe DB_USB USB4_GEN3
+ end
end
device ref tbt_dma0 on
probe DB_USB USB4_GEN2
diff --git a/src/mainboard/google/volteer/variants/halvor/overridetree.cb b/src/mainboard/google/volteer/variants/halvor/overridetree.cb
index 2db3b96..68269b5 100644
--- a/src/mainboard/google/volteer/variants/halvor/overridetree.cb
+++ b/src/mainboard/google/volteer/variants/halvor/overridetree.cb
@@ -18,7 +18,9 @@
register "SaGv" = "SaGv_Disabled"

device domain 0 on
- device pci 07.2 on end # TBT_PCIe2
+ chip drivers/intel/usb4/pcie
+ device pci 07.2 on end # TBT_PCIe2
+ end
device pci 15.0 on
chip drivers/i2c/generic
register "hid" = ""10EC5682""
diff --git a/src/mainboard/google/volteer/variants/lindar/overridetree.cb b/src/mainboard/google/volteer/variants/lindar/overridetree.cb
index 6f14622..9d9a376 100644
--- a/src/mainboard/google/volteer/variants/lindar/overridetree.cb
+++ b/src/mainboard/google/volteer/variants/lindar/overridetree.cb
@@ -27,10 +27,18 @@
[PchSerialIoIndexI2C5] = PchSerialIoPci,
}"
device domain 0 on
- device pci 07.0 off end # TBT_PCIe0 0x9A23
- device pci 07.1 off end # TBT_PCIe1 0x9A25
- device pci 07.2 off end # TBT_PCIe2 0x9A27
- device pci 07.3 off end # TBT_PCIe3 0x9A29
+ chip drivers/intel/usb4/pcie
+ device pci 07.0 off end # TBT_PCIe0 0x9A23
+ end
+ chip drivers/intel/usb4/pcie
+ device pci 07.1 off end # TBT_PCIe1 0x9A25
+ end
+ chip drivers/intel/usb4/pcie
+ device pci 07.2 off end # TBT_PCIe2 0x9A27
+ end
+ chip drivers/intel/usb4/pcie
+ device pci 07.3 off end # TBT_PCIe3 0x9A29
+ end
device pci 15.0 on
chip drivers/i2c/generic
register "hid" = ""10EC5682""
diff --git a/src/mainboard/google/volteer/variants/malefor/overridetree.cb b/src/mainboard/google/volteer/variants/malefor/overridetree.cb
index b184924..a4f3afe 100644
--- a/src/mainboard/google/volteer/variants/malefor/overridetree.cb
+++ b/src/mainboard/google/volteer/variants/malefor/overridetree.cb
@@ -34,10 +34,18 @@
}"

device domain 0 on
- device pci 07.0 off end # TBT_PCIe0 0x9A23
- device pci 07.1 off end # TBT_PCIe1 0x9A25
- device pci 07.2 off end # TBT_PCIe2 0x9A27
- device pci 07.3 off end # TBT_PCIe3 0x9A29
+ chip drivers/intel/usb4/pcie
+ device pci 07.0 off end # TBT_PCIe0 0x9A23
+ end
+ chip drivers/intel/usb4/pcie
+ device pci 07.1 off end # TBT_PCIe1 0x9A25
+ end
+ chip drivers/intel/usb4/pcie
+ device pci 07.2 off end # TBT_PCIe2 0x9A27
+ end
+ chip drivers/intel/usb4/pcie
+ device pci 07.3 off end # TBT_PCIe3 0x9A29
+ end
device pci 15.0 on
chip drivers/i2c/generic
register "hid" = ""10EC5682""
diff --git a/src/soc/intel/tigerlake/Kconfig b/src/soc/intel/tigerlake/Kconfig
index 3b0df5d..250840f 100644
--- a/src/soc/intel/tigerlake/Kconfig
+++ b/src/soc/intel/tigerlake/Kconfig
@@ -17,6 +17,7 @@
select CACHE_MRC_SETTINGS
select CPU_INTEL_COMMON
select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
+ select DRIVERS_INTEL_USB4_PCIE
select FSP_COMPRESS_FSP_S_LZ4
select FSP_M_XIP
select GENERIC_GPIO_LIB
@@ -51,6 +52,7 @@
select SOC_INTEL_COMMON_BLOCK_SA
select SOC_INTEL_COMMON_BLOCK_SMM
select SOC_INTEL_COMMON_BLOCK_SMM_IO_TRAP
+ select SOC_INTEL_COMMON_BLOCK_USB4
select SOC_INTEL_COMMON_PCH_BASE
select SOC_INTEL_COMMON_RESET
select SOC_INTEL_COMMON_BLOCK_CAR
diff --git a/src/soc/intel/tigerlake/acpi/tcss_dma.asl b/src/soc/intel/tigerlake/acpi/tcss_dma.asl
index da2e8fe..d00f794 100644
--- a/src/soc/intel/tigerlake/acpi/tcss_dma.asl
+++ b/src/soc/intel/tigerlake/acpi/tcss_dma.asl
@@ -82,30 +82,3 @@
{
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
index abca5d1..3f495be 100644
--- a/src/soc/intel/tigerlake/acpi/tcss_pcierp.asl
+++ b/src/soc/intel/tigerlake/acpi/tcss_pcierp.asl
@@ -216,85 +216,6 @@
}
}

-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)
{
Return (0x4)
diff --git a/src/soc/intel/tigerlake/chipset.cb b/src/soc/intel/tigerlake/chipset.cb
index 0d2b7a2..43c99a5 100644
--- a/src/soc/intel/tigerlake/chipset.cb
+++ b/src/soc/intel/tigerlake/chipset.cb
@@ -5,10 +5,26 @@
device pci 04.0 alias dptf off end
device pci 05.0 alias ipu off end
device pci 06.0 alias peg off end
- device pci 07.0 alias tbt_pcie_rp0 off end
- device pci 07.1 alias tbt_pcie_rp1 off end
- device pci 07.2 alias tbt_pcie_rp2 off end
- device pci 07.3 alias tbt_pcie_rp3 off end
+ chip drivers/intel/usb4/pcie
+ register "port_id" = "0"
+ use tbt_dma0 as usb4_port
+ device pci 07.0 alias tbt_pcie_rp0 off end
+ end
+ chip drivers/intel/usb4/pcie
+ register "port_id" = "1"
+ use tbt_dma0 as usb4_port
+ device pci 07.1 alias tbt_pcie_rp1 off end
+ end
+ chip drivers/intel/usb4/pcie
+ register "port_id" = "0"
+ use tbt_dma1 as usb4_port
+ device pci 07.2 alias tbt_pcie_rp2 off end
+ end
+ chip drivers/intel/usb4/pcie
+ register "port_id" = "1"
+ use tbt_dma1 as usb4_port
+ device pci 07.3 alias tbt_pcie_rp3 off end
+ end
device pci 08.0 alias gna off end
device pci 09.0 alias npk off end
device pci 0a.0 alias crashlog off end

To view, visit change 44917. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I2564512d951046e015c148db42fdaf2d4b8b81dd
Gerrit-Change-Number: 44917
Gerrit-PatchSet: 1
Gerrit-Owner: Duncan Laurie <dlaurie@chromium.org>
Gerrit-Reviewer: Patrick Rudolph <siro@das-labor.org>
Gerrit-MessageType: newchange