summaryrefslogtreecommitdiffstats
path: root/src/soc
diff options
context:
space:
mode:
authorSean Rhodes <sean@starlabs.systems>2022-05-21 10:39:27 +0100
committerMartin L Roth <gaumless@gmail.com>2023-01-08 01:26:25 +0000
commit060df17f1d17a78221b4498a354ee068de9d388c (patch)
treef4397bc75c2e485d7bb5200fda110a41f7403f3d /src/soc
parentae5bc43d3b2df7854de70756e54138c542b8a52e (diff)
downloadcoreboot-060df17f1d17a78221b4498a354ee068de9d388c.tar.gz
coreboot-060df17f1d17a78221b4498a354ee068de9d388c.tar.bz2
coreboot-060df17f1d17a78221b4498a354ee068de9d388c.zip
soc/intel/alderlake/acpi: Add Kconfig options for SCM and FCM
Software Connection Manager doesn't work with Linux 5.13 or later, resulting in TBT ports timing out. Not advertising this results in Firmware Connection Manager being used and TBT works correctly. Add Kconfig options to chose between SCM (Software Connection Manager) and FCM (Firmware Connection Manager). FCM is primary, as it's more compatible save for ChromeOS devices as ChromeOS uses SCM. Linux patch: torvalds/linux@c6da62a c6da62a219d028de10f2e22e93a34c7ee2b88d03 Tested with StarBook Mk VI (i7-1260P). Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: Iac31d37c0873f41f7b14e1051fe214466d1ebdd8 Reviewed-on: https://review.coreboot.org/c/coreboot/+/64561 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Kapil Porwal <kapilporwal@google.com> Reviewed-by: Subrata Banik <subratabanik@google.com> Reviewed-by: Martin L Roth <gaumless@gmail.com>
Diffstat (limited to 'src/soc')
-rw-r--r--src/soc/intel/alderlake/Kconfig3
-rw-r--r--src/soc/intel/alderlake/acpi/tcss.asl7
-rw-r--r--src/soc/intel/meteorlake/Kconfig3
-rw-r--r--src/soc/intel/meteorlake/acpi/tcss.asl7
-rw-r--r--src/soc/intel/tigerlake/Kconfig3
-rw-r--r--src/soc/intel/tigerlake/acpi/tcss.asl2
6 files changed, 24 insertions, 1 deletions
diff --git a/src/soc/intel/alderlake/Kconfig b/src/soc/intel/alderlake/Kconfig
index 9d950a71b614..1b2f6953efc5 100644
--- a/src/soc/intel/alderlake/Kconfig
+++ b/src/soc/intel/alderlake/Kconfig
@@ -426,6 +426,9 @@ config ACPI_ADL_IPU_ES_SUPPORT
help
Enables ACPI entry to provide silicon type information to IPU kernel driver.
+config SOFTWARE_CONNECTION_MANAGER
+ default y if CHROMEOS
+
config ALDERLAKE_ENABLE_SOC_WORKAROUND
bool
default y
diff --git a/src/soc/intel/alderlake/acpi/tcss.asl b/src/soc/intel/alderlake/acpi/tcss.asl
index 826c60740aa6..9edaf7711096 100644
--- a/src/soc/intel/alderlake/acpi/tcss.asl
+++ b/src/soc/intel/alderlake/acpi/tcss.asl
@@ -161,6 +161,12 @@ Scope (\_SB)
CDW1 |= UNRECOGNIZED_REVISION
}
Return (Arg3)
+#if CONFIG(SOFTWARE_CONNECTION_MANAGER)
+ /*
+ * Software Connection Manager doesn't work with Linux 5.13 or later and
+ * results in TBT ports timing out. Not advertising this results in
+ * Firmware Connection Manager being used and TBT works correctly.
+ */
} ElseIf (Arg0 == ToUUID("23A0D13A-26AB-486C-9C5F-0FFA525A575A")) {
/*
* Operating System Capabilities for USB4
@@ -192,6 +198,7 @@ Scope (\_SB)
INTER_DOMAIN_USB4_INTERNET_PROTOCOL
CDW3 = Local0
Return (Arg3)
+#endif
} Else {
CDW1 |= UNRECOGNIZED_UUID
Return (Arg3)
diff --git a/src/soc/intel/meteorlake/Kconfig b/src/soc/intel/meteorlake/Kconfig
index a612846ff05f..7f9b9419a9c1 100644
--- a/src/soc/intel/meteorlake/Kconfig
+++ b/src/soc/intel/meteorlake/Kconfig
@@ -325,6 +325,9 @@ config MRC_CHANNEL_WIDTH
int
default 16
+config SOFTWARE_CONNECTION_MANAGER
+ default y if CHROMEOS
+
config SOC_INTEL_GFX_FRAMEBUFFER_OFFSET
hex
default 0x800000
diff --git a/src/soc/intel/meteorlake/acpi/tcss.asl b/src/soc/intel/meteorlake/acpi/tcss.asl
index 6635d085b4ad..c1360489ea72 100644
--- a/src/soc/intel/meteorlake/acpi/tcss.asl
+++ b/src/soc/intel/meteorlake/acpi/tcss.asl
@@ -155,6 +155,12 @@ Scope (\_SB)
CDW1 |= UNRECOGNIZED_REVISION
}
Return (Arg3)
+#if CONFIG(SOFTWARE_CONNECTION_MANAGER)
+ /*
+ * Software Connection Manager doesn't work with Linux 5.13 or later and
+ * results in TBT ports timing out. Not advertising this results in
+ * Firmware Connection Manager being used and TBT works correctly.
+ */
} ElseIf (Arg0 == ToUUID("23A0D13A-26AB-486C-9C5F-0FFA525A575A")) {
/*
* Operating System Capabilities for USB4
@@ -186,6 +192,7 @@ Scope (\_SB)
INTER_DOMAIN_USB4_INTERNET_PROTOCOL
CDW3 = Local0
Return (Arg3)
+#endif
} Else {
CDW1 |= UNRECOGNIZED_UUID
Return (Arg3)
diff --git a/src/soc/intel/tigerlake/Kconfig b/src/soc/intel/tigerlake/Kconfig
index bcf4a826555e..288bb394629b 100644
--- a/src/soc/intel/tigerlake/Kconfig
+++ b/src/soc/intel/tigerlake/Kconfig
@@ -295,6 +295,9 @@ config MRC_CHANNEL_WIDTH
int
default 16
+config SOFTWARE_CONNECTION_MANAGER
+ default y if CHROMEOS
+
# Intel recommends reserving the following resources per USB4 root port,
# from TGL BIOS Spec (doc #611569) Revision 0.7.6 Section 7.2.5.1.5
# - 42 buses
diff --git a/src/soc/intel/tigerlake/acpi/tcss.asl b/src/soc/intel/tigerlake/acpi/tcss.asl
index b24a9e6464b7..08b348062f31 100644
--- a/src/soc/intel/tigerlake/acpi/tcss.asl
+++ b/src/soc/intel/tigerlake/acpi/tcss.asl
@@ -161,7 +161,7 @@ Scope (\_SB)
CDW1 |= UNRECOGNIZED_REVISION
}
Return (Arg3)
-#if CONFIG(CHROMEOS)
+#if CONFIG(SOFTWARE_CONNECTION_MANAGER)
/*
* Software Connection Manager doesn't work with Linux 5.13 or later and
* results in TBT ports timing out. Not advertising this results in