MODIFICATION HISTORY:
Ver Who Date Changes ----- ---- -------- ------------------------------------------------------- 1.00a jvb 11/10/06 First release 2.00a wsy 08/08/08 Added extended VLAN and multicast features
Functions | |
int | XLlTemac_MulticastAdd (XLlTemac *InstancePtr, void *AddressPtr, int Entry) |
void | XLlTemac_MulticastGet (XLlTemac *InstancePtr, void *AddressPtr, int Entry) |
int | XLlTemac_MulticastClear (XLlTemac *InstancePtr, int Entry) |
int | XLlTemac_SetMacPauseAddress (XLlTemac *InstancePtr, void *AddressPtr) |
void | XLlTemac_GetMacPauseAddress (XLlTemac *InstancePtr, void *AddressPtr) |
int | XLlTemac_SendPausePacket (XLlTemac *InstancePtr, u16 PauseValue) |
int | XLlTemac_GetSgmiiStatus (XLlTemac *InstancePtr, u16 *SpeedPtr) |
int | XLlTemac_GetRgmiiStatus (XLlTemac *InstancePtr, u16 *SpeedPtr, int *IsFullDuplexPtr, int *IsLinkUpPtr) |
int | XLlTemac_SetTpid (XLlTemac *InstancePtr, u16 Tpid, u8 Entry) |
int | XLlTemac_ClearTpid (XLlTemac *InstancePtr, u8 Entry) |
void | XLlTemac_GetTpid (XLlTemac *InstancePtr, u16 *TpidPtr, u8 Entry) |
int | XLlTemac_SetVTagMode (XLlTemac *InstancePtr, u32 Mode, int Dir) |
void | XLlTemac_GetVTagMode (XLlTemac *InstancePtr, u8 *ModePtr, int Dir) |
int | XLlTemac_SetVStripMode (XLlTemac *InstancePtr, u32 Mode, int Dir) |
void | XLlTemac_GetVStripMode (XLlTemac *InstancePtr, u8 *ModePtr, int Dir) |
int | XLlTemac_SetVTagValue (XLlTemac *InstancePtr, u32 VTagValue, int Dir) |
void | XLlTemac_GetVTagValue (XLlTemac *InstancePtr, u32 *VTagValuePtr, int Dir) |
int | XLlTemac_SetVidTable (XLlTemac *InstancePtr, u32 Entry, u32 Vid, u8 Strip, u8 Tag, int Dir) |
void | XLlTemac_GetVidTable (XLlTemac *InstancePtr, u32 Entry, u32 *VidPtr, u8 *StripPtr, u8 *TagPtr, int Dir) |
int | XLlTemac_AddExtMulticastGroup (XLlTemac *InstancePtr, void *AddressPtr) |
int | XLlTemac_ClearExtMulticastGroup (XLlTemac *InstancePtr, void *AddressPtr) |
int | XLlTemac_GetExtMulticastGroup (XLlTemac *InstancePtr, void *AddressPtr) |
void | XLlTemac_DumpExtMulticastGroup (XLlTemac *InstancePtr) |
|
XLlTemac_AddExtMulticastGroup adds an entry to the multicast Ethernet address table in BRAM. The new entry, represents a group of MAC addresses based on the contents of AddressPtr. AddressPtr is one member of the MAC address set in the newly added entry.
The device must be stopped to use this function. Once an Ethernet address is programmed, the TEMAC channel will begin receiving data sent from that address. The TEMAC hardware does not have a control bit to disable multicast filtering. The only way to prevent the TEMAC channel from receiving messages from an Ethernet address in the BRAM table is to clear it with XLlTemac_ClearExtMulticastGroup().
In BRAM table, hardware requires to 'index' with bit 22-8, 15 bits in total. The least significant byte/8 bits are considered a group. This API operates at a group (256 MAC addresses) for hardware to do the first layer address filtering. It is user's responsibility to provision this table appropriately. |
|
XLlTemac_ClearExtMulticastGroup clears input multicast Ethernet address group from BRAM table.
In BRAM table, hardware requires to 'index' with bit 22-8, 15 bits in total. The least significant byte/8 bits are considered a group. There is a scenario might introduce issues. When multicast tables are programed initially to accept 01:00:5E:12:34:56 and 01:00:5E:12:34:78 but later decided to clear 01:00:5E:12:34:78. Without validating all possible combinations at the indexed entry, multicast BRAM table might be misconfigured and drop frames. When clearing a multicast address table entry, note that a whole group of mac addresses will no longer be accepted - this because an entry in the table represents multiple(256) mac addresses.
The device must be stopped to use this function. |
|
XLlTemac_ClearTpid clears the VLAN Tag Protocol Identifier(TPID).
The device must be stopped to use this function.
|
|
XLlTemac_DumpExtMulticastGroup dump ALL provisioned acceptable multicast MAC in the TEMAC channel's multicast BRAM table.
This API operates at a set (256 MAC addresses) level. |
|
XLlTemac_GetExtMulticastGroup inquery the Ethernet addresses group stored in BRAM table.
|
|
XLlTemac_GetMacPauseAddress gets the MAC address used for pause frames for the TEMAC channel specified by InstancePtr.
|
|
XLlTemac_GetRgmiiStatus get the state of the link when using the RGMII media interface.
|
|
XLlTemac_GetSgmiiStatus get the state of the link when using the SGMII media interface.
|
|
XLlTemac_GetTpid gets the VLAN Tag Protocol Identifier value (TPID).
|
|
XLlTemac_GetVidTable gets VID table content includes new VLAN ID, strip and tag enable bits.
The device must be stopped to use this function.
Bits layout is bbbb bbbb bbbb b b VLAN ID (12b), | | | VLAN double tag enable bit VLAN strip enable bit |
|
XLlTemac_GetVStripMode configures the VLAN stripping mode.
The device must be stopped to use this function.
The third mode(XTE_VSTRP_SELECT) requires a method for specifying which tagged frames should be stripped. The VLAN translation table 'stripped enabled' is referenced. That configuration is handled in XLlTemac_SetVidTable(). Mode value shifting is handled in this function. No shifting is required to call this function. |
|
XLlTemac_GetVTagMode gets VLAN tagging mode.
The device must be stopped to use this function.
|
|
XLlTemac_GetVTagValue gets the configured VLAN tagging value.
The device must be stopped to use this function.
|
|
XLlTemac_MulticastAdd adds the Ethernet address, AddressPtr to the TEMAC channel's multicast filter list, at list index Entry. The address referenced by AddressPtr may be of any unicast, multicast, or broadcast address form. The harware for the TEMAC channel can hold up to XTE_MULTI_MAT_ENTRIES addresses in this filter list.
The device must be stopped to use this function. Once an Ethernet address is programmed, the TEMAC channel will begin receiving data sent from that address. The TEMAC hardware does not have a control bit to disable multicast filtering. The only way to prevent the TEMAC channel from receiving messages from an Ethernet address in the Multicast Address Table (MAT) is to clear it with XLlTemac_MulticastClear().
This routine works only with XTE_MULTICAST_OPTION that supports up to XTE_MULTI_MAT_ENTRIES. To use extended multicast feature (XTE_EXT_MULTICAST_OPTION), please enable extended multicast in hardware build and use XLlTemac_[Add|Clear|Get]ExtMulticastGroup() to manage multicast addresses. |
|
XLlTemac_MulticastClear clears the Ethernet address stored at index Entry in the TEMAC channel's multicast filter list.
The device must be stopped to use this function.
This routine works only with XTE_MULTICAST_OPTION that supports up to XTE_MULTI_MAT_ENTRIES. To use extended multicast feature (XTE_EXT_MULTICAST_OPTION), please enable extended multicast in hardware build and use XLlTemac_[Add|Clear|Get]ExtMulticastGroup() to manage multicast addresses. |
|
XLlTemac_MulticastGet gets the Ethernet address stored at index Entry in the TEMAC channel's multicast filter list.
This routine works only with XTE_MULTICAST_OPTION that supports up to XTE_MULTI_MAT_ENTRIES. To use extended multicast feature (XTE_EXT_MULTICAST_OPTION), please enable extended multicast in hardware build and use XLlTemac_[Add|Clear|Get]ExtMulticastGroup() to manage multicast addresses. |
|
XLlTemac_SendPausePacket sends a pause packet with the value of PauseValue.
|
|
XLlTemac_SetMacPauseAddress sets the MAC address used for pause frames to AddressPtr. AddressPtr will be the address the TEMAC channel will recognize as being for pause frames. Pause frames transmitted with XLlTemac_SendPausePacket() will also use this address.
|
|
XLlTemac_SetTpid sets the VLAN Tag Protocol Identifier(TPID).
The device must be stopped to use this function. Four values can be configured, 0x8100, 0x9100, 0x9200, 0x88A8.
|
|
XLlTemac_SetVidTable sets VID table includes new VLAN ID, strip and tag enable bits.
The device must be stopped to use this function.
Bits layout is bbbb bbbb bbbb b b VLAN ID (12b), | | | VLAN double tag enable bit VLAN strip enable bit To disable translation indexed by Entry, Set Vid = Entry. |
|
XLlTemac_SetVStripMode configures the VLAN strip mode.
The device must be stopped to use this function. Three modes can be configured, XTE_VSTRP_NONE - no stripping. XTE_VSTRP_ALL - strip one tag from all frames. XTE_VSTRP_SELECT - strip one tag from selected already tagged frames based on VID value.
Mode value shifting is handled in this function. No shifting is required to call this function. |
|
XLlTemac_SetVTagMode configures the VLAN tagging mode.
The device must be stopped to use this function. Four modes can be configured, XTE_VTAG_NONE - no tagging. XTE_VTAG_ALL - tag all frames. XTE_VTAG_EXISTED - tag already tagged frames. XTE_VTAG_SELECT - tag selected already tagged frames based on VID value.
Mode value shifting is handled in this function. No shifting is required to call this function. |
|
XLlTemac_SetVTagValue configures the VLAN tagging value.
The device must be stopped to use this function.
Ethernet VLAN frames' VLAN type/length(2B) and tag control information(2B). Bit layout : bbbb bbbb bbbb bbbb bbb b bbbb bbbb bbbb \ / | | \ VID (12b) / \ / | CFI bit (1b) TPID (16b) priority bit (3b) |
Copyright © 1995-2009 Xilinx, Inc. All rights reserved.