EQOS_MTL0 Registers
Ethernet GMAC has the following EQOS_MTL0 registers.
MTL_TxQ0_Operation_Mode
- Description: The Queue 0 Transmit Operation Mode register establishes the Transmit queue operating modes and commands.
- Size: 32 bits
- Offset: 0xd00
- Exists: (DWC_EQOS_NUM_TXQ>0&&!DWC_EQOS_CORE)
Bits | Name | Memory Access | Description |
---|---|---|---|
31:y | Reserved_31_y | R |
Reserved. |
x:16 | TQS | R/W |
Transmit Queue Size This field indicates the size of the allocated Transmit queues in blocks of 256 bytes. The TQS field is read-write only if the number of Tx Queues more than one, the reset value is 0x0 and indicates size of 256 bytes. This means that value of 0x0 = 256 bytes, 0x1 = 512 bytes and so on. So, program TQS [5:0]=6'b001111 to allocate queue size of 4096 (4K) bytes. In general, the size of the Queue = (TQS+1)*256 bytes. When the number of Tx Queues is one, the field is read-only and the configured TX FIFO size in blocks of 256 bytes is reflected in the reset value. The width of this field depends on the Tx memory size selected in your configuration. For example, if the memory size is 2048, the width of this field is 3 bits: LOG2(2048/256) =LOG2(8) = 3 bits |
15:7 | Reserved_15_7 | R |
Reserved. |
6:4 | TTC | R/W |
Transmit Threshold Control These bits control the threshold level of the MTL Tx Queue. The transmission starts when the packet size within the MTL Tx Queue is larger than the threshold. In addition, full packets with length less than the threshold are also transmitted. These bits are used only when the TSF bit is reset. Values: 0x0(M_32BYTES): 32 0x1(M_64BYTES): 64 0x2(M_96BYTES): 96 0x3(M_128BYTES): 128 0x4(M_192BYTES): 192 0x5(M_256BYTES): 256 0x6(M_384BYTES): 384 0x7(M_512BYTES): 512 |
3:2 | TXQEN | R/W |
Transmit Queue Enable This field is used to enable/disable the transmit queue 0.
This field is Read Only in Single Queue configurations and Read Write in Multiple Queue configurations. Note:In multiple Tx queues configuration, all the queues are disabled by default. Enable the Tx queue by programming this field. Values:
|
1 | TSF | R/W |
Transmit Store and Forward When this bit is set,the transmission starts when a full packet resides in the MTL Tx queue. When this bit is set, the TTC values specified in Bits[6:4] of this register are ignored. This bit should be changed only when the transmission is stopped. Values:
|
0 | FTQ | R/W |
Flush Transmit Queue When this bit is set, the Tx queue controller logic is reset to its default values. Therefore, all the data in the Tx queue is lost or flushed. This bit is internally reset when the flushing operation is complete. Until this bit is reset, you should not write to the MTL_TxQ1_Operation_Mode register. The data which is already accepted by the MAC transmitter is not flushed. It is scheduled for transmission and results in underflow and runt packet transmission. Note:The flush operation is complete only when the Tx queue is empty and the application has accepted the pending Tx Status of all transmitted packets. To complete this flush operation, the PHY Tx clock (clk_tx_i) should be active. Access restriction applies. Setting 1 sets. Self-cleared. Setting 0 has no effect. Values:
|
MTL_TxQ0_Underflow
- Description: The Queue 0Underflow Counter register contains the counter for packets aborted because of Transmit queue underflow and packets missed because of Receive queue packet flush.
- Size: 32 bits
- Offset: 0xd04
- Exists: (DWC_EQOS_NUM_TXQ>0&&!DWC_EQOS_CORE)
Bits | Name | Memory Access | Description |
---|---|---|---|
31:12 | Reserved_31_12 | R |
Reserved. |
11 | UFCNTOVF | R |
Overflow Bit for Underflow Packet Counter This bit is set every time the Tx queue Underflow Packet Counter field overflows, that is, it has crossed the maximum count. In such a scenario, the overflow packet counter is reset to all-zeros and this bit indicates that the rollover happened. Access restriction applies. Clears on read. Self-set to 1 on internal event. Values:
|
10:0 | UFFRMCNT | R |
Underflow Packet Counter This field indicates the number of packets aborted by the controller because of Tx Queue Underflow. This counter is incremented each time the MAC aborts outgoing packet because of underflow. The counter is cleared when this register is read with mci_be_i[0] at 1'b1. Access restriction applies. Clears on read. Self-set to 1 on internal event. |
MTL_TxQ0_Debug
- Description: The Queue 0Transmit Debug register gives the debug status of various blocks related to the Transmit queue.
- Size: 32 bits
- Offset: 0xd08
- Exists: (DWC_EQOS_NUM_TXQ>0&&!DWC_EQOS_CORE)
Bits | Name | Memory Access | Description |
---|---|---|---|
31:23 | Reserved_31_23 | R |
Reserved. |
22:20 | STXSTSF | R |
Number of Status Words in Tx Status FIFO of Queue This field indicates the current number of status in the Tx Status FIFO of this queue. When the DTXSTS bit of MTL_Operation_Mode register is set to 1, this field does not reflect the number of status words in Tx Status FIFO. |
19 | Reserved_19 | R |
Reserved. |
18:16 | PTXQ | R |
Number of Packets in the Transmit Queue This field indicates the current number of packets in the Tx Queue. When the DTXSTS bit of MTL_Operation_Mode register is set to 1, this field does not reflect the number of packets in the Transmit queue. |
15:6 | Reserved_15_6 | R |
Reserved. |
5 | TXSTSFSTS | R |
MTL Tx Status FIFO Full Status When high, this bit indicates that the MTL Tx Status FIFO is full. Therefore, the MTL cannot accept any more packets for transmission. Values:
|
4 | TXQSTS | R |
MTL Tx Queue Not Empty Status When this bit is high, it indicates that the MTL Tx Queue is not empty and some data is left for transmission. Values:
|
3 | TWCSTS | R |
MTL Tx Queue Write Controller Status When high, this bit indicates that the MTL Tx Queue Write Controller is active, and it is transferring the data to the Tx Queue. Values:
|
2:1 | TRCSTS | R |
MTL Tx Queue Read Controller Status This field indicates the state of the Tx Queue Read Controller: Values:
|
0 | TXQPAUSED | R |
Transmit Queue in Pause When this bit is high and the Rx flow control is enabled, it indicates that the Tx Queue is in the Pause condition (in the full-duplex only mode) because of the following:
Values:
|
MTL_TxQ0_ETS_Status
- Description: The Queue 0ETS Status register provides the average traffic transmitted in Queue 0.
- Size: 32 bits
- Offset: 0xd14
- Exists: (DWC_EQOS_NUM_TXQ>1&&!DWC_EQOS_CORE)
Bits | Name | Memory Access | Description |
---|---|---|---|
31:24 | Reserved_31_24 | R |
Reserved. |
23:0 | ABS | R |
Average Bits per Slot This field contains the average transmitted bits per slot. When the DCB operation is enabled for Queue 0, this field is computed over every 10 million bit times slot (4 ms in 2500 Mbps; 10 ms in 1000 Mbps; 100 ms in 100 Mbps). The maximum value is 0x989680. |
MTL_TxQ0_Quantum_Weight
- Description: The Queue 0 Quantum or Weights register contains the quantum value for Deficit Weighted Round Robin (DWRR), weights for the Weighted Round Robin (WRR), and Weighted Fair Queuing (WFQ) for Queue 0.
- Size: 32 bits
- Offset: 0xd18
- Exists: (DWC_EQOS_NUM_TXQ>1&&!DWC_EQOS_CORE)
Bits | Name | Memory Access | Description |
---|---|---|---|
31:21 | Reserved_31_21 | R |
Reserved. |
20:0 | ISCQW | R/W |
Quantum or Weights When the DCB operation is enabled with DWRR algorithm for Queue 0 traffic, this field contains the quantum value in bytes to be added to credit during every queue scanning cycle. The maximum value is 0x1312D0 bytes. When DCB operation is enabled with WFQ algorithm for Queue 0 traffic, this field contains the weight for this queue. The maximum value is 0x3FFF where weight of 0 indicates 100% bandwidth. Bits[20:14] must be written to zero. The higher the programmed weights lesser the bandwidth allocated for the particular Transmit Queue. This is because the weights are used to compute the packet finish time (weights * packet_size). Lesser the finish time, higher the probability of the packet getting scheduled first and using more bandwidth. When DCB operation or generic queuing operation is enabled with WRR algorithm for Queue 0 traffic, this field contains the weight for this queue. The maximum value is 0x64. Bits [20:7] must be written to zero. |
MTL_Q0_Interrupt_Control_Status
- Description: This register contains the interrupt enable and status bits for the queue 0 interrupts.
- Size: 32 bits
- Offset: 0xd2c
- Exists: ((DWC_EQOS_NUM_RXQ>0||DWC_EQOS_NUM_TXQ>0)&&!DWC_EQOS_CORE)
Bits | Name | Memory Access | Description |
---|---|---|---|
31:25 | Reserved_31_25 | R |
Reserved. |
24 | RXOIE | R/W |
Receive Queue Overflow Interrupt Enable When this bit is set, the Receive Queue Overflow interrupt is enabled. When this bit is reset, the Receive Queue Overflow interrupt is disabled. Values:
|
23:17 | Reserved_23_17 | R |
Reserved. |
16 | RXOVFIS | R/W |
Receive Queue Overflow Interrupt Status This bit indicates that the Receive Queue had an overflow while receiving the packet. If a partial packet is transferred to the application, the overflow status is set in RDES3[21]. This bit is cleared when the application writes 1 to this bit. Access restriction applies. Self-set to 1 on internal event. Setting 1 clears. Setting 0 has no effect. Values:
|
15:10 | Reserved_15_10 | R |
Reserved. |
9 | ABPSIE | R/W |
Average Bits Per Slot Interrupt Enable When this bit is set,the MAC asserts the sbd_intr_o or mci_intr_o interrupt when the average bits per slot status is updated. When this bit is cleared, the interrupt is not asserted for such an event. Values:
|
8 | TXUIE | R/W |
Transmit Queue Underflow Interrupt Enable When this bit is set, the Transmit Queue Underflow interrupt is enabled. When this bit is reset, the Transmit Queue Underflow interrupt is disabled. Values:
|
7:2 | Reserved_7_2 | R |
Reserved. |
1 | ABPSIS | R/W |
Average Bits Per Slot Interrupt Status When set, this bit indicates that the MAC has updated the ABS value. This bit is cleared when the application writes 1 to this bit. Access restriction applies. Self-set to 1 on internal event. Setting 1 clears. Setting 0 has no effect. Values:
|
0 | TXUNFIS | R/W |
Transmit Queue Underflow Interrupt Status This bit indicates that the Transmit Queue had an underflow while transmitting the packet. Transmission is suspended and an Underflow Error TDES3[2] is set. This bit is cleared when the application writes 1 to this bit. Access restriction applies. Self-set to 1 on internal event. Setting 1 clears. Setting 0 has no effect. Values:
|
MTL_RxQ0_Operation_Mode
- Description: The Queue 0Receive Operation Mode register establishes
the Receive queue operating modes and command.
The RFA and RFD fields are not backward compatible with the RFA and RFD fields of 4.00a release
- Size: 32 bits
- Offset: 0xd30
- Exists: (DWC_EQOS_NUM_RXQ>0&&!DWC_EQOS_CORE)
Bits | Name | Memory Access | Description |
---|---|---|---|
31:y | Reserved_31_y | R |
Reserved. |
x:20 | RQS | R/W |
Receive Queue Size This field indicates the size of the allocated Receive queues in blocks of 256 bytes. The RQS field is read-write only if the number of Rx Queues more than one, the reset value is 0x0 and indicates size of 256 bytes. This means that value of 0x0 = 256 bytes, 0x1 = 512 bytes and so on. So, program RQS [5:0]=6'b001111 to allocate queue size of 4096 (4K) bytes. In general, the size of the Queue = (RQS+1)*256 bytes. When the number of Rx Queues is one, the field is read-only and the configured RX FIFO size in blocks of 256 bytes is reflected in the reset value. The width of this field depends on the Rx memory size selected in your configuration. For example, if the memory size is 2048, the width of this field is 3 bits: LOG2(2048/256) =LOG2(8) = 3 bits |
19:y | Reserved_19_y | R |
Reserved. |
x:14 | RFD | R/W |
Threshold for Deactivating Flow Control (in half-duplex and full-duplex modes) These bits control the threshold (fill-level of Rx queue) at which the flow control is de-asserted after activation:
The de-assertion is effective only after flow control is asserted. Note: The value must be programmed in such a way to make sure that the threshold is a positive number. When the EHFC is set high, these values are applicable only when the Rx queue size determined by the RQS field of this register, is equal to or greater than 4 KB. For a given queue size, the values ranges between 0 and the encoding for FULL minus (QSIZE - 0.5 KB) and all other values are illegal. Here the term FULL and QSIZE refers to the queue size determined by the RQS field of this register. The width of this field depends on RX FIFO size selected during the configuration. Remaining bits are reserved and read only. |
13:y | Reserved_13_y | R |
Reserved. |
x:8 | RFA | R/W |
Threshold for Activating Flow Control (in half-duplex and full-duplex These bits control the threshold (fill-level of Rx queue) at which the flow control is activated. |
7 | EHFC | R/W |
Enable Hardware Flow Control When this bit is set, the flow control signal operation, based on the fill-level of Rx queue, is enabled. When reset, the flow control operation is disabled. Values:
|
6 | DIS_TCP_EF | R/W |
Disable Dropping of TCP/IP Checksum Error Packets When this bit is set, the MAC does not drop the packets which only have the errors detected by the Receive Checksum Offload engine. Such packets have errors only in the encapsulated payload. There are no errors (including FCS error) in the Ethernet packet received by the MAC. When this bit is reset,all error packets are dropped if the FEP bit is reset. Values:
|
5 | RSF | R/W |
Receive Queue Store and Forward When this bit is set, the DWC_ether_qos reads a packet from the Rx queue only after the complete packet has been written to it, ignoring the RTC field of this register. When this bit is reset, the Rx queue operates in the Threshold (cut-through) mode, subject to the threshold specified by the RTC field of this register. Values:
|
4 | FEP | R/W |
Forward Error Packets When this bit is reset, the Rx queue drops packets with error status (CRC error, GMII_ER, watchdog timeout, or overflow). However, if the start byte (write) pointer of a packet is already transferred to the read controller side (in Threshold mode), the packet is not dropped. When this bit is set,all packets except the runt error packets are forwarded to the application or DMA. If the RSF bit is set and the Rx queue overflows when a partial packet is written, the packet is dropped irrespective of the setting of this bit. However, if the RSF bit is reset and the Rx queue overflows when a partial packet is written, a partial packet might be forwarded to the application or DMA. Values:
|
3 | FUP | R/W |
Forward Undersized Good Packets When this bit is set, the Rx queue forwards the undersized good packets (packets with no error and length less than 64 bytes), including pad-bytes and CRC. When this bit is reset, the Rx queue drops all packets of less than 64 bytes, unless a packet is already transferred because of the lower value of Rx Threshold, for example, RTC = 01. Values:
|
2 | Reserved_2 | R |
Reserved. |
1:0 | RTC | R/W |
Receive Queue Threshold Control These bits control the threshold level of the MTL Rx queue (in bytes): The received packet is transferred to the application or DMA when the packet size within the MTL Rx queue is larger than the threshold. In addition, full packets with length less than the threshold are automatically transferred. This field is valid only when the RSF bit is zero. This field is ignored when the RSF bit is set to 1. Values: 0x0(M_64BYTE): 64 0x1(M_32BYTE): 32 0x2(M_96BYTE): 96 0x3(M_128BYTE): 128 |
MTL_RxQ0_Missed_Packet_Overflow_Cnt
- Description: The Queue 0 Missed Packet and Overflow Counter register contains the counter for packets missed because of Receive queue packet flush and packets discarded because of Receive queue overflow.
- Size: 32 bits
- Offset: 0xd34
- Exists: (DWC_EQOS_NUM_RXQ>0&&!DWC_EQOS_CORE)
Bits | Name | Memory Access | Description |
---|---|---|---|
31:28 | Reserved_31_28 | R |
Reserved. |
27 | MISCNTOVF | R |
Missed Packet Counter Overflow Bit When set, this bit indicates that the Rx Queue Missed Packet Counter crossed the maximum limit. Access restriction applies. Clears on read. Self-set to 1 on internal event. Values:
|
26:16 | MISPKTCNT | R |
Missed Packet Counter This field indicates the number ofpackets missed by the DWC_ether_qos because the application asserted ari_pkt_flush_i[] for this queue. This counter is incremented each time the application issues ari_pkt_flush_i[] for this queue. This counter is reset when this register is read with mci_be_i[0] at 1b1. In EQOS-DMA, EQOS-AXI, and EQOS-AHB configurations, This counter is incremented by 1 when the DMA discards the packet because of buffer unavailability. Access restriction applies. Clears on read. Self-set to 1 on internal event. |
15:12 | Reserved_15_12 | R |
Reserved. |
11 | OVFCNTOVF | R |
Overflow Counter Overflow Bit When set, this bit indicates that the Rx Queue Overflow Packet Counter field crossed the maximum limit. Access restriction applies. Clears on read. Self-set to 1 on internal event. Values:
|
10:0 | OVFPKTCNT | R |
Overflow Packet Counter This field indicates the number of packets discarded by the DWC_ether_qos because of Receive queue overflow. This counter is incremented each time the DWC_ether_qos discards an incoming packet because of overflow. This counter is reset when this register is read with mci_be_i[0] at 1'b1. Access restriction applies. Clears on read. Self-set to 1 on internal event. |
MTL_RxQ0_Debug
- Description: The Queue 0 Receive Debug register gives the debug status of various blocks related to the Receive queue.
- Size: 32 bits
- Offset: 0xd38
- Exists: (DWC_EQOS_NUM_RXQ>0&&!DWC_EQOS_CORE)
Bits | Name | Memory Access | Description |
---|---|---|---|
31:30 | Reserved_31_30 | R |
Reserved. |
29:16 | PRXQ | R |
Number of Packets in Receive Queue This field indicates the current number of packets in the Rx Queue. The theoretical maximum value for this fields 256KB/16B = 16K Packets, that is, Max_Queue_Size/Min_Packet_Size. |
15:6 | Reserved_15_6 | R |
Reserved. |
5:4 | RXQSTS | R |
MTL Rx Queue Fill-Level Status This field gives the status of the fill-level of the Rx Queue: Values:
|
3 | Reserved_3 | R |
Reserved. |
2:1 | RRCSTS | R |
MTL Rx Queue Read Controller State This field gives the state of the Rx queue Read controller: Values:
|
0 | RWCSTS | R |
MTL Rx Queue Write Controller Active Status When high, this bit indicates that the MTL Rx queue Write controller is active, and it is transferring a received packet to the Rx Queue. Values:
|
MTL_RxQ0_Control
- Description: The Queue Receive Control register controls the receive arbitration and passing of received packets to the application.
- Size: 32 bits
- Offset: 0xd3c
- Exists: (DWC_EQOS_NUM_RXQ>1&&!DWC_EQOS_CORE)
Bits | Name | Memory Access | Description |
---|---|---|---|
31:4 | Reserved_31_4 | R |
Reserved. |
3 | RXQ_FRM_ARBIT | R/W |
Receive Queue Packet Arbitration When this bit is set, the DWC_ether_qos drives the packet data to the ARI interface such that the entire packet data of currently-selected queue is transmitted before switching to other queue. When this bit is reset, the DWC_ether_qos drives the packet data to the ARI interface such that the following amount of data of currently-selected queue is transmitted before switching to other queue:
The status and the timestamp are not a part of the PBL data. Therefore, the DWC_ether_qos drives the complete status (including timestamp status) during first PBL request for the packet (in store-and-forward mode) or the last PBL request for the packet (in Threshold mode). Values:
|
2:0 | RXQ_WEGT | R/W |
Receive Queue Weight This field indicates the weight assigned to the Rx Queue 0. This field needs to be programmed with one value less than the required weight, that is, reset value of 0 indicates weight of 1, value of 1 indicates weight of 2, and so on. The weight is used as the number of continuous PBL or packets requests (depending on the RXQ_FRM_ARBIT) allocated to the queue in one arbitration cycle. Note:The change in value of RXQ_WEGT takes effect only after the completion of current service round or when there is change from RAA=SP to RAA=WSP algorithm. This approach is taken so that there is smooth transition. For the RXQ_WEGT value to take effect at the start, the MTL_RxQ(#i)_Control registers must be programmed before the MTL_Operation_Mode register. |