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>
This commit is contained in:
Jayvik Desai 2024-09-23 13:56:26 +05:30 committed by Subrata Banik
commit 220d8e009b
3 changed files with 16 additions and 1 deletions

View file

@ -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.

View file

@ -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();
}

View file

@ -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();
}