SPRUIM2H May 2020 – October 2023 AM2431 , AM2432 , AM2434 , AM6411 , AM6412 , AM6421 , AM6422 , AM6441 , AM6442
Unlike the General Purpose mode, the Task1 and Task2 sub-states in RX_TX mode have pre-defined source events, listed in Table 6-440.
Sub-tasks | Source Event |
---|---|
Task1 | |
T1_S0 | RX_SOF |
T1_S1 | Programmable size threshold, ranging from 1 Byte to 32 Bytes (ICSSG_RX_CFG[4-0] BK1_SIZE) |
T1_S2 | Programmable size threshold, ranging from 1 Byte to 32 Bytes (ICSSG_RX_CFG[9-5] BK2_SIZE) |
T1_S3 | Every 32 Bytes (ICSSG_RX_CFG[14-10] BKN_SIZE) |
T1_S4 | RX_EOF |
Task2 | |
T2_S0 | TX Enable based on IEP CMP SOF and TX Express Type is true |
T2_S1 | TX Enable based on IEP CMP SOF and TX Express Type is false |
T2_S2 | TX L2 FIFO WATER MARK event |
T2_S3 | TX_EOF |
T2_S4 | RX_TX_ERROR (either RX_L1_UNDERRUN or TX_L1_OVERRUN) |
The sub-task priorities are the same as General Purpose mode. For Task1, T1_S1 (highest priority) -> T1_S2 -> T1_S3 -> T1_S4 -> T1_S0 (lowest priority). T1_S0 is the lowest priority to prevent a RX_SOF starting before RX_EOF starts in the case RX_EOF is late. For Task2, T2_S0 (highest priority) -> T2_S1 -> T2_S2 -> T2_S3 -> T2_S4 (lowest priority).
The size threshold is a hardware dependency that must be met in order to switch to a given state. The size is based on the number of bytes that got pushed into the RX L2 FIFO. For example, assume T1_S1 and T1_S2 are both set to 16 Bytes. The task manager will issue a hardware preemption for T1_S1 after the first 16 Bytes got pushed into the RX L2 FIFO. The task manager will issue a hardware preemption for T1_S2 after the second 16 Bytes got pushed into the RX L2 FIFO. The task manager will issue a hardware preemption for T1_S3 after another 32 Bytes got pushed into the RX L2 FIFO. Note the task manager will continue to issue a new hardware preemption for T1_S3 for each new 32 Bytes block of data until a T1_S4 event occurs.