10 #include <satcat5/pkt_buffer.h>
34 explicit Temac(uintptr_t baseaddr);
37 volatile u32*
const m_regs;
62 TemacAvb(uintptr_t baseaddr,
int irq_idx);
81 void send_frame(
const u8* buf,
unsigned buflen);
99 void check_frames_waiting();
106 u8 m_txrawbuff[2048];
107 u8 m_rxrawbuff[2048];
The PacketBuffer class is a wrapper for a circular buffer, with optional logic to support retention o...
Wrapper class for forwarding reads to another object.
Parent object for receiving interrupt-handler callbacks.
An "Always" object is polled whenever service() is called.
High-precision timestamp for use with PTP / IEEE1588.
Generic interface to a numerically-controlled reference clock.
Xilinx TEMAC with Audio-Video-Bridge (AVB) functionality.
static constexpr double CLOCK_SCALE
Scaling factor for use with avb_set_rate.
void irq_event() override
Method called whenever an interrupt is triggered.
void avb_set_rate(u32 incr)
Update AVB rate register.
void avb_jump_by(const satcat5::ublaze::TemacTime &delta)
One-time increment of the AVB internal timer.
satcat5::ublaze::TemacTime avb_get_time()
Read current time from the AVB internal timer.
void set_tx_callback(TemacAvbTxCallback *tx_callback)
Register callbacks for transmitted timestamps for PTP packets.
void poll_always() override
Child class MUST override this method.
satcat5::ptp::Time clock_adjust(const satcat5::ptp::Time &amount) override
Clock-adjustment API for ptp::TrackingClock.
void send_frame(const u8 *buf, unsigned buflen)
Send an arbitrary PTP frame with Ethernet header.
void clock_rate(s64 offset) override
Clock-adjustment API for ptp::TrackingClock.
satcat5::ptp::Time clock_now() override
Clock-adjustment API for ptp::TrackingClock.
TemacAvb(uintptr_t baseaddr, int irq_idx)
Initialize the core and link to specified instance.
Defines callback methods for timestamped egress times.
virtual void tx_sync(const satcat5::ptp::Time &sync_egress)
Callback for PTP "Sync" messages.
virtual void tx_delay_req(const satcat5::ptp::Time &delay_req_egress)
Callback for PTP "Delay request" messages.
Basic Xilinx TEMAC functionality.
Temac(uintptr_t baseaddr)
Initialize the core and link to specified instance.
Core event-processing loop for SatCat5 software.
High-precision "Time" object for use with PTP / IEEE1588.
Closed-loop time-tracking clocks and tracking control.
Platform-agnostic API for interrupt management.
Timestamp format used by the AVB core.