#[repr(transparent)]pub struct MacQ0TxFlowCtrl(pub u32);Expand description
F70RM Rev. 1 section 51.7.1.9; manual text line 149573.
Tuple Fields§
§0: u32Implementations§
Source§impl MacQ0TxFlowCtrl
impl MacQ0TxFlowCtrl
Sourcepub const fn fcb_bpa(&self) -> bool
pub const fn fcb_bpa(&self) -> bool
Flow Control Busy or Backpressure Activate. This bit initiates a Pause packet in the full-duplex mode and activates the backpressure function in the half-duplex mode if the TFE bit is set. Full-Duplex Mode: In the full-duplex mode, this bit must be read as 1’b0 before writing to this register. To initiate a Pause packet, the application must set this bit to 1’b1. During Control packet transfer, this bit continues to be set to indicate that a packet transmission is in progress. When Pause packet transmission is complete, the MAC resets this bit to 1’b0. You must not write to this register until this bit is cleared. Half-Duplex Mode: When this bit is set (and TFE bit is set) in the half-duplex mode, the MAC asserts the backpressure. During backpressure, when the MAC receives a new packet, 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. Access restrictions apply. - MAC initiates the pause packet or activates the backpressure, when application writes 1. - MAC writes 0 after the operation is complete. - MAC ignores when application writes 0. NOTE This field is not testable by an automated register test. 0b - Flow Control Busy or Backpressure Activate is disabled 1b - Flow Control Busy or Backpressure Activate is enabled
Sourcepub const fn set_fcb_bpa(&mut self, val: bool)
pub const fn set_fcb_bpa(&mut self, val: bool)
Flow Control Busy or Backpressure Activate. This bit initiates a Pause packet in the full-duplex mode and activates the backpressure function in the half-duplex mode if the TFE bit is set. Full-Duplex Mode: In the full-duplex mode, this bit must be read as 1’b0 before writing to this register. To initiate a Pause packet, the application must set this bit to 1’b1. During Control packet transfer, this bit continues to be set to indicate that a packet transmission is in progress. When Pause packet transmission is complete, the MAC resets this bit to 1’b0. You must not write to this register until this bit is cleared. Half-Duplex Mode: When this bit is set (and TFE bit is set) in the half-duplex mode, the MAC asserts the backpressure. During backpressure, when the MAC receives a new packet, 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. Access restrictions apply. - MAC initiates the pause packet or activates the backpressure, when application writes 1. - MAC writes 0 after the operation is complete. - MAC ignores when application writes 0. NOTE This field is not testable by an automated register test. 0b - Flow Control Busy or Backpressure Activate is disabled 1b - Flow Control Busy or Backpressure Activate is enabled
Sourcepub const fn tfe(&self) -> bool
pub const fn tfe(&self) -> bool
Transmit Flow Control Enable. Full-Duplex Mode: In the full-duplex mode, when this bit is set, the MAC enables the flow control operation to Tx Pause packets. When this bit is reset, the flow control operation in the MAC is disabled, and the MAC does not transmit any Pause packets. Half-Duplex Mode: In the half-duplex mode, when this bit is set, the MAC enables the backpressure operation. When this bit is reset, the backpressure feature is disabled. 0b - Transmit Flow Control is disabled 1b - Transmit Flow Control is enabled
Sourcepub const fn set_tfe(&mut self, val: bool)
pub const fn set_tfe(&mut self, val: bool)
Transmit Flow Control Enable. Full-Duplex Mode: In the full-duplex mode, when this bit is set, the MAC enables the flow control operation to Tx Pause packets. When this bit is reset, the flow control operation in the MAC is disabled, and the MAC does not transmit any Pause packets. Half-Duplex Mode: In the half-duplex mode, when this bit is set, the MAC enables the backpressure operation. When this bit is reset, the backpressure feature is disabled. 0b - Transmit Flow Control is disabled 1b - Transmit Flow Control is enabled
Sourcepub const fn plt(&self) -> u8
pub const fn plt(&self) -> u8
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 the Pause packet. The threshold values must be always less than the Pause Time configured in Bits[31:16]. For example, if PT = 100H (256 slot times), and PLT = 001, a second Pause packet is automatically transmitted if the mti_flowctrl_i signal is asserted at 228 (256-28) slot times after the first Pause packet is transmitted. The following list provides the threshold values for different values. The slot time is defined as the time taken to transmit 512 bits (64 bytes) on the GMII or MII interface. This (approximate) computation is based on the packet size (64, 1518, 2000, 9018, 16384, or 32768) + 2 Pause Packet Size + IPG in Slot Times. 000b - Pause Time minus 4 Slot Times (PT -4 slot times) 001b - Pause Time minus 28 Slot Times (PT -28 slot times) 010b - Pause Time minus 36 Slot Times (PT -36 slot times) 011b - Pause Time minus 144 Slot Times (PT -144 slot times) 100b - Pause Time minus 256 Slot Times (PT -256 slot times) 101b - Pause Time minus 512 Slot Times (PT -512 slot times) 110b - Reserved
Sourcepub const fn set_plt(&mut self, val: u8)
pub const fn set_plt(&mut self, val: u8)
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 the Pause packet. The threshold values must be always less than the Pause Time configured in Bits[31:16]. For example, if PT = 100H (256 slot times), and PLT = 001, a second Pause packet is automatically transmitted if the mti_flowctrl_i signal is asserted at 228 (256-28) slot times after the first Pause packet is transmitted. The following list provides the threshold values for different values. The slot time is defined as the time taken to transmit 512 bits (64 bytes) on the GMII or MII interface. This (approximate) computation is based on the packet size (64, 1518, 2000, 9018, 16384, or 32768) + 2 Pause Packet Size + IPG in Slot Times. 000b - Pause Time minus 4 Slot Times (PT -4 slot times) 001b - Pause Time minus 28 Slot Times (PT -28 slot times) 010b - Pause Time minus 36 Slot Times (PT -36 slot times) 011b - Pause Time minus 144 Slot Times (PT -144 slot times) 100b - Pause Time minus 256 Slot Times (PT -256 slot times) 101b - Pause Time minus 512 Slot Times (PT -512 slot times) 110b - Reserved
Sourcepub const fn dzpq(&self) -> bool
pub const fn dzpq(&self) -> bool
Disable Zero-Quanta Pause. When this bit is set, it disables the automatic generation of the zero-quanta Pause packets on de- assertion of the flow-control signal from the FIFO layer (MTL or external sideband flow control signal sbd_flowctrl_i or mti_flowctrl_i). When this bit is reset, normal operation with automatic zero-quanta Pause packet generation is enabled. 0b - Zero-Quanta Pause packet generation is enabled 1b - Zero-Quanta Pause packet generation is disabled
Sourcepub const fn set_dzpq(&mut self, val: bool)
pub const fn set_dzpq(&mut self, val: bool)
Disable Zero-Quanta Pause. When this bit is set, it disables the automatic generation of the zero-quanta Pause packets on de- assertion of the flow-control signal from the FIFO layer (MTL or external sideband flow control signal sbd_flowctrl_i or mti_flowctrl_i). When this bit is reset, normal operation with automatic zero-quanta Pause packet generation is enabled. 0b - Zero-Quanta Pause packet generation is enabled 1b - Zero-Quanta Pause packet generation is disabled
Sourcepub const fn pt(&self) -> u16
pub const fn pt(&self) -> u16
Pause Time. This field holds the value to be used in the Pause Time field in the Tx control packet. If the Pause Time bits are configured to be double-synchronized to the (G)MII clock domain, consecutive writes to this register must be performed only after at least four clock cycles in the destination clock domain.
Sourcepub const fn set_pt(&mut self, val: u16)
pub const fn set_pt(&mut self, val: u16)
Pause Time. This field holds the value to be used in the Pause Time field in the Tx control packet. If the Pause Time bits are configured to be double-synchronized to the (G)MII clock domain, consecutive writes to this register must be performed only after at least four clock cycles in the destination clock domain.
Trait Implementations§
Source§impl Clone for MacQ0TxFlowCtrl
impl Clone for MacQ0TxFlowCtrl
Source§fn clone(&self) -> MacQ0TxFlowCtrl
fn clone(&self) -> MacQ0TxFlowCtrl
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more