Lines Matching +full:host +full:- +full:command
1 /* SPDX-License-Identifier: MIT */
3 * Copyright (c) 2020-2024, Intel Corporation.
43 /* Max number of impacted contexts that can be dealt with the engine reset command */
74 /* Job status returned when the job was preempted mid-inference */
79 * Host <-> VPU IPC channels.
80 * ASYNC commands use a high priority channel, other messages use low-priority ones.
99 * Inline command mask.
100 * When set, the object in job queue is an inline command (see struct vpu_inline_cmd below).
106 * Reserved for the VPU to store private data about the job (or inline command)
130 * are immediately followed by an inline command object. This object is expected
131 * to be a fence signal command in most cases, but can also be a NOP in case the host
132 * does not need per-job fence signalling. Other inline commands objects can be
133 * inserted between "job and inline command" pairs.
151 * Max length (including trailing NULL char) of a dyndbg command.
159 * For HWS command queue scheduling, we can prioritise command queues inside the
160 * same process with a relative in-process priority. Valid values for relative
161 * priority are given below - max and min.
164 #define VPU_HWS_COMMAND_QUEUE_MIN_IN_PROCESS_PRIORITY -7
180 * Invalid command queue handle identifier. Applies to cmdq_id and cmdq_group
190 * VPU does nothing other than consuming the inline command object.
206 * to the host. Fence signal operations are executed upon completion of all the jobs
207 * present in the queue prior to them, and in-order relative to each other in the queue.
208 * But jobs in-between them may be processed concurrently and may complete out-of-order.
254 * Inline command format.
256 * synchronization directives). Inline command and job objects must be of
261 /* Inline command type, see VPU_INLINE_CMD_TYPE_* defines. */
265 /* Inline command payload. Depends on inline command type. */
273 /* User VA of the monitored fence value (read-only). */
289 * Job queue slots can be populated either with job objects or inline command objects.
345 /* Written by VPU after adding a log entry. Initialised by host to 0. */
347 /* Incremented by VPU every time the VPU writes the 0th entry; initialised by host to 0. */
350 * This is the number of buffers that can be stored in the log buffer provided by the host.
351 * It is written by host before passing buffer to VPU. VPU should consider it read-only.
366 * 0 - context state change
367 * 1 - queue new work
368 * 2 - queue unwait sync object
369 * 3 - queue no more work
370 * 4 - queue wait sync object
435 * Host <-> VPU IPC messages types.
440 /* IPC Host -> Device, Async commands */
449 * is rung again); the host is responsible to reset the job queue, either
476 * Release resource associated with host ssid . All jobs that belong to the host_ssid
488 * Stop collecting metric data. This command will return success if it is called
494 * Update current and next buffer for metric data collection. This command can
503 * the buffer specified in the command structure.
507 /** Control command: Priority band setup */
509 /** Control command: Create command queue */
511 /** Control command: Destroy command queue */
513 /** Control command: Set context scheduling properties */
520 /** Control command: Log buffer setting */
522 /* Control command: Suspend command queue. */
524 /* Control command: Resume command queue */
526 /* Control command: Resume engine after reset */
528 /* Control command: Enable survivability/DCT mode */
530 /* Control command: Disable survivability/DCT mode */
538 /* IPC Host -> Device, General commands */
542 * Control dyndbg behavior by executing a dyndbg command; equivalent to
543 * Linux command: `echo '<dyndbg_cmd>' > <debugfs>/dynamic_debug/control`.
551 /* IPC Device -> Host, Job completion */
553 /* IPC Device -> Host, Fence signalled */
556 /* IPC Device -> Host, Async command completion */
606 * Asynchronous event sent from the VPU to the host either when the current
608 * @notify_sample_count samples as indicated through the start command
614 /** Response to control command: Priority band setup */
616 /** Response to control command: Create command queue */
618 /** Response to control command: Destroy command queue */
620 /** Response to control command: Set context scheduling properties */
622 /** Response to control command: Log buffer setting */
624 /* IPC Device -> Host, HWS notify index entry of log buffer written */
626 /* IPC Device -> Host, HWS completion of a context suspend request */
628 /* Response to control command: Resume command queue */
630 /* Response to control command: Resume engine command response */
632 /* Response to control command: Enable survivability/DCT mode */
634 /* Response to control command: Disable survivability/DCT mode */
637 * Response to state dump control command.
642 /* IPC Device -> Host, General command completion */
657 * Host <-> LRT IPC message payload definitions
674 * @brief Register doorbell command structure.
687 /* Host sub-stream ID for the context assigned to the doorbell. */
692 * @brief Unregister doorbell command structure.
713 * range [0, power_level_count-1] where power_level_count
715 * the get power level count command. A power level of 0
717 * power_level_count-1 corresponds to the minimum possible
727 /* Host sub-stream ID for the context to be released. */
734 * @brief Metric streamer start command structure.
766 * send a notification to the host driver if @notify_sample_count is non-zero.
781 * @brief Metric streamer stop command structure.
809 * Case 2. is identified by the address being non-zero and differs from the
822 * are non-zero in same update request. It is the host's responsibility to ensure
839 /* Host SSID */
843 /* Command queue id */
854 /* Host SSID. */
863 /* Host SSID */
867 /* Command queue id */
878 /* Array of impacted command queue ids and their flags */
891 * Response structure for register doorbell command for both OS
904 * Response structure for unregister doorbell command for both OS
935 * [0-100%] range relative to power level 0.
970 * @brief HWS create command queue request.
971 * Host will create a command queue via this command.
973 * may contain one or more command queues.
980 /* Host SSID */
986 /* Command queue id */
988 /* Command queue base */
990 /* Command queue size */
997 * @brief HWS create command queue response.
1004 /* Host SSID */
1008 /* Command queue group */
1010 /* Command queue id */
1014 /* HWS destroy command queue request / response */
1016 /* Host SSID */
1020 /* Command queue id */
1026 /* Host SSID */
1030 /* Command queue id */
1055 * @brief Register doorbell command structure.
1066 /* Host sub-stream ID for the context assigned to the doorbell. */
1068 /* ID of the command queue associated with the doorbell. */
1070 /* Virtual address pointing to the start of command queue. */
1072 /* Size of the command queue in bytes. */
1077 * @brief Structure to set another buffer to be used for scheduling-related logging.
1080 * The log buffer received from the host is made up of;
1081 * - header: 32 bytes in size, as shown in 'struct vpu_hws_log_buffer_header'.
1083 * - log entry: 0 to n-1, each log entry is 32 bytes in size, as shown in
1086 * The host should provide the notify index value of log buffer to VPU. This is a
1089 * The host should set engine_idx and vpu_log_buffer_va to 0 to disable logging
1100 /* Host SSID */
1122 * an event into the log buffer at the notify_index. VPU notifies host with
1124 * message from VPU to host.
1136 * @brief HWS suspend command queue request and done structure.
1137 * Host will request the suspend of contexts and VPU will;
1138 * - Suspend all work on this context
1139 * - Preempt any running work
1140 * - Asynchronously perform the above and return success immediately once
1142 * - Notify the host of completion of these operations via
1144 * - Reject any other context operations on a context with an in-flight
1146 * Same structure used when VPU notifies host of completion of a context suspend
1147 * request. The ids and suspend fence value reported in this command will match
1148 * the one in the request from the host to suspend the context. Once suspend is
1149 * complete, VPU will not access any data relating to this command queue until
1155 /* Host SSID */
1159 /* Command queue id */
1162 * Suspend fence value - reported by the VPU suspend context
1169 * @brief HWS Resume command queue request / response structure.
1170 * Host will request the resume of a context;
1171 * - VPU will resume all work on this context
1172 * - Scheduler will allow this context to be scheduled
1177 /* Host SSID */
1181 /* Command queue id */
1188 * Host shall send this command to resume scheduling of any valid queue.
1205 * - For VPU_JSM_MSG_TRACE_SET_CONFIG, the payload specifies the desired
1208 * - For VPU_JSM_MSG_TRACE_SET_CONFIG_RSP, the payload reports the logging
1210 * The host can compare this payload with the one it sent in the
1214 * - VPU_JSM_MSG_TRACE_GET_CONFIG_RSP, the payload reports the current logging
1286 * Data sent from the VPU to the host in all metric streamer response messages
1298 * Size in bytes of single sample - total size of all enabled counters.
1328 * of the VPU_JSM_MSG_METRIC_STREAMER_INFO command. This is followed by one or more
1334 * Offset to the next metric group (8-byte aligned). If this offset is 0 this
1337 * + description_string_size and must be 8-byte aligned.
1341 * Offset to the first metric counter description record (8-byte aligned).
1378 * Offset to the next counter in a group (8-byte aligned). If this offset is
1422 * (https://www.kernel.org/doc/html/latest/admin-guide/dynamic-debug-howto.html)
1423 * The host can control Dynamic Debug behavior by sending dyndbg commands, which
1427 * NOTE: in order for MVLOG_DEBUG messages to be actually printed, the host
1429 * VPU_JSM_MSG_TRACE_SET_CONFIG command.
1431 * The host can see the current dynamic debug configuration by executing a
1432 * special 'show' command. The dyndbg configuration will be printed to the
1437 * Dyndbg command (same format as Linux dyndbg); must be a NULL-terminated
1446 * This is a bi-directional payload.
1450 * 0: VPU_JSM_MSG_PWR_D0I3_ENTER_DONE is not sent to the host driver
1462 * corresponding to a 85% duty cycle. This payload allows the host to tune these
1517 * Host <-> LRT IPC message base structure.
1530 * Request ID, provided by the host in a request message and passed