105typedef enum : uint32_t {
160typedef enum : uint8_t {
196typedef enum : uint16_t {
508 uint8_t retry_level);
627 uint16_t* out_value);
672 uint16_t* out_value);
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
ra8_err_t ra8_rmac_mdio_c45_read(ra8_rmac_port_t port, uint8_t phy_addr, uint8_t dev_addr, uint16_t reg_addr, uint16_t *out_value)
Trigger an MDIO Clause-45 register read.
ra8_err_t ra8_rmac_set_vlan_framing(ra8_rmac_port_t port, bool disable_pad, bool use_mcrc)
Configure VLAN double-tagging behaviour via MTFFC.
ra8_err_t ra8_rmac_enter_stop(ra8_rmac_port_t port)
Enter low-power "stop" by disabling RX address filtering.
ra8_err_t ra8_rmac_set_magic_packet(ra8_rmac_port_t port, bool enable)
Enable / disable magic-packet wake-on-LAN detection.
ra8_err_t ra8_rmac_exit_stop(ra8_rmac_port_t port)
Exit low-power "stop" by reasserting the saved RX filter.
ra8_err_t ra8_rmac_attach_handler(ra8_rmac_port_t port, ra8_rmac_event_fn_t cb, void *ctx)
Attach a per-port IRQ handler for RMAC events.
ra8_err_t ra8_rmac_get_status(ra8_rmac_port_t port, ra8_rmac_status_t *out)
Read a port's status snapshot (MEIS + MMIS0..2 + MPIM + MAC).
ra8_err_t ra8_rmac_mdio_c45_write(ra8_rmac_port_t port, uint8_t phy_addr, uint8_t dev_addr, uint16_t reg_addr, uint16_t value)
Trigger an MDIO Clause-45 register write.
ra8_err_t ra8_rmac_clear_status(ra8_rmac_port_t port, uint32_t err_mask, uint32_t mon0_mask, uint32_t mon1_mask, uint32_t mon2_mask)
Clear bits in MEIS / MMIS0 / MMIS1 / MMIS2.
ra8_err_t ra8_rmac_read_stats(ra8_rmac_port_t port, ra8_rmac_stats_t *out)
Read the full statistic counter snapshot (HUM Ch 33.4).
ra8_err_t ra8_rmac_set_rx_filter(ra8_rmac_port_t port, ra8_rmac_mrafc_t filter)
Program the RX address filter mask (MRAFC).
ra8_err_t ra8_rmac_phy_link_status(ra8_rmac_port_t port, uint8_t phy_addr, ra8_rmac_phy_link_t *out_link)
Quick poll of BMSR.LINK_STATUS (no auto-neg block).
ra8_err_t ra8_rmac_set_pause_frame(ra8_rmac_port_t port, ra8_rmac_pause_mode_t mode, uint16_t pause_time, uint8_t retry_time, uint8_t retry_level)
Program a TX pause / PFC frame template.
ra8_err_t ra8_rmac_set_lpi(ra8_rmac_port_t port, bool enable)
Enable / disable Energy Efficient Ethernet LPI request.
void(* ra8_rmac_event_fn_t)(void *ctx, ra8_rmac_port_t port, uint32_t err_msk, uint32_t mon0_msk, uint32_t mon1_msk, uint32_t mon2_msk)
Per-port RMAC IRQ callback.
ra8_err_t ra8_rmac_phy_set_advertise(ra8_rmac_port_t port, uint8_t phy_addr, uint16_t capabilities)
Program the off-chip PHY's auto-negotiation advertisement.
ra8_err_t ra8_rmac_deinit(ra8_rmac_port_t port)
Tear down an RMAC port.
ra8_rmac_phy_advert_t
802.3 Clause 22 ANAR (auto-negotiation advertisement) bits.
@ k_ra8_rmac_phy_advert_100_hd
IEEE 802.3 ANAR.100BASE-TX.
@ k_ra8_rmac_phy_advert_100_fd
IEEE 802.3 ANAR.100BASE-TX FD.
@ k_ra8_rmac_phy_advert_pause
IEEE 802.3 ANAR.PAUSE.
@ k_ra8_rmac_phy_advert_10_fd
IEEE 802.3 ANAR.10BASE-T FD.
@ k_ra8_rmac_phy_advert_10_hd
IEEE 802.3 ANAR.10BASE-T.
ra8_err_t ra8_rmac_mdio_c22_write(ra8_rmac_port_t port, uint8_t phy_addr, uint8_t reg_addr, uint16_t value)
Trigger an MDIO Clause-22 register write on the off-chip PHY.
ra8_rmac_mdc_clk_t
MPIC PHY-station-management clock-rate constants.
@ k_ra8_rmac_mdc_min_hz
Lower-bound sanity (PSMCS is 7 bits wide).
@ k_ra8_rmac_mdc_default_hz
1 MHz MDC – well below the 2.5 MHz ceiling.
@ k_ra8_rmac_mdc_psmcs_max
MPIC.PSMCS[22:16] is 7 bits wide.
ra8_rmac_phy_speed_t
Resolved PHY link speed/duplex.
@ k_ra8_rmac_phy_speed_10_fd
10BASE-T full duplex.
@ k_ra8_rmac_phy_speed_100_fd
100BASE-TX full duplex.
@ k_ra8_rmac_phy_speed_count
Sentinel.
@ k_ra8_rmac_phy_speed_unknown
No link / not yet resolved.
@ k_ra8_rmac_phy_speed_100_hd
100BASE-TX half duplex.
@ k_ra8_rmac_phy_speed_10_hd
10BASE-T half duplex.
ra8_err_t ra8_rmac_set_link(ra8_rmac_port_t port, ra8_rmac_pis_t iface, ra8_rmac_lsc_t speed, ra8_rmac_duplex_t duplex)
Configure the link layer (interface, speed, duplex) atomically.
ra8_err_t ra8_rmac_set_frame_size(ra8_rmac_port_t port, bool is_pframe, uint16_t min_size, uint16_t max_size)
Configure jumbo-frame minimum / maximum sizes.
ra8_err_t ra8_rmac_phy_auto_neg_start(ra8_rmac_port_t port, uint8_t phy_addr)
Kick off (or restart) auto-negotiation on the off-chip PHY.
ra8_err_t ra8_rmac_phy_reset(ra8_rmac_port_t port, uint8_t phy_addr)
Software-reset an off-chip PHY via Clause-22 MDIO.
ra8_err_t ra8_rmac_mdio_c22_read(ra8_rmac_port_t port, uint8_t phy_addr, uint8_t reg_addr, uint16_t *out_value)
Trigger an MDIO Clause-22 register read on the off-chip PHY.
ra8_err_t ra8_rmac_set_ptp_filter(ra8_rmac_port_t port, uint8_t index, uint8_t byte_offset, uint8_t value, bool tef0, bool tef1)
Program a PTP-frame filter table entry (MPFCt, t = 0..15).
ra8_err_t ra8_rmac_init(ra8_rmac_port_t port, const ra8_rmac_config_t *cfg)
Initialise an RMAC port (MSTP gate + reset regs + filter mode).
ra8_err_t ra8_rmac_phy_auto_neg_wait(ra8_rmac_port_t port, uint8_t phy_addr, uint32_t timeout_ms, ra8_rmac_phy_link_t *out_link)
Block (with a bounded poll) until the PHY reports AN_COMPLETE.
ra8_err_t ra8_rmac_set_loopback(ra8_rmac_port_t port, bool enable)
Enable / disable internal MAC loopback.
ra8_err_t ra8_rmac_set_pfc_group(ra8_rmac_port_t port, ra8_rmac_pfc_group_t group, uint8_t pcp_mask)
Configure a PFC (802.1Qbb) priority group bitmap.
void ra8_rmac_dispatch(ra8_rmac_port_t port)
Dispatch a pending RMAC IRQ.
ra8_err_t ra8_rmac_set_mac_address(ra8_rmac_port_t port, const uint8_t mac[k_ra8_rmac_mac_byte_count])
Program the reception MAC address (MRMAC0 / MRMAC1).
ra8_rmac_phy_speed_t
Negotiated link speed.
Ethernet MAC (RMAC) per-port register layout for the RA8D2.
@ k_ra8_rmac_mac_byte_count
Bytes in a unicast MAC.
ra8_rmac_pfc_group_t
PFC priority group index (MTPFC3t, t = 0..1).
@ k_ra8_rmac_pfc_group_count
RA8 rmac pfc group count.
ra8_rmac_mrafc_t
MRAFC reception address filter mode bits (HUM Ch 33.4).
ra8_rmac_pis_t
Physical interface selector for MPIC.PIS[2:0].
@ k_ra8_rmac_pfc_rx_count
8 PFC priority RX counters.
ra8_rmac_lsc_t
Link-speed selector for MPIC.LSC[5:3] (HUM Ch 33.4).
ra8_rmac_pause_mode_t
Selects PFM bit in MTPFC2 – pause vs PFC frame.
ra8_rmac_port_t
RMAC port index (m = 0, 1).
ra8_rmac_duplex_t
Duplex selection (programmed via MPIC.PIPP / MPIC.PIP).
Per-port RMAC configuration knobs.
uint32_t mon0_irq_enable
Bits to OR into MMIE0.
uint32_t mon2_irq_enable
Bits to OR into MMIE2.
ra8_rmac_lsc_t link_speed
Initial MPIC.LSC encoding.
uint32_t eswclk_hz
Live ESWCLK frequency in Hz (input to the MDC divider).
ra8_rmac_mrafc_t rx_filter
Initial MRAFC mask.
ra8_rmac_duplex_t duplex
Initial MPIC.PIPP encoding.
uint32_t mdc_hz
Target MDC (PHY station-management clock) frequency in Hz.
uint32_t mon1_irq_enable
Bits to OR into MMIE1.
ra8_rmac_pis_t phy_interface
Initial MPIC.PIS encoding.
uint32_t err_irq_enable
Bits to OR into MEIE on init.
Resolved PHY link status snapshot.
ra8_rmac_phy_speed_t speed
Negotiated speed/duplex when up.
bool up
true iff BMSR.LINK_STATUS = 1.
Snapshot of every RMAC statistic counter.
uint32_t rx_hdr_crc_err
MRHCRCEC.
uint32_t pfc_tx_auto[k_ra8_rmac_pfc_group_count]
MAPCFTCT.
uint32_t rx_good_p
MRGFCP.
uint32_t rx_frag_count_err
MRFCEFC.
uint32_t rx_broadcast
MRBFC.
uint32_t tx_multicast
MTMFC.
uint32_t tx_bytes_e_lower
MTXBCEL.
uint32_t tx_unicast
MTUFC.
uint32_t tx_broadcast
MTBFC.
uint32_t tx_good_e
MTGFCE.
uint32_t rx_good_e
MRGFCE.
uint32_t rx_unicast
MRUFC.
uint32_t eee_count
MEEECT.
uint32_t rx_fcs_err
MRFMEFC.
uint32_t rx_bytes_p_lower
MRXBCPL.
uint32_t tx_bytes_e_upper
MTXBCEU.
uint32_t rx_bytes_p_upper
MRXBCPU.
uint32_t rx_good_oversize
MRGOEFC.
uint32_t rx_final_frag_miss
MRFFMEFC.
uint32_t rx_multicast
MRMFC.
uint32_t tx_good_p
MTGFCP.
uint32_t tx_bytes_p_upper
MTXBCPU.
uint32_t tx_bytes_p_lower
MTXBCPL.
uint32_t pfc_tx_manual[k_ra8_rmac_pfc_group_count]
MMPCFTCT.
uint32_t rx_good_undersize
MRGUEFC.
uint32_t rx_filter_rejected
MRRCFEFC.
uint32_t pause_tx_auto
MAPFTCT.
uint32_t rx_bad_oversize
MRBOEFC.
uint32_t rx_c_frag_err
MRCFCEFC.
uint32_t false_carrier
MFCICT.
uint32_t rx_phy_err
MRPEFC.
uint32_t pfc_rx[k_ra8_rmac_pfc_rx_count]
MPCFRCT.
uint32_t pause_tx_manual
MMPFTCT.
uint32_t rx_bad_undersize
MRBUEFC.
uint32_t rx_nibble_err
MRNEFC.
uint32_t rx_overflow
MROVFC.
uint32_t rx_bytes_e_upper
MRXBCEU.
uint32_t rx_bytes_e_lower
MRXBCEL.
Snapshot of an RMAC port's runtime state.
uint32_t phy_monitor
Raw MPIM contents.
uint32_t mrmac0
Cached MRMAC0 contents.
uint32_t mon_status[3]
MMIS0..MMIS2 contents.
uint32_t mrmac1
Cached MRMAC1 contents.
uint32_t err_status
Raw MEIS contents.