diff options
author | Subrata Banik <subratabanik@google.com> | 2024-08-13 18:08:56 +0000 |
---|---|---|
committer | Subrata Banik <subratabanik@google.com> | 2024-08-15 06:28:33 +0000 |
commit | 0b2f9c9582af96fa3de82e2e7ab7c4f99119e1a4 (patch) | |
tree | 21bb250b01c1aa505ba04bc0bc74eeb55b1e0ed1 /src/soc/intel/alderlake/chip.c | |
parent | 7de29115893c30832fb136de1d6b2b9d2dc4d968 (diff) |
soc/intel/alderlake: Correct ISH partition availability check
The previous implementation incorrectly assumed that the presence of a
UFS device implied the availability of the ISH partition. This is not
always true, especially on Alder Lake platforms where ISH may be
enabled by default even without UFS.
This patch fixes the issue by directly checking for the presence of the
ISH device to determine if the ISH partition is available.
BUG=b:359440547
TEST=1. Able to dump the ISH version with UFS device:
```
tirwen-rev3 ~ # cbmem -c -1 | grep ISH
[DEBUG] ISH version: 5.4.2.7780
```
2. Able to dump the ISH version with eMMC device:
```
trulo-rev1 ~ # cbmem -c | grep ISH
[DEBUG] ISH version: 5.4.2.7780
```
Change-Id: I411e36606c0697f91050af40e0636f7c64810e95
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83898
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Diffstat (limited to 'src/soc/intel/alderlake/chip.c')
-rw-r--r-- | src/soc/intel/alderlake/chip.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/soc/intel/alderlake/chip.c b/src/soc/intel/alderlake/chip.c index 45fb39f931..8979ae0f65 100644 --- a/src/soc/intel/alderlake/chip.c +++ b/src/soc/intel/alderlake/chip.c @@ -167,16 +167,16 @@ const char *soc_acpi_name(const struct device *dev) /* * SoC override API to identify if ISH Firmware existed inside CSE FPT. * - * SoC with UFS enabled would like to keep ISH enabled as well, hence - * identifying the UFS enabled device is enough to conclude that the ISH - * partition also is available. + * Identifying the ISH enabled device is required to conclude that the ISH + * partition also is available (because ISH may be default enabled for non-UFS + * platforms as well starting with Alder Lake). */ bool soc_is_ish_partition_enabled(void) { - struct device *ufs = pcidev_path_on_root(PCH_DEVFN_UFS); - uint16_t ufs_pci_id = ufs ? pci_read_config16(ufs, PCI_DEVICE_ID) : 0xFFFF; + struct device *ish = pcidev_path_on_root(PCH_DEVFN_ISH); + uint16_t ish_pci_id = ish ? pci_read_config16(ish, PCI_DEVICE_ID) : 0xFFFF; - if (ufs_pci_id == 0xFFFF) + if (ish_pci_id == 0xFFFF) return false; return true; |