Lines Matching +full:link +full:- +full:trigger +full:- +full:order +full:- +full:stop
6 processing to a dedicated low power co-processor. This allows the core
11 Sensor usage tables. These may be found in tablets, 2-in-1 convertible laptops
27 ----------------- ----------------------
28 | USB HID | --> | ISH HID |
29 ----------------- ----------------------
30 ----------------- ----------------------
31 | USB protocol | --> | ISH Transport |
32 ----------------- ----------------------
33 ----------------- ----------------------
34 | EHCI/XHCI | --> | ISH IPC |
35 ----------------- ----------------------
37 ----------------- ----------------------
38 |Host controller| --> | ISH processor |
39 ----------------- ----------------------
40 USB Link
41 ----------------- ----------------------
42 | USB End points| --> | ISH Clients |
43 ----------------- ----------------------
45 Like USB protocol provides a method for device enumeration, link management
66 ---------------------------
68 ---------------------------
70 ----------------IIO ABI----------------
71 --------------------------
73 --------------------------
74 --------------------------
76 --------------------------
77 --------------------------
79 --------------------------
80 --------------------------
82 --------------------------
83 --------------------------
85 --------------------------
86 --------------------------
88 --------------------------
89 --------------------------
91 --------------------------
93 ---------------- PCI -----------------
95 ----------------------------
97 ----------------------------
103 ------------------
105 The ISH is exposed as "Non-VGA unclassified PCI device" to the host. The PCI
111 ------------------------------------------
113 Location: drivers/hid/intel-ish-hid/ipc
116 hw-ish-regs.h.
121 There are two types of messages, one for management of link and another for
127 A set of memory mapped register offers support of multi-byte messages TX and
129 internal queues to sequence messages and send them in order to the firmware.
131 A doorbell mechanism is used in messaging to trigger processing in host and
136 Each side has 32 32-bit message registers and a 32-bit doorbell. Doorbell
142 Bit 31: doorbell trigger (signal H/W interrupt to the other side)
153 -------------------
155 Location: drivers/hid/intel-ish-hid/ishtp/
160 The transport layer is a bi-directional protocol, which defines:
161 - Set of commands to start, stop, connect, disconnect and flow control
163 - A flow control mechanism to avoid buffer overflows
166 http://www.intel.com/content/dam/www/public/us/en/documents/technical-\
167 specifications/dcmi-hi-1-0-spec.pdf "Chapter 7: Bus Message Layer"
172 Each FW client and a protocol is identified by a UUID. In order to communicate
179 flow-control credit before. Once it has sent a message, it may not send another one
182 the link will be dropped if major FW reset occurs.
206 it's request to do host->ISH DMA transfer; when FW sends DMA_XFER, it means
243 - Host sends HOST_START_REQ_CMD, indicating that host ISHTP layer is up.
244 - FW responds with HOST_START_RES_CMD
245 - Host sends HOST_ENUM_REQ_CMD (enumerate FW clients)
246 - FW responds with HOST_ENUM_RES_CMD that includes bitmap of available FW
248 - For each FW ID found in that bitmap host sends
250 - FW responds with HOST_CLIENT_PROPERTIES_RES_CMD. Properties include UUID,
252 - Once host received properties for that last discovered client, it considers
256 -------------------
258 Location: drivers/hid/intel-ish-hid
262 - enumerate HID devices under FW ISH client
263 - Get Report descriptor
264 - Register with HID core as a LL driver
265 - Process Get/Set feature request
266 - Get input reports
269 -----------------------------------------
273 Documentation/hid/hid-sensor.rst for HID sensor
274 Documentation/ABI/testing/sysfs-bus-iio for IIO ABIs to user space.
277 -----------------------------------------
281 HID-ISH-CLN ISHTP IPC HW
283 | | |-----WAKE UP------------------>|
285 | | |-----HOST READY--------------->|
287 | | |<----MNG_RESET_NOTIFY_ACK----- |
289 | |<----ISHTP_START------ | |
291 | |<-----------------HOST_START_RES_CMD-------------------|
293 | |------------------QUERY_SUBSCRIBER-------------------->|
295 | |------------------HOST_ENUM_REQ_CMD------------------->|
297 | |<-----------------HOST_ENUM_RES_CMD--------------------|
299 | |------------------HOST_CLIENT_PROPERTIES_REQ_CMD------>|
301 | |<-----------------HOST_CLIENT_PROPERTIES_RES_CMD-------|
304 | |------------------HOST_CLIENT_PROPERTIES_REQ_CMD------>|
306 | |<-----------------HOST_CLIENT_PROPERTIES_RES_CMD-------|
309 | |--Repeat HOST_CLIENT_PROPERTIES_REQ_CMD-till last one--|
312 |----ishtp_cl_connect--->|----------------- CLIENT_CONNECT_REQ_CMD-------------->|
314 | |<----------------CLIENT_CONNECT_RES_CMD----------------|
319 HOSTIF_DM_ENUM_DEVICES) |----------fill ishtp_msg_hdr struct write to HW----- >|
321 | | |<-----IRQ(IPC_PROTOCOL_ISHTP---|
323 |<--ENUM_DEVICE RSP------| | |
327 HOSTIF_GET_HID_DESCRIPTOR|----------fill ishtp_msg_hdr struct write to HW----- >|
333 HOSTIF_GET_REPORT_DESCRIPTOR|--------------fill ishtp_msg_hdr struct write to HW-- >|
343 -----------------------------------
349 - Initially, the ISHTP driver sends a command, HOST_START_REQ_CMD, to the ISH bootloader. In respon…
351 - During this process, the ISHTP driver first invokes the request_firmware() function, followed by …
353 - After the process concludes, the ISHTP driver calls the release_firmware() function.
359 +---------------+ +-----------------+
361 +---------------+ +-----------------+
365 |<--Send HOST_START_RES_CMD(Includes ISHTP_SUPPORT_CAP_LOADER bit)----|
373 |<---------------------------------------------+ |
375 --------------------------- |
377 --------------------------- |
381 |<--Send response-----------------------------------------------------|
385 |<--Send response-----------------------------------------------------|
389 |<--Send response-----------------------------------------------------|
393 …| |<--------------------------+
395 --------------------------- |
397 --------------------------- |
403 +---------------+ +-----------------+
405 +---------------+ +-----------------+
411 …he Intel-built firmware to the ``linux-firmware.git`` repository, located under the path ``intel/i…
414 - The firmware filename should use one of the following patterns:
416 - ``ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_NAME_CRC32}_${PRODUCT_SKU_CRC32}.bin``
417 - ``ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_SKU_CRC32}.bin``
418 - ``ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_NAME_CRC32}.bin``
419 - ``ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}.bin``
421 - ``${intel_plat_gen}`` indicates the Intel platform generation (e.g., ``lnlm`` for Lunar Lake) and…
422 - ``${SYS_VENDOR_CRC32}`` is the CRC32 checksum of the ``sys_vendor`` value from the DMI field ``DM…
423 - ``${PRODUCT_NAME_CRC32}`` is the CRC32 checksum of the ``product_name`` value from the DMI field …
424 - ``${PRODUCT_SKU_CRC32}`` is the CRC32 checksum of the ``product_sku`` value from the DMI field ``…
426 During system boot, the ISH Linux driver will attempt to load the firmware in the following order, …
434 …o the next pattern in the specified order. If all searches fail, the default Intel firmware, liste…
437 -------------
445 -------------------------------------------------
449 root@otcpl-ThinkPad-Yoga-260:~# tree -l /sys/bus/iio/devices/
451 ├── iio:device0 -> ../../../devices/0044:8086:22D8.0001/HID-SENSOR-200073.9.auto/iio:device0
492 │ │ │ │ ├── trigger
527 │ │ │ │ ├── trigger
553 │ │ │ │ ├── trigger
579 │ │ │ │ ├── trigger