[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <703b926724cb988d9a5724cdc238c5c81b4de886.camel@linux.intel.com>
Date: Tue, 23 Dec 2025 08:26:12 -0800
From: srinivas pandruvada <srinivas.pandruvada@...ux.intel.com>
To: Vishnu Sankar <vishnuocv@...il.com>, jikos@...nel.org,
bentiss@...nel.org, corbet@....net, vsankar@...ovo.com
Cc: linux-doc@...r.kernel.org, linux-input@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 2/2] Documentation: hid: intel-ish-hid: Document
PRODUCT_FAMILY firmware matching
On Mon, 2025-12-22 at 17:05 +0900, Vishnu Sankar wrote:
> Document the ISH firmware filename matching rules, including the
> new PRODUCT_FAMILY-based patterns and their search order.
>
> This aligns the documentation with the driver behavior and provides
> clear guidance for vendors supplying custom ISH firmware.
>
> Signed-off-by: Vishnu Sankar <vishnuocv@...il.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@...ux.intel.com>
> ---
> Documentation/hid/intel-ish-hid.rst | 19 ++++++++++++++-----
> 1 file changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/Documentation/hid/intel-ish-hid.rst
> b/Documentation/hid/intel-ish-hid.rst
> index 2adc174fb576..068a5906b177 100644
> --- a/Documentation/hid/intel-ish-hid.rst
> +++ b/Documentation/hid/intel-ish-hid.rst
> @@ -413,6 +413,10 @@ Vendors who wish to upstream their custom
> firmware should follow these guideline
>
> - The firmware filename should use one of the following patterns:
>
> + -
> ``ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_FAMILY_CRC32}_$
> {PRODUCT_NAME_CRC32}_${PRODUCT_SKU_CRC32}.bin``
> + -
> ``ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_FAMILY_CRC32}_$
> {PRODUCT_SKU_CRC32}.bin``
> + -
> ``ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_FAMILY_CRC32}_$
> {PRODUCT_NAME_CRC32}.bin``
> + -
> ``ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_FAMILY_CRC32}.b
> in``
> -
> ``ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_NAME_CRC32}_${P
> RODUCT_SKU_CRC32}.bin``
> -
> ``ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_SKU_CRC32}.bin`
> `
> -
> ``ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_NAME_CRC32}.bin
> ``
> @@ -420,16 +424,21 @@ Vendors who wish to upstream their custom
> firmware should follow these guideline
>
> - ``${intel_plat_gen}`` indicates the Intel platform generation
> (e.g., ``lnlm`` for Lunar Lake) and must not exceed 8 characters in
> length.
> - ``${SYS_VENDOR_CRC32}`` is the CRC32 checksum of the
> ``sys_vendor`` value from the DMI field ``DMI_SYS_VENDOR``.
> +- ``${PRODUCT_FAMILY_CRC32}`` is the CRC32 checksum of the
> ``product_family`` value from the DMI field ``DMI_PRODUCT_FAMILY``.
> - ``${PRODUCT_NAME_CRC32}`` is the CRC32 checksum of the
> ``product_name`` value from the DMI field ``DMI_PRODUCT_NAME``.
> - ``${PRODUCT_SKU_CRC32}`` is the CRC32 checksum of the
> ``product_sku`` value from the DMI field ``DMI_PRODUCT_SKU``.
>
> During system boot, the ISH Linux driver will attempt to load the
> firmware in the following order, prioritizing custom firmware with
> more precise matching patterns:
>
> -1.
> ``intel/ish/ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_NAME_
> CRC32}_${PRODUCT_SKU_CRC32}.bin``
> -2.
> ``intel/ish/ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_SKU_C
> RC32}.bin``
> -3.
> ``intel/ish/ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_NAME_
> CRC32}.bin``
> -4. ``intel/ish/ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}.bin``
> -5. ``intel/ish/ish_${intel_plat_gen}.bin``
> +1.
> ``intel/ish/ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_FAMIL
> Y_CRC32}_${PRODUCT_NAME_CRC32}_${PRODUCT_SKU_CRC32}.bin``
> +2.
> ``intel/ish/ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_FAMIL
> Y_CRC32}_${PRODUCT_SKU_CRC32}.bin``
> +3.
> ``intel/ish/ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_FAMIL
> Y_CRC32}_${PRODUCT_NAME_CRC32}.bin``
> +4.
> ``intel/ish/ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_FAMIL
> Y_CRC32}.bin``
> +5.
> ``intel/ish/ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_NAME_
> CRC32}_${PRODUCT_SKU_CRC32}.bin``
> +6.
> ``intel/ish/ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_SKU_C
> RC32}.bin``
> +7.
> ``intel/ish/ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_NAME_
> CRC32}.bin``
> +8. ``intel/ish/ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}.bin``
> +9. ``intel/ish/ish_${intel_plat_gen}.bin``
>
> The driver will load the first matching firmware and skip the rest.
> If no matching firmware is found, it will proceed to the next pattern
> in the specified order. If all searches fail, the default Intel
> firmware, listed last in the order above, will be loaded.
>
Powered by blists - more mailing lists