gmacgrp_flow_control

         <b> Register 6 (Flow Control Register) </b>  

The Flow Control register controls the generation and reception of the Control (Pause Command) frames by the MAC's Flow control module. A Write to a register with the Busy bit set to '1' triggers the Flow Control block to generate a Pause Control frame. The fields of the control frame are selected as specified in the 802.3x specification, and the Pause Time value from this register is used in the Pause Time field of the control frame. The Busy bit remains set until the control frame is transferred onto the cable. The Host must make sure that the Busy bit is cleared before writing to the register.
      
Module Instance Base Address Register Address
i_emac_emac0 0xFF800000 0xFF800018
i_emac_emac1 0xFF802000 0xFF802018
i_emac_emac2 0xFF804000 0xFF804018

Size: 32

Offset: 0x18

Access: RW

Important: The value of a reserved bit must be maintained in software. When you modify registers containing reserved bit fields, you must use a read-modify-write operation to preserve state and prevent indeterminate system behavior.
Bit Fields
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16

pt

RW 0x0

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

reserved_15_8

RO 0x0

dzpq

RW 0x0

reserved_6

RO 0x0

plt

RW 0x0

up

RW 0x0

rfe

RW 0x0

tfe

RW 0x0

fca_bpa

RW 0x0

gmacgrp_flow_control Fields

Bit Name Description Access Reset
31:16 pt
Pause Time

This field holds the value to be used in the Pause Time field in the transmit control frame. If the Pause Time bits is configured to be double-synchronized to the (G)MII clock domain, then consecutive writes to this register should be performed only after at least four clock cycles in the destination clock domain.
RW 0x0
15:8 reserved_15_8
Reserved
RO 0x0
7 dzpq
Disable Zero-Quanta Pause

When this bit is set, it disables the automatic generation of the Zero-Quanta Pause Control frames on the de-assertion of the flow-control signal from the FIFO layer (MTL or external sideband flow control signal sbd_flowctrl_i/mti_flowctrl_i). 
When this bit is reset, normal operation with automatic Zero-Quanta Pause Control frame generation is enabled.
Value Description
0x0 DISABLED
0x1 ENABLED
RW 0x0
6 reserved_6
Reserved
RO 0x0
5:4 plt
Pause Low Threshold

This field configures the threshold of the PAUSE timer at which the input flow control signal mti_flowctrl_i (or sbd_flowctrl_i) is checked for automatic retransmission of PAUSE Frame. 

The threshold values should be always less than the Pause Time configured in Bits[31:16]. For example, if PT = 100H (256 slot-times), and PLT = 01, then a second PAUSE frame is automatically transmitted if the mti_flowctrl_i signal is asserted at 228 (256 - 28) slot times after the first PAUSE frame is transmitted. 

The following list provides the threshold values for different values:
 - 00: The threshold is Pause time minus 4 slot times (PT - 4 slot times).
 - 01: The threshold is Pause time minus 28 slot times (PT - 28 slot times).
 - 10: The threshold is Pause time minus 144 slot times (PT - 144 slot times).
 - 11: The threshold is Pause time minus 256 slot times (PT - 256 slot times).

The slot time is defined as the time taken to transmit 512 bits (64 bytes) on the GMII or MII interface.
Value Description
0x0 PAUSETIME_4
0x1 PAUSETIME_28
0x2 PAUSETIME_144
0x3 PAUSETIME_256
RW 0x0
3 up
Unicast Pause Frame Detect

A pause frame is processed when it has the unique multicast address specified in the IEEE Std 802.3. When this bit is set, the MAC can also detect Pause frames with unicast address of the station. This unicast address should be as specified in the MAC Address0 High Register and MAC Address0 Low Register.

When this bit is reset, the MAC only detects Pause frames with unique multicast address.

Note: The MAC does not process a Pause frame if the multicast address of received frame is different from the unique multicast address.
Value Description
0x0 DISABLED
0x1 ENABLED
RW 0x0
2 rfe
Receive Flow Control Enable

When this bit is set, the MAC decodes the received Pause frame and disables its transmitter for a specified (Pause) time. When this bit is reset, the decode function of the Pause frame is disabled.
Value Description
0x0 DISABLED
0x1 ENABLED
RW 0x0
1 tfe
Transmit Flow Control Enable

In the full-duplex mode, when this bit is set, the MAC enables the flow control operation to transmit Pause frames. When this bit is reset, the flow control operation in the MAC is disabled, and the MAC does not transmit any Pause frames. 

In half-duplex mode, when this bit is set, the MAC enables the back-pressure operation. When this bit is reset, the back-pressure feature is disabled.
Value Description
0x0 DISABLED
0x1 ENABLED
RW 0x0
0 fca_bpa
Flow Control Busy or Backpressure Activate

This bit initiates a Pause Control frame in the full-duplex mode and activates the backpressure function in the half-duplex mode if the TFE bit is set. 

In the full-duplex mode, this bit should be read as 1'b0 before writing to the Flow Control register. To initiate a Pause control frame, the Application must set this bit to 1'b1. During a transfer of the Control Frame, this bit continues to be set to signify that a frame transmission is in progress. After the completion of Pause control frame transmission, the MAC resets this bit to 1'b0. The Flow Control register should not be written to until this bit is cleared. 

In the half-duplex mode, when this bit is set (and TFE is set), then backpressure is asserted by the MAC. During backpressure, when the MAC receives a new frame, the transmitter starts sending a JAM pattern resulting in a collision. This control register bit is logically ORed with the mti_flowctrl_i input signal for the backpressure function. When the MAC is configured for the full-duplex mode, the BPA is automatically disabled.
Value Description
0x0 DISABLED
0x1 ENABLED
RW 0x0