summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJayvik Desai <jayvik@google.com>2024-09-23 13:56:26 +0530
committerSubrata Banik <subratabanik@google.com>2024-09-27 05:47:48 +0000
commit220d8e009ba314d57ffbddbf2f18217dc487a20b (patch)
tree1e9bf7f59698c073d4c0d494b11695a7a0f9480a
parent7d8ad558bc87c38fe97c46913c5f0f78a6cb7da5 (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/Kconfig12
-rw-r--r--src/drivers/intel/ish/ish.c3
-rw-r--r--src/soc/intel/common/block/cse/cse_lite.c2
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();
}