Xilinx UG492 Switch User Manual


 
84 www.xilinx.com Ethernet AVB Endpoint User Guide
UG492 July 23, 2010
Chapter 9: Precise Timing Protocol Packet Buffers
Despite the logic and formatting of each individual PTP buffer being identical, the block
RAM is pre-initialized at device configuration to hold template copies of each of the PTP
frames, as indicated in Figure 9-1. This shows that the first seven memory segments are in
use. PTP Buffer number 8 is currently unused and could therefore be used by proprietary
applications.
The “Tx PTP Packet Control Register” is defined for the purpose of requesting which of the
eight Tx PTP Buffers are to be transmitted. It is possible to request more than a single frame
at one time (indeed it is possible to request all 8). When more than one frame is requested,
the Tx PTP Buffer logic will give a priority order to the lowest PTP Buffer Number that has
been requested.
The “Tx PTP Packet Control Register” also contains a frame waiting field. This can be read
by the software drivers to determine which of the previously requested PTP frames have
been sent, and which are still queued.
Following transmission completion of each requested PTP frame, a dedicated interrupt
signal, interrupt_ptp_tx, will be generated by the core. On the assertion of the
interrupt, the captured timestamp will already be available in the upper four bytes of the
buffer, and the tx_packet field of the“Tx PTP Packet Control Register” will indicate the
most recently transmitted Buffer Number.
The “Software Drivers” provided with the core, using the PLB and dedicated interrupts,
will use this interface to periodically, as defined by the IEEE802.1AS protocol, update
specific fields within the PTP packets, and request transmission of these packets.
X-Ref Target - Figure 9-1
Figure 9-1: Tx PTP Packet Buffer Structure
Tx PTP Packet Buffers
Buffer Number Buffer Base Address
0
1
2
3
4
5
6
7
0x1000
0x1100
0x1200
0x1300
0x1400
0x1500
0x1600
0x1700
Single Tx PTP Packet Buffer
Address (+ Buffer Base Address)
byte-wide data
0xFF
0xFE
0xFD
0xFC
0x00
0x08
0x08 + frame_length_field
frame_length_field
reserved
PTP Frame Data
unused
timestamp[7:0]
timestamp[15:8]
timestamp[23:16]
timestamp[31:24]
Sync Frame
Follow_Up Frame
Pdelay_Req Frame
Pdelay_Resp Frame
Pdelay_Resp_Follow_Up
Frame
Announce Frame
Signaling Frame