mb/google/fatcat/var/moonstone: Update fw_config definitions with UFSC
Enable Unified Firmware and Secondary Source Configuration (UFSC) support for moonstone. UFSC standardizes the bitfields and bitmap definitions for firmware configuration. Update coreboot code with new UFSC definitions and enable EC_GOOGLE_CHROMEEC_FW_CONFIG_FROM_UFSC. BUG=b:464077440 TEST=emerge-fatcat coreboot depthcharge chromeos-bootimage BRANCH=none Change-Id: I8ecd9accb4ad09aae3a6fb9e3f92d8d0a3c9bb9c Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/90258 Reviewed-by: Bob Moragues <moragues@google.com> Reviewed-by: Subrata Banik <subratabanik@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
2ce4e09469
commit
796d3b37aa
4 changed files with 70 additions and 61 deletions
|
|
@ -147,6 +147,7 @@ config BOARD_GOOGLE_LAPIS
|
|||
config BOARD_GOOGLE_MOONSTONE
|
||||
select BOARD_GOOGLE_BASEBOARD_FATCAT
|
||||
select DRIVERS_SOUNDWIRE_ALC1320
|
||||
select EC_GOOGLE_CHROMEEC_FW_CONFIG_FROM_UFSC
|
||||
select FSP_UGOP_EARLY_SIGN_OF_LIFE
|
||||
select HAVE_SLP_S0_GATE
|
||||
select MAINBOARD_HAS_GOOGLE_STRAUSS_KEYBOARD
|
||||
|
|
|
|||
|
|
@ -77,17 +77,6 @@ static const struct pad_config pre_mem_fp_spi_enable_pads[] = {
|
|||
PAD_CFG_GPO(GPP_C15, 0, DEEP),
|
||||
};
|
||||
|
||||
static const struct pad_config touchscreen_disable_pads[] = {
|
||||
/* GPP_F08: EN_TCHSCR_PWR => NC */
|
||||
PAD_NC(GPP_F08, NONE),
|
||||
/* GPP_F16: TCHSCR_RST_L => NC */
|
||||
PAD_NC(GPP_F16, NONE),
|
||||
/* GPP_F18: TCHSCR_INT_L => NC */
|
||||
PAD_NC(GPP_F18, NONE),
|
||||
/* GPP_E05: TCHSCR_RPT_EN => NC */
|
||||
PAD_NC(GPP_E05, NONE),
|
||||
};
|
||||
|
||||
void fw_config_configure_pre_mem_gpio(void)
|
||||
{
|
||||
if (!fw_config_is_provisioned()) {
|
||||
|
|
@ -95,7 +84,7 @@ void fw_config_configure_pre_mem_gpio(void)
|
|||
return;
|
||||
}
|
||||
|
||||
if (fw_config_probe(FW_CONFIG(FPMCU, FP_SPI)))
|
||||
if (fw_config_probe(FW_CONFIG(FINGERPRINT_INTERFACE, FINGERPRINT_INTERFACE_SPI)))
|
||||
GPIO_CONFIGURE_PADS(pre_mem_fp_spi_enable_pads);
|
||||
|
||||
}
|
||||
|
|
@ -113,7 +102,7 @@ void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
|
|||
*| FPMCU | GSPI0 | usb2_port6 |
|
||||
*+-------+--------+-------------+
|
||||
*/
|
||||
if (fw_config_probe(FW_CONFIG(FPMCU, FP_SPI))) {
|
||||
if (fw_config_probe(FW_CONFIG(FINGERPRINT_INTERFACE, FINGERPRINT_INTERFACE_SPI))) {
|
||||
GPIO_PADBASED_OVERRIDE(padbased_table, fp_spi_enable_pads);
|
||||
} else {
|
||||
GPIO_PADBASED_OVERRIDE(padbased_table, fp_spi_disable_pads);
|
||||
|
|
@ -121,10 +110,10 @@ void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
|
|||
/* Probe fw_config : "IO_PORT" to reconfigure port settings accordingly.
|
||||
* proto0 : IO_PORT => "USB2A2C_HDMI:0"
|
||||
* porot1.5: IO_PORT => "USB3C:1"
|
||||
* +-----------------+------------------+------------------+
|
||||
*+-----------------+------------------+------------------+
|
||||
*| IO_PORT | USB2A2C_HDMI | USB3C |
|
||||
*+-----------------+------------------+------------------+
|
||||
*| tcss_usb3_port0 | USB4_C0 (MB-TBT) | USB4_C0 (MB-TBT) |
|
||||
*| tcss_usb3_port0 | USB4_C0 (MB-TBT) | USB4_C0 (MB) |
|
||||
*+-----------------+------------------+------------------+
|
||||
*| tcss_usb3_port1 | N/A | USB3.2 C2 (DB) |
|
||||
*+-----------------+------------------+------------------+
|
||||
|
|
@ -141,11 +130,8 @@ void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
|
|||
*| usb2_port6 | USB2_A1 | USB_FP |
|
||||
*+-----------------+------------------+------------------+
|
||||
*/
|
||||
if (fw_config_probe(FW_CONFIG(IO_PORT, USB3C)))
|
||||
if (fw_config_probe(FW_CONFIG(AP_OEM_2BIT_FIELD0, IO_BOARD_USB3C)))
|
||||
GPIO_PADBASED_OVERRIDE(padbased_table, use_usb3c_enable_pads);
|
||||
else
|
||||
GPIO_PADBASED_OVERRIDE(padbased_table, use_usb2a2c_hdmi_enable_pads);
|
||||
|
||||
if (fw_config_probe(FW_CONFIG(TOUCH_SCREEN, ABSENCE)))
|
||||
GPIO_PADBASED_OVERRIDE(padbased_table, touchscreen_disable_pads);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,24 +1,45 @@
|
|||
fw_config
|
||||
field WIFI 2 2
|
||||
option WIFI_CNVI_7 0
|
||||
field AUDIO_CODEC 0 2
|
||||
option AUDIO_CODEC_UNKNOWN 0
|
||||
option AUDIO_CODEC_ALC721 1
|
||||
end
|
||||
field AUDIO 3 5
|
||||
option AUDIO_UNKNOWN 0
|
||||
option AUDIO_ALC721_SNDW 1
|
||||
option AUDIO_ALC1320_ALC721_SNDW 2
|
||||
field AUDIO_AMPLIFIER 3 5
|
||||
option AUDIO_AMPLIFIER_UNKNOWN 0
|
||||
option AUDIO_AMPLIFIER_ALC1320 1
|
||||
end
|
||||
field FPMCU 6 7
|
||||
option FP_ABSENT 0
|
||||
option FP_SPI 1
|
||||
option FP_USB 2
|
||||
field STORAGE_TYPE 12 14
|
||||
option STORAGE_TYPE_UNKNOWN 0
|
||||
option STORAGE_TYPE_NVME_GEN4 1
|
||||
end
|
||||
field IO_PORT 12 12
|
||||
option USB2A2C_HDMI 0
|
||||
option USB3C 1
|
||||
field SENSOR_HUB_PRESENT 23 23
|
||||
option ISH_ABSENT 0
|
||||
option ISH_PRESENT 1
|
||||
end
|
||||
field TOUCH_SCREEN 13 13
|
||||
option ABSENCE 0
|
||||
option PRESENCE 1
|
||||
field FINGERPRINT_INTERFACE 24 25
|
||||
option FINGERPRINT_INTERFACE_UNKNOWN 0
|
||||
option FINGERPRINT_INTERFACE_SPI 1
|
||||
option FINGERPRINT_INTERFACE_USB 2
|
||||
end
|
||||
field WIFI_INTERFACE 26 27
|
||||
option WIFI_INTERFACE_UNKNOWN 0
|
||||
option WIFI_INTERFACE_CNVI 1
|
||||
end
|
||||
field FORM_FACTOR 30 31
|
||||
option FORM_FACTOR_UNKNOWN 0
|
||||
option FORM_FACTOR_CLAMSHELL 1
|
||||
option FORM_FACTOR_CONVERTIBLE 2
|
||||
end
|
||||
field KB_BACKLIGHT_PRESENT 43 43
|
||||
option KB_BACKLIGHT_ABSENT 0
|
||||
option KB_BACKLIGHT_PRESENT 1
|
||||
end
|
||||
field KEYBOARD_LAYOUT 45 47
|
||||
option KEYBOARD_LAYOUT_DEFAULT 0
|
||||
option KEYBOARD_LAYOUT_CA_FR 1
|
||||
end
|
||||
field AP_OEM_2BIT_FIELD0 59 60
|
||||
option IO_BOARD_USB2A2C_HDMI 0
|
||||
option IO_BOARD_USB3C 1
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -222,9 +243,11 @@ chip soc/intel/pantherlake
|
|||
|
||||
device ref iaa off end
|
||||
device ref tbt_pcie_rp2 on
|
||||
probe IO_PORT USB2A2C_HDMI
|
||||
probe AP_OEM_2BIT_FIELD0 IO_BOARD_USB2A2C_HDMI
|
||||
end
|
||||
device ref tbt_pcie_rp3 on
|
||||
probe AP_OEM_2BIT_FIELD0 IO_BOARD_USB3C
|
||||
end
|
||||
device ref tbt_pcie_rp3 on end
|
||||
device ref tcss_xhci on
|
||||
chip drivers/usb/acpi
|
||||
device ref tcss_root_hub on
|
||||
|
|
@ -239,7 +262,7 @@ chip soc/intel/pantherlake
|
|||
register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
|
||||
register "group" = "ACPI_PLD_GROUP(3, 2)"
|
||||
device ref tcss_usb3_port1 on
|
||||
probe IO_PORT USB3C
|
||||
probe AP_OEM_2BIT_FIELD0 IO_BOARD_USB3C
|
||||
end
|
||||
end
|
||||
chip drivers/usb/acpi
|
||||
|
|
@ -247,7 +270,7 @@ chip soc/intel/pantherlake
|
|||
register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
|
||||
register "group" = "ACPI_PLD_GROUP(2, 2)"
|
||||
device ref tcss_usb3_port2 on
|
||||
probe IO_PORT USB2A2C_HDMI
|
||||
probe AP_OEM_2BIT_FIELD0 IO_BOARD_USB2A2C_HDMI
|
||||
end
|
||||
end
|
||||
chip drivers/usb/acpi
|
||||
|
|
@ -255,7 +278,7 @@ chip soc/intel/pantherlake
|
|||
register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
|
||||
register "group" = "ACPI_PLD_GROUP(2, 2)"
|
||||
device ref tcss_usb3_port3 on
|
||||
probe IO_PORT USB3C
|
||||
probe AP_OEM_2BIT_FIELD0 IO_BOARD_USB3C
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -267,14 +290,14 @@ chip soc/intel/pantherlake
|
|||
register "dfp[0].power_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B21)"
|
||||
use tcss_usb3_port2 as dfp[0].typec_port
|
||||
device generic 0 on
|
||||
probe IO_PORT USB2A2C_HDMI
|
||||
probe AP_OEM_2BIT_FIELD0 IO_BOARD_USB2A2C_HDMI
|
||||
end
|
||||
end
|
||||
chip drivers/intel/usb4/retimer
|
||||
register "dfp[0].power_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B21)"
|
||||
use tcss_usb3_port3 as dfp[0].typec_port
|
||||
device generic 0 on
|
||||
probe IO_PORT USB3C
|
||||
probe AP_OEM_2BIT_FIELD0 IO_BOARD_USB3C
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -306,7 +329,7 @@ chip soc/intel/pantherlake
|
|||
register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
|
||||
register "group" = "ACPI_PLD_GROUP(3, 1)"
|
||||
device ref usb2_port5 on
|
||||
probe IO_PORT USB3C
|
||||
probe AP_OEM_2BIT_FIELD0 IO_BOARD_USB3C
|
||||
end
|
||||
end
|
||||
chip drivers/usb/acpi
|
||||
|
|
@ -321,7 +344,7 @@ chip soc/intel/pantherlake
|
|||
register "type" = "UPC_TYPE_A"
|
||||
register "group" = "ACPI_PLD_GROUP(3, 1)"
|
||||
device ref usb2_port5 on
|
||||
probe IO_PORT USB2A2C_HDMI
|
||||
probe AP_OEM_2BIT_FIELD0 IO_BOARD_USB2A2C_HDMI
|
||||
end
|
||||
end
|
||||
chip drivers/usb/acpi
|
||||
|
|
@ -329,7 +352,7 @@ chip soc/intel/pantherlake
|
|||
register "type" = "UPC_TYPE_A"
|
||||
register "group" = "ACPI_PLD_GROUP(4, 1)"
|
||||
device ref usb2_port6 on
|
||||
probe IO_PORT USB2A2C_HDMI
|
||||
probe AP_OEM_2BIT_FIELD0 IO_BOARD_USB2A2C_HDMI
|
||||
end
|
||||
end
|
||||
chip drivers/usb/acpi
|
||||
|
|
@ -338,7 +361,7 @@ chip soc/intel/pantherlake
|
|||
register "has_power_resource" = "true"
|
||||
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E19)"
|
||||
device ref usb2_port6 on
|
||||
probe FPMCU FP_USB
|
||||
probe FINGERPRINT_INTERFACE FINGERPRINT_INTERFACE_USB
|
||||
end
|
||||
end
|
||||
chip drivers/usb/acpi
|
||||
|
|
@ -346,7 +369,7 @@ chip soc/intel/pantherlake
|
|||
register "type" = "UPC_TYPE_USB3_A"
|
||||
register "group" = "ACPI_PLD_GROUP(3, 2)"
|
||||
device ref usb3_port1 on
|
||||
probe IO_PORT USB2A2C_HDMI
|
||||
probe AP_OEM_2BIT_FIELD0 IO_BOARD_USB2A2C_HDMI
|
||||
end
|
||||
end
|
||||
chip drivers/usb/acpi
|
||||
|
|
@ -354,7 +377,7 @@ chip soc/intel/pantherlake
|
|||
register "type" = "UPC_TYPE_USB3_A"
|
||||
register "group" = "ACPI_PLD_GROUP(4, 2)"
|
||||
device ref usb3_port2 on
|
||||
probe IO_PORT USB2A2C_HDMI
|
||||
probe AP_OEM_2BIT_FIELD0 IO_BOARD_USB2A2C_HDMI
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -432,7 +455,6 @@ chip soc/intel/pantherlake
|
|||
end
|
||||
end # I2C4
|
||||
device ref i2c5 on
|
||||
probe TOUCH_SCREEN PRESENCE
|
||||
chip drivers/i2c/hid
|
||||
register "generic.hid" = ""ELAN9004""
|
||||
register "generic.desc" = ""ELAN Touchscreen""
|
||||
|
|
@ -467,7 +489,7 @@ chip soc/intel/pantherlake
|
|||
end
|
||||
end # I2C5
|
||||
device ref gspi0 on
|
||||
probe FPMCU FP_SPI
|
||||
probe FINGERPRINT_INTERFACE FINGERPRINT_INTERFACE_SPI
|
||||
chip drivers/spi/acpi
|
||||
register "name" = ""CRFP""
|
||||
register "hid" = "ACPI_DT_NAMESPACE_HID"
|
||||
|
|
@ -481,15 +503,15 @@ chip soc/intel/pantherlake
|
|||
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E19)"
|
||||
register "enable_delay_ms" = "3"
|
||||
device spi 0 on
|
||||
probe FPMCU FP_SPI
|
||||
probe FINGERPRINT_INTERFACE FINGERPRINT_INTERFACE_SPI
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
device ref smbus on end
|
||||
device ref hda on
|
||||
probe AUDIO AUDIO_ALC721_SNDW
|
||||
probe AUDIO AUDIO_ALC1320_ALC721_SNDW
|
||||
probe AUDIO_CODEC AUDIO_CODEC_ALC721
|
||||
probe AUDIO_AMPLIFIER AUDIO_AMPLIFIER_ALC1320
|
||||
chip drivers/intel/soundwire
|
||||
device generic 0 on
|
||||
chip drivers/soundwire/alc711
|
||||
|
|
@ -500,8 +522,8 @@ chip soc/intel/pantherlake
|
|||
register "disable_clkstop_sm_support" = "true"
|
||||
# SoundWire Link 3 ID 1
|
||||
device generic 3.1 on
|
||||
probe AUDIO AUDIO_ALC721_SNDW
|
||||
probe AUDIO AUDIO_ALC1320_ALC721_SNDW
|
||||
probe AUDIO_CODEC AUDIO_CODEC_ALC721
|
||||
probe AUDIO_AMPLIFIER AUDIO_AMPLIFIER_ALC1320
|
||||
end
|
||||
end
|
||||
chip drivers/soundwire/alc1320
|
||||
|
|
@ -511,7 +533,7 @@ chip soc/intel/pantherlake
|
|||
register "alc1320_address.part_id" = "MIPI_DEV_ID_REALTEK_ALC1320"
|
||||
# SoundWire Link 3 ID 2
|
||||
device generic 3.2 on
|
||||
probe AUDIO AUDIO_ALC1320_ALC721_SNDW
|
||||
probe AUDIO_AMPLIFIER AUDIO_AMPLIFIER_ALC1320
|
||||
end # ALC1320 Smart Amp
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
const char *get_wifi_sar_cbfs_filename(void)
|
||||
{
|
||||
return get_wifi_sar_fw_config_filename(FW_CONFIG_FIELD(WIFI));
|
||||
return get_wifi_sar_fw_config_filename(FW_CONFIG_FIELD(WIFI_INTERFACE));
|
||||
}
|
||||
|
||||
void variant_update_soc_chip_config(struct soc_intel_pantherlake_config *config)
|
||||
|
|
@ -20,7 +20,7 @@ void variant_update_soc_chip_config(struct soc_intel_pantherlake_config *config)
|
|||
*| FPMCU | GSPI0 | usb2_port6 |
|
||||
*+-------+--------+-------------+
|
||||
*/
|
||||
if (fw_config_probe(FW_CONFIG(FPMCU, FP_USB))) {
|
||||
if (fw_config_probe(FW_CONFIG(FINGERPRINT_INTERFACE, FINGERPRINT_INTERFACE_USB))) {
|
||||
printk(BIOS_INFO, "Disable GSPI\n");
|
||||
config->serial_io_gspi_mode[PchSerialIoIndexGSPI0] = PchSerialIoDisabled;
|
||||
printk(BIOS_INFO, "usb2_port6 to FP\n");
|
||||
|
|
@ -29,10 +29,10 @@ void variant_update_soc_chip_config(struct soc_intel_pantherlake_config *config)
|
|||
/* Probe fw_config : "IO_PORT" to reconfigure port settings accordingly.
|
||||
* proto0 : IO_PORT => "USB2A2C_HDMI:0"
|
||||
* porot1.5: IO_PORT => "USB3C:1"
|
||||
* +-----------------+------------------+------------------+
|
||||
*+-----------------+------------------+------------------+
|
||||
*| IO_PORT | USB2A2C_HDMI | USB3C |
|
||||
*+-----------------+------------------+------------------+
|
||||
*| tcss_usb3_port0 | USB4_C0 (MB-TBT) | USB4_C0 (MB-TBT) |
|
||||
*| tcss_usb3_port0 | USB4_C0 (MB-TBT) | USB4_C0 (MB) |
|
||||
*+-----------------+------------------+------------------+
|
||||
*| tcss_usb3_port1 | N/A | USB3.2 C2 (DB) |
|
||||
*+-----------------+------------------+------------------+
|
||||
|
|
@ -50,7 +50,7 @@ void variant_update_soc_chip_config(struct soc_intel_pantherlake_config *config)
|
|||
*+-----------------+------------------+------------------+
|
||||
*/
|
||||
|
||||
if (fw_config_probe(FW_CONFIG(IO_PORT, USB3C))) {
|
||||
if (fw_config_probe(FW_CONFIG(AP_OEM_2BIT_FIELD0, IO_BOARD_USB3C))) {
|
||||
printk(BIOS_INFO, "Disable Type-A Port A0/A1\n");
|
||||
config->usb3_ports[0] = (struct usb3_port_config) USB3_PORT_EMPTY;
|
||||
config->usb3_ports[1] = (struct usb3_port_config) USB3_PORT_EMPTY;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue