RE: intel_ish_ipc: LOADER_CMD_START rejected (status 10) for every available firmware image on Lenovo ThinkBook 14 2-in-1 G6 IPL (Panther Lake), Zorin OS
"Zhang, Lixu" <[email protected]> Mon, 3 Aug 2026 02:26:13 +0000
| Newsgroups | org.kernel.vger.linux-input |
|---|---|
| Message-ID | <SJ0PR11MB5613CE62B68CA4AD9B1ED33693D52@SJ0PR11MB5613.namprd11.prod.outlook.com> |
Hi Florian, There are two kinds of ISH main firmware images: - Intel-signed images, such as `intel/ish/ish_ptl.bin`. These are released by Intel and carry an Intel signature. - Vendor-signed images, such as `LENOVO/ish/ish_ptl_lenovo_X1_2026_5.8.1.7782.bin` and `dell/ish/ish_ptl_39ceeaf8_581.7783.0.bin`. These are customized by the vendor based on Intel's release, then signed and released by the vendor. On Windows, the same two categories exist. - The Intel-signed image is shipped inside IshHeci. - The vendor-signed image is shipped inside IshHeciExtension(not sure). > Q1. What does loader status 10 mean exactly? It means the firmware image is incorrect. In most cases this is a signature verification failure. > Q2. Does the ISH bootloader version matter? No. There is currently only one loader protocol version, so the bootloader version is not relevant here. What matters is the signing key the bootloader expects. > Q3. Does the Windows IshHeci driver transform, wrap or re-sign the image before loading? No. The firmware image and the way it is loaded are the same between Windows and Linux. > Q4. Is the fragment ACK purely transport-level, or does it validate content? It is purely transport-level. > Q5. What is the path to get one for the ThinkBook line (product_family CRC32 324d1fb6)? If the vendor has not developed a customized ISH firmware for a specific model, they will typically use the Intel-signed image instead. You will need to confirm with vendor which image they use for this machine. Thanks, Lixu From: Florian Gnan <[email protected]> Sent: Sunday, August 2, 2026 8:16 PM To: [email protected] Cc: [email protected]; Zhang, Lixu <[email protected]>; [email protected] Subject: intel_ish_ipc: LOADER_CMD_START rejected (status 10) for every available firmware image on Lenovo ThinkBook 14 2-in-1 G6 IPL (Panther Lake), Zorin OS Hi, the Intel ISH does not start on a Lenovo ThinkBook 14 2-in-1 G6 IPL (Panther Lake). LOADER_CMD_START is rejected with status 10 for every firmware image I can obtain - four images from three independent sources, including the OEM image from Lenovo's own Windows driver package for this exact machine. As a result there are no IIO devices, no ISHTP bus devices, and the convertible's tablet-mode switch (lenovo_ymc) never reports anything. Windows 11 Pro was installed on this exact machine immediately before Linux, and there the ISH worked completely - tablet mode switching and display auto-rotation both functional. So the hardware is fine, the ISH is not disabled by the platform, and the same bootloader (5.8.1.7768) does accept a firmware load under Windows. This looks related to the earlier report "intel_ish_ipc: loader failure on Lunar Lake" [1], where Lixu Zhang explained that status 10 means the firmware file is detected as incorrect, and vendors were asked to upstream their firmware. Here the vendor firmware is available and is still rejected, and so is everything else - which suggests the problem is not "the wrong image" but that this ISH accepts no host-loaded image at all under the current loader. System ------ Model : Lenovo ThinkBook 14 2-in-1 G6 IPL (MT 22AR) DMI sys_vendor : LENOVO (CRC32 53c4ffad) DMI product_family: ThinkBook 14 2-in-1 G6 IPL (CRC32 324d1fb6) DMI product_name : 22AR (CRC32 308e9054) BIOS : U1CN07WW, 02/26/2026 (latest; nothing newer on LVFS) EC firmware : 1.7 ISH PCI device : 8086:e445 rev 01, subsystem 17aa:3843, driver intel_ish_ipc OS : Zorin OS 18.1 (Ubuntu 24.04 base) Kernel : 7.0.0-28-generic (Ubuntu HWE 7.0) linux-firmware : 20240318.git3b128b60-0ubuntu2.27 Log (booted with intel_ishtp.dyndbg=+p) --------------------------------------- intel_ish_ipc 0000:00:12.0: Going to wait for ishtp start. hbm_state=00000000 intel_ish_ipc 0000:00:12.0: ISH loader: Try to load firmware: intel/ish/ish_ptl_53c4ffad_324d1fb6_308e9054_dd59d3b3.bin intel_ish_ipc 0000:00:12.0: Woke up from waiting for ishtp start. hbm_state=00000003 intel_ish_ipc 0000:00:12.0: ISH loader: Try to load firmware: intel/ish/ish_ptl_53c4ffad_324d1fb6_dd59d3b3.bin intel_ish_ipc 0000:00:12.0: ISH loader: Try to load firmware: intel/ish/ish_ptl_53c4ffad_324d1fb6_308e9054.bin intel_ish_ipc 0000:00:12.0: ISH loader: Try to load firmware: intel/ish/ish_ptl_53c4ffad_324d1fb6.bin intel_ish_ipc 0000:00:12.0: ISH loader: load firmware: intel/ish/ish_ptl_53c4ffad_324d1fb6.bin intel_ish_ipc 0000:00:12.0: ISH loader: ISH Bootloader Version 5.8.1.7768 intel_ish_ipc 0000:00:12.0: ISH loader: cmd 2 failed 10 (bootloader version + failure repeat three times, once per retry) LOADER_CMD_XFER_QUERY and LOADER_CMD_XFER_FRAGMENT both succeed; only LOADER_CMD_START is rejected. "firmware loaded" and the FW base/project version lines are therefore never reached. Firmware images tried (all: cmd 2 failed 10) -------------------------------------------- 1. intel/ish/ish_ptl.bin from linux-firmware 5.8.1.7778, 920064 bytes, manifest vendor 8086 2. OEM image for this exact machine, 5.8.1.7779, 920064 bytes, md5 98b8ade6fe26d777f639a5db96eae6d7, manifest vendor 8086. Extracted from Lenovo's "Intel ISH Software" driver package for the ThinkBook 14 2-in-1 G6 IPL (package version 5.8.56.0), file IshHeci/x64/FWImage/0004/ishS_SI_5.8.1.7779.bin. Valid $CPD/ISHM header; contains the sensor descriptors "Tablet Mode", "Hinge Angle", "Simple Orientation", "Physical Accelerometer", "Physical Gyrometer" and the chip names BMA422, BMI260, BMI263, BMI323, KX9xx. 3. LENOVO/ish/ish_ptl_lenovo_X1_2026_5.8.1.7782.bin from current linux-firmware, 858624 bytes - same vendor, newer, and from a convertible (ThinkPad X1 2-in-1 Gen 11). 4. dell/ish/ish_ptl_39ceeaf8_581.7783.0.bin from current linux-firmware, 776704 bytes, 5.8.1.7783 - the newest PTL image available anywhere. Manifest comparison of the four images: all carry SVN 1 and VCN 21, so an anti-rollback / security-version floor would have to reject all of them equally - including the one that demonstrably works under Windows. Ruled out --------- - Firmware naming. The cascade behaves exactly as documented; installing an image under the vendor+product_family name makes the loader pick that one and stop. Both the generic and the specific name were tried. - initramfs. The image is present in the initramfs and the log confirms the intended file is the one actually loaded. - Image origin or signing. Four images, three sources; three carry an Intel (8086) manifest vendor, so OEM-specific signing keys are not the discriminator. - DMA address translation. ishtp_loader_work() hardcodes LOADER_XFER_MODE_DMA, and the ISH device sits in an IOMMU group, so I suspected the ISH was reading untranslated addresses and assembling a corrupt image. Booting with intel_iommu=off changes nothing. - BIOS. No ISH or sensor-hub related setting exists; all 31 attributes exposed through think_lmi were checked. Secure Boot is disabled. The BIOS is the latest available. - Kernel age. The most recent loader change (043251b2d, "Add PRODUCT_FAMILY-based firmware matching", 2025-12-22) is present in this kernel - the family-CRC names in the log above prove it. - Stale state. Every test was done from a cold boot; reloading intel_ish_ipc leaves the ISH unresponsive ("cmd 0 failed 6"), so warm retries were never used for any of the results above. Questions --------- 1. What does loader status 10 mean exactly? The values are produced by the ISH bootloader and are not documented in loader.h. Is there a list? 2. Does the ISH bootloader version matter? Here it is 5.8.1.7768, older than every image available (7778...7783), on a BIOS from 02/2026. Is a bootloader/image version pairing expected, and if so, where would a matching image come from? 3. Since the ISH demonstrably works under Windows on this machine: does the Windows IshHeci driver transform, wrap or re-sign the image before loading, or perform any step in the load sequence that the kernel loader does not? 4. LOADER_CMD_XFER_FRAGMENT is acknowledged even though START then rejects the image. Is the fragment ACK purely transport-level, or does it validate content? In other words, can I distinguish "the image arrived corrupt" from "the image arrived intact but was refused"? 5. If per-model OEM firmware is required after all: linux-firmware has LENOVO/ish entries only for ThinkPad X1/X9. What is the path to get one for the ThinkBook line (product_family CRC32 324d1fb6)? Happy to run any diagnostic patch, enable additional tracing, or dump further data. Thanks, Florian Gnan