diff options
-rw-r--r-- | src/device/Kconfig | 24 | ||||
-rw-r--r-- | src/soc/intel/alderlake/Kconfig | 3 | ||||
-rw-r--r-- | src/soc/intel/alderlake/acpi/tcss.asl | 7 | ||||
-rw-r--r-- | src/soc/intel/meteorlake/Kconfig | 3 | ||||
-rw-r--r-- | src/soc/intel/meteorlake/acpi/tcss.asl | 7 | ||||
-rw-r--r-- | src/soc/intel/tigerlake/Kconfig | 3 | ||||
-rw-r--r-- | src/soc/intel/tigerlake/acpi/tcss.asl | 2 |
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 |