/****************************************************************************** * * Copyright (C) 2010 - 2015 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * Use of the Software is limited solely to applications: * (a) running on a Xilinx device, or * (b) that interact with a Xilinx device through a bus or interconnect. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * * Except as contained in this notice, the name of the Xilinx shall not be used * in advertising or otherwise to promote the sale, use or other dealings in * this Software without prior written authorization from Xilinx. * ******************************************************************************/ /*****************************************************************************/ /** * * @file xaxiethernet_porting_guide.h * * This is a guide on how to move from using the ll temac driver to use the * xaxiethernet driver. * * The AXI Ethernet IP is based on the XPS_LL TEMAC IP. * There are few changes in the IP and some of them are listed below * - The Interface to access the IP is now AXI instead of the PLBV46 * - AXI4 streaming interfaces is used instead of LL (Local Link) * - All indirect accesses to Ethernet core registers have been removed. * - The AxiEthernet reset line is connected to the reset line of the * device connected to the AXI4-Stream interface. Hence any reset * of the connected device would reset AxiEthernet. * * Please read the HW Device specification of the AXI Ethernet IP for further * information. * * * The AXI Ethernet can be used in a DMA mode using the AXI DMA or * used in a FIFO mode using the AXI Streaming FIFO. * * There is a new driver for AXI DMA which is used by the AXi Ethernet. Please * refer the xaxidma_porting_guide.h provided as a part of the AXI DMA driver to * see the differences from the LL DMA driver. * * The LL FIFO driver is a common driver for the LL FIFO and the * AXI Streaming FIFO. * *
* MODIFICATION HISTORY: * * Ver Who Date Changes * ----- ---- -------- ------------------------------------------------------- * 1.00a ASA 07/18/10 First release * ** * Overview * * The API for xaxiethernet driver are similar to xlltemac driver. The prefix for the * API functions and structures is XAxiEthernet_ for the xaxiethernet driver. * * The prefix for all hash-defines (option masks or generic hash-defined constants) * start with XAE_. * * The Axi Ethernet API "XAxiEthernet_Reset" is different from the corresponding * LLTEMAC API "XLlTemac_Reset". The AxiEthernet version does not do a soft * reset of the AxiEthernet hardware. Since AxiEthernet hardware could only be * reset through the device connected to the AxiEthernet AXI4-Stream interface, * the user must ensure that AxiEthernet hardware initialization happens after * the initialization of the other device. * * These are the classification of the APIs * - APIs that only have prefix changes * - APIs that have been renamed * - APIs that are new * * Note that data structures have different prefix of XAxiEthernet_. Those API * functions, that have data structures with prefix change, are considered as * prefix change. * * API Functions That Only Have Prefix Changes * * Most of the functions have the prefix change and are given below *
* xlltemac driver | xaxiethernet driver * --------------------------------------------------------------------------------- * XLlTemac_IsStarted(...) | XAxiEthernet_IsStarted(...) * XLlTemac_IsDma(...) | XAxiEthernet_IsDma(...) * XLlTemac_IsFifo(...) | XAxiEthernet_IsFifo(...) * XLlTemac_LlDevBaseAddress(...) | XAxiEthernet_AxiDevBaseAddress(...) * XLlTemac_IsRecvFrameDropped(...) | XAxiEthernet_IsRecvFrameDropped(...) * XLlTemac_GetPhysicalInterface(...) | XAxiEthernet_GetPhysicalInterface(...) * XLlTemac_IntEnable(...) | XAxiEthernet_IntEnable(...) * XLlTemac_IntDisable(...) | XAxiEthernet_IntDisable(...) * XLlTemac_IntPending(...) | XAxiEthernet_IntPending(...) * XLlTemac_IntClear(...) | XAxiEthernet_IntClear(...) * XLlTemac_IsExtFuncCap(...) | XAxiEthernet_IsExtFuncCap(...) * XLlTemac_IsExtMcastEnable(...) | XAxiEthernet_IsExtMcastEnable(...) * XLlTemac_IsExtMcast(...) | XAxiEthernet_IsExtMcast(...) * XLlTemac_IsTxVlanStrp(...) | XAxiEthernet_IsTxVlanStrp(...) * XLlTemac_IsRxVlanStrp(...) | XAxiEthernet_IsRxVlanStrp(...) * XLlTemac_IsTxVlanTran(...) | XAxiEthernet_IsTxVlanTran(...) * XLlTemac_IsRxVlanTran(...) | XAxiEthernet_IsRxVlanTran(...) * XLlTemac_IsTxVlanTag(...) | XAxiEthernet_IsTxVlanTag(...) * XLlTemac_IsRxVlanTag(...) | XAxiEthernet_IsRxVlanTag(...) * XLlTemac_SetOptions (...) | XAxiEthernet_SetOptions(...) * XLlTemac_ClearOptions(...) | XAxiEthernet_ClearOptions(...) * XLlTemac_GetOptions(...) | XAxiEthernet_GetOptions(...) * XLlTemac_SetMacAddress(...) | XAxiEthernet_SetMacAddress(...) * XLlTemac_GetMacAddress(...) | XAxiEthernet_GetMacAddress(...) * XLlTemac_SetMacPauseAddress(...) | XAxiEthernet_SetMacPauseAddress(...) * XLlTemac_GetMacPauseAddress(...) | XAxiEthernet_GetMacPauseAddress(...) * XLlTemac_SendPausePacket(...) | XAxiEthernet_SendPausePacket(...) * XLlTemac_GetSgmiiStatus(...) | XAxiEthernet_GetSgmiiStatus(...) * XLlTemac_GetRgmiiStatus(...) | XAxiEthernet_GetRgmiiStatus(...) *... XLlTemac_GetOperatingSpeed(...) | XAxiEthernet_GetOperatingSpeed(...) * XLlTemac_SetOperatingSpeed(...) | XAxiEthernet_SetOperatingSpeed(...) * XLlTemac_PhySetMdioDivisor(...) | XAxiEthernet_PhySetMdioDivisor(...) * XLlTemac_PhyRead(...) | XAxiEthernet_PhyRead(...) * XLlTemac_PhyWrite(...) | XAxiEthernet_PhyWrite(...) * XLlTemac_MulticastAdd(...) | XAxiEthernet_MulticastAdd(...) * XLlTemac_MulticastGet(...) | XAxiEthernet_MulticastGet(...) * XLlTemac_MulticastClear(...) | XAxiEthernet_MulticastClear(...) * XLlTemac_SetTpid(...) | XAxiEthernet_SetTpid(...) * XLlTemac_ClearTpid(...) | XAxiEthernet_ClearTpid(...) * XLlTemac_GetTpid(...) | XAxiEthernet_GetTpid(...) * XLlTemac_SetVTagMode(...) | XAxiEthernet_SetVTagMode(...) * XLlTemac_GetVTagMode(...) | XAxiEthernet_GetVTagMode(...) * XLlTemac_SetVStripMode(...) | XAxiEthernet_SetVStripMode(...) * XLlTemac_GetVStripMode(...) | XAxiEthernet_GetVStripMode(...) * XLlTemac_SetVTagValue(...) | XAxiEthernet_SetVTagValue(...) * XLlTemac_GetVTagValue(...) | XAxiEthernet_GetVTagValue(...) * XLlTemac_SetVidTable(...) | XAxiEthernet_SetVidTable(...) * XLlTemac_GetVidTable(...) | XAxiEthernet_GetVidTable(...) * XLlTemac_AddExtMulticastGroup(...) | XAxiEthernet_AddExtMulticastGroup(...) * XLlTemac_ClearExtMulticastGroup(..)| XAxiEthernet_ClearExtMulticastGroup(...) * XLlTemac_GetExtMulticastGroup(...) | XAxiEthernet_GetExtMulticastGroup(...) * XLlTemac_DumpExtMulticastGroup(..) | XAxiEthernet_DumpExtMulticastGroup(...) ** * API Function names that have changed * *
* xlltemac driver | xaaxiethernet driver * ----------------------------------------------------------------------- * XLlTemac_IsRxCsum(...) | XAxiEthernet_IsRxPartialCsum(...) * XLlTemac_IsTxCsum(...) | XAxiEthernet_IsTxPartialCsum(...) * XLlTemac_Status(...) | XAxiEthernet_GetIntStatus ** * * API Functions That Are New API Functions * * - XAxiEthernet_GetTemacType(...) * - XAxiEthernet_IsAvbConfigured(...) * - XAxiEthernet_IsStatsConfigured(...) * - XAxiEthernet_SetBadFrmRcvOption((...); * - XAxiEthernet_ClearBadFrmRcvOption(...); * - XAxiEthernet_DisableControlFrameLenCheck(...) * - XAxiEthernet_EnableControlFrameLenCheck(...) * * ******************************************************************************/