SPRUIM2H May 2020 – October 2023 AM2431 , AM2432 , AM2434 , AM6411 , AM6412 , AM6421 , AM6422 , AM6441 , AM6442
The CQE is responsible for task execution, communication with the device and moving the data to the buffers in the host memory.
Figure 12-1788 and Table 12-3436 show a task execution and completion sequence.
Step | Description |
---|---|
1 | Once the tasks are queued on the device side CQE sends CMD13 to determine the queue status. The queue status lets the CQE know which tasks are ready for execution. |
2 | The response to CMD13 may indicate no task is ready in which case the CQE is required to send CMD13 again at a later time as controlled CQSST register. |
3 | If a task is ready for execution then the host sends EXECUTE_READ_TASK (CMD46) or EXECUTE_WRITE_TASK (CMD47) to the device with the task id ordering it to execute a task. |
4 | When the task execution is completed, an interrupt may be generated, if requested, or as determined by Interrupt Coalescing mechanism. |
5 | The host software reads MMCSD0_CQ_TASK_COMP_NOTIF register to determine which task(s) has(have) been completed. Each bit set in MMCSD0_CQ_TASK_COMP_NOTIF register represents by index which task has completed but hasn't yet been served by software. |
6 | For every task completed clear the appropriate MMCSD0_CQ_TASK_COMP_NOTIF register bit. |
7 | Repeat steps 1-6 for the pending tasks. |