Martin L Roth has submitted this change. ( https://review.coreboot.org/c/coreboot/+/81418?usp=email )
Change subject: mb/google/brox: Configure ISH device based on FW_CONFIG ......................................................................
mb/google/brox: Configure ISH device based on FW_CONFIG
ISH Firmware name needs to be configured only when full sensing capabilities are enabled through ISH_ENABLE FW_CONFIG. Similarly DMA property needs to be added only when UFS is enabled through STORAGE_UFS FW_CONFIG. Hence configure the ISH device at run-time based on FW_CONFIG.
BUG=b:319164720 TEST=Build Brox BIOS image and boot to OS.
Change-Id: I678416acd48e03ab77ae299beae6e295a688b8df Signed-off-by: Karthikeyan Ramasubramanian kramasub@google.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/81418 Reviewed-by: Varshit Pandya pandyavarshit@gmail.com Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Eric Lai ericllai@google.com --- M src/mainboard/google/brox/variants/brox/fw_config.c M src/mainboard/google/brox/variants/brox/overridetree.cb 2 files changed, 14 insertions(+), 4 deletions(-)
Approvals: Varshit Pandya: Looks good to me, but someone else must approve Eric Lai: Looks good to me, approved build bot (Jenkins): Verified
diff --git a/src/mainboard/google/brox/variants/brox/fw_config.c b/src/mainboard/google/brox/variants/brox/fw_config.c index 162f4a1..d8fd44d 100644 --- a/src/mainboard/google/brox/variants/brox/fw_config.c +++ b/src/mainboard/google/brox/variants/brox/fw_config.c @@ -1,10 +1,12 @@ /* SPDX-License-Identifier: GPL-2.0-only */
#include <bootstate.h> +#include <drivers/intel/ish/chip.h> #include <fw_config.h> #include <gpio.h>
#define GPIO_PADBASED_OVERRIDE(b, a) gpio_padbased_override(b, a, ARRAY_SIZE(a)) +#define ISH_FIRMWARE_NAME "brox_ish.bin"
static const struct pad_config ish_enable_pads[] = { /* GPP_B5 : ISH I2C0_SDA */ @@ -27,9 +29,19 @@
static void fw_config_handle(void *unused) { + struct device *ish_config_device = DEV_PTR(ish_conf); + struct drivers_intel_ish_config *config = config_of(ish_config_device); + if (fw_config_probe(FW_CONFIG(ISH, ISH_ENABLE))) { - printk(BIOS_INFO, "Configure GPIOs for ISH.\n"); + printk(BIOS_INFO, "Configure GPIOs, device config for ISH.\n"); gpio_configure_pads(ish_enable_pads, ARRAY_SIZE(ish_enable_pads)); + + config->firmware_name = ISH_FIRMWARE_NAME; + } + + if (fw_config_probe(FW_CONFIG(STORAGE, STORAGE_UFS))) { + printk(BIOS_INFO, "Configure GPIOs, device config for UFS.\n"); + config->add_acpi_dma_property = true; } } BOOT_STATE_INIT_ENTRY(BS_DEV_ENABLE, BS_ON_ENTRY, fw_config_handle, NULL); diff --git a/src/mainboard/google/brox/variants/brox/overridetree.cb b/src/mainboard/google/brox/variants/brox/overridetree.cb index 2c4335b..7b00098 100644 --- a/src/mainboard/google/brox/variants/brox/overridetree.cb +++ b/src/mainboard/google/brox/variants/brox/overridetree.cb @@ -300,9 +300,7 @@ end device ref ish on chip drivers/intel/ish - register "firmware_name" = ""brox_ish.bin"" - register "add_acpi_dma_property" = "true" - device generic 0 on end + device generic 0 alias ish_conf on end end probe ISH ISH_ENABLE probe STORAGE STORAGE_UFS