Skip to content

Commit f7ae309

Browse files
qianruhJiri Kosina
authored andcommitted
Documentation: hid: intel-ish-hid: add section for firmware loading
Add a section to describe the ISH firmware loading process for Lunar Lake and later generations. Signed-off-by: Qianru Huang <qianru.huang@intel.com> Signed-off-by: Zhang Lixu <lixu.zhang@intel.com> Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
1 parent 806a4c3 commit f7ae309

1 file changed

Lines changed: 65 additions & 0 deletions

File tree

Documentation/hid/intel-ish-hid.rst

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,71 @@ End to End HID transport Sequence Diagram
339339
| | | |
340340

341341

342+
ISH Firmware Loading from Host Flow
343+
-----------------------------------
344+
345+
Starting from the Lunar Lake generation, the ISH firmware has been divided into two components for better space optimization and increased flexibility. These components include a bootloader that is integrated into the BIOS, and a main firmware that is stored within the operating system's file system.
346+
347+
The process works as follows:
348+
349+
- Initially, the ISHTP driver sends a command, HOST_START_REQ_CMD, to the ISH bootloader. In response, the bootloader sends back a HOST_START_RES_CMD. This response includes the ISHTP_SUPPORT_CAP_LOADER bit. Subsequently, the ISHTP driver checks if this bit is set. If it is, the firmware loading process from the host begins.
350+
351+
- During this process, the ISHTP driver first invokes the request_firmware() function, followed by sending a LOADER_CMD_XFER_QUERY command. Upon receiving a response from the bootloader, the ISHTP driver sends a LOADER_CMD_XFER_FRAGMENT command. After receiving another response, the ISHTP driver sends a LOADER_CMD_START command. The bootloader responds and then proceeds to the Main Firmware.
352+
353+
- After the process concludes, the ISHTP driver calls the release_firmware() function.
354+
355+
For more detailed information, please refer to the flow descriptions provided below:
356+
357+
::
358+
359+
+---------------+ +-----------------+
360+
| ISHTP Driver | | ISH Bootloader |
361+
+---------------+ +-----------------+
362+
| |
363+
|~~~Send HOST_START_REQ_CMD~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>|
364+
| |
365+
|<--Send HOST_START_RES_CMD(Includes ISHTP_SUPPORT_CAP_LOADER bit)----|
366+
| |
367+
****************************************************************************************
368+
* if ISHTP_SUPPORT_CAP_LOADER bit is set *
369+
****************************************************************************************
370+
| |
371+
|~~~start loading firmware from host process~~~+ |
372+
| | |
373+
|<---------------------------------------------+ |
374+
| |
375+
--------------------------- |
376+
| Call request_firmware() | |
377+
--------------------------- |
378+
| |
379+
|~~~Send LOADER_CMD_XFER_QUERY~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>|
380+
| |
381+
|<--Send response-----------------------------------------------------|
382+
| |
383+
|~~~Send LOADER_CMD_XFER_FRAGMENT~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>|
384+
| |
385+
|<--Send response-----------------------------------------------------|
386+
| |
387+
|~~~Send LOADER_CMD_START~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>|
388+
| |
389+
|<--Send response-----------------------------------------------------|
390+
| |
391+
| |~~~Jump to Main Firmware~~~+
392+
| | |
393+
| |<--------------------------+
394+
| |
395+
--------------------------- |
396+
| Call release_firmware() | |
397+
--------------------------- |
398+
| |
399+
****************************************************************************************
400+
* end if *
401+
****************************************************************************************
402+
| |
403+
+---------------+ +-----------------+
404+
| ISHTP Driver | | ISH Bootloader |
405+
+---------------+ +-----------------+
406+
342407
ISH Debugging
343408
-------------
344409

0 commit comments

Comments
 (0)