summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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();
}