prf::hal::wizchip::W5500EthDeviceAdapter class final

Ethernet-device adapter over W5500 MACRAW HAL backend.

This adapter is owned by HAL because it depends on W5500 register layout and the concrete W5500Device transport API.

Base classes

class prf::net::eth::IEthernetDevice
Abstraction of Ethernet-capable L2 device used by lwIP netif runtime.

Public types

using HalConfig = W5500Device::Config
using HalRuntimeConfig = W5500Device::RuntimeConfig

Constructors, destructors, conversion operators

W5500EthDeviceAdapter(W5500Device& device) explicit

Public functions

void configure(const HalConfig& hal_config, const HalRuntimeConfig& runtime_config)
Stores hardware and runtime parameters that are used on first init.
auto dequeue_rx_frame(uint8_t* out, size_t out_capacity, size_t* out_size) -> bool override
Receives one Ethernet frame from W5500 MACRAW RX path.
auto enqueue_tx_frame(const uint8_t* frame, size_t frame_size) -> bool override
Sends one complete Ethernet frame through W5500 MACRAW TX path.
auto init() -> bool override
Initializes SPI/GPIO transport and W5500 MACRAW mode.
auto link_up() const -> bool override
Reads PHYCFGR link bit from W5500 common register space.
auto mac_address() const -> const uint8_t* override
Returns configured source MAC used by MACRAW runtime.
auto mtu_bytes() const -> size_t override
Returns maximum Ethernet frame bytes without FCS (1514 by contract).
auto ready() const -> bool override
Returns true when adapter was initialized and W5500 responds.
void service() override
Periodic service hook (currently no-op for W5500 path).
void set_rx_wakeup_context(TaskHandle_t task_handle) override
Attaches network task handle so IRQ can wake the runtime immediately.