nxp-pac

Crates

git

Versions

mcxa566

Flavors

Enet

Struct Enet 

Source
pub struct Enet { /* private fields */ }
Expand description

MCX-A5 10/100 Ethernet QoS controller at ENET0 MAC base 0x4001c000. One MTL Tx/Rx queue and one DMA Tx/Rx channel; no generic-IP queue/channel arrays. Only the actual registers in the chapter 51.7 maps are exposed, not their generic “up to” counts. Feature reset words describe the fixed implementation: 32-bit addresses, 2 KiB Tx/Rx FIFOs, one MAC address, no TSO, hash table, AV/DCB, split-header, L3/L4 filters or PTP offload. PPSOUTNUM resets to zero despite mapped PPS registers; register presence is not a claim of an external PPS output. Raw numeric encodings must obey the manual and implemented features; generic prose mentioning absent options is not capability evidence. RCWE changes selected read-clear flags to write-one-to-clear; five map/XML read-only registers are ReadWrite here because detailed descriptions explicitly require acknowledgement writes. Reads can consume status/FIFO data. Avoid read-modify-write on mixed status/control registers. Per-field read-only restrictions are documented, not enforced by the flat IR. reset_value is a software Default from documented reset tables, not a live hardware observation.

Implementations§

Source§

impl Enet

Source

pub const unsafe fn from_ptr(ptr: *mut ()) -> Self

Source

pub const fn as_ptr(&self) -> *mut ()

Source

pub const fn mac_configuration(self) -> Reg<MacConfiguration, RW>

MAC Configuration.

Source

pub const fn mac_ext_configuration(self) -> Reg<MacExtConfiguration, RW>

MAC Extended Configuration.

Source

pub const fn mac_packet_filter(self) -> Reg<MacPacketFilter, RW>

MAC Packet Filter.

Source

pub const fn mac_wd_jb_timeout(self) -> Reg<MacWdJbTimeout, RW>

Watchdog and Jabber Timeout.

Source

pub const fn mac_vlan_tag(self) -> Reg<MacVlanTag, RW>

VLAN Tag.

Source

pub const fn mac_vlan_incl(self) -> Reg<MacVlanIncl, RW>

VLAN Tag Inclusion or Replacement.

Source

pub const fn mac_inner_vlan_incl(self) -> Reg<MacInnerVlanIncl, RW>

Inner VLAN Tag Inclusion or Replacement.

Source

pub const fn mac_q0_tx_flow_ctrl(self) -> Reg<MacQ0TxFlowCtrl, RW>

Queue 0 Transmit Flow Control.

Source

pub const fn mac_rx_flow_ctrl(self) -> Reg<MacRxFlowCtrl, RW>

Receive Flow Control.

Source

pub const fn mac_interrupt_status(self) -> Reg<MacInterruptStatus, RW>

Interrupt Status. MDIOIS and PHYIS clear on read by default; RCWE=1 selects write-one-to-clear. Other bits summarize their source registers. Access conflict: summary map and XML say read-only; detailed RCWE descriptions explicitly require acknowledgement writes, so this model exposes ReadWrite.

Source

pub const fn mac_interrupt_enable(self) -> Reg<MacInterruptEnable, RW>

Interrupt Enable.

Source

pub const fn mac_rx_tx_status(self) -> Reg<MacRxTxStatus, RW>

Receive Transmit Status. Status flags clear on read by default; RCWE=1 selects write-one-to-clear. Access conflict: summary map and XML say read-only; detailed RCWE descriptions explicitly require acknowledgement writes, so this model exposes ReadWrite.

Source

pub const fn mac_pmt_control_status(self) -> Reg<MacPmtControlStatus, RW>

PMT Control and Status. MGKPRCVD is clear-on-read by default and write-one-to-clear with RCWE=1. Avoid read-modify-write.

Source

pub const fn mac_version(self) -> Reg<MacVersion, R>

Version.

Source

pub const fn mac_debug(self) -> Reg<MacDebug, R>

Debug.

Source

pub const fn mac_hw_feature0(self) -> Reg<MacHwFeature0, R>

HW Features 0.

Source

pub const fn mac_hw_feature1(self) -> Reg<MacHwFeature1, R>

HW Features 1.

Source

pub const fn mac_hw_feature2(self) -> Reg<MacHwFeature2, R>

HW Features 2.

Source

pub const fn mac_hw_feature3(self) -> Reg<MacHwFeature3, R>

HW Features 3.

Source

pub const fn mac_hw_feature4(self) -> Reg<MacHwFeature4, R>

HW Features 4.

Source

pub const fn mac_mdio_address(self) -> Reg<MacMdioAddress, RW>

MDIO Address.

Source

pub const fn mac_mdio_data(self) -> Reg<MacMdioData, RW>

MDIO Data.

Source

pub const fn mac_csr_sw_ctrl(self) -> Reg<MacCsrSwCtrl, RW>

CSR Software Control.

Source

pub const fn mac_address0_high(self) -> Reg<MacAddress0High, RW>

MAC Address0 High.

Source

pub const fn mac_address0_low(self) -> Reg<MacAddress0Low, RW>

MAC Address0 Low.

Source

pub const fn mac_timestamp_control(self) -> Reg<MacTimestampControl, RW>

Timestamp Control.

Source

pub const fn mac_sub_second_increment(self) -> Reg<MacSubSecondIncrement, RW>

Sub Second Increment.

Source

pub const fn mac_system_time_seconds(self) -> Reg<MacSystemTimeSeconds, R>

System Time Seconds.

Source

pub const fn mac_system_time_nanoseconds( self, ) -> Reg<MacSystemTimeNanoseconds, R>

System Time Nanoseconds.

Source

pub const fn mac_system_time_seconds_update( self, ) -> Reg<MacSystemTimeSecondsUpdate, RW>

System Time Seconds Update.

Source

pub const fn mac_system_time_nanoseconds_update( self, ) -> Reg<MacSystemTimeNanosecondsUpdate, RW>

MAC System Time Nanoseconds Update.

Source

pub const fn mac_timestamp_addend(self) -> Reg<MacTimestampAddend, RW>

Timestamp Addend.

Source

pub const fn mac_timestamp_status(self) -> Reg<MacTimestampStatus, RW>

Timestamp Status. Event flags clear on read by default; RCWE=1 selects write-one-to-clear for the documented acknowledgement bits. ATSNS is a FIFO count; TXTSSIS clears through the transmit timestamp seconds register. The function summary says bits 27:25 are excluded from read-clear, but the detailed ATSNS field spans 29:25; follow the detailed field description. Access conflict: summary map and XML say read-only; detailed RCWE descriptions explicitly require acknowledgement writes, so this model exposes ReadWrite.

Source

pub const fn mac_rx_domain_time_incr(self) -> Reg<MacRxDomainTimeIncr, RW>

Receive Domain TIme Increment.

Source

pub const fn mac_tx_domain_time_incr(self) -> Reg<MacTxDomainTimeIncr, RW>

Transmit Domain TIme Increment.

Source

pub const fn mac_tx_timestamp_status_nanoseconds( self, ) -> Reg<MacTxTimestampStatusNanoseconds, R>

Transmit Timestamp Status Nanoseconds.

Source

pub const fn mac_tx_timestamp_status_seconds( self, ) -> Reg<MacTxTimestampStatusSeconds, RW>

Transmit Timestamp Status Seconds. Reading acknowledges the transmit timestamp status when RCWE=0; a write acknowledges it when RCWE=1. Writes do not set the timestamp. Access conflict: summary map and XML say read-only; detailed RCWE descriptions explicitly require acknowledgement writes, so this model exposes ReadWrite.

Source

pub const fn mac_auxiliary_control(self) -> Reg<MacAuxiliaryControl, RW>

Auxiliary Timestamp Control.

Source

pub const fn mac_auxiliary_timestamp_nanoseconds( self, ) -> Reg<MacAuxiliaryTimestampNanoseconds, R>

Auxiliary Timestamp Nanoseconds. Read nanoseconds before seconds: reading seconds advances the auxiliary timestamp FIFO with RCWE=0. With RCWE=1 write all ones to the seconds register to advance.

Source

pub const fn mac_auxiliary_timestamp_seconds( self, ) -> Reg<MacAuxiliaryTimestampSeconds, RW>

Auxiliary Timestamp Seconds. Reading advances the auxiliary timestamp FIFO with RCWE=0. With RCWE=1 write all ones here to clear the current entry and load the next. Writes do not set the timestamp. Access conflict: summary map and XML say read-only; detailed RCWE descriptions explicitly require acknowledgement writes, so this model exposes ReadWrite.

Source

pub const fn mac_timestamp_ingress_corr_nanosecond( self, ) -> Reg<MacTimestampIngressCorrNanosecond, RW>

MAC Timestamp Ingress Correction Nanosecond.

Source

pub const fn mac_timestamp_egress_corr_nanosecond( self, ) -> Reg<MacTimestampEgressCorrNanosecond, RW>

MAC Timestamp Egress Correction Nanosecond.

Source

pub const fn mac_timestamp_ingress_latency( self, ) -> Reg<MacTimestampIngressLatency, R>

MAC Timestamp Ingress Latency.

Source

pub const fn mac_timestamp_egress_latency( self, ) -> Reg<MacTimestampEgressLatency, R>

MAC Timestamp Egress Latency.

Source

pub const fn mac_pps_control(self) -> Reg<MacPpsControl, RW>

PPS Control. The generic description includes flexible PPS commands, but PPSEN0 bit 4 is reserved and PPS width/interval registers are absent here. PPSOUTNUM resets to zero; do not infer a supported external PPS output or flexible pulse train from this mapped register.

Source

pub const fn mac_pps0_target_time_seconds( self, ) -> Reg<MacPps0TargetTimeSeconds, RW>

PPS Target Time Seconds.

Source

pub const fn mac_pps0_target_time_nanoseconds( self, ) -> Reg<MacPps0TargetTimeNanoseconds, RW>

PPS0 Target Time Nanoseconds.

Source

pub const fn mtl(self) -> Mtl

Mtl register bank.

Source

pub const fn mtl_q0(self) -> MtlQ0

MtlQ0 register bank.

Source

pub const fn dma(self) -> Dma

Dma register bank.

Source

pub const fn dma_ch0(self) -> DmaCh0

DmaCh0 register bank.

Trait Implementations§

Source§

impl Clone for Enet

Source§

fn clone(&self) -> Enet

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl PartialEq for Enet

Source§

fn eq(&self, other: &Enet) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Enet

Source§

impl Eq for Enet

Source§

impl Send for Enet

Source§

impl StructuralPartialEq for Enet

Source§

impl Sync for Enet

Auto Trait Implementations§

§

impl Freeze for Enet

§

impl RefUnwindSafe for Enet

§

impl Unpin for Enet

§

impl UnwindSafe for Enet

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.