diff options
| -rw-r--r-- | cpu/ixp/npe/include/#IxEthAcc.h# | 2512 | ||||
| -rw-r--r-- | cpu/ixp/npe/include/IxEthDB.h | 4 | ||||
| -rw-r--r-- | cpu/ixp/npe/include/IxEthDBQoS.h | 20 | ||||
| -rw-r--r-- | cpu/ixp/npe/include/IxNpeDlNpeMgr_p.h | 4 | ||||
| -rw-r--r-- | cpu/ixp/npe/include/IxOsServicesComponents.h | 60 | ||||
| -rw-r--r-- | cpu/ixp/npe/include/IxOsalAssert.h | 2 | ||||
| -rw-r--r-- | cpu/ixp/npe/include/IxOsalIoMem.h | 50 | ||||
| -rw-r--r-- | cpu/ixp/npe/include/IxOsalOsAssert.h | 2 | ||||
| -rw-r--r-- | cpu/ixp/npe/include/IxOsalOsBufferMgt.h | 4 | ||||
| -rw-r--r-- | cpu/ixp/npe/include/IxOsalOsTypes.h | 6 | ||||
| -rw-r--r-- | lib_arm/_ashldi3.S | 1 | ||||
| -rw-r--r-- | lib_arm/_ashrdi3.S | 1 | 
12 files changed, 74 insertions, 2592 deletions
| diff --git a/cpu/ixp/npe/include/#IxEthAcc.h# b/cpu/ixp/npe/include/#IxEthAcc.h# deleted file mode 100644 index a5ab6683169..00000000000 --- a/cpu/ixp/npe/include/#IxEthAcc.h# +++ /dev/null @@ -1,2512 +0,0 @@ -/** @file    IxEthAcc.h - * - * @brief this file contains the public API of @ref IxEthAcc component - * - * Design notes: - * The IX_OSAL_MBUF address is to be specified on bits [31-5] and must  - * be cache aligned (bits[4-0] cleared) - * - *  - * @par - * IXP400 SW Release version 2.0 - *  - * -- Copyright Notice -- - *  - * @par - * Copyright 2001-2005, Intel Corporation. - * All rights reserved. - *  - * @par - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - *    notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - *    notice, this list of conditions and the following disclaimer in the - *    documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Intel Corporation nor the names of its contributors - *    may be used to endorse or promote products derived from this software - *    without specific prior written permission. - *  - * @par - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - *  - * @par - * -- End of Copyright Notice -- - * - */ - -#ifndef IxEthAcc_H -#define IxEthAcc_H - -#include <IxOsBuffMgt.h> -#include <IxTypes.h> - -/** - * @defgroup IxEthAcc IXP400 Ethernet Access (IxEthAcc) API - * - * @brief ethAcc is a library that does provides access to the internal IXP400 10/100Bt Ethernet MACs. - * - *@{ - */ - -/** - * @ingroup IxEthAcc - * @brief Definition of the Ethernet Access status - */ -typedef enum /* IxEthAccStatus */ -{ -    IX_ETH_ACC_SUCCESS = IX_SUCCESS, /**< return success*/ -    IX_ETH_ACC_FAIL = IX_FAIL, /**< return fail*/ -    IX_ETH_ACC_INVALID_PORT, /**< return invalid port*/ -    IX_ETH_ACC_PORT_UNINITIALIZED, /**< return uninitialized*/ -    IX_ETH_ACC_MAC_UNINITIALIZED, /**< return MAC uninitialized*/ -    IX_ETH_ACC_INVALID_ARG, /**< return invalid arg*/ -    IX_ETH_TX_Q_FULL, /**< return tx queue is full*/ -    IX_ETH_ACC_NO_SUCH_ADDR /**< return no such address*/ -} IxEthAccStatus; - -/** - * @ingroup IxEthAcc - * @enum IxEthAccPortId - * @brief Definition of the IXP400 Mac Ethernet device. - */ -typedef enum   -{ -	IX_ETH_PORT_1 = 0, /**< Ethernet Port 1 */ -	IX_ETH_PORT_2 = 1,  /**< Ethernet port 2 */ -	IX_ETH_PORT_3 = 2 /**< Ethernet port 3 */ -} IxEthAccPortId; - -/** - * @ingroup IxEthAcc - * - * @def IX_ETH_ACC_NUMBER_OF_PORTS - * - * @brief  Definition of the number of ports - * - */ -#ifdef __ixp46X -#define IX_ETH_ACC_NUMBER_OF_PORTS (3) -#else -#define IX_ETH_ACC_NUMBER_OF_PORTS (2) -#endif - -/** - * @ingroup IxEthAcc - * - * @def IX_IEEE803_MAC_ADDRESS_SIZE - * - * @brief  Definition of the size of the MAC address - * - */ -#define IX_IEEE803_MAC_ADDRESS_SIZE (6) - - -/** - * - * @brief Definition of the IEEE 802.3 Ethernet MAC address structure. - * - * The data should be packed with bytes xx:xx:xx:xx:xx:xx  - * @note - * The data must be packed in network byte order. - */ -typedef struct   -{ -    UINT8 macAddress[IX_IEEE803_MAC_ADDRESS_SIZE]; /**< MAC address */ -} IxEthAccMacAddr; - -/** - * @ingroup IxEthAcc - * @def IX_ETH_ACC_NUM_TX_PRIORITIES - * @brief Definition of the number of transmit priorities - *  - */ -#define IX_ETH_ACC_NUM_TX_PRIORITIES (8) - -/** - * @ingroup IxEthAcc - * @enum IxEthAccTxPriority - * @brief Definition of the relative priority used to transmit a frame - *  - */ -typedef enum   -{ -	IX_ETH_ACC_TX_PRIORITY_0 = 0, /**<Lowest Priority submission */ -	IX_ETH_ACC_TX_PRIORITY_1 = 1, /**<submission prority of 1 (0 is lowest)*/ -	IX_ETH_ACC_TX_PRIORITY_2 = 2, /**<submission prority of 2 (0 is lowest)*/ -	IX_ETH_ACC_TX_PRIORITY_3 = 3, /**<submission prority of 3 (0 is lowest)*/ -	IX_ETH_ACC_TX_PRIORITY_4 = 4, /**<submission prority of 4 (0 is lowest)*/ -	IX_ETH_ACC_TX_PRIORITY_5 = 5, /**<submission prority of 5 (0 is lowest)*/ -	IX_ETH_ACC_TX_PRIORITY_6 = 6, /**<submission prority of 6 (0 is lowest)*/ -	IX_ETH_ACC_TX_PRIORITY_7 = 7, /**<Highest priority submission */ - -	IX_ETH_ACC_TX_DEFAULT_PRIORITY = IX_ETH_ACC_TX_PRIORITY_0 /**< By default send all  -								 packets with lowest priority */ -} IxEthAccTxPriority; - -/** - * @ingroup IxEthAcc - * @enum IxEthAccRxFrameType - * @brief Identify the type of a frame. - *  - * @sa IX_ETHACC_NE_FLAGS - * @sa IX_ETHACC_NE_LINKMASK - */ -typedef enum   -{ -	IX_ETHACC_RX_LLCTYPE = 0x00, /**< 802.3 - 8802, with LLC/SNAP */ -	IX_ETHACC_RX_ETHTYPE = 0x10, /**< 802.3 (Ethernet) without LLC/SNAP */ -	IX_ETHACC_RX_STATYPE = 0x20, /**< 802.11, AP <=> STA */ -	IX_ETHACC_RX_APTYPE  = 0x30  /**< 802.11, AP <=> AP */ -} IxEthAccRxFrameType; - -/** - * @ingroup IxEthAcc - * @enum IxEthAccDuplexMode - * @brief Definition to provision the duplex mode of the MAC.  - *  - */ -typedef enum -{ -    IX_ETH_ACC_FULL_DUPLEX, /**< Full duplex operation of the MAC */ -    IX_ETH_ACC_HALF_DUPLEX  /**< Half duplex operation of the MAC */ -} IxEthAccDuplexMode; - - -/** - * @ingroup IxEthAcc - * @struct IxEthAccNe - * @brief Definition of service-specific informations. - *  - * This structure defines the Ethernet service-specific informations - * and enable QoS and VLAN features. - */ -typedef struct -{ -    UINT32 ixReserved_next;    /**< reserved for chaining */ -    UINT32 ixReserved_lengths; /**< reserved for buffer lengths */ -    UINT32 ixReserved_data;    /**< reserved for buffer pointer */ -    UINT8  ixDestinationPortId; /**< Destination portId for this packet, if known by NPE */ -    UINT8  ixSourcePortId; /**< Source portId for this packet */ -    UINT16 ixFlags;        /**< BitField of option for this frame */ -    UINT8  ixQoS;          /**< QoS class of the frame */ -    UINT8  ixReserved;     /**< reserved */ -    UINT16 ixVlanTCI;      /**< Vlan TCI */ -    UINT8  ixDestMac[IX_IEEE803_MAC_ADDRESS_SIZE]; /**< Destination MAC address */ -    UINT8  ixSourceMac[IX_IEEE803_MAC_ADDRESS_SIZE]; /**< Source MAC address */ -} IxEthAccNe; - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_PORT_UNKNOWN - * - * @brief  Contents of the field @a IX_ETHACC_NE_DESTPORTID when no - * destination port can be found by the NPE for this frame. - * - */ -#define IX_ETHACC_NE_PORT_UNKNOWN   (0xff) - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_DESTMAC - * - * @brief The location of the destination MAC address in the Mbuf header. - * - */ -#define IX_ETHACC_NE_DESTMAC(mBufPtr) ((IxEthAccNe *)&((mBufPtr)->ix_ne))->ixDestMac - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_SOURCEMAC - * - * @brief The location of the source MAC address in the Mbuf header. - * - */ -#define IX_ETHACC_NE_SOURCEMAC(mBufPtr) ((IxEthAccNe *)&((mBufPtr)->ix_ne))->ixSourceMac - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_VLANTCI - * - * @brief The VLAN Tag Control Information associated with this frame - *  - * The VLAN Tag Control Information associated with this frame. On Rx - * path, this field is extracted from the packet header. - * On Tx path, the value of this field is inserted in the frame when - * the port is configured to insert or replace vlan tags in the  - * egress frames. - * - * @sa IX_ETHACC_NE_FLAGS - */ -#define IX_ETHACC_NE_VLANTCI(mBufPtr) ((IxEthAccNe *)&((mBufPtr)->ix_ne))->ixVlanTCI - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_SOURCEPORTID - * - * @brief The port where this frame came from. - * - * The port where this frame came from. This field is set on receive - * with the port information. This field is ignored on Transmit path. - */ -#define IX_ETHACC_NE_SOURCEPORTID(mBufPtr) ((IxEthAccNe *)&((mBufPtr)->ix_ne))->ixSourcePortId - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_DESTPORTID - * - * @brief The destination port where this frame should be sent. - * - * The destination port where this frame should be sent. - * - * @li In the transmit direction, this field contains the destination port - * and is ignored unless @a IX_ETHACC_NE_FLAG_DST is set. - *  - * @li In the receive direction, this field contains the port where the - * destination MAC addresses has been learned. If the destination - * MAC address is unknown, then this value is set to the reserved value - * @a IX_ETHACC_NE_PORT_UNKNOWN - * - */ -#define IX_ETHACC_NE_DESTPORTID(mBufPtr) ((IxEthAccNe *)&((mBufPtr)->ix_ne))->ixDestinationPortId - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_QOS - * - * @brief QualityOfService class (QoS) for this received frame. - * - */ -#define IX_ETHACC_NE_QOS(mBufPtr) ((IxEthAccNe *)&((mBufPtr)->ix_ne))->ixQoS - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_FLAGS - * - * @brief Bit Mask of the different flags associated with a frame - *  - * The flags are the bit-oring combination  - * of the following different fields : - * - *      @li IP flag (Rx @a IX_ETHACC_NE_IPMASK) - *      @li Spanning Tree flag (Rx @a IX_ETHACC_NE_STMASK) - *      @li Link layer type (Rx and Tx @a IX_ETHACC_NE_LINKMASK) - *      @li VLAN Tagged Frame (Rx @a IX_ETHACC_NE_VLANMASK) - *      @li New source MAC address (Rx @a IX_ETHACC_NE_NEWSRCMASK) - *      @li Multicast flag (Rx @a IX_ETHACC_NE_MCASTMASK) - *      @li Broadcast flag (Rx @a IX_ETHACC_NE_BCASTMASK) - *      @li Destination port flag (Tx @a IX_ETHACC_NE_PORTMASK) - *      @li Tag/Untag Tx frame (Tx @a IX_ETHACC_NE_TAGMODEMASK) - *      @li Overwrite destination port (Tx @a IX_ETHACC_NE_PORTOVERMASK) - *      @li Filtered frame (Rx @a IX_ETHACC_NE_STMASK) - *      @li VLAN Enabled (Rx and Tx @a IX_ETHACC_NE_VLANENABLEMASK) - */ -#define IX_ETHACC_NE_FLAGS(mBufPtr) ((IxEthAccNe *)&((mBufPtr)->ix_ne))->ixFlags - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_BCASTMASK - * - * @brief This mask defines if a received frame is a broadcast frame. - * - * This mask defines if a received frame is a broadcast frame. - * The BCAST flag is set when the destination MAC address of  - * a frame is broadcast. - * - * @sa IX_ETHACC_NE_FLAGS  - * - */ -#define IX_ETHACC_NE_BCASTMASK      (0x1) - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_MCASTMASK - * - * @brief This mask defines if a received frame is a multicast frame. - * - * This mask defines if a received frame is a multicast frame. - * The MCAST flag is set when the destination MAC address of  - * a frame is multicast. - * - * @sa IX_ETHACC_NE_FLAGS  - * - */ -#define IX_ETHACC_NE_MCASTMASK      (0x1 << 1) - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_IPMASK - * - * @brief This mask defines if a received frame is a IP frame. - * - * This mask applies to @a IX_ETHACC_NE_FLAGS and defines if a received  - * frame is a IP frame. The IP flag is set on Rx direction, depending on  - * the frame contents. The flag is set when the length/type field of a  - * received frame is 0x8000. - * - * @sa IX_ETHACC_NE_FLAGS - * - */ -#define IX_ETHACC_NE_IPMASK         (0x1 << 2) - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_VLANMASK - * - * @brief This mask defines if a received frame is VLAN tagged. - * - * This mask defines if a received frame is VLAN tagged. - * When set, the Rx frame is VLAN-tagged and the tag value  - * is available thru @a IX_ETHACC_NE_VLANID. - * Note that when sending frames which are already tagged - * this flag should be set, to avoid inserting another VLAN tag. - * - * @sa IX_ETHACC_NE_FLAGS  - * @sa IX_ETHACC_NE_VLANID - * - */ -#define IX_ETHACC_NE_VLANMASK       (0x1 << 3) - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_LINKMASK - * - * @brief This mask is the link layer protocol indicator - * - * This mask applies to @a IX_ETHACC_NE_FLAGS. - * It reflects the state of a frame as it exits an NPE on the Rx path - * or enters an NPE on the Tx path. Its values are as follows: - *      @li 0x00 - IEEE802.3 - 8802 (Rx) / IEEE802.3 - 8802 (Tx) - *      @li 0x01 - IEEE802.3 - Ethernet (Rx) / IEEE802.3 - Ethernet (Tx) - *      @li 0x02 - IEEE802.11 AP -> STA (Rx) / IEEE802.11 STA -> AP (Tx) - *      @li 0x03 - IEEE802.11 AP -> AP (Rx) / IEEE802.11 AP->AP (Tx) - * - * @sa IX_ETHACC_NE_FLAGS - * - */ -#define IX_ETHACC_NE_LINKMASK       (0x3 << 4) - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_STMASK - * - * @brief This mask defines if a received frame is a Spanning Tree frame. - * - * This mask applies to @a IX_ETHACC_NE_FLAGS. - * On rx direction, it defines if a received if frame is a Spanning Tree frame. - * Setting this fkag on transmit direction overrides the port settings  - * regarding the VLAN options and  - * - * @sa IX_ETHACC_NE_FLAGS - * - */ -#define IX_ETHACC_NE_STMASK         (0x1 << 6) - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_FILTERMASK - * - * @brief This bit indicates whether a frame has been filtered by the Rx service. - * - * This mask applies to @a IX_ETHACC_NE_FLAGS. - * Certain frames, which should normally be fully filtered by the NPE to due - * the destination MAC address being on the same segment as the Rx port are - * still forwarded to the XScale (although the payload is invalid) in order - * to learn the MAC address of the transmitting station, if this is unknown. - * Normally EthAcc will filter and recycle these framess internally and no - * frames with the FILTER bit set will be received by the client. - * - * @sa IX_ETHACC_NE_FLAGS - * - */ -#define IX_ETHACC_NE_FILTERMASK     (0x1 << 7) - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_PORTMASK - * - * @brief This mask defines the rule to transmit a frame - * - * This mask defines the rule to transmit a frame. When set, a frame - * is transmitted to the destination port as set by the macro - * @a IX_ETHACC_NE_DESTPORTID. If not set, the destination port  - * is searched using the destination MAC address. - * - * @note This flag is meaningful only for multiport Network Engines. - *  - * @sa IX_ETHACC_NE_FLAGS  - * @sa IX_ETHACC_NE_DESTPORTID - * - */ -#define IX_ETHACC_NE_PORTOVERMASK   (0x1 << 8) - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_TAGMODEMASK - * - * @brief This mask defines the tagging rules to apply to a transmit frame. - * - * This mask defines the tagging rules to apply to a transmit frame - * regardless of the default setting for a port. When used together  - * with @a IX_ETHACC_NE_TAGOVERMASK and when set, the  - * frame will be tagged prior to transmission. When not set, - * the frame will be untagged prior to transmission. This is accomplished - * irrespective of the Egress tagging rules, constituting a per-frame override. - * - * @sa IX_ETHACC_NE_FLAGS - * @sa IX_ETHACC_NE_TAGOVERMASK  - * - */ -#define IX_ETHACC_NE_TAGMODEMASK    (0x1 << 9) - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_TAGOVERMASK - * - * @brief This mask defines the rule to transmit a frame - * - * This mask defines the rule to transmit a frame. When set, the - * default transmit rules of a port are overriden. - * When not set, the default rules as set by @ref IxEthDB should apply. - * - * @sa IX_ETHACC_NE_FLAGS - * @sa IX_ETHACC_NE_TAGMODEMASK - * - */ -#define IX_ETHACC_NE_TAGOVERMASK    (0x1 << 10) - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_VLANENABLEMASK - * - * @brief This mask defines if a frame is a VLAN frame or not - * - * When set, frames undergo normal VLAN processing on the Tx path - * (membership filtering, tagging, tag removal etc). If this flag is - * not set, the frame is considered to be a regular non-VLAN frame - * and no VLAN processing will be performed. - * - * Note that VLAN-enabled NPE images will always set this flag in all - * Rx frames, and images which are not VLAN enabled will clear this - * flag for all received frames. - * - * @sa IX_ETHACC_NE_FLAGS - * - */ -#define IX_ETHACC_NE_VLANENABLEMASK (0x1 << 14) - -/** - * @ingroup IxEthAcc - * - * @def IX_ETHACC_NE_NEWSRCMASK - * - * @brief This mask defines if a received frame has been learned. - * - * This mask defines if the source MAC address of a frame is  - * already known. If the bit is set, the source MAC address was - * unknown to the NPE at the time the frame was received. - * - * @sa IX_ETHACC_NE_FLAGS  - * - */ -#define IX_ETHACC_NE_NEWSRCMASK     (0x1 << 15) - -/** - * @ingroup IxEthAcc - * - * @brief This defines the recommanded minimum size of MBUF's submitted - * to the frame receive service. - * - */ -#define IX_ETHACC_RX_MBUF_MIN_SIZE (2048) - -/** - * @ingroup IxEthAcc - * - * @brief This defines the highest MII address of any attached PHYs  - *  - * The maximum number for PHY address is 31, add on for range checking. - * - */ -#define IXP425_ETH_ACC_MII_MAX_ADDR   32 - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccInit(void) - *  - * @brief Initializes the IXP400 Ethernet Access Service. - *  - * @li Reentrant    - no - * @li ISR Callable - no - *  - * This should be called once per module initialization. - * @pre - *   The NPE must first be downloaded with the required microcode which supports all - *   required features. - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_FAIL	:  Service has failed to initialize. - * - * <hr> - */ -PUBLIC IxEthAccStatus ixEthAccInit(void); - - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccUnload(void) - *  - * @brief Unload the Ethernet Access Service. - *  - * @li Reentrant    - no - * @li ISR Callable - no - * - * @return void  - * - * <hr> - */ -PUBLIC void ixEthAccUnload(void); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortInit( IxEthAccPortId portId) - * - * @brief Initializes an NPE/Ethernet MAC Port. - * - * The NPE/Ethernet port initialisation includes the following steps - * @li Initialize the NPE/Ethernet MAC hardware. - * @li Verify NPE downloaded and operational. - * @li The NPE shall be available for usage once this API returns. - * @li Verify that the Ethernet port is present before initializing - * - * @li Reentrant    - no - * @li ISR Callable - no - * - * This should be called once per mac device. - * The NPE/MAC shall be in disabled state after init. - * - * @pre - *   The component must be initialized via @a ixEthAccInit - *   The NPE must first be downloaded with the required microcode which supports all - *   required features. - * - * Dependant on Services: (Must be initialized before using this service may be initialized) - * 	ixNPEmh - NPE Message handling service. - * 	ixQmgr	- Queue Manager component. - * - * @param portId  @ref IxEthAccPortId [in] - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS: if the ethernet port is not present, a warning is issued. - * @li @a IX_ETH_ACC_FAIL : The NPE processor has failed to initialize. - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * - * <hr> - */ -PUBLIC IxEthAccStatus ixEthAccPortInit(IxEthAccPortId portId); - - -/************************************************************************* - - #####     ##     #####    ##            #####     ##     #####  #    # - #    #   #  #      #     #  #           #    #   #  #      #    #    # - #    #  #    #     #    #    #          #    #  #    #     #    ###### - #    #  ######     #    ######          #####   ######     #    #    # - #    #  #    #     #    #    #          #       #    #     #    #    # - #####   #    #     #    #    #          #       #    #     #    #    # - -*************************************************************************/ - - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortTxFrameSubmit(  -    IxEthAccPortId portId, -    IX_OSAL_MBUF *buffer,  -    IxEthAccTxPriority priority) - *  - * @brief This function shall be used to submit MBUFs buffers for transmission on a particular MAC device.  - * - * When the frame is transmitted, the buffer shall be returned thru the  - * callback @a IxEthAccPortTxDoneCallback. - * - * In case of over-submitting, the order of the frames on the  - * network may be modified. - * - * Buffers shall be not queued for transmission if the port is disabled. - * The port can be enabled using @a ixEthAccPortEnable - * - *  - * @li Reentrant    - yes - * @li ISR Callable - yes - * - * - * @pre  - *  @a ixEthAccPortTxDoneCallbackRegister must be called to register a function to allow this service to - *   return the buffer to the calling service.  - *  - * @note  - *  If the buffer submit fails for any reason the user has retained ownership of the buffer. - * - * @param portId @ref IxEthAccPortId [in] - MAC port ID to transmit Ethernet frame on. - * @param buffer @ref IX_OSAL_MBUF [in] - pointer to an MBUF formatted buffer. Chained buffers are supported for transmission. - *             Chained packets are not supported and the field IX_OSAL_MBUF_NEXT_PKT_IN_CHAIN_PTR is ignored.  - * @param priority @ref IxEthAccTxPriority [in] - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_FAIL  : Failed to queue frame for transmission.  - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ - -PUBLIC IxEthAccStatus ixEthAccPortTxFrameSubmit(  -    IxEthAccPortId portId, -    IX_OSAL_MBUF *buffer,  -    IxEthAccTxPriority priority); - -/** - * @ingroup IxEthAcc - * - * @brief Function prototype for Ethernet Tx Buffer Done callback. Registered  - *  via @a ixEthAccTxBufferDoneCallbackRegister  - *  - * This function is called once the previously submitted buffer is no longer required by this service. - * It may be returned upon successful transmission of the frame or during the shutdown of  - * the port prior to the transmission of a queued frame. - * The calling of this registered function is not a guarantee of successful transmission of the buffer. - * - *   - * @li Reentrant    - yes , The user provided function should be reentrant. - * @li ISR Callable - yes , The user provided function must be callable from an ISR. - * - * - * <b>Calling Context </b>:  - * @par - *   This callback is called in the context of the queue manager dispatch loop @a ixQmgrgrDispatcherLoopRun - *   within the @ref IxQMgrAPI component. The calling context may be from interrupt or high priority thread.  - *   The decision is system specific. - * - * @param callbackTag UINT32 [in] - This tag is that provided when the callback was registered for a particular MAC  - * via @a ixEthAccPortTxDoneCallbackRegister. It allows the same callback to be used for multiple MACs. - * @param mbuf @ref IX_OSAL_MBUF [in] - Pointer to the Tx mbuf descriptor.  - *  - * @return void - * - * @note - * The field IX_OSAL_MBUF_NEXT_PKT_IN_CHAIN_PTR is modified by the access layer and reset to NULL. - * - * <hr> - */ -typedef void (*IxEthAccPortTxDoneCallback) ( UINT32 callbackTag, IX_OSAL_MBUF *buffer ); - - - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortTxDoneCallbackRegister( IxEthAccPortId portId,  -					   IxEthAccPortTxDoneCallback txCallbackFn,  - 					   UINT32 callbackTag) - * - * @brief Register a callback function to allow  - * the transmitted buffers to return to the user. - *  - * This function registers the transmit buffer done function callback for a particular port. - * - * The registered callback function is called once the previously submitted buffer is no longer required by this service. - * It may be returned upon successful transmission of the frame or  shutdown of port prior to submission. - * The calling of this registered function is not a guarantee of successful transmission of the buffer. - * - * If called several times the latest callback shall be registered for a particular port. - * - * @li Reentrant    - yes - * @li ISR Callable - yes - * - * @pre - *	The port must be initialized via @a ixEthAccPortInit - * - * - * @param portId @ref IxEthAccPortId [in] - Register callback for a particular MAC device. - * @param txCallbackFn @ref IxEthAccPortTxDoneCallback [in] - Function to be called to return transmit buffers to the user. - * @param callbackTag UINT32 [in] -  This tag shall be provided to the callback function. - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS  - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * @li @a IX_ETH_ACC_INVALID_ARG : An argument other than portId is invalid. - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortTxDoneCallbackRegister(IxEthAccPortId portId, -								   IxEthAccPortTxDoneCallback txCallbackFn, -								   UINT32 callbackTag); - - - -/** - * @ingroup IxEthAcc - * - * @brief Function prototype for Ethernet Frame Rx callback. Registered via @a ixEthAccPortRxCallbackRegister  - *  - * It is the responsibility of the user function to free any MBUF's which it receives. - *   - * @li Reentrant    - yes , The user provided function should be reentrant. - * @li ISR Callable - yes , The user provided function must be callable from an ISR. - * @par - * - * This function dispatches frames to the user level - * via the provided function. The invocation shall be made for each - * frame dequeued from the Ethernet QM queue. The user is required to free any MBUF's  - * supplied via this callback. In addition the registered callback must free up MBUF's - * from the receive free queue when the port is disabled  - *  - * If called several times the latest callback shall be registered for a particular port. - * - * <b>Calling Context </b>:  - * @par - *   This callback is called in the context of the queue manager dispatch loop @a ixQmgrgrDispatcherLoopRun - *   within the @ref IxQMgrAPI component. The calling context may be from interrupt or high priority thread.  - *   The decision is system specific. - * - * - * @param callbackTag UINT32 [in] - This tag is that provided when the callback was registered for a particular MAC  - * via @a ixEthAccPortRxCallbackRegister. It allows the same callback to be used for multiple MACs. - * @param mbuf @ref IX_OSAL_MBUF [in] - Pointer to the Rx mbuf header. Mbufs may be chained if  - *               the frame length is greater than the supplied mbuf length. - * @param reserved [in] - deprecated parameter The information is passed  - *      thru the IxEthAccNe header destination port ID field  - *      (@sa IX_ETHACC_NE_DESTPORTID). For backward  - *      compatibility,the value is equal to IX_ETH_DB_UNKNOWN_PORT (0xff).  - *  - * @return void - * - * @note - * Buffers may not be filled up to the length supplied in  - * @a ixEthAccPortRxFreeReplenish(). The firmware fills - * them to the previous 64 bytes boundary. The user has to be aware  - * that the length of the received mbufs may be smaller than the length - * of the supplied mbufs.  - * The mbuf header contains the following modified field - * @li @a IX_OSAL_MBUF_PKT_LEN is set in the header of the first mbuf and indicates - *  the total frame size - * @li @a IX_OSAL_MBUF_MLEN is set each mbuf header and indicates the payload length - * @li @a IX_OSAL_MBUF_NEXT_BUFFER_IN_PKT_PTR contains a pointer to the next  - *     mbuf, or NULL at the end of a chain. - * @li @a IX_OSAL_MBUF_NEXT_PKT_IN_CHAIN_PTR is modified. Its value is reset to NULL - * @li @a IX_OSAL_MBUF_FLAGS contains the bit 4 set for a broadcast packet and the bit 5 - *     set for a multicast packet. Other bits are unmodified. - * - * <hr> - */ -typedef void (*IxEthAccPortRxCallback) (UINT32 callbackTag, IX_OSAL_MBUF *buffer, UINT32 reserved); - -/** - * @ingroup IxEthAcc - * - * @brief Function prototype for Ethernet Frame Rx callback. Registered via @a ixEthAccPortMultiBufferRxCallbackRegister  - *  - * It is the responsibility of the user function to free any MBUF's which it receives. - *   - * @li Reentrant    - yes , The user provided function should be reentrant. - * @li ISR Callable - yes , The user provided function must be callable from an ISR. - * @par - * - * This function dispatches many frames to the user level - * via the provided function. The invocation shall be made for multiple frames - * dequeued from the Ethernet QM queue. The user is required to free any MBUF's  - * supplied via this callback. In addition the registered callback must free up MBUF's - * from the receive free queue when the port is disabled  - *  - * If called several times the latest callback shall be registered for a particular port. - * - * <b>Calling Context </b>:  - * @par - *   This callback is called in the context of the queue manager dispatch loop @a ixQmgrDispatcherLoopRun - *   within the @ref IxQMgrAPI component. The calling context may be from interrupt or high priority thread.  - *   The decision is system specific. - * - * - * @param callbackTag - This tag is that provided when the callback was registered for a particular MAC  - * via @a ixEthAccPortMultiBufferRxCallbackRegister. It allows the same callback to be used for multiple MACs. - * @param mbuf - Pointer to an array of Rx mbuf headers. Mbufs  - *               may be chained if  - *               the frame length is greater than the supplied mbuf length. - *               The end of the array contains a zeroed entry (NULL pointer). - * - * @return void - * - * @note The mbufs passed to this callback have the same structure than the - *  buffers passed to @a IxEthAccPortRxCallback interfac.  - * - * @note The usage of this callback is exclusive with the usage of - *  @a ixEthAccPortRxCallbackRegister and @a IxEthAccPortRxCallback  - * - * @sa ixEthAccPortMultiBufferRxCallbackRegister - * @sa IxEthAccPortMultiBufferRxCallback - * @sa ixEthAccPortRxCallbackRegister - * @sa IxEthAccPortRxCallback - * <hr> - */ - -typedef void (*IxEthAccPortMultiBufferRxCallback) (UINT32 callbackTag, IX_OSAL_MBUF **buffer); - - - - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortRxCallbackRegister( IxEthAccPortId portId, IxEthAccPortRxCallback rxCallbackFn, UINT32 callbackTag) - * - * @brief Register a callback function to allow  - * the reception of frames. - * - * The registered callback function is called once a frame is received  by this service. - * - * If called several times the latest callback shall be registered for a particular port. - * - * - * @li Reentrant    - yes - * @li ISR Callable - yes - * - * - * @param portId @ref IxEthAccPortId [in] - Register callback for a particular MAC device. - * @param rxCallbackFn @ref IxEthAccPortRxCallback [in] - Function to be called when Ethernet frames are availble. - * @param callbackTag UINT32 [in] -  This tag shall be provided to the callback function. - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS  - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * @li @a IX_ETH_ACC_INVALID_ARG : An argument other than portId is invalid. - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortRxCallbackRegister(IxEthAccPortId portId, -							   IxEthAccPortRxCallback rxCallbackFn, -							   UINT32 callbackTag); - - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortMultiBufferRxCallbackRegister( IxEthAccPortId portId, IxEthAccPortMultiBufferRxCallback rxCallbackFn, UINT32 callbackTag) - * - * @brief Register a callback function to allow  - * the reception of frames. - *  - * The registered callback function is called once a frame is  - * received  by this service. If many frames are already received,  - * the function is called once. - * - * If called several times the latest callback shall be registered for a particular port. - * - * @li Reentrant    - yes - * @li ISR Callable - yes - * - * - * @param portId - Register callback for a particular MAC device. - * @param rxCallbackFn - @a IxEthAccMultiBufferRxCallbackFn - Function to be called when Ethernet frames are availble. - * @param callbackTag -  This tag shall be provided to the callback function. - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS  - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * @li @a IX_ETH_ACC_INVALID_ARG : An argument other than portId is invalid. - * - * @sa ixEthAccPortMultiBufferRxCallbackRegister - * @sa IxEthAccPortMultiBufferRxCallback - * @sa ixEthAccPortRxCallbackRegister - * @sa IxEthAccPortRxCallback - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortMultiBufferRxCallbackRegister(IxEthAccPortId portId, -										  IxEthAccPortMultiBufferRxCallback rxCallbackFn, -										  UINT32 callbackTag); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortRxFreeReplenish( IxEthAccPortId portId, IX_OSAL_MBUF *buffer) - * - * @brief This function provides buffers for the Ethernet receive path.  - * - * This component does not have a buffer management mechanisms built in. All Rx buffers must be supplied to it - * via this interface.  - * - * @li Reentrant    - yes - * @li ISR Callable - yes - * - * @param portId @ref IxEthAccPortId [in] - Provide buffers only to specific Rx MAC.  - * @param buffer @ref IX_OSAL_MBUF [in] - Provide an MBUF to the Ethernet receive mechanism.  - *                 Buffers size smaller than IX_ETHACC_RX_MBUF_MIN_SIZE may result in poor - *                 performances and excessive buffer chaining. Buffers - *                 larger than this size may be suitable for jumbo frames. - *                 Chained packets are not supported and the field IX_OSAL_MBUF_NEXT_PKT_IN_CHAIN_PTR must be NULL.  - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_FAIL : Buffer has was not able to queue the  - *                     buffer in the receive service. - * @li @a IX_ETH_ACC_FAIL : Buffer size is less than IX_ETHACC_RX_MBUF_MIN_SIZE - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * @note - * If the buffer replenish operation fails it is the responsibility  - * of the user to free the buffer. - * - * @note - * Sufficient buffers must be supplied to the component to maintain - * receive throughput and avoid rx buffer underflow conditions. - * To meet this goal, It is expected that the user preload the  - * component with a sufficent number of buffers prior to enabling the - * NPE Ethernet receive path. The recommended minimum number of  - * buffers is 8. - * - * @note - * For maximum performances, the mbuf size should be greater  - * than the maximum frame size (Ethernet header, payload and FCS) + 64.  - * Supplying smaller mbufs to the service results in mbuf - * chaining and degraded performances. The recommended size - * is @a IX_ETHACC_RX_MBUF_MIN_SIZE, which is - * enough to take care of 802.3 frames and "baby jumbo" frames without - * chaining, and "jumbo" frame within chaining. - * - * @note - * Buffers may not be filled up to their length. The firware fills - * them up to the previous 64 bytes boundary. The user has to be aware  - * that the length of the received mbufs may be smaller than the length - * of the supplied mbufs. - * - * @warning This function checks the parameters if the NDEBUG  - * flag is not defined. Turning on the argument checking (disabled by  - * default) results in a lower EthAcc performance as this function - * is part of the data path. - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortRxFreeReplenish( IxEthAccPortId portId, IX_OSAL_MBUF *buffer); - - - -/*************************************************************** - -  ####    ####   #    #   #####  #####    ####   # - #    #  #    #  ##   #     #    #    #  #    #  # - #       #    #  # #  #     #    #    #  #    #  # - #       #    #  #  # #     #    #####   #    #  # - #    #  #    #  #   ##     #    #   #   #    #  # -  ####    ####   #    #     #    #    #   ####   ###### - - -         #####   #         ##    #    #  ###### -         #    #  #        #  #   ##   #  # -         #    #  #       #    #  # #  #  ##### -         #####   #       ######  #  # #  # -         #       #       #    #  #   ##  # -         #       ######  #    #  #    #  ###### - -***************************************************************/ - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortEnable(IxEthAccPortId portId) - * - * @brief This enables an Ethernet port for both Tx and Rx.  - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @pre The port must first be initialized via @a ixEthAccPortInit and the MAC address  - * must be set using @a ixEthAccUnicastMacAddressSet before enabling it - * The rx and Tx Done callbacks registration via @a - * ixEthAccPortTxDoneCallbackRegister amd @a  ixEthAccPortRxCallbackRegister - * has to be done before enabling the traffic. - *  - * @param  portId @ref IxEthAccPortId [in] - Port id to act upon. - *  - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS  - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is not initialized - * @li @a IX_ETH_ACC_MAC_UNINITIALIZED : port MAC address is not initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus ixEthAccPortEnable(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortDisable(IxEthAccPortId portId) - * - * @brief This disables an Ethernet port for both Tx and Rx.  - * - * Free MBufs are returned to the user via the registered callback when the port is disabled  - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @pre The port must be enabled with @a ixEthAccPortEnable, otherwise this - * function has no effect - * - * @param  portId @ref IxEthAccPortId [in] - Port id to act upon. - *  - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS  - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is not initialized - * @li @a IX_ETH_ACC_MAC_UNINITIALIZED : port MAC address is not initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus ixEthAccPortDisable(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortEnabledQuery(IxEthAccPortId portId, BOOL *enabled) - * - * @brief Get the enabled state of a port. - * - * @li Reentrant    - yes - * @li ISR Callable - yes - * - * @pre The port must first be initialized via @a ixEthAccPortInit - * - * @param  portId @ref IxEthAccPortId [in] - Port id to act upon. - * @param  enabled BOOL [out] - location to store the state of the port - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortEnabledQuery(IxEthAccPortId portId, BOOL *enabled); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortPromiscuousModeClear(IxEthAccPortId portId) - * - * @brief Put the Ethernet MAC device in non-promiscuous mode. - *  - * In non-promiscuous mode the MAC filters all frames other than  - * destination MAC address which matches the following criteria: - * @li Unicast address provisioned via @a ixEthAccUnicastMacAddressSet - * @li All broadcast frames. - * @li Multicast addresses provisioned via @a ixEthAccMulticastAddressJoin - * - * Other functions modify the MAC filtering - * - * @li @a ixEthAccPortMulticastAddressJoinAll() - all multicast - *     frames are forwarded to the application - * @li @a ixEthAccPortMulticastAddressLeaveAll() - rollback the - *     effects of @a ixEthAccPortMulticastAddressJoinAll() - * @li @a ixEthAccPortMulticastAddressLeave() - unprovision a new  - *     filtering address - * @li @a ixEthAccPortMulticastAddressJoin() - provision a new  - *     filtering address - * @li @a ixEthAccPortPromiscuousModeSet() - all frames are  - *     forwarded to the application regardless of the multicast  - *     address provisioned - * @li @a ixEthAccPortPromiscuousModeClear() - frames are forwarded  - *     to the application following the multicast address provisioned - * - * In all cases, unicast and broadcast addresses are forwarded to  - * the application. - * - * @li Reentrant    - yes - * @li ISR Callable - no - *  - * @sa ixEthAccPortPromiscuousModeSet - *  - * @param portId @ref IxEthAccPortId [in] - Ethernet port id. - *  - * @return IxEthAccStatus  - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus ixEthAccPortPromiscuousModeClear(IxEthAccPortId portId); - - -/** - * @ingroup IxEthAcc - * - * @fn  ixEthAccPortPromiscuousModeSet(IxEthAccPortId portId) - * - * @brief Put the MAC device in promiscuous mode. - *  - * If the device is in promiscuous mode then all all received frames shall be forwared - * to the NPE for processing. - * - * Other functions modify the MAC filtering - * - * @li @a ixEthAccPortMulticastAddressJoinAll() - all multicast - *     frames are forwarded to the application - * @li @a ixEthAccPortMulticastAddressLeaveAll() - rollback the - *     effects of @a ixEthAccPortMulticastAddressJoinAll() - * @li @a ixEthAccPortMulticastAddressLeave() - unprovision a new  - *     filtering address - * @li @a ixEthAccPortMulticastAddressJoin() - provision a new  - *     filtering address - * @li @a ixEthAccPortPromiscuousModeSet() - all frames are  - *     forwarded to the application regardless of the multicast  - *     address provisioned - * @li @a ixEthAccPortPromiscuousModeClear() - frames are forwarded  - *     to the application following the multicast address provisioned - * - * In all cases, unicast and broadcast addresses are forwarded to  - * the application. - * - * @li Reentrant    - yes - * @li ISR Callable - no - *  - * @sa ixEthAccPortPromiscuousModeClear - * - * @param portId @ref IxEthAccPortId [in] - Ethernet port id. - *  - * @return IxEthAccStatus  - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus ixEthAccPortPromiscuousModeSet(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortUnicastMacAddressSet(      IxEthAccPortId portId, -                                                  IxEthAccMacAddr *macAddr) - * - * @brief Configure unicast MAC address for a particular port - * - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @param portId @ref IxEthAccPortId [in] - Ethernet port id. - * @param *macAddr @ref IxEthAccMacAddr [in] - Ethernet Mac address. - * - * @return IxEthAccStatus  - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus ixEthAccPortUnicastMacAddressSet(IxEthAccPortId portId, -													   IxEthAccMacAddr *macAddr); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortUnicastMacAddressGet(	IxEthAccPortId portId,  -					IxEthAccMacAddr *macAddr) - * - * @brief Get unicast MAC address for a particular MAC port  - * - * @pre - * The MAC address must first be set via @a ixEthAccMacPromiscuousModeSet - * If the MAC address has not been set, the function returns a  - * IX_ETH_ACC_MAC_UNINITIALIZED status - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @param portId @ref IxEthAccPortId [in] - Ethernet port id. - * @param *macAddr @ref IxEthAccMacAddr [out] - Ethernet MAC address. - * - * @return  IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_MAC_UNINITIALIZED : port MAC address is not initialized. - * @li @a IX_ETH_ACC_FAIL : macAddr is invalid. - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortUnicastMacAddressGet(IxEthAccPortId portId, -								 IxEthAccMacAddr *macAddr); - - - - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortMulticastAddressJoin(      IxEthAccPortId portId, -                                             IxEthAccMacAddr *macAddr) - * - * @brief Add a multicast address to the MAC address table. - * - *  @note - *  Due to the operation of the Ethernet MAC multicast filtering mechanism, frames which do not  - *  have a multicast destination address which were provisioned via this API may be forwarded  - *  to the NPE's. This is a result of the hardware comparison  algorithm used in the destination mac address logic - *  within the Ethernet MAC.  - * - *  See Also: IXP425 hardware development manual. - *  - * Other functions modify the MAC filtering - * - * @li @a ixEthAccPortMulticastAddressJoinAll() - all multicast - *     frames are forwarded to the application - * @li @a ixEthAccPortMulticastAddressLeaveAll() - rollback the - *     effects of @a ixEthAccPortMulticastAddressJoinAll() - * @li @a ixEthAccPortMulticastAddressLeave() - unprovision a new  - *     filtering address - * @li @a ixEthAccPortMulticastAddressJoin() - provision a new  - *     filtering address - * @li @a ixEthAccPortPromiscuousModeSet() - all frames are  - *     forwarded to the application regardless of the multicast  - *     address provisioned - * @li @a ixEthAccPortPromiscuousModeClear() - frames are forwarded  - *     to the application following the multicast address provisioned - * - * In all cases, unicast and broadcast addresses are forwarded to  - * the application. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @param portId @ref IxEthAccPortId [in] - Ethernet port id. - * @param *macAddr @ref IxEthAccMacAddr [in] - Ethernet Mac address. - * - * @return IxEthAccStatus  - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_FAIL : Error writing to the MAC registers - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortMulticastAddressJoin(IxEthAccPortId portId, -								 IxEthAccMacAddr *macAddr); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortMulticastAddressJoinAll(  IxEthAccPortId portId) - * - * @brief Filter all frames with multicast dest. - * - * This function clears the MAC address table, and then sets - * the MAC to forward ALL multicast frames to the NPE. - * Specifically, it forwards all frames whose destination address - * has the LSB of the highest byte set  (01:00:00:00:00:00).  This - * bit is commonly referred to as the "multicast bit". - * Broadcast frames will still be forwarded.  - * - * Other functions modify the MAC filtering - * - * @li @a ixEthAccPortMulticastAddressJoinAll() - all multicast - *     frames are forwarded to the application - * @li @a ixEthAccPortMulticastAddressLeaveAll() - rollback the - *     effects of @a ixEthAccPortMulticastAddressJoinAll() - * @li @a ixEthAccPortMulticastAddressLeave() - unprovision a new  - *     filtering address - * @li @a ixEthAccPortMulticastAddressJoin() - provision a new  - *     filtering address - * @li @a ixEthAccPortPromiscuousModeSet() - all frames are  - *     forwarded to the application regardless of the multicast  - *     address provisioned - * @li @a ixEthAccPortPromiscuousModeClear() - frames are forwarded  - *     to the application following the multicast address provisioned - * - * In all cases, unicast and broadcast addresses are forwarded to  - * the application. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @param portId @ref IxEthAccPortId [in] - Ethernet port id. - * - * @return IxEthAccStatus  - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortMulticastAddressJoinAll(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortMulticastAddressLeave( IxEthAccPortId portId, -                                         IxEthAccMacAddr *macAddr) - * - * @brief Remove a multicast address from the MAC address table. - * - * Other functions modify the MAC filtering - * - * @li @a ixEthAccPortMulticastAddressJoinAll() - all multicast - *     frames are forwarded to the application - * @li @a ixEthAccPortMulticastAddressLeaveAll() - rollback the - *     effects of @a ixEthAccPortMulticastAddressJoinAll() - * @li @a ixEthAccPortMulticastAddressLeave() - unprovision a new  - *     filtering address - * @li @a ixEthAccPortMulticastAddressJoin() - provision a new  - *     filtering address - * @li @a ixEthAccPortPromiscuousModeSet() - all frames are  - *     forwarded to the application regardless of the multicast  - *     address provisioned - * @li @a ixEthAccPortPromiscuousModeClear() - frames are forwarded  - *     to the application following the multicast address provisioned - * - * In all cases, unicast and broadcast addresses are forwarded to  - * the application. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @param portId @ref IxEthAccPortId [in] - Ethernet port id. - * @param *macAddr @ref IxEthAccMacAddr [in] - Ethernet Mac address. - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_NO_SUCH_ADDR :  Failed if MAC address was not in the table. - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortMulticastAddressLeave(IxEthAccPortId portId, -								  IxEthAccMacAddr *macAddr); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortMulticastAddressLeaveAll( IxEthAccPortId portId) - * - * @brief This function unconfigures the multicast filtering settings - * - * This function first clears the MAC address table, and then sets - * the MAC as configured by the promiscuous mode current settings. - * - * Other functions modify the MAC filtering - * - * @li @a ixEthAccPortMulticastAddressJoinAll() - all multicast - *     frames are forwarded to the application - * @li @a ixEthAccPortMulticastAddressLeaveAll() - rollback the - *     effects of @a ixEthAccPortMulticastAddressJoinAll() - * @li @a ixEthAccPortMulticastAddressLeave() - unprovision a new  - *     filtering address - * @li @a ixEthAccPortMulticastAddressJoin() - provision a new  - *     filtering address - * @li @a ixEthAccPortPromiscuousModeSet() - all frames are  - *     forwarded to the application regardless of the multicast  - *     address provisioned - * @li @a ixEthAccPortPromiscuousModeClear() - frames are forwarded  - *     to the application following the multicast address provisioned - * - * In all cases, unicast and broadcast addresses are forwarded to  - * the application. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @param portId @ref IxEthAccPortId [in] - Ethernet port id. - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortMulticastAddressLeaveAll(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortUnicastAddressShow(IxEthAccPortId portId) - * - * @brief Displays unicast MAC address - * - * Displays unicast address which is configured using  - * @a ixEthAccUnicastMacAddressSet. This function also displays the MAC filter used - * to filter multicast frames. - * - * Other functions modify the MAC filtering - * - * @li @a ixEthAccPortMulticastAddressJoinAll() - all multicast - *     frames are forwarded to the application - * @li @a ixEthAccPortMulticastAddressLeaveAll() - rollback the - *     effects of @a ixEthAccPortMulticastAddressJoinAll() - * @li @a ixEthAccPortMulticastAddressLeave() - unprovision a new  - *     filtering address - * @li @a ixEthAccPortMulticastAddressJoin() - provision a new  - *     filtering address - * @li @a ixEthAccPortPromiscuousModeSet() - all frames are  - *     forwarded to the application regardless of the multicast  - *     address provisioned - * @li @a ixEthAccPortPromiscuousModeClear() - frames are forwarded  - *     to the application following the multicast address provisioned - * - * In all cases, unicast and broadcast addresses are forwarded to  - * the application. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @param portId @ref IxEthAccPortId [in] - Ethernet port id. - * - * @return void - * - * <hr> - */ -PUBLIC IxEthAccStatus ixEthAccPortUnicastAddressShow(IxEthAccPortId portId); - - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortMulticastAddressShow( IxEthAccPortId portId) - * - * @brief Displays multicast MAC address - * - * Displays multicast address which have been configured using @a ixEthAccMulticastAddressJoin - *  - * @li Reentrant    - yes - * @li ISR Callable - no - *  - * @param portId @ref IxEthAccPortId [in] - Ethernet port id. - * - * @return void - * - * <hr> - */ -PUBLIC void ixEthAccPortMulticastAddressShow( IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortDuplexModeSet( IxEthAccPortId portId, IxEthAccDuplexMode mode ) - * - * @brief  Set the duplex mode for the MAC. - * - * Configure the IXP400 MAC to either full or half duplex.  - * - * @note  - * The configuration should match that provisioned on the PHY. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @param portId @ref IxEthAccPortId [in] - * @param mode @ref IxEthAccDuplexMode [in] - * - * @return IxEthAccStatus  - * @li @a IX_ETH_ACC_SUCCESS  - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus  -ixEthAccPortDuplexModeSet(IxEthAccPortId portId,IxEthAccDuplexMode mode); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortDuplexModeGet( IxEthAccPortId portId, IxEthAccDuplexMode *mode ) - * - * @brief  Get the duplex mode for the MAC. - * - * return the duplex configuration of the IXP400 MAC. - * - * @note - * The configuration should match that provisioned on the PHY. - * See @a ixEthAccDuplexModeSet - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @param portId @ref IxEthAccPortId [in] - * @param *mode @ref IxEthAccDuplexMode [out] - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS  - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - * - */ -PUBLIC IxEthAccStatus  -ixEthAccPortDuplexModeGet(IxEthAccPortId portId,IxEthAccDuplexMode *mode ); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortTxFrameAppendPaddingEnable( IxEthAccPortId portId) - * - * @brief  Enable padding bytes to be appended to runt frames submitted to - * this port - *  - * Enable up to 60 null-bytes padding bytes to be appended to runt frames  - * submitted to this port. This is the default behavior of the access  - * component. - * - * @warning Do not change this behaviour while the port is enabled. - * - * @note When Tx padding is enabled, Tx FCS generation is turned on - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @sa ixEthAccPortTxFrameAppendFCSDusable - * - * @param portId @ref IxEthAccPortId [in] - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS  - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortTxFrameAppendPaddingEnable(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortTxFrameAppendPaddingDisable( IxEthAccPortId portId) - * - * @brief  Disable padding bytes to be appended to runt frames submitted to - * this port - *  - * Disable padding bytes to be appended to runt frames  - * submitted to this port. This is not the default behavior of the access  - * component. - * - * @warning Do not change this behaviour while the port is enabled. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @param portId @ref IxEthAccPortId [in]  - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS  - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortTxFrameAppendPaddingDisable(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortTxFrameAppendFCSEnable( IxEthAccPortId portId) - * - * @brief  Enable the appending of Ethernet FCS to all frames submitted to this port - *  - * When enabled, the FCS is added to the submitted frames. This is the default  - * behavior of the access component. - * Do not change this behaviour while the port is enabled. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @param portId @ref IxEthAccPortId [in]  - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS  - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortTxFrameAppendFCSEnable(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortTxFrameAppendFCSDisable( IxEthAccPortId portId) - * - * @brief  Disable the appending of Ethernet FCS to all frames submitted to this port. - *  - * When disabled, the Ethernet FCS is not added to the submitted frames.  - * This is not the default - * behavior of the access component. - * - * @note Since the FCS is not appended to the frame it is expected that the frame submitted to the  - * component includes a valid FCS at the end of the data, although this will not be validated. - * - * The component shall forward the frame to the Ethernet MAC WITHOUT modification. - * - * Do not change this behaviour while the port is enabled. - * - * @note Tx FCS append is not disabled while Tx padding is enabled. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @sa ixEthAccPortTxFrameAppendPaddingEnable - * - * @param portId @ref IxEthAccPortId [in]  - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS  - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortTxFrameAppendFCSDisable(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortRxFrameAppendFCSEnable( IxEthAccPortId portId) - * - * @brief Forward frames with FCS included in the receive buffer. - * - * The FCS is not striped from the receive buffer.  - * The received frame length includes the FCS size (4 bytes). ie.  - * A minimum sized ethernet frame shall have a length of 64bytes. - * - * Frame FCS validity checks are still carried out on all received frames. - * - * This is not the default - * behavior of the access component. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @param portId @ref IxEthAccPortId [in] - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS  - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortRxFrameAppendFCSEnable(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccPortRxFrameAppendFCSDisable( IxEthAccPortId portId) - * - * @brief  Do not forward the FCS portion of the received Ethernet frame to the user.  - * The FCS is striped from the receive buffer.  - * The received frame length does not include the FCS size (4 bytes). - * Frame FCS validity checks are still carried out on all received frames. - * - * This is the default behavior of the component. - * Do not change this behaviour while the port is enabled. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @param portId @ref IxEthAccPortId [in] - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS  - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccPortRxFrameAppendFCSDisable(IxEthAccPortId portId); - - - - -/** - * @ingroup IxEthAcc - * - * @enum IxEthAccSchedulerDiscipline - * - * @brief  Definition for the port scheduling discipline - * - * Select the port scheduling discipline on receive and transmit path - * @li FIFO : No Priority : In this configuration all frames are processed - *                       in the access component in the strict order in which  - *                        the component received them. - * @li FIFO : Priority : This shall be a very simple priority mechanism.  - *                     Higher prior-ity frames shall be forwarded  - *                     before lower priority frames. There shall be no  - *                     fairness mechanisms applied across different  - *                     priorities. Higher priority frames could starve  - *                     lower priority frames indefinitely. - */ -typedef  enum  -{ -    FIFO_NO_PRIORITY, /**<frames submitted with no priority*/ -    FIFO_PRIORITY /**<higher prority frames submitted before lower priority*/ -}IxEthAccSchedulerDiscipline; - -/** - * @ingroup IxEthAcc - * - * @def IxEthAccTxSchedulerDiscipline - * - * @brief  Deprecated definition for the port transmit scheduling discipline - */  -#define IxEthAccTxSchedulerDiscipline IxEthAccSchedulerDiscipline - - - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccTxSchedulingDisciplineSet( IxEthAccPortId portId, IxEthAccSchedulerDiscipline sched) - * - * @brief Set the port scheduling to one of @a IxEthAccSchedulerDiscipline - * - * The default behavior of the component is @a FIFO_NO_PRIORITY. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @pre - * - * - * @param portId @ref IxEthAccPortId [in]  - * @param sched @ref IxEthAccSchedulerDiscipline [in]  - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS : Set appropriate discipline. - * @li @a IX_ETH_ACC_FAIL :  Invalid/unsupported discipline. - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccTxSchedulingDisciplineSet(IxEthAccPortId portId,  -								  IxEthAccSchedulerDiscipline sched); - - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccRxSchedulingDisciplineSet(IxEthAccSchedulerDiscipline sched) - * - * @brief Set the Rx scheduling to one of @a IxEthAccSchedulerDiscipline - * - * The default behavior of the component is @a FIFO_NO_PRIORITY. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @pre - * - * @param sched : @a IxEthAccSchedulerDiscipline  - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS : Set appropriate discipline. - * @li @a IX_ETH_ACC_FAIL :  Invalid/unsupported discipline. - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccRxSchedulingDisciplineSet(IxEthAccSchedulerDiscipline sched); - -/** - * @ingroup IxEthAcc - * - * @fn IxEthAccStatus ixEthAccNpeLoopbackEnable(IxEthAccPortId portId) - * - * @brief Enable NPE loopback - * - * When this loopback mode is enabled all the transmitted frames are - * received on the same port, without payload. - * - * This function is recommended for power-up diagnostic checks and - * should never be used under normal Ethernet traffic operations. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @pre - * - * @param portId : ID of the port  - * - * @note Calling ixEthAccPortDisable followed by ixEthAccPortEnable is - * guaranteed to restore correct Ethernet Tx/Rx operation. - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS : NPE loopback mode enabled - * @li @a IX_ETH_ACC_FAIL : Invalid port or Ethernet service not initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus  -ixEthAccPortNpeLoopbackEnable(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn IxEthAccStatus ixEthAccPortNpeLoopbackDisable(IxEthAccPortId portId) - * - * @brief Disable NPE loopback - * - * This function is used to disable the NPE loopback if previously - * enabled using ixEthAccNpeLoopbackEnable. - * - * This function is recommended for power-up diagnostic checks and - * should never be used under normal Ethernet traffic operations. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @pre - * - * @note Calling ixEthAccPortDisable followed by ixEthAccPortEnable is - * guaranteed to restore correct Ethernet Tx/Rx operation. - * - * @param portId : ID of the port  - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS : NPE loopback successfully disabled - * @li @a IX_ETH_ACC_FAIL : Invalid port or Ethernet service not initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus  -ixEthAccPortNpeLoopbackDisable(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn IxEthAccStatus ixEthAccPortTxEnable(IxEthAccPortId portId) - * - * @brief Enable Tx on the port - * - * This function is the complement of ixEthAccPortTxDisable and should - * be used only after Tx was disabled. A MAC core reset is required before - * this function is called (see @a ixEthAccPortMacReset). - * - * This function is the recommended usage scenario for emergency security - * shutdown and hardware failure recovery and should never be used for throttling  - * traffic. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @pre - * - * @note Calling ixEthAccPortDisable followed by ixEthAccPortEnable is - * guaranteed to restore correct Ethernet Tx/Rx operation. - * - * @param portId : ID of the port  - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS : Tx successfully enabled - * @li @a IX_ETH_ACC_FAIL : Invalid port or Ethernet service not initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus  -ixEthAccPortTxEnable(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn IxEthAccStatus ixEthAccPortTxDisable(IxEthAccPortId portId) - * - * @brief Disable Tx on the port - * - * This function can be used to disable Tx in the MAC core. - * Tx can be re-enabled, although this is not guaranteed, by performing - * a MAC core reset (@a ixEthAccPortMacReset) and calling ixEthAccPortTxEnable. - * Note that using this function is not recommended, except for shutting - * down Tx for emergency reasons. For proper port shutdown and re-enabling - * see ixEthAccPortEnable and ixEthAccPortDisable. - * - * This function is the recommended usage scenario for emergency security - * shutdown and hardware failure recovery and should never be used for throttling  - * traffic. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @note Calling ixEthAccPortDisable followed by ixEthAccPortEnable is - * guaranteed to restore correct Ethernet Tx/Rx operation. - * - * @pre - * - * @param portId : ID of the port  - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS : Tx successfully disabled - * @li @a IX_ETH_ACC_FAIL : Invalid port or Ethernet service not initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus  -ixEthAccPortTxDisable(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn IxEthAccStatus ixEthAccPortRxEnable(IxEthAccPortId portId) - * - * @brief Enable Rx on the port - * - * This function is the complement of ixEthAccPortRxDisable and should - * be used only after Rx was disabled. - * - * This function is the recommended usage scenario for emergency security - * shutdown and hardware failure recovery and should never be used for throttling  - * traffic. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @note Calling ixEthAccPortDisable followed by ixEthAccPortEnable is - * guaranteed to restore correct Ethernet Tx/Rx operation. - * - * @pre - * - * @param portId : ID of the port  - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS : Rx successfully enabled - * @li @a IX_ETH_ACC_FAIL : Invalid port or Ethernet service not initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus  -ixEthAccPortRxEnable(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn IxEthAccStatus ixEthAccPortRxDisable(IxEthAccPortId portId) - * - * @brief Disable Rx on the port - * - * This function can be used to disable Rx in the MAC core. - * Rx can be re-enabled, although this is not guaranteed, by performing - * a MAC core reset (@a ixEthAccPortMacReset) and calling ixEthAccPortRxEnable. - * Note that using this function is not recommended, except for shutting - * down Rx for emergency reasons. For proper port shutdown and re-enabling - * see ixEthAccPortEnable and ixEthAccPortDisable. - * - * This function is the recommended usage scenario for emergency security - * shutdown and hardware failure recovery and should never be used for throttling  - * traffic. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @pre - * - * @note Calling ixEthAccPortDisable followed by ixEthAccPortEnable is - * guaranteed to restore correct Ethernet Tx/Rx operation. - * - * @param portId : ID of the port  - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS : Rx successfully disabled - * @li @a IX_ETH_ACC_FAIL : Invalid port or Ethernet service not initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus  -ixEthAccPortRxDisable(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn IxEthAccStatus ixEthAccPortMacReset(IxEthAccPortId portId) - * - * @brief Reset MAC core on the port - * - * This function will perform a MAC core reset (NPE Ethernet coprocessor). - * This function is inherently unsafe and the NPE recovery is not guaranteed - * after this function is called. The proper manner of performing port disable - * and enable (which will reset the MAC as well) is ixEthAccPortEnable/ixEthAccPortDisable. - * - * This function is the recommended usage scenario for hardware failure recovery - * and should never be used for throttling traffic. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @pre - * - * @note Calling ixEthAccPortDisable followed by ixEthAccPortEnable is - * guaranteed to restore correct Ethernet Tx/Rx operation. - * - * @param portId : ID of the port  - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS : MAC core reset - * @li @a IX_ETH_ACC_FAIL : Invalid port or Ethernet service not initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus  -ixEthAccPortMacReset(IxEthAccPortId portId); - -/********************************************************************************* -  ####    #####    ##     #####     #     ####    #####     #     ####    #### - #          #     #  #      #       #    #          #       #    #    #  # -  ####      #    #    #     #       #     ####      #       #    #        #### -      #     #    ######     #       #         #     #       #    #            # - #    #     #    #    #     #       #    #    #     #       #    #    #  #    # -  ####      #    #    #     #       #     ####      #       #     ####    #### -**********************************************************************************/ - - -/** - * - * @brief This struct defines the statistics returned by this component. - * - * The component returns MIB2 EthObj variables which are obtained from the  - * hardware or maintained by this component.  - * - * - */ -typedef struct    -{ -    UINT32 dot3StatsAlignmentErrors;            /**< link error count (rx) */ -    UINT32 dot3StatsFCSErrors;                  /**< link error count (rx) */ -    UINT32 dot3StatsInternalMacReceiveErrors;   /**< link error count (rx) */ -    UINT32 RxOverrunDiscards;                   /**< NPE: discarded frames count (rx) */ -    UINT32 RxLearnedEntryDiscards;                /**< NPE: discarded frames count(rx)  */ -    UINT32 RxLargeFramesDiscards;                 /**< NPE: discarded frames count(rx)  */ -    UINT32 RxSTPBlockedDiscards;                  /**< NPE: discarded frames count(rx)  */ -    UINT32 RxVLANTypeFilterDiscards;              /**< NPE: discarded frames count (rx) */ -    UINT32 RxVLANIdFilterDiscards;                /**< NPE: discarded frames count (rx) */ -    UINT32 RxInvalidSourceDiscards;               /**< NPE: discarded frames count (rx) */ -    UINT32 RxBlackListDiscards;                   /**< NPE: discarded frames count (rx) */ -    UINT32 RxWhiteListDiscards;                   /**< NPE: discarded frames count (rx) */ -    UINT32 RxUnderflowEntryDiscards;              /**< NPE: discarded frames count (rx) */ -    UINT32 dot3StatsSingleCollisionFrames;      /**< link error count (tx) */ -    UINT32 dot3StatsMultipleCollisionFrames;    /**< link error count (tx) */ -    UINT32 dot3StatsDeferredTransmissions;      /**< link error count (tx) */ -    UINT32 dot3StatsLateCollisions;             /**< link error count (tx) */ -    UINT32 dot3StatsExcessiveCollsions;         /**< link error count (tx) */ -    UINT32 dot3StatsInternalMacTransmitErrors;  /**< link error count (tx) */ -    UINT32 dot3StatsCarrierSenseErrors;         /**< link error count (tx) */ -    UINT32 TxLargeFrameDiscards;                /**< NPE: discarded frames count (tx) */ -    UINT32 TxVLANIdFilterDiscards;              /**< NPE: discarded frames count (tx) */ - -}IxEthEthObjStats; - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccMibIIStatsGet(IxEthAccPortId portId ,IxEthEthObjStats *retStats ) - * - * @brief  Returns the statistics maintained for a port. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @pre - * - * - * @param portId @ref IxEthAccPortId [in]  - * @param retStats @ref IxEthEthObjStats [out] - * @note Please note the user is responsible for cache coheriency of the retStat - * buffer. The data is actually populated via the NPE's. As such cache safe - * memory should be used in the retStats argument. - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_FAIL : Invalid arguments. - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccMibIIStatsGet(IxEthAccPortId portId, IxEthEthObjStats *retStats ); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccMibIIStatsGetClear(IxEthAccPortId portId, IxEthEthObjStats *retStats) - *  - * @brief  Returns and clears the statistics maintained for a port.  - * - * @li Reentrant    - yes - * @li ISR Callable - yes - * - * @pre - * - * @param portId @ref IxEthAccPortId [in]  - * @param retStats @ref IxEthEthObjStats [out] - * @note Please note the user is responsible for cache coheriency of the retStats - * buffer. The data is actually populated via the NPE's. As such cache safe - * memory should be used in the retStats argument. - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_FAIL : invalid arguments. - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccMibIIStatsGetClear(IxEthAccPortId portId, IxEthEthObjStats *retStats); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccMibIIStatsClear(IxEthAccPortId portId) - * - * @brief   Clears the statistics maintained for a port. - * - * @li Reentrant    - yes - * @li ISR Callable - no - * - * @pre - * - * @param portId @ref IxEthAccPortId [in] - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_FAIL : Invalid arguments. - * @li @a IX_ETH_ACC_INVALID_PORT : portId is invalid. - * @li @a IX_ETH_ACC_PORT_UNINITIALIZED : portId is un-initialized - * - * <hr> - */ -PUBLIC IxEthAccStatus ixEthAccMibIIStatsClear(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccMacInit(IxEthAccPortId portId) - *  - * @brief Initializes the ethernet MAC settings  - *  - * @li Reentrant    - no - * @li ISR Callable - no - * - * @param portId @ref IxEthAccPortId [in] - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_INVALID_PORT	:  portId is invalid. - * - * <hr> - */ -PUBLIC IxEthAccStatus ixEthAccMacInit(IxEthAccPortId portId); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccStatsShow(IxEthAccPortId portId) - * - * - * @brief Displays a ports statistics on the standard io console using printf. - * - * @li Reentrant    - no - * @li ISR Callable - no - * - * @pre - * - * @param portId @ref IxEthAccPortId [in] - * - * @return void - * - * <hr> - */ -PUBLIC void ixEthAccStatsShow(IxEthAccPortId portId); - -/************************************************************************* - - #    #     #       #            #    #  #####      #     #### - ##  ##     #       #            ##  ##  #    #     #    #    # - # ## #     #       #            # ## #  #    #     #    #    # - #    #     #       #            #    #  #    #     #    #    # - #    #     #       #            #    #  #    #     #    #    # - #    #     #       #            #    #  #####      #     #### - -*************************************************************************/ - - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccMiiReadRtn (UINT8 phyAddr,  -                           UINT8 phyReg,  -	                   UINT16 *value) - * - * - * @brief Reads a 16 bit value from a PHY - * - * Reads a 16-bit word from a register of a MII-compliant PHY. Reading - * is performed through the MII management interface.  This function returns - * when the read operation has successfully completed, or when a timeout has elapsed. - * - * @li Reentrant    - no - * @li ISR Callable - no - * - * @pre The MAC on Ethernet Port 2 (NPE C) must be initialised, and generating the MDIO clock. - *    - * @param phyAddr UINT8 [in] - the address of the Ethernet PHY (0-31) - * @param phyReg UINT8 [in] -  the number of the MII register to read (0-31) - * @param value UINT16 [in] -  the value read from the register - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_FAIL : failed to read the register. - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccMiiReadRtn (UINT8 phyAddr, UINT8 phyReg, UINT16 *value); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccMiiWriteRtn (UINT8 phyAddr,  -                            UINT8 phyReg,  -	                    UINT16 value) - * - * - * @brief Writes a 16 bit value to a PHY - * - * Writes a 16-bit word from a register of a MII-compliant PHY. Writing - * is performed through the MII management interface.  This function returns - * when the write operation has successfully completed, or when a timeout has elapsed. - * - * @li Reentrant    - no - * @li ISR Callable - no - * - * @pre The MAC on Ethernet Port 2 (NPE C) must be initialised, and generating the MDIO clock. - *    - * @param phyAddr UINT8 [in] - the address of the Ethernet PHY (0-31) - * @param phyReg UINT8 [in] -  the number of the MII register to write (0-31) - * @param value UINT16 [out] -  the value to write to the register - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_FAIL : failed to write register. - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccMiiWriteRtn (UINT8 phyAddr, UINT8 phyReg, UINT16 value); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccMiiAccessTimeoutSet(UINT32 timeout) - * - * @brief Overrides the default timeout value and retry count when reading or  - * writing MII registers using ixEthAccMiiWriteRtn or ixEthAccMiiReadRtn - * - * The default behavior of the component is to use a IX_ETH_ACC_MII_10TH_SEC_IN_MILLIS ms - * timeout (declared as 100 in IxEthAccMii_p.h) and a retry count of IX_ETH_ACC_MII_TIMEOUT_10TH_SECS - * (declared as 5 in IxEthAccMii_p.h). - * - * The MII read and write functions will attempt to read the status of the register up - * to the retry count times, delaying between each attempt with the timeout value. - * - * @li Reentrant    - no - * @li ISR Callable - no - * - * @pre - * - * @param timeout UINT32 [in] - new timeout value, in milliseconds - * @param timeout UINT32 [in] - new retry count (a minimum value of 1 must be used) - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_FAIL : invalid parameter(s) - * - * <hr> - */ -PUBLIC IxEthAccStatus -ixEthAccMiiAccessTimeoutSet(UINT32 timeout, UINT32 retryCount); - -/** - * @ingroup IxEthAcc - * - * @fn ixEthAccMiiStatsShow (UINT32 phyAddr) - * - * - * @brief Displays detailed information on a specified PHY - * - * Displays the current values of the first eigth MII registers for a PHY,  - * - * @li Reentrant    - no - * @li ISR Callable - no - * - * @pre The MAC on Ethernet Port 2 (NPE C) must be initialised, and  - *      generating the MDIO clock. - *    - * @param phyAddr UINT32 [in] - the address of the Ethernet PHY (0-31) - * - * @return IxEthAccStatus - * @li @a IX_ETH_ACC_SUCCESS - * @li @a IX_ETH_ACC_FAIL : invalid arguments. - * - * <hr> - */ -PUBLIC IxEthAccStatus ixEthAccMiiStatsShow (UINT32 phyAddr); - - - -/******* BOARD SPECIFIC DEPRECATED API *********/ - -/* The following functions are high level functions which rely - * on the properties and interface of some Ethernet PHYs. The - * implementation is hardware specific and has been moved to  - * the hardware-specific component IxEthMii. - */ - - #include "IxEthMii.h" - -/** - * @ingroup IxEthAcc - * - * @def  ixEthAccMiiPhyScan - * - * @brief : deprecated API entry point. This definition  - * ensures backward compatibility - * - * See @ref ixEthMiiPhyScan - * - * @note this feature is board specific - * - */ -#define ixEthAccMiiPhyScan(phyPresent) ixEthMiiPhyScan(phyPresent,IXP425_ETH_ACC_MII_MAX_ADDR) - -/** - * @ingroup IxEthAcc - * - * @def ixEthAccMiiPhyConfig - * - * @brief : deprecated API entry point. This definition  - * ensures backward compatibility - * - * See @ref ixEthMiiPhyConfig - * - * @note this feature is board specific - */ -#define ixEthAccMiiPhyConfig(phyAddr,speed100,fullDuplex,autonegotiate) \ -           ixEthMiiPhyConfig(phyAddr,speed100,fullDuplex,autonegotiate) - -/** - * @ingroup IxEthAcc - * - * @def ixEthAccMiiPhyReset - * - * @brief : deprecated API entry point. This definition  - * ensures backward compatibility - * - * See @ref ixEthMiiPhyReset - * - * @note this feature is board specific - */ -#define ixEthAccMiiPhyReset(phyAddr) \ -           ixEthMiiPhyReset(phyAddr) - -/** - * @ingroup IxEthAcc - * - * @def ixEthAccMiiLinkStatus - * - * @brief : deprecated API entry point. This definition  - * ensures backward compatibility - * - * See @ref ixEthMiiLinkStatus - * - * @note this feature is board specific - */ -#define ixEthAccMiiLinkStatus(phyAddr,linkUp,speed100,fullDuplex,autoneg) \ -           ixEthMiiLinkStatus(phyAddr,linkUp,speed100,fullDuplex,autoneg) - - - -/** - * @ingroup IxEthAcc - * - * @def ixEthAccMiiShow   - * - * @brief : deprecated API entry point. This definition  - * ensures backward compatibility - * - * See @ref ixEthMiiPhyShow - * - * @note this feature is board specific - */ -#define ixEthAccMiiShow(phyAddr) \ -        ixEthMiiPhyShow(phyAddr) - -#endif /* ndef IxEthAcc_H */ -/** - *@} - */ diff --git a/cpu/ixp/npe/include/IxEthDB.h b/cpu/ixp/npe/include/IxEthDB.h index 1189c9a1401..43ee802d642 100644 --- a/cpu/ixp/npe/include/IxEthDB.h +++ b/cpu/ixp/npe/include/IxEthDB.h @@ -799,10 +799,10 @@ IxEthDBStatus ixEthDBFilteringDatabaseShowRecords(IxEthDBPortId portID, IxEthDBR   * @verbatim      IxEthDBPortMap portMap; -    // clear all ports from port map +    /* clear all ports from port map */      memset(portMap, 0, sizeof (portMap));  -    // include portID in port map  +    /* include portID in port map  */      portMap[portID / 8] = 1 << (portID % 8);     @endverbatim   * diff --git a/cpu/ixp/npe/include/IxEthDBQoS.h b/cpu/ixp/npe/include/IxEthDBQoS.h index 9fafa7033b1..6d34889452d 100644 --- a/cpu/ixp/npe/include/IxEthDBQoS.h +++ b/cpu/ixp/npe/include/IxEthDBQoS.h @@ -120,16 +120,16 @@ UINT8 ixEthDBTrafficClassDefinitions[][3] =   * @brief IEEE 802.1Q recommended QoS Priority => traffic class maps   *   * @verbatim -                    Number of available traffic classes
 -                    1 2 3 4 5 6 7 8
 -    QoS Priority
 -        0           0 0 0 1 1 1 1 2
 -        1           0 0 0 0 0 0 0 0
 -        2           0 0 0 0 0 0 0 1
 -        3           0 0 0 1 1 2 2 3
 -        4           0 1 1 2 2 3 3 4
 -        5           0 1 1 2 3 4 4 5
 -        6           0 1 2 3 4 5 5 6
 +                    Number of available traffic classes +                    1 2 3 4 5 6 7 8 +    QoS Priority +        0           0 0 0 1 1 1 1 2 +        1           0 0 0 0 0 0 0 0 +        2           0 0 0 0 0 0 0 1 +        3           0 0 0 1 1 2 2 3 +        4           0 1 1 2 2 3 3 4 +        5           0 1 1 2 3 4 4 5 +        6           0 1 2 3 4 5 5 6          7           0 1 2 3 4 5 6 7      @endverbatim diff --git a/cpu/ixp/npe/include/IxNpeDlNpeMgr_p.h b/cpu/ixp/npe/include/IxNpeDlNpeMgr_p.h index 3d2313c3e25..b7fb0f02172 100644 --- a/cpu/ixp/npe/include/IxNpeDlNpeMgr_p.h +++ b/cpu/ixp/npe/include/IxNpeDlNpeMgr_p.h @@ -174,8 +174,8 @@ ixNpeDlNpeMgrImageLoad (IxNpeDlNpeId npeId, UINT32 *imageCodePtr,   *   * @return   *     - IX_SUCCESS if the operation was successful - *     - IX_FAIL if the operation failed
 - *     - IX_NPEDL_CRITICAL_NPE_ERR if the operation failed due to NPE hang
 + *     - IX_FAIL if the operation failed + *     - IX_NPEDL_CRITICAL_NPE_ERR if the operation failed due to NPE hang   */   IX_STATUS  ixNpeDlNpeMgrNpeReset (IxNpeDlNpeId npeId); diff --git a/cpu/ixp/npe/include/IxOsServicesComponents.h b/cpu/ixp/npe/include/IxOsServicesComponents.h index f1a6779cee8..d662cd3eeec 100644 --- a/cpu/ixp/npe/include/IxOsServicesComponents.h +++ b/cpu/ixp/npe/include/IxOsServicesComponents.h @@ -62,10 +62,10 @@  #define ix_i2c                 40  #define ix_integration_sspAcc  41  #define ix_integration_i2c     42 -#define ix_osal		       43
 -#define ix_integration_parityENAcc  44
 -#define ix_integration_timeSyncAcc  45
 -
 +#define ix_osal		       43 +#define ix_integration_parityENAcc  44 +#define ix_integration_timeSyncAcc  45 +  /***************************   * timeSyncAcc   ***************************/ @@ -106,29 +106,29 @@  #endif /* codelets_parityENAcc */  #endif /* IxOsServicesComponents_H */ -
 -/***************************
 - * integration_timeSyncAcc
 - ***************************/
 -#if (IX_COMPONENT_NAME == ix_integration_timeSyncAcc)
 -
 -#if defined (IX_OSSERV_VXWORKS_LE)
 -
 -#define CSR_LE_DATA_COHERENT_MAPPING
 -
 -#endif /* IX_OSSERV_VXWORKS_LE */
 -
 -#endif /* integration_timeSyncAcc */
 -
 -/***************************
 - * integration_parityENAcc
 - ***************************/
 -#if (IX_COMPONENT_NAME == ix_integration_parityENAcc)
 -
 -#if defined (IX_OSSERV_VXWORKS_LE)
 -
 -#define CSR_LE_DATA_COHERENT_MAPPING
 -
 -#endif /* IX_OSSERV_VXWORKS_LE */
 -
 -#endif /* integration_parityENAcc */
\ No newline at end of file + +/*************************** + * integration_timeSyncAcc + ***************************/ +#if (IX_COMPONENT_NAME == ix_integration_timeSyncAcc) + +#if defined (IX_OSSERV_VXWORKS_LE) + +#define CSR_LE_DATA_COHERENT_MAPPING + +#endif /* IX_OSSERV_VXWORKS_LE */ + +#endif /* integration_timeSyncAcc */ + +/*************************** + * integration_parityENAcc + ***************************/ +#if (IX_COMPONENT_NAME == ix_integration_parityENAcc) + +#if defined (IX_OSSERV_VXWORKS_LE) + +#define CSR_LE_DATA_COHERENT_MAPPING + +#endif /* IX_OSSERV_VXWORKS_LE */ + +#endif /* integration_parityENAcc */ diff --git a/cpu/ixp/npe/include/IxOsalAssert.h b/cpu/ixp/npe/include/IxOsalAssert.h index af0cffd6c69..45cebcdaa6b 100644 --- a/cpu/ixp/npe/include/IxOsalAssert.h +++ b/cpu/ixp/npe/include/IxOsalAssert.h @@ -60,7 +60,7 @@   *        will not be compiled out.   *        N.B. will result in a system crash if it is false.   */ -#define IX_OSAL_ASSERT(c) IX_OSAL_OS_ASSERT(c)
 +#define IX_OSAL_ASSERT(c) IX_OSAL_OS_ASSERT(c)  /** diff --git a/cpu/ixp/npe/include/IxOsalIoMem.h b/cpu/ixp/npe/include/IxOsalIoMem.h index a3a71242ae9..ac0ce657037 100644 --- a/cpu/ixp/npe/include/IxOsalIoMem.h +++ b/cpu/ixp/npe/include/IxOsalIoMem.h @@ -63,13 +63,12 @@   * @{    */ -
  /* Low-level conversion macros - DO NOT USE UNLESS ABSOLUTELY NEEDED */  #ifndef __wince  /*  - * Private function to swap word*//* + * Private function to swap word   */  #ifdef __XSCALE__  static __inline__ UINT32 @@ -91,7 +90,6 @@ ixOsalCoreWordSwap (UINT32 wordIn)      return wordOut;  } -
  #define IX_OSAL_SWAP_LONG(wData)          (ixOsalCoreWordSwap(wData))  #else @@ -149,7 +147,7 @@ typedef enum  /**   * @ingroup IxOsalIoMem   * @enum IxOsalMapEndianessType - * @brief This is an emum for OSAL I/O mem Endianess and Coherency mode.
 + * @brief This is an emum for OSAL I/O mem Endianess and Coherency mode.   */  typedef enum  { @@ -172,10 +170,9 @@ typedef struct _IxOsalMemoryMap      UINT32 size;               /**< size of the map */ -
 -    UINT32 virtualAddress;     /**< virtual address of the zone; must be predefined 
 -                                    in the global memory map for static maps and has 
 -                                    to be NULL for dynamic maps (populated on allocation) 
 +    UINT32 virtualAddress;     /**< virtual address of the zone; must be predefined +                                    in the global memory map for static maps and has +                                    to be NULL for dynamic maps (populated on allocation)  								*/      /*       * pointer to a map function called to map a dynamic map;  @@ -245,12 +242,12 @@ ixOsalIoMemPhysToVirt (UINT32 physicalAddress, UINT32 coherency);   *   * @def IX_OSAL_MEM_MAP(physAddr, size)   * - * @brief Map an I/O mapped physical memory zone to virtual zone and return virtual 
 - *        pointer.
 + * @brief Map an I/O mapped physical memory zone to virtual zone and return virtual + *        pointer.   * @param  physAddr - the physical address   * @param  size     - the size - * @return start address of the virtual memory zone.
 - * 
 + * @return start address of the virtual memory zone. + *   * @note  This function maps an I/O mapped physical memory zone of the given size   * into a virtual memory zone accessible by the caller and returns a cookie -    * the start address of the virtual memory zone.  @@ -260,23 +257,23 @@ ixOsalIoMemPhysToVirt (UINT32 physicalAddress, UINT32 coherency);   * finished using this zone (e.g. on driver unload) using the cookie as    * parameter.   * The IX_OSAL_READ/WRITE_LONG/SHORT macros should be used to read and write  - * the mapped memory, adding the necessary offsets to the address cookie.
 + * the mapped memory, adding the necessary offsets to the address cookie.   */  #define IX_OSAL_MEM_MAP(physAddr, size) \      ixOsalIoMemMap((physAddr), (size), IX_OSAL_COMPONENT_MAPPING) -/**
 +/**   * @ingroup IxOsalIoMem   *   * @def IX_OSAL_MEM_UNMAP(virtAddr)   * - * @brief Unmap a previously mapped I/O memory zone using virtual pointer obtained 
 - *        during the mapping operation.
 - *        pointer.
 + * @brief Unmap a previously mapped I/O memory zone using virtual pointer obtained + *        during the mapping operation. + *        pointer.   * @param  virtAddr - the virtual pointer to the zone to be unmapped. - * @return none
 - * 
 + * @return none + *   * @note  This function unmaps a previously mapped I/O memory zone using   * the cookie obtained in the mapping operation. The memory zone in question   * becomes unavailable to the caller once unmapped and the cookie should be @@ -288,37 +285,36 @@ ixOsalIoMemPhysToVirt (UINT32 physicalAddress, UINT32 coherency);  #define IX_OSAL_MEM_UNMAP(virtAddr) \      ixOsalIoMemUnmap ((virtAddr), IX_OSAL_COMPONENT_MAPPING) -/**
 +/**   * @ingroup IxOsalIoMem   *   * @def IX_OSAL_MMAP_VIRT_TO_PHYS(virtAddr)   *   * @brief This function Converts a virtual address into a physical    * address, including the dynamically mapped memory. - *
 + *   * @param  virtAddr - virtual address to convert - * Return value: corresponding physical address, or NULL 
 + * Return value: corresponding physical address, or NULL   */  #define IX_OSAL_MMAP_VIRT_TO_PHYS(virtAddr) \      ixOsalIoMemVirtToPhys(virtAddr, IX_OSAL_COMPONENT_MAPPING) -/**
 +/**   * @ingroup IxOsalIoMem   *   * @def IX_OSAL_MMAP_PHYS_TO_VIRT(physAddr)   *   * @brief  This function Converts a virtual address into a physical    * address, including the dynamically mapped memory. - *
 + *   * @param  physAddr - physical address to convert - * Return value: corresponding virtual address, or NULL 
 - *
 + * Return value: corresponding virtual address, or NULL + *   */  #define IX_OSAL_MMAP_PHYS_TO_VIRT(physAddr) \      ixOsalIoMemPhysToVirt(physAddr, IX_OSAL_COMPONENT_MAPPING) -
  /**   * @} IxOsalIoMem   */ diff --git a/cpu/ixp/npe/include/IxOsalOsAssert.h b/cpu/ixp/npe/include/IxOsalOsAssert.h index 9d1ecb4c368..e4c3e1f6147 100644 --- a/cpu/ixp/npe/include/IxOsalOsAssert.h +++ b/cpu/ixp/npe/include/IxOsalOsAssert.h @@ -7,4 +7,4 @@                                      while(1); \                                  } -#endif // IxOsalOsAssert_H +#endif /* IxOsalOsAssert_H */ diff --git a/cpu/ixp/npe/include/IxOsalOsBufferMgt.h b/cpu/ixp/npe/include/IxOsalOsBufferMgt.h index 567c8da8cf4..8e46586ea0f 100644 --- a/cpu/ixp/npe/include/IxOsalOsBufferMgt.h +++ b/cpu/ixp/npe/include/IxOsalOsBufferMgt.h @@ -55,7 +55,7 @@  #include "IxOsalBufferMgtDefault.h" -#if 0  // FIXME +#if 0  /* FIXME */  /* Define os-specific buffer macros for subfields */  #define IX_OSAL_OSBUF_MDATA(osBufPtr) IX_OSAL_MBUF_MDATA(osBufPtr)               ( ((M_BLK *) osBufPtr)->m_data ) @@ -91,6 +91,6 @@              } \          } -#endif // FIXME +#endif /* FIXME */  #endif /* #define IX_OSAL_OS_BUFFER_MGT_H */ diff --git a/cpu/ixp/npe/include/IxOsalOsTypes.h b/cpu/ixp/npe/include/IxOsalOsTypes.h index f5f9eca4a88..272eef185ed 100644 --- a/cpu/ixp/npe/include/IxOsalOsTypes.h +++ b/cpu/ixp/npe/include/IxOsalOsTypes.h @@ -17,7 +17,7 @@ typedef u16 USHORT;  typedef u8 UCHAR;  typedef u32 BOOL; -#if 0 // FIXME +#if 0 /* FIXME */  /* Default stack limit is 10 KB */  #define IX_OSAL_OS_THREAD_DEFAULT_STACK_SIZE  (10240) @@ -31,7 +31,7 @@ typedef u32 BOOL;  /* Thread maximum priority (0 - 255). 0 - highest priority */  #define IX_OSAL_OS_MAX_THREAD_PRIORITY	      (255) -#endif // FIXME +#endif /* FIXME */  #define IX_OSAL_OS_WAIT_FOREVER (-1L)  #define IX_OSAL_OS_WAIT_NONE	0 @@ -57,4 +57,4 @@ typedef struct  } IxOsalOsMessageQueue; -#endif // IxOsalOsTypes_H +#endif /* IxOsalOsTypes_H */ diff --git a/lib_arm/_ashldi3.S b/lib_arm/_ashldi3.S index 31a26556b7b..de4403d632a 100644 --- a/lib_arm/_ashldi3.S +++ b/lib_arm/_ashldi3.S @@ -44,4 +44,3 @@ __ashldi3:  	orrmi	ah, ah, al, lsr ip  	mov	al, al, lsl r2  	mov	pc, lr - diff --git a/lib_arm/_ashrdi3.S b/lib_arm/_ashrdi3.S index c3284133fd1..5edbcb3ae79 100644 --- a/lib_arm/_ashrdi3.S +++ b/lib_arm/_ashrdi3.S @@ -44,4 +44,3 @@ __ashrdi3:  	orrmi	al, al, ah, lsl ip  	mov	ah, ah, asr r2  	mov	pc, lr - | 
