SPRUGR9H November 2010 – April 2015 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , 66AK2L06 , AM5K2E02 , AM5K2E04 , SM320C6678-HIREL , TMS320C6652 , TMS320C6654 , TMS320C6655 , TMS320C6657 , TMS320C6670 , TMS320C6671 , TMS320C6672 , TMS320C6674 , TMS320C6678
The process of writing a command is to check to see if the command buffer is free, then write the command parameters, and finally write the command. Optionally, the caller can wait for command completion.
The command buffer is free when the command field of the first work in the command buffer is set to 0x00.
When a command is written, the host CPU must write the word containing the command byte last. The command buffer is in internal RAM and should not be marked as cacheable by the host CPU. If the RAM is cached on the host CPU, then the host must perform two separate writes and cache flushes; the first for writing the parameters, and then a second independent write and cache flush for writing the command word. All writes should be performed as 32-bit quantities.
Note that the first word of the command buffer appears in a non-contiguous memory region as the remaining fields in the buffer.
After the command is written, the PDSP will clear the command field upon command completion. The command results can then be read from the Return Code field.
The command buffer interface for the QoS firmware is shown in Table 4-55.
Command Buffer Offset | Field | |||
---|---|---|---|---|
Byte 3 | Byte 2 | Byte 1 | Byte 0 | |
0x00 | Index | Option | Command | |
0x04 | Return Code |
Table 4-56 shows the breakdown of each field.
Field | Byte Width | Notes |
---|---|---|
Index | 2 | Command Index (use varies with each firmware command) |
Option | 1 | Command Option (use varies with each firmware command) |
Command | 1 | QoS command:
|
Return Code | 4 | Used to return status to the caller:
|