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>
This commit is contained in:
parent
ae5bc43d3b
commit
060df17f1d
|
@ -726,6 +726,30 @@ endif # PCIEXP_HOTPLUG
|
||||||
|
|
||||||
endif # PCIEXP_PLUGIN_SUPPORT
|
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
|
config EARLY_PCI_BRIDGE
|
||||||
bool "Early PCI bridge"
|
bool "Early PCI bridge"
|
||||||
depends on PCI
|
depends on PCI
|
||||||
|
|
|
@ -426,6 +426,9 @@ config ACPI_ADL_IPU_ES_SUPPORT
|
||||||
help
|
help
|
||||||
Enables ACPI entry to provide silicon type information to IPU kernel driver.
|
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
|
config ALDERLAKE_ENABLE_SOC_WORKAROUND
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
|
@ -161,6 +161,12 @@ Scope (\_SB)
|
||||||
CDW1 |= UNRECOGNIZED_REVISION
|
CDW1 |= UNRECOGNIZED_REVISION
|
||||||
}
|
}
|
||||||
Return (Arg3)
|
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")) {
|
} ElseIf (Arg0 == ToUUID("23A0D13A-26AB-486C-9C5F-0FFA525A575A")) {
|
||||||
/*
|
/*
|
||||||
* Operating System Capabilities for USB4
|
* Operating System Capabilities for USB4
|
||||||
|
@ -192,6 +198,7 @@ Scope (\_SB)
|
||||||
INTER_DOMAIN_USB4_INTERNET_PROTOCOL
|
INTER_DOMAIN_USB4_INTERNET_PROTOCOL
|
||||||
CDW3 = Local0
|
CDW3 = Local0
|
||||||
Return (Arg3)
|
Return (Arg3)
|
||||||
|
#endif
|
||||||
} Else {
|
} Else {
|
||||||
CDW1 |= UNRECOGNIZED_UUID
|
CDW1 |= UNRECOGNIZED_UUID
|
||||||
Return (Arg3)
|
Return (Arg3)
|
||||||
|
|
|
@ -325,6 +325,9 @@ config MRC_CHANNEL_WIDTH
|
||||||
int
|
int
|
||||||
default 16
|
default 16
|
||||||
|
|
||||||
|
config SOFTWARE_CONNECTION_MANAGER
|
||||||
|
default y if CHROMEOS
|
||||||
|
|
||||||
config SOC_INTEL_GFX_FRAMEBUFFER_OFFSET
|
config SOC_INTEL_GFX_FRAMEBUFFER_OFFSET
|
||||||
hex
|
hex
|
||||||
default 0x800000
|
default 0x800000
|
||||||
|
|
|
@ -155,6 +155,12 @@ Scope (\_SB)
|
||||||
CDW1 |= UNRECOGNIZED_REVISION
|
CDW1 |= UNRECOGNIZED_REVISION
|
||||||
}
|
}
|
||||||
Return (Arg3)
|
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")) {
|
} ElseIf (Arg0 == ToUUID("23A0D13A-26AB-486C-9C5F-0FFA525A575A")) {
|
||||||
/*
|
/*
|
||||||
* Operating System Capabilities for USB4
|
* Operating System Capabilities for USB4
|
||||||
|
@ -186,6 +192,7 @@ Scope (\_SB)
|
||||||
INTER_DOMAIN_USB4_INTERNET_PROTOCOL
|
INTER_DOMAIN_USB4_INTERNET_PROTOCOL
|
||||||
CDW3 = Local0
|
CDW3 = Local0
|
||||||
Return (Arg3)
|
Return (Arg3)
|
||||||
|
#endif
|
||||||
} Else {
|
} Else {
|
||||||
CDW1 |= UNRECOGNIZED_UUID
|
CDW1 |= UNRECOGNIZED_UUID
|
||||||
Return (Arg3)
|
Return (Arg3)
|
||||||
|
|
|
@ -295,6 +295,9 @@ config MRC_CHANNEL_WIDTH
|
||||||
int
|
int
|
||||||
default 16
|
default 16
|
||||||
|
|
||||||
|
config SOFTWARE_CONNECTION_MANAGER
|
||||||
|
default y if CHROMEOS
|
||||||
|
|
||||||
# Intel recommends reserving the following resources per USB4 root port,
|
# 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
|
# from TGL BIOS Spec (doc #611569) Revision 0.7.6 Section 7.2.5.1.5
|
||||||
# - 42 buses
|
# - 42 buses
|
||||||
|
|
|
@ -161,7 +161,7 @@ Scope (\_SB)
|
||||||
CDW1 |= UNRECOGNIZED_REVISION
|
CDW1 |= UNRECOGNIZED_REVISION
|
||||||
}
|
}
|
||||||
Return (Arg3)
|
Return (Arg3)
|
||||||
#if CONFIG(CHROMEOS)
|
#if CONFIG(SOFTWARE_CONNECTION_MANAGER)
|
||||||
/*
|
/*
|
||||||
* Software Connection Manager doesn't work with Linux 5.13 or later and
|
* Software Connection Manager doesn't work with Linux 5.13 or later and
|
||||||
* results in TBT ports timing out. Not advertising this results in
|
* results in TBT ports timing out. Not advertising this results in
|
||||||
|
|
Loading…
Reference in New Issue