diff options
author | Jayvik Desai <jayvik@google.com> | 2024-09-23 13:56:26 +0530 |
---|---|---|
committer | Subrata Banik <subratabanik@google.com> | 2024-09-27 05:47:48 +0000 |
commit | 220d8e009ba314d57ffbddbf2f18217dc487a20b (patch) | |
tree | 1e9bf7f59698c073d4c0d494b11695a7a0f9480a | |
parent | 7d8ad558bc87c38fe97c46913c5f0f78a6cb7da5 (diff) |
driver/intel/ish: Add config to indicate the presence of ISH MAIN firmware
This commit introduces a new config DRIVER_INTEL_ISH_HAS_MAIN_FW to
indicate that the Intel Sensor Hub (ISH) is using the ISH MAIN firmware.
The ISH MAIN firmware is located in rootfs, hence we no longer need to
store the ISH BUP version in the CSE partition.
When this config is enabled, fetching the ISH BUP version from the CSE
firmware partition is skipped.
BUG=b:360144613
TEST=Local build successful and tested on trulo by toggling the
config. Enabling this config skips printing the ISH version in cbmem.
Change-Id: I6cacf7b44ce6895ecb96db295d184c7b7d5a872c
Signed-off-by: Jayvik Desai <jayvik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84493
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
-rw-r--r-- | src/drivers/intel/ish/Kconfig | 12 | ||||
-rw-r--r-- | src/drivers/intel/ish/ish.c | 3 | ||||
-rw-r--r-- | src/soc/intel/common/block/cse/cse_lite.c | 2 |
3 files changed, 16 insertions, 1 deletions
diff --git a/src/drivers/intel/ish/Kconfig b/src/drivers/intel/ish/Kconfig index a1544910d4..123452e7e0 100644 --- a/src/drivers/intel/ish/Kconfig +++ b/src/drivers/intel/ish/Kconfig @@ -6,3 +6,15 @@ config DRIVERS_INTEL_ISH help When enabled, chip driver/intel/ish will publish information to the SSDT _DSD table for the ISH device. + +config DRIVER_INTEL_ISH_HAS_MAIN_FW + bool + default n + depends on DRIVERS_INTEL_ISH + help + This config specifies that the Intel Sensor Hub (ISH) is using ISH MAIN firmware. The + ISH MAIN FW resides in the rootfs and is loaded by the kernel. Since there is no dependency + on AP firmware, the ISH BUP version is not fetched from the CSE firmware partition. + + This setting is platform-specific. Enable it only on platforms where the ISH is + confirmed to be using the MAIN firmware. diff --git a/src/drivers/intel/ish/ish.c b/src/drivers/intel/ish/ish.c index d83af4699d..5dd4a799bb 100644 --- a/src/drivers/intel/ish/ish.c +++ b/src/drivers/intel/ish/ish.c @@ -66,6 +66,9 @@ static void intel_ish_get_version(void) static void intel_ish_final(struct device *dev) { + if (CONFIG(DRIVER_INTEL_ISH_HAS_MAIN_FW)) + return; + if (CONFIG(SOC_INTEL_STORE_ISH_FW_VERSION)) intel_ish_get_version(); } diff --git a/src/soc/intel/common/block/cse/cse_lite.c b/src/soc/intel/common/block/cse/cse_lite.c index a7389f8baa..c5f0560d2a 100644 --- a/src/soc/intel/common/block/cse/cse_lite.c +++ b/src/soc/intel/common/block/cse/cse_lite.c @@ -1584,7 +1584,7 @@ static void ramstage_cse_misc_ops(void *unused) * Store the ISH RW Firmware Version into CBMEM if ISH partition * is available */ - if (soc_is_ish_partition_enabled()) + if (!CONFIG(DRIVER_INTEL_ISH_HAS_MAIN_FW) && soc_is_ish_partition_enabled()) store_ish_version(); } |