summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/device/Kconfig24
-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
7 files changed, 48 insertions, 1 deletions
diff --git a/src/device/Kconfig b/src/device/Kconfig
index d0cce77731..1ff14a6571 100644
--- a/src/device/Kconfig
+++ b/src/device/Kconfig
@@ -726,6 +726,30 @@ endif # PCIEXP_HOTPLUG
endif # PCIEXP_PLUGIN_SUPPORT
+choice
+ prompt "Connection Manager"
+ default FIRMWARE_CONNECTION_MANAGER
+ help
+ Software Connection Manager doesn't work with Linux 5.13 or later,
+ resulting in TBT ports timing out. Firmware Connection Manager works
+ correctly.
+
+ Linux patch:
+ torvalds/linux@c6da62a
+ c6da62a219d028de10f2e22e93a34c7ee2b88d03
+
+config FIRMWARE_CONNECTION_MANAGER
+ bool "Firmware Connection Manager"
+ help
+ Disable SCM so that FCM can be used
+
+config SOFTWARE_CONNECTION_MANAGER
+ bool "Software Connection Manager"
+ help
+ Enable SCM so it's used instead of FCM.
+
+endchoice
+
config EARLY_PCI_BRIDGE
bool "Early PCI bridge"
depends on PCI
diff --git a/src/soc/intel/alderlake/Kconfig b/src/soc/intel/alderlake/Kconfig
index 9d950a71b6..1b2f6953ef 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 826c60740a..9edaf77110 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 a612846ff0..7f9b9419a9 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 6635d085b4..c1360489ea 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 bcf4a82655..288bb39462 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 b24a9e6464..08b348062f 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