blob: 0a8578f977d3d78e58c2e1ad37ace5399580ecb4 [file] [log] [blame]
/***************************************************************************//**
* @file
* SmartFusion MSS Ethernet MAC registers.
*
* (c) Copyright 2007 Actel Corporation
*
* IP core registers definitions. This file contains the definitions required
* for accessing the IP core through the hardware abstraction layer (HAL).
* This file was automatically generated, using "get_header.exe" version 0.4.0,
* from the IP-XACT description for:
*
*
* SVN $Revision: 2364 $
* SVN $Date: 2010-03-01 17:58:41 +0000 (Mon, 01 Mar 2010) $
*
*******************************************************************************/
#ifndef MSS_ETHERNET_MAC_REGISTERS_H_
#define MSS_ETHERNET_MAC_REGISTERS_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "../../CMSIS/a2fxxxm3.h"
#include "mss_ethernet_mac.h"
#include "mss_ethernet_mac_user_cfg.h"
typedef uint32_t addr_t;
/***************************************************************************//**
* Descriptor structure
*/
#include "pack_struct_start.h"
typedef struct {
volatile uint32_t descriptor_0;
volatile uint32_t descriptor_1;
volatile uint32_t buffer_1;
volatile uint32_t buffer_2;
} MAC_descriptor_t
#include "pack_struct_end.h"
/***************************************************************************//**
* There should be one instance of this structure for each instance of
* the MAC in your system. MSS_MAC_init routine initializes this structure.
* It is used to identify the various MACs in your system and an initilized
* MAC instance's structure should be passed as first parameter to MAC functions
* to identify which MAC should perform the requested operation.
* Software using the MAC driver should only need to create one single
* instance of this data structure for each MAC hardware instance in
* the system. Using MAC_get_configuration routine, latest status of the driver
* may be read by receiving its flags field, similarly MAC_configure routine lets
* you modify some of these flags.
*/
#include "net/pack_struct_start.h"
typedef struct {
addr_t base_address; /**< Register base address of the driver*/
uint8_t flags; /**< Configuration of the driver*/
int8_t last_error; /**< Index of last error happened inside the driver*/
uint8_t mac_address[6]; /**< MAC address of the drived instance*/
uint8_t mac_filter_data[90]; /**< MAC filter data, 15 addresses to be used for
received data filtering*/
uint16_t last_timer_value; /**< Last read value of timer */
uint32_t time_out_value; /**< Time out value */
MSS_MAC_callback_t listener; /**< Pointer to the call-back function to be triggered
when a package is received*/
/* transmit related info: */
uint32_t tx_desc_index; /**< index of the transmit descriptor getting used*/
MAC_descriptor_t tx_descriptors[TX_RING_SIZE];/**< array of transmit descriptors*/
/* receive related info: */
uint32_t rx_desc_index; /**< index of the receive descriptor getting used*/
MAC_descriptor_t rx_descriptors[RX_RING_SIZE];/**< array of receive descriptors*/
uint8_t phy_address; /**< MII address of the connected PHY*/
#include "pack_struct_start.h"
struct {
uint32_t rx_interrupts; /**< Number of receive interrupts occurred.*/
uint32_t rx_filtering_fail; /**< Number of received frames which did not pass
the address recognition process.*/
uint32_t rx_descriptor_error; /**< Number of occurrences of; no receive buffer was
available when trying to store the received data.*/
uint32_t rx_runt_frame; /**< Number of occurrences of; the frame is damaged by
a collision or by a premature termination before
the end of a collision window.*/
uint32_t rx_not_first; /**< Number of occurrences of; start of the frame is
not the first descriptor of a frame.*/
uint32_t rx_not_last; /**< Number of occurrences of; end of the frame is not
the first descriptor of a frame.*/
uint32_t rx_frame_too_long; /**< Number of occurrences of; a current frame is
longer than maximum size of 1,518 bytes, as specified
by 802.3.*/
uint32_t rx_collision_seen; /**< Number of occurrences of; a late collision was seen
(collision after 64 bytes following SFD).*/
uint32_t rx_crc_error; /**< Number of occurrences of; a CRC error has occurred
in the received frame.*/
uint32_t rx_fifo_overflow; /**< Number of frames not accepted due to the receive
FIFO overflow.*/
uint32_t rx_missed_frame; /**< Number of frames not accepted due to the
unavailability of the receive descriptor.*/
uint32_t tx_interrupts; /**< Number of transmit interrupts occurred.*/
uint32_t tx_loss_of_carrier; /**< Number of occurrences of; a loss of the carrier
during a transmission.*/
uint32_t tx_no_carrier; /**< Number of occurrences of; the carrier was not asserted
by an external transceiver during the transmission.*/
uint32_t tx_late_collision; /**< Number of occurrences of; a collision was detected
after transmitting 64 bytes.*/
uint32_t tx_excessive_collision;/**< Number of occurrences of; the transmission was
aborted after 16 retries.*/
uint32_t tx_collision_count; /**< Number of collisions occurred.*/
uint32_t tx_underflow_error; /**< Number of occurrences of; the FIFO was empty during
the frame transmission.*/
} statistics
#include "pack_struct_end.h"
} MAC_instance_t
#include "net/pack_struct_end.h"
/*------------------------------------------------------------------------------
*
*/
typedef struct
{
uint32_t CSR0_SWR;
uint32_t CSR0_BAR;
uint32_t CSR0_DSL[5];
uint32_t CSR0_BLE;
uint32_t CSR0_PBL[6];
uint32_t CSR0_RESERVED0[3];
uint32_t CSR0_TAP[3];
uint32_t CSR0_DBO;
uint32_t CSR0_RESERVED1[11];
uint32_t MAC_CSR_RESERVED0[32];
uint32_t CSR1[32];
uint32_t MAC_CSR_RESERVED1[32];
uint32_t CSR2[32];
uint32_t MAC_CSR_RESERVED2[32];
uint32_t CSR3[32];
uint32_t MAC_CSR_RESERVED3[32];
uint32_t CSR4[32];
uint32_t MAC_CSR_RESERVED4[32];
uint32_t CSR5_TI;
uint32_t CSR5_TPS;
uint32_t CSR5_TU;
uint32_t CSR5_RESERVED0[2];
uint32_t CSR5_UNF;
uint32_t CSR5_RI;
uint32_t CSR5_RU;
uint32_t CSR5_RPS;
uint32_t CSR5_RESERVED1;
uint32_t CSR5_ETI;
uint32_t CSR5_GTE;
uint32_t CSR5_RESERVED2[2];
uint32_t CSR5_ERI;
uint32_t CSR5_AIS;
uint32_t CSR5_NIS;
uint32_t CSR5_RS[3];
uint32_t CSR5_TS[3];
uint32_t CSR5_RESERVED3[9];
uint32_t MAC_CSR_RESERVED5[32];
uint32_t CSR6_HP;
uint32_t CSR6_SR;
uint32_t CSR6_HO;
uint32_t CSR6_PB;
uint32_t CSR6_IF;
uint32_t CSR6_RESERVED0;
uint32_t CSR6_PR;
uint32_t CSR6_PM;
uint32_t CSR6_RESERVED1;
uint32_t CSR6_FD;
uint32_t CSR6_RESERVED2[3];
uint32_t CSR6_ST;
uint32_t CSR6_TR[2];
uint32_t CSR6_RESERVED3[5];
uint32_t CSR6_SF;
uint32_t CSR6_TTM;
uint32_t CSR6_RESERVED4[7];
uint32_t CSR6_RA;
uint32_t CSR6_RESERVED5;
uint32_t MAC_CSR_RESERVED6[32];
uint32_t CSR7_TIE;
uint32_t CSR7_TSE;
uint32_t CSR7_TUE;
uint32_t CSR7_RESERVED0[2];
uint32_t CSR7_UNE;
uint32_t CSR7_RIE;
uint32_t CSR7_RUE;
uint32_t CSR7_RSE;
uint32_t CSR7_RESERVED1;
uint32_t CSR7_ETE;
uint32_t CSR7_GTE;
uint32_t CSR7_RESERVED2[2];
uint32_t CSR7_ERE;
uint32_t CSR7_AIE;
uint32_t CSR7_NIE;
uint32_t CSR7[15];
uint32_t MAC_CSR_RESERVED7[32];
uint32_t CSR8[32];
uint32_t MAC_CSR_RESERVED8[32];
uint32_t CSR9_SCS;
uint32_t CSR9_SCLK;
uint32_t CSR9_SDI;
uint32_t CSR9_SDO;
uint32_t CSR9_RESERVED0[12];
uint32_t CSR9_MDC;
uint32_t CSR9_MDO;
uint32_t CSR9_MDEN;
uint32_t CSR9_MDI;
uint32_t CSR9_RESERVED1[12];
uint32_t MAC_CSR_RESERVED9[32];
uint32_t CSR10[32];
uint32_t MAC_CSR_RESERVED10[32];
uint32_t CSR11_TIM[16];
uint32_t CSR11_CON;
uint32_t CSR11_NRP[3];
uint32_t CSR11_RT[4];
uint32_t CSR11_NTP[3];
uint32_t CSR11_TT[4];
uint32_t CSR11_CS;
} MAC_BitBand_TypeDef;
#define MAC_BITBAND ((MAC_BitBand_TypeDef *) BITBAND_ADDRESS(MAC_BASE))
/*******************************************************************************
* CSR0 register:
*------------------------------------------------------------------------------
* CSR0 - Bus Mode Register
*/
#define CSR0_REG_OFFSET 0x00
/*------------------------------------------------------------------------------
* CSR0_DBO:
* DBO field of register CSR0.
*------------------------------------------------------------------------------
* Descriptor byte ordering mode
*/
#define CSR0_DBO_OFFSET 0x00
#define CSR0_DBO_MASK 0x00100000UL
#define CSR0_DBO_SHIFT 20
/*
* Allowed values for CSR0_DBO:
*------------------------------------------------------------------------------
* LITTLEENDIAN: Little endian mode used for data descriptors
* BIGENDIAN: Big endian mode used for data descriptors
*/
#define LITTLEENDIAN 0u
#define BIGENDIAN 1u
/*------------------------------------------------------------------------------
* CSR0_TAP:
* TAP field of register CSR0.
*------------------------------------------------------------------------------
* Transmit automatic polling
*/
#define CSR0_TAP_OFFSET 0x00
#define CSR0_TAP_MASK 0x000E0000UL
#define CSR0_TAP_SHIFT 17
/*
* Allowed values for CSR0_TAP:
*------------------------------------------------------------------------------
* TAP_DISABLED: TAP disabled
* TAP_819US: TAP 819/81.9us
* TAP_2450US: TAP 2450/245us
* TAP_5730US: TAP 5730/573us
* TAP_51_2US: TAP 51.2/5.12us
* TAP_102_4US: TAP 102.4/10.24us
* TAP_153_6US: TAP 156.6/15.26us
* TAP_358_4US: TAP 358.4/35.84us
*/
#define TAP_DISABLED 0x0
#define TAP_819US 0x1
#define TAP_2450US 0x2
#define TAP_5730US 0x3
#define TAP_51_2US 0x4
#define TAP_102_4US 0x5
#define TAP_153_6US 0x6
#define TAP_358_4US 0x7
/*------------------------------------------------------------------------------
* CSR0_PBL:
* PBL field of register CSR0.
*------------------------------------------------------------------------------
* Programmable burst length
*/
#define CSR0_PBL_OFFSET 0x00
#define CSR0_PBL_MASK 0x00003F00uL
#define CSR0_PBL_SHIFT 8
/*------------------------------------------------------------------------------
* CSR0_BLE:
* BLE field of register CSR0.
*------------------------------------------------------------------------------
* Big/little endian
*/
#define CSR0_BLE_OFFSET 0x00
#define CSR0_BLE_MASK 0x00000080uL
#define CSR0_BLE_SHIFT 7
/*------------------------------------------------------------------------------
* CSR0_DSL:
* DSL field of register CSR0.
*------------------------------------------------------------------------------
* Descriptor skip length
*/
#define CSR0_DSL_OFFSET 0x00
#define CSR0_DSL_MASK 0x0000007CuL
#define CSR0_DSL_SHIFT 2
/*------------------------------------------------------------------------------
* CSR0_BAR:
* BAR field of register CSR0.
*------------------------------------------------------------------------------
* Bus arbitration scheme
*/
#define CSR0_BAR_OFFSET 0x00
#define CSR0_BAR_MASK 0x00000002uL
#define CSR0_BAR_SHIFT 1
/*------------------------------------------------------------------------------
* CSR0_SWR:
* SWR field of register CSR0.
*------------------------------------------------------------------------------
* Software reset
*/
#define CSR0_SWR_OFFSET 0x00
#define CSR0_SWR_MASK 0x00000001uL
#define CSR0_SWR_SHIFT 0
/*******************************************************************************
* CSR1 register:
*------------------------------------------------------------------------------
* CSR1 - Transmit Poll Demand Register
*/
#define CSR1_REG_OFFSET 0x08
/*------------------------------------------------------------------------------
* CSR1_TPD3:
* TPD3 field of register CSR1.
*------------------------------------------------------------------------------
* TPD(31..24)
*/
#define CSR1_TPD3_OFFSET 0x08
#define CSR1_TPD3_MASK 0xFF000000uL
#define CSR1_TPD3_SHIFT 24
/*------------------------------------------------------------------------------
* CSR1_TPD2:
* TPD2 field of register CSR1.
*------------------------------------------------------------------------------
* TPD(23..16)
*/
#define CSR1_TPD2_OFFSET 0x08
#define CSR1_TPD2_MASK 0x00FF0000uL
#define CSR1_TPD2_SHIFT 16
/*------------------------------------------------------------------------------
* CSR1_TPD1:
* TPD1 field of register CSR1.
*------------------------------------------------------------------------------
* TPD(15..8)
*/
#define CSR1_TPD1_OFFSET 0x08
#define CSR1_TPD1_MASK 0x0000FF00uL
#define CSR1_TPD1_SHIFT 8
/*------------------------------------------------------------------------------
* CSR1_TPD0:
* TPD0 field of register CSR1.
*------------------------------------------------------------------------------
* TPD(7..0)
*/
#define CSR1_TPD0_OFFSET 0x08
#define CSR1_TPD0_MASK 0x000000FFuL
#define CSR1_TPD0_SHIFT 0
/*******************************************************************************
* CSR2 register:
*------------------------------------------------------------------------------
* CSR2 - Receive Poll Demand Register
*/
#define CSR2_REG_OFFSET 0x10
/*------------------------------------------------------------------------------
* CSR2_RPD3:
* RPD3 field of register CSR2.
*------------------------------------------------------------------------------
* RPD(31..24)
*/
#define CSR2_RPD3_OFFSET 0x10
#define CSR2_RPD3_MASK 0xFF000000uL
#define CSR2_RPD3_SHIFT 24
/*------------------------------------------------------------------------------
* CSR2_RPD2:
* RPD2 field of register CSR2.
*------------------------------------------------------------------------------
* RPD(23..16)
*/
#define CSR2_RPD2_OFFSET 0x10
#define CSR2_RPD2_MASK 0x00FF0000uL
#define CSR2_RPD2_SHIFT 16
/*------------------------------------------------------------------------------
* CSR2_RPD1:
* RPD1 field of register CSR2.
*------------------------------------------------------------------------------
* RPD(15..8)
*/
#define CSR2_RPD1_OFFSET 0x10
#define CSR2_RPD1_MASK 0x0000FF00uL
#define CSR2_RPD1_SHIFT 8
/*------------------------------------------------------------------------------
* CSR2_RPD0:
* RPD0 field of register CSR2.
*------------------------------------------------------------------------------
* RPD(7..0)
*/
#define CSR2_RPD0_OFFSET 0x10
#define CSR2_RPD0_MASK 0x000000FFuL
#define CSR2_RPD0_SHIFT 0
/*******************************************************************************
* CSR3 register:
*------------------------------------------------------------------------------
* CSR3 - Receive Descriptor List Base Address Register
*/
#define CSR3_REG_OFFSET 0x18
/*------------------------------------------------------------------------------
* CSR3_RLA3:
* RLA3 field of register CSR3.
*------------------------------------------------------------------------------
* RLA(31..24)
*/
#define CSR3_RLA3_OFFSET 0x18
#define CSR3_RLA3_MASK 0xFF000000uL
#define CSR3_RLA3_SHIFT 24
/*------------------------------------------------------------------------------
* CSR3_RLA2:
* RLA2 field of register CSR3.
*------------------------------------------------------------------------------
* RLA(23..16)
*/
#define CSR3_RLA2_OFFSET 0x18
#define CSR3_RLA2_MASK 0x00FF0000uL
#define CSR3_RLA2_SHIFT 16
/*------------------------------------------------------------------------------
* CSR3_RLA1:
* RLA1 field of register CSR3.
*------------------------------------------------------------------------------
* RLA(15..8)
*/
#define CSR3_RLA1_OFFSET 0x18
#define CSR3_RLA1_MASK 0x0000FF00uL
#define CSR3_RLA1_SHIFT 8
/*------------------------------------------------------------------------------
* CSR3_RLA0:
* RLA0 field of register CSR3.
*------------------------------------------------------------------------------
* RLA(7..0)
*/
#define CSR3_RLA0_OFFSET 0x18
#define CSR3_RLA0_MASK 0x000000FFuL
#define CSR3_RLA0_SHIFT 0
/*******************************************************************************
* CSR4 register:
*------------------------------------------------------------------------------
* CSR4 - Transmit Descriptor List Base Address Register
*/
#define CSR4_REG_OFFSET 0x20
/*------------------------------------------------------------------------------
* CSR4_TLA3:
* TLA3 field of register CSR4.
*------------------------------------------------------------------------------
* TLA(31..24)
*/
#define CSR4_TLA3_OFFSET 0x20
#define CSR4_TLA3_MASK 0xFF000000uL
#define CSR4_TLA3_SHIFT 24
/*------------------------------------------------------------------------------
* CSR4_TLA2:
* TLA2 field of register CSR4.
*------------------------------------------------------------------------------
* TLA(23..16)
*/
#define CSR4_TLA2_OFFSET 0x20
#define CSR4_TLA2_MASK 0x00FF0000uL
#define CSR4_TLA2_SHIFT 16
/*------------------------------------------------------------------------------
* CSR4_TLA1:
* TLA1 field of register CSR4.
*------------------------------------------------------------------------------
* TLA(15..8)
*/
#define CSR4_TLA1_OFFSET 0x20
#define CSR4_TLA1_MASK 0x0000FF00uL
#define CSR4_TLA1_SHIFT 8
/*------------------------------------------------------------------------------
* CSR4_TLA0:
* TLA0 field of register CSR4.
*------------------------------------------------------------------------------
* TLA(7..0)
*/
#define CSR4_TLA0_OFFSET 0x20
#define CSR4_TLA0_MASK 0x000000FFuL
#define CSR4_TLA0_SHIFT 0
/*******************************************************************************
* CSR5 register:
*------------------------------------------------------------------------------
* CSR5 - Status Register
*/
#define CSR5_REG_OFFSET 0x28
#define CSR5_INT_BITS (CSR5_NIS_MASK | CSR5_AIS_MASK | CSR5_ERI_MASK | \
CSR5_GTE_MASK | CSR5_ETI_MASK | CSR5_RPS_MASK | CSR5_RU_MASK | \
CSR5_RI_MASK | CSR5_UNF_MASK | CSR5_TU_MASK | CSR5_TPS_MASK | CSR5_TI_MASK)
/*------------------------------------------------------------------------------
* CSR5_TS:
* TS field of register CSR5.
*------------------------------------------------------------------------------
* Transmit process state
*/
#define CSR5_TS_OFFSET 0x28
#define CSR5_TS_MASK 0x00700000uL
#define CSR5_TS_SHIFT 20
/** 000 - Stopped; RESET or STOP TRANSMIT command issued. */
#define CSR5_TS_STOPPED 0u
/** 001 - Running, fetching the transmit descriptor. */
#define CSR5_TS_RUNNING_FD 1u
/** 010 - Running, waiting for end of transmission. */
#define CSR5_TS_RUNNING_WT 2u
/** 011 - Running, transferring data buffer from host memory to FIFO. */
#define CSR5_TS_RUNNING_TD 3u
/** 101 - Running, setup packet. */
#define CSR5_TS_RUNNING_SP 5u
/** 110 - Suspended; FIFO underflow or unavailable descriptor. */
#define CSR5_TS_SUSPENDED 6u
/** 111 - Running, closing transmit descriptor. */
#define CSR5_TS_RUNNING_CD 7u
/*------------------------------------------------------------------------------
* CSR5_RS:
* RS field of register CSR5.
*------------------------------------------------------------------------------
* Receive process state
*/
#define CSR5_RS_OFFSET 0x28
#define CSR5_RS_MASK 0x00060000uL
#define CSR5_RS_SHIFT 17
/** 000 - Stopped; RESET or STOP RECEIVE command issued. */
#define CSR5_RS_STOPPED 0u
/** 001 - Running, fetching the receive descriptor. */
#define CSR5_RS_RUNNING_FD 1u
/** 010 - Running, waiting for the end-of-receive packet before prefetch of the
*next descriptor. */
#define CSR5_RS_RUNNING_WR 2u
/** 011 - Running, waiting for the receive packet. */
#define CSR5_RS_RUNNING_RB 3u
/** 100 - Suspended, unavailable receive buffer. */
#define CSR5_RS_SUSPENDED 4u
/** 101 - Running, closing the receive descriptor. */
#define CSR5_RS_RUNNING_CD 5u
/** 111 - Running, transferring data from FIFO to host memory. */
#define CSR5_RS_RUNNING_TD 7u
/*------------------------------------------------------------------------------
* CSR5_NIS:
* NIS field of register CSR5.
*------------------------------------------------------------------------------
* Normal interrupt summary
*/
#define CSR5_NIS_OFFSET 0x28
#define CSR5_NIS_MASK 0x00010000uL
#define CSR5_NIS_SHIFT 16
/*------------------------------------------------------------------------------
* CSR5_AIS:
* AIS field of register CSR5.
*------------------------------------------------------------------------------
* Abnormal interrupt summary
*/
#define CSR5_AIS_OFFSET 0x28
#define CSR5_AIS_MASK 0x00008000UL
#define CSR5_AIS_SHIFT 15
/*------------------------------------------------------------------------------
* CSR5_ERI:
* ERI field of register CSR5.
*------------------------------------------------------------------------------
* Early receive interrupt
*/
#define CSR5_ERI_OFFSET 0x28
#define CSR5_ERI_MASK 0x00004000UL
#define CSR5_ERI_SHIFT 14
/*------------------------------------------------------------------------------
* CSR5_GTE:
* GTE field of register CSR5.
*------------------------------------------------------------------------------
* General-purpose timer expiration
*/
#define CSR5_GTE_OFFSET 0x28
#define CSR5_GTE_MASK 0x00000800UL
#define CSR5_GTE_SHIFT 11
/*------------------------------------------------------------------------------
* CSR5_ETI:
* ETI field of register CSR5.
*------------------------------------------------------------------------------
* Early transmit interrupt
*/
#define CSR5_ETI_OFFSET 0x28
#define CSR5_ETI_MASK 0x00000400UL
#define CSR5_ETI_SHIFT 10
/*------------------------------------------------------------------------------
* CSR5_RPS:
* RPS field of register CSR5.
*------------------------------------------------------------------------------
* Receive process stopped
*/
#define CSR5_RPS_OFFSET 0x28
#define CSR5_RPS_MASK 0x00000100UL
#define CSR5_RPS_SHIFT 8
/*------------------------------------------------------------------------------
* CSR5_RU:
* RU field of register CSR5.
*------------------------------------------------------------------------------
* Receive buffer unavailable
*/
#define CSR5_RU_OFFSET 0x28
#define CSR5_RU_MASK 0x00000080UL
#define CSR5_RU_SHIFT 7
/*------------------------------------------------------------------------------
* CSR5_RI:
* RI field of register CSR5.
*------------------------------------------------------------------------------
* Receive interrupt
*/
#define CSR5_RI_OFFSET 0x28
#define CSR5_RI_MASK 0x00000040UL
#define CSR5_RI_SHIFT 6
/*------------------------------------------------------------------------------
* CSR5_UNF:
* UNF field of register CSR5.
*------------------------------------------------------------------------------
* Transmit underflow
*/
#define CSR5_UNF_OFFSET 0x28
#define CSR5_UNF_MASK 0x00000020UL
#define CSR5_UNF_SHIFT 5
/*------------------------------------------------------------------------------
* CSR5_TU:
* TU field of register CSR5.
*------------------------------------------------------------------------------
* Transmit buffer unavailable
*/
#define CSR5_TU_OFFSET 0x28
#define CSR5_TU_MASK 0x00000004UL
#define CSR5_TU_SHIFT 2
/*------------------------------------------------------------------------------
* CSR5_TPS:
* TPS field of register CSR5.
*------------------------------------------------------------------------------
* Transmit process stopped
*/
#define CSR5_TPS_OFFSET 0x28
#define CSR5_TPS_MASK 0x00000002UL
#define CSR5_TPS_SHIFT 1
/*------------------------------------------------------------------------------
* CSR5_TI:
* TI field of register CSR5.
*------------------------------------------------------------------------------
* Transmit interrupt
*/
#define CSR5_TI_OFFSET 0x28
#define CSR5_TI_MASK 0x00000001UL
#define CSR5_TI_SHIFT 0
/*******************************************************************************
* CSR6 register:
*------------------------------------------------------------------------------
* CSR6 - Operation Mode Register
*/
#define CSR6_REG_OFFSET 0x30
/*------------------------------------------------------------------------------
* CSR6_RA:
* RA field of register CSR6.
*------------------------------------------------------------------------------
* Receive all
*/
#define CSR6_RA_OFFSET 0x30
#define CSR6_RA_MASK 0x40000000UL
#define CSR6_RA_SHIFT 30
/*------------------------------------------------------------------------------
* CSR6_TTM:
* TTM field of register CSR6.
*------------------------------------------------------------------------------
* Transmit threshold mode
*/
#define CSR6_TTM_OFFSET 0x30
#define CSR6_TTM_MASK 0x00400000UL
#define CSR6_TTM_SHIFT 22
/*------------------------------------------------------------------------------
* CSR6_SF:
* SF field of register CSR6.
*------------------------------------------------------------------------------
* Store and forward
*/
#define CSR6_SF_OFFSET 0x30
#define CSR6_SF_MASK 0x00200000UL
#define CSR6_SF_SHIFT 21
/*------------------------------------------------------------------------------
* CSR6_TR:
* TR field of register CSR6.
*------------------------------------------------------------------------------
* Threshold control bits
*/
#define CSR6_TR_OFFSET 0x30
#define CSR6_TR_MASK 0x0000C000UL
#define CSR6_TR_SHIFT 14
/*------------------------------------------------------------------------------
* CSR6_ST:
* ST field of register CSR6.
*------------------------------------------------------------------------------
* Start/stop transmit command
*/
#define CSR6_ST_OFFSET 0x30
#define CSR6_ST_MASK 0x00002000UL
#define CSR6_ST_SHIFT 13
/*------------------------------------------------------------------------------
* CSR6_FD:
* FD field of register CSR6.
*------------------------------------------------------------------------------
* Full-duplex mode
*/
#define CSR6_FD_OFFSET 0x30
#define CSR6_FD_MASK 0x00000200UL
#define CSR6_FD_SHIFT 9
/*------------------------------------------------------------------------------
* CSR6_PM:
* PM field of register CSR6.
*------------------------------------------------------------------------------
* Pass all multicast
*/
#define CSR6_PM_OFFSET 0x30
#define CSR6_PM_MASK 0x00000080UL
#define CSR6_PM_SHIFT 7
/*------------------------------------------------------------------------------
* CSR6_PR:
* PR field of register CSR6.
*------------------------------------------------------------------------------
* Promiscuous mode
*/
#define CSR6_PR_OFFSET 0x30
#define CSR6_PR_MASK 0x00000040UL
#define CSR6_PR_SHIFT 6
/*------------------------------------------------------------------------------
* CSR6_IF:
* IF field of register CSR6.
*------------------------------------------------------------------------------
* Inverse filtering
*/
#define CSR6_IF_OFFSET 0x30
#define CSR6_IF_MASK 0x00000010UL
#define CSR6_IF_SHIFT 4
/*------------------------------------------------------------------------------
* CSR6_PB:
* PB field of register CSR6.
*------------------------------------------------------------------------------
* Pass bad frames
*/
#define CSR6_PB_OFFSET 0x30
#define CSR6_PB_MASK 0x00000008UL
#define CSR6_PB_SHIFT 3
/*------------------------------------------------------------------------------
* CSR6_HO:
* HO field of register CSR6.
*------------------------------------------------------------------------------
* Hash-only filtering mode
*/
#define CSR6_HO_OFFSET 0x30
#define CSR6_HO_MASK 0x00000004UL
#define CSR6_HO_SHIFT 2
/*------------------------------------------------------------------------------
* CSR6_SR:
* SR field of register CSR6.
*------------------------------------------------------------------------------
* Start/stop receive command
*/
#define CSR6_SR_OFFSET 0x30
#define CSR6_SR_MASK 0x00000002UL
#define CSR6_SR_SHIFT 1
/*------------------------------------------------------------------------------
* CSR6_HP:
* HP field of register CSR6.
*------------------------------------------------------------------------------
* Hash/perfect receive filtering mode
*/
#define CSR6_HP_OFFSET 0x30
#define CSR6_HP_MASK 0x00000001UL
#define CSR6_HP_SHIFT 0
/*******************************************************************************
* CSR7 register:
*------------------------------------------------------------------------------
* CSR7 - Interrupt Enable Register
*/
#define CSR7_REG_OFFSET 0x38
/*------------------------------------------------------------------------------
* CSR7_NIE:
* NIE field of register CSR7.
*------------------------------------------------------------------------------
* Normal interrupt summary enable
*/
#define CSR7_NIE_OFFSET 0x38
#define CSR7_NIE_MASK 0x00010000UL
#define CSR7_NIE_SHIFT 16
/*------------------------------------------------------------------------------
* CSR7_AIE:
* AIE field of register CSR7.
*------------------------------------------------------------------------------
* Abnormal interrupt summary enable
*/
#define CSR7_AIE_OFFSET 0x38
#define CSR7_AIE_MASK 0x00008000UL
#define CSR7_AIE_SHIFT 15
/*------------------------------------------------------------------------------
* CSR7_ERE:
* ERE field of register CSR7.
*------------------------------------------------------------------------------
* Early receive interrupt enable
*/
#define CSR7_ERE_OFFSET 0x38
#define CSR7_ERE_MASK 0x00004000UL
#define CSR7_ERE_SHIFT 14
/*------------------------------------------------------------------------------
* CSR7_GTE:
* GTE field of register CSR7.
*------------------------------------------------------------------------------
* General-purpose timer overflow enable
*/
#define CSR7_GTE_OFFSET 0x38
#define CSR7_GTE_MASK 0x00000800UL
#define CSR7_GTE_SHIFT 11
/*------------------------------------------------------------------------------
* CSR7_ETE:
* ETE field of register CSR7.
*------------------------------------------------------------------------------
* Early transmit interrupt enable
*/
#define CSR7_ETE_OFFSET 0x38
#define CSR7_ETE_MASK 0x00000400UL
#define CSR7_ETE_SHIFT 10
/*------------------------------------------------------------------------------
* CSR7_RSE:
* RSE field of register CSR7.
*------------------------------------------------------------------------------
* Receive stopped enable
*/
#define CSR7_RSE_OFFSET 0x38
#define CSR7_RSE_MASK 0x00000100UL
#define CSR7_RSE_SHIFT 8
/*------------------------------------------------------------------------------
* CSR7_RUE:
* RUE field of register CSR7.
*------------------------------------------------------------------------------
* Receive buffer unavailable enable
*/
#define CSR7_RUE_OFFSET 0x38
#define CSR7_RUE_MASK 0x00000080UL
#define CSR7_RUE_SHIFT 7
/*------------------------------------------------------------------------------
* CSR7_RIE:
* RIE field of register CSR7.
*------------------------------------------------------------------------------
* Receive interrupt enable
*/
#define CSR7_RIE_OFFSET 0x38
#define CSR7_RIE_MASK 0x00000040UL
#define CSR7_RIE_SHIFT 6
/*------------------------------------------------------------------------------
* CSR7_UNE:
* UNE field of register CSR7.
*------------------------------------------------------------------------------
* Underflow interrupt enable
*/
#define CSR7_UNE_OFFSET 0x38
#define CSR7_UNE_MASK 0x00000020UL
#define CSR7_UNE_SHIFT 5
/*------------------------------------------------------------------------------
* CSR7_TUE:
* TUE field of register CSR7.
*------------------------------------------------------------------------------
* Transmit buffer unavailable enable
*/
#define CSR7_TUE_OFFSET 0x38
#define CSR7_TUE_MASK 0x00000004UL
#define CSR7_TUE_SHIFT 2
/*------------------------------------------------------------------------------
* CSR7_TSE:
* TSE field of register CSR7.
*------------------------------------------------------------------------------
* Transmit stopped enable
*/
#define CSR7_TSE_OFFSET 0x38
#define CSR7_TSE_MASK 0x00000002UL
#define CSR7_TSE_SHIFT 1
/*------------------------------------------------------------------------------
* CSR7_TIE:
* TIE field of register CSR7.
*------------------------------------------------------------------------------
* Transmit interrupt enable
*/
#define CSR7_TIE_OFFSET 0x38
#define CSR7_TIE_MASK 0x00000001UL
#define CSR7_TIE_SHIFT 0
/*******************************************************************************
* CSR8 register:
*------------------------------------------------------------------------------
* CSR8 - Missed Frames and Overflow Counter Register
*/
#define CSR8_REG_OFFSET 0x40
/*------------------------------------------------------------------------------
* CSR8_OCO:
* OCO field of register CSR8.
*------------------------------------------------------------------------------
* Overflow counter overflow
*/
#define CSR8_OCO_OFFSET 0x40
#define CSR8_OCO_MASK 0x10000000UL
#define CSR8_OCO_SHIFT 28
/*------------------------------------------------------------------------------
* CSR8_FOC:
* FOC field of register CSR8.
*------------------------------------------------------------------------------
* FIFO overflow counter
*/
#define CSR8_FOC_OFFSET 0x40
#define CSR8_FOC_MASK 0x0FFE0000UL
#define CSR8_FOC_SHIFT 17
/*------------------------------------------------------------------------------
* CSR8_MFO:
* MFO field of register CSR8.
*------------------------------------------------------------------------------
* Missed frame overflow
*/
#define CSR8_MFO_OFFSET 0x40
#define CSR8_MFO_MASK 0x00010000UL
#define CSR8_MFO_SHIFT 16
/*------------------------------------------------------------------------------
* CSR8_MFC:
* MFC field of register CSR8.
*------------------------------------------------------------------------------
* Missed frame counter
*/
#define CSR8_MFC_OFFSET 0x40
#define CSR8_MFC_MASK 0x0000FFFFUL
#define CSR8_MFC_SHIFT 0
/*******************************************************************************
* CSR9 register:
*------------------------------------------------------------------------------
* CSR9 - MII Management and Serial ROM Interface Register
*/
#define CSR9_REG_OFFSET 0x48
/*------------------------------------------------------------------------------
* CSR9_MDI:
* MDI field of register CSR9.
*------------------------------------------------------------------------------
* MII management data in signal
*/
#define CSR9_MDI_OFFSET 0x48
#define CSR9_MDI_MASK 0x00080000UL
#define CSR9_MDI_SHIFT 19
/*------------------------------------------------------------------------------
* CSR9_MII:
* MII field of register CSR9.
*------------------------------------------------------------------------------
* MII management operation mode
*/
#define CSR9_MII_OFFSET 0x48
#define CSR9_MII_MASK 0x00040000UL
#define CSR9_MII_SHIFT 18
/*------------------------------------------------------------------------------
* CSR9_MDO:
* MDO field of register CSR9.
*------------------------------------------------------------------------------
* MII management write data
*/
#define CSR9_MDO_OFFSET 0x48
#define CSR9_MDO_MASK 0x00020000UL
#define CSR9_MDO_SHIFT 17
/*------------------------------------------------------------------------------
* CSR9_MDC:
* MDC field of register CSR9.
*------------------------------------------------------------------------------
* MII management clock
*/
#define CSR9_MDC_OFFSET 0x48
#define CSR9_MDC_MASK 0x00010000UL
#define CSR9_MDC_SHIFT 16
/*------------------------------------------------------------------------------
* CSR9_SDO:
* SDO field of register CSR9.
*------------------------------------------------------------------------------
* Serial ROM data output
*/
#define CSR9_SDO_OFFSET 0x48
#define CSR9_SDO_MASK 0x00000008UL
#define CSR9_SDO_SHIFT 3
/*------------------------------------------------------------------------------
* CSR9_SDI:
* SDI field of register CSR9.
*------------------------------------------------------------------------------
* Serial ROM data input
*/
#define CSR9_SDI_OFFSET 0x48
#define CSR9_SDI_MASK 0x00000004UL
#define CSR9_SDI_SHIFT 2
/*------------------------------------------------------------------------------
* CSR9_SCLK:
* SCLK field of register CSR9.
*------------------------------------------------------------------------------
* Serial ROM clock
*/
#define CSR9_SCLK_OFFSET 0x48
#define CSR9_SCLK_MASK 0x00000002UL
#define CSR9_SCLK_SHIFT 1
/*------------------------------------------------------------------------------
* CSR9_SCS:
* SCS field of register CSR9.
*------------------------------------------------------------------------------
* Serial ROM chip select
*/
#define CSR9_SCS_OFFSET 0x48
#define CSR9_SCS_MASK 0x00000001UL
#define CSR9_SCS_SHIFT 0
/*******************************************************************************
* CSR11 register:
*------------------------------------------------------------------------------
* CSR11 - General-Purpose Timer and Interrupt Mitigation Control Register
*/
#define CSR11_REG_OFFSET 0x58
/*------------------------------------------------------------------------------
* CSR11_CS:
* CS field of register CSR11.
*------------------------------------------------------------------------------
* Cycle size
*/
#define CSR11_CS_OFFSET 0x58
#define CSR11_CS_MASK 0x80000000UL
#define CSR11_CS_SHIFT 31
/*------------------------------------------------------------------------------
* CSR11_TT:
* TT field of register CSR11.
*------------------------------------------------------------------------------
* Transmit timer
*/
#define CSR11_TT_OFFSET 0x58
#define CSR11_TT_MASK 0x78000000UL
#define CSR11_TT_SHIFT 27
/*------------------------------------------------------------------------------
* CSR11_NTP:
* NTP field of register CSR11.
*------------------------------------------------------------------------------
* Number of transmit packets
*/
#define CSR11_NTP_OFFSET 0x58
#define CSR11_NTP_MASK 0x07000000UL
#define CSR11_NTP_SHIFT 24
/*------------------------------------------------------------------------------
* CSR11_RT:
* RT field of register CSR11.
*------------------------------------------------------------------------------
* Receive timer
*/
#define CSR11_RT_OFFSET 0x58
#define CSR11_RT_MASK 0x00F00000UL
#define CSR11_RT_SHIFT 20
/*------------------------------------------------------------------------------
* CSR11_NRP:
* NRP field of register CSR11.
*------------------------------------------------------------------------------
* Number of receive packets
*/
#define CSR11_NRP_OFFSET 0x58
#define CSR11_NRP_MASK 0x000E0000UL
#define CSR11_NRP_SHIFT 17
/*------------------------------------------------------------------------------
* CSR11_CON:
* CON field of register CSR11.
*------------------------------------------------------------------------------
* Continuous mode
*/
#define CSR11_CON_OFFSET 0x58
#define CSR11_CON_MASK 0x00010000UL
#define CSR11_CON_SHIFT 16
/*------------------------------------------------------------------------------
* CSR11_TIM:
* TIM field of register CSR11.
*------------------------------------------------------------------------------
* Timer value
*/
#define CSR11_TIM_OFFSET 0x58
#define CSR11_TIM_MASK 0x0000FFFFUL
#define CSR11_TIM_SHIFT 0
#ifdef __cplusplus
}
#endif
#endif /* MSS_ETHERNET_MAC_REGISTERS_H_*/