1 /***************************************************************************//**
\r
3 * SmartFusion MSS Ethernet MAC registers.
\r
5 * (c) Copyright 2007 Actel Corporation
\r
7 * IP core registers definitions. This file contains the definitions required
\r
8 * for accessing the IP core through the hardware abstraction layer (HAL).
\r
9 * This file was automatically generated, using "get_header.exe" version 0.4.0,
\r
10 * from the IP-XACT description for:
\r
13 * SVN $Revision: 2364 $
\r
14 * SVN $Date: 2010-03-01 17:58:41 +0000 (Mon, 01 Mar 2010) $
\r
16 *******************************************************************************/
\r
17 #ifndef MSS_ETHERNET_MAC_REGISTERS_H_
\r
18 #define MSS_ETHERNET_MAC_REGISTERS_H_
\r
24 #include "../../CMSIS/a2fxxxm3.h"
\r
25 #include "mss_ethernet_mac.h"
\r
26 #include "mss_ethernet_mac_user_cfg.h"
\r
28 typedef uint32_t addr_t;
\r
31 /***************************************************************************//**
\r
32 * Descriptor structure
\r
35 volatile uint32_t descriptor_0;
\r
36 volatile uint32_t descriptor_1;
\r
37 volatile uint32_t buffer_1;
\r
38 volatile uint32_t buffer_2;
\r
42 /***************************************************************************//**
\r
43 * There should be one instance of this structure for each instance of
\r
44 * the MAC in your system. MSS_MAC_init routine initializes this structure.
\r
45 * It is used to identify the various MACs in your system and an initilized
\r
46 * MAC instance's structure should be passed as first parameter to MAC functions
\r
47 * to identify which MAC should perform the requested operation.
\r
48 * Software using the MAC driver should only need to create one single
\r
49 * instance of this data structure for each MAC hardware instance in
\r
50 * the system. Using MAC_get_configuration routine, latest status of the driver
\r
51 * may be read by receiving its flags field, similarly MAC_configure routine lets
\r
52 * you modify some of these flags.
\r
55 addr_t base_address; /**< Register base address of the driver*/
\r
56 uint8_t flags; /**< Configuration of the driver*/
\r
57 int8_t last_error; /**< Index of last error happened inside the driver*/
\r
58 uint8_t mac_address[6]; /**< MAC address of the drived instance*/
\r
59 uint8_t mac_filter_data[90]; /**< MAC filter data, 15 addresses to be used for
\r
60 received data filtering*/
\r
61 uint16_t last_timer_value; /**< Last read value of timer */
\r
62 uint32_t time_out_value; /**< Time out value */
\r
63 MSS_MAC_callback_t listener; /**< Pointer to the call-back function to be triggered
\r
64 when a package is received*/
\r
66 /* transmit related info: */
\r
67 uint32_t tx_desc_index; /**< index of the transmit descriptor getting used*/
\r
68 // uint8_t tx_buffers[TX_RING_SIZE][MSS_TX_BUFF_SIZE];/**< array of transmit buffers*/
\r
69 MAC_descriptor_t tx_descriptors[TX_RING_SIZE];/**< array of transmit descriptors*/
\r
71 /* receive related info: */
\r
72 uint32_t rx_desc_index; /**< index of the receive descriptor getting used*/
\r
73 // uint8_t rx_buffers[RX_RING_SIZE][MSS_RX_BUFF_SIZE+4];/**< array of receive buffers*/
\r
74 MAC_descriptor_t rx_descriptors[RX_RING_SIZE];/**< array of receive descriptors*/
\r
76 uint8_t phy_address; /**< MII address of the connected PHY*/
\r
79 uint32_t rx_interrupts; /**< Number of receive interrupts occurred.*/
\r
80 uint32_t rx_filtering_fail; /**< Number of received frames which did not pass
\r
81 the address recognition process.*/
\r
82 uint32_t rx_descriptor_error; /**< Number of occurrences of; no receive buffer was
\r
83 available when trying to store the received data.*/
\r
84 uint32_t rx_runt_frame; /**< Number of occurrences of; the frame is damaged by
\r
85 a collision or by a premature termination before
\r
86 the end of a collision window.*/
\r
87 uint32_t rx_not_first; /**< Number of occurrences of; start of the frame is
\r
88 not the first descriptor of a frame.*/
\r
89 uint32_t rx_not_last; /**< Number of occurrences of; end of the frame is not
\r
90 the first descriptor of a frame.*/
\r
91 uint32_t rx_frame_too_long; /**< Number of occurrences of; a current frame is
\r
92 longer than maximum size of 1,518 bytes, as specified
\r
94 uint32_t rx_collision_seen; /**< Number of occurrences of; a late collision was seen
\r
95 (collision after 64 bytes following SFD).*/
\r
96 uint32_t rx_crc_error; /**< Number of occurrences of; a CRC error has occurred
\r
97 in the received frame.*/
\r
98 uint32_t rx_fifo_overflow; /**< Number of frames not accepted due to the receive
\r
100 uint32_t rx_missed_frame; /**< Number of frames not accepted due to the
\r
101 unavailability of the receive descriptor.*/
\r
103 uint32_t tx_interrupts; /**< Number of transmit interrupts occurred.*/
\r
104 uint32_t tx_loss_of_carrier; /**< Number of occurrences of; a loss of the carrier
\r
105 during a transmission.*/
\r
106 uint32_t tx_no_carrier; /**< Number of occurrences of; the carrier was not asserted
\r
107 by an external transceiver during the transmission.*/
\r
108 uint32_t tx_late_collision; /**< Number of occurrences of; a collision was detected
\r
109 after transmitting 64 bytes.*/
\r
110 uint32_t tx_excessive_collision;/**< Number of occurrences of; the transmission was
\r
111 aborted after 16 retries.*/
\r
112 uint32_t tx_collision_count; /**< Number of collisions occurred.*/
\r
113 uint32_t tx_underflow_error; /**< Number of occurrences of; the FIFO was empty during
\r
114 the frame transmission.*/
\r
116 } MAC_instance_t __attribute__((packed));
\r
119 /*------------------------------------------------------------------------------
\r
126 uint32_t CSR0_DSL[5];
\r
128 uint32_t CSR0_PBL[6];
\r
129 uint32_t CSR0_RESERVED0[3];
\r
130 uint32_t CSR0_TAP[3];
\r
132 uint32_t CSR0_RESERVED1[11];
\r
134 uint32_t MAC_CSR_RESERVED0[32];
\r
138 uint32_t MAC_CSR_RESERVED1[32];
\r
142 uint32_t MAC_CSR_RESERVED2[32];
\r
146 uint32_t MAC_CSR_RESERVED3[32];
\r
150 uint32_t MAC_CSR_RESERVED4[32];
\r
155 uint32_t CSR5_RESERVED0[2];
\r
160 uint32_t CSR5_RESERVED1;
\r
163 uint32_t CSR5_RESERVED2[2];
\r
167 uint32_t CSR5_RS[3];
\r
168 uint32_t CSR5_TS[3];
\r
169 uint32_t CSR5_RESERVED3[9];
\r
171 uint32_t MAC_CSR_RESERVED5[32];
\r
178 uint32_t CSR6_RESERVED0;
\r
181 uint32_t CSR6_RESERVED1;
\r
183 uint32_t CSR6_RESERVED2[3];
\r
185 uint32_t CSR6_TR[2];
\r
186 uint32_t CSR6_RESERVED3[5];
\r
189 uint32_t CSR6_RESERVED4[7];
\r
191 uint32_t CSR6_RESERVED5;
\r
193 uint32_t MAC_CSR_RESERVED6[32];
\r
198 uint32_t CSR7_RESERVED0[2];
\r
203 uint32_t CSR7_RESERVED1;
\r
206 uint32_t CSR7_RESERVED2[2];
\r
212 uint32_t MAC_CSR_RESERVED7[32];
\r
216 uint32_t MAC_CSR_RESERVED8[32];
\r
219 uint32_t CSR9_SCLK;
\r
222 uint32_t CSR9_RESERVED0[12];
\r
225 uint32_t CSR9_MDEN;
\r
227 uint32_t CSR9_RESERVED1[12];
\r
229 uint32_t MAC_CSR_RESERVED9[32];
\r
231 uint32_t CSR10[32];
\r
233 uint32_t MAC_CSR_RESERVED10[32];
\r
235 uint32_t CSR11_TIM[16];
\r
236 uint32_t CSR11_CON;
\r
237 uint32_t CSR11_NRP[3];
\r
238 uint32_t CSR11_RT[4];
\r
239 uint32_t CSR11_NTP[3];
\r
240 uint32_t CSR11_TT[4];
\r
242 } MAC_BitBand_TypeDef;
\r
244 #define MAC_BITBAND ((MAC_BitBand_TypeDef *) BITBAND_ADDRESS(MAC_BASE))
\r
246 /*******************************************************************************
\r
248 *------------------------------------------------------------------------------
\r
249 * CSR0 - Bus Mode Register
\r
251 #define CSR0_REG_OFFSET 0x00
\r
253 /*------------------------------------------------------------------------------
\r
255 * DBO field of register CSR0.
\r
256 *------------------------------------------------------------------------------
\r
257 * Descriptor byte ordering mode
\r
259 #define CSR0_DBO_OFFSET 0x00
\r
260 #define CSR0_DBO_MASK 0x00100000UL
\r
261 #define CSR0_DBO_SHIFT 20
\r
264 * Allowed values for CSR0_DBO:
\r
265 *------------------------------------------------------------------------------
\r
266 * LITTLEENDIAN: Little endian mode used for data descriptors
\r
267 * BIGENDIAN: Big endian mode used for data descriptors
\r
269 #define LITTLEENDIAN 0u
\r
270 #define BIGENDIAN 1u
\r
272 /*------------------------------------------------------------------------------
\r
274 * TAP field of register CSR0.
\r
275 *------------------------------------------------------------------------------
\r
276 * Transmit automatic polling
\r
278 #define CSR0_TAP_OFFSET 0x00
\r
279 #define CSR0_TAP_MASK 0x000E0000UL
\r
280 #define CSR0_TAP_SHIFT 17
\r
283 * Allowed values for CSR0_TAP:
\r
284 *------------------------------------------------------------------------------
\r
285 * TAP_DISABLED: TAP disabled
\r
286 * TAP_819US: TAP 819/81.9us
\r
287 * TAP_2450US: TAP 2450/245us
\r
288 * TAP_5730US: TAP 5730/573us
\r
289 * TAP_51_2US: TAP 51.2/5.12us
\r
290 * TAP_102_4US: TAP 102.4/10.24us
\r
291 * TAP_153_6US: TAP 156.6/15.26us
\r
292 * TAP_358_4US: TAP 358.4/35.84us
\r
294 #define TAP_DISABLED 0x0
\r
295 #define TAP_819US 0x1
\r
296 #define TAP_2450US 0x2
\r
297 #define TAP_5730US 0x3
\r
298 #define TAP_51_2US 0x4
\r
299 #define TAP_102_4US 0x5
\r
300 #define TAP_153_6US 0x6
\r
301 #define TAP_358_4US 0x7
\r
303 /*------------------------------------------------------------------------------
\r
305 * PBL field of register CSR0.
\r
306 *------------------------------------------------------------------------------
\r
307 * Programmable burst length
\r
309 #define CSR0_PBL_OFFSET 0x00
\r
310 #define CSR0_PBL_MASK 0x00003F00uL
\r
311 #define CSR0_PBL_SHIFT 8
\r
313 /*------------------------------------------------------------------------------
\r
315 * BLE field of register CSR0.
\r
316 *------------------------------------------------------------------------------
\r
317 * Big/little endian
\r
319 #define CSR0_BLE_OFFSET 0x00
\r
320 #define CSR0_BLE_MASK 0x00000080uL
\r
321 #define CSR0_BLE_SHIFT 7
\r
323 /*------------------------------------------------------------------------------
\r
325 * DSL field of register CSR0.
\r
326 *------------------------------------------------------------------------------
\r
327 * Descriptor skip length
\r
329 #define CSR0_DSL_OFFSET 0x00
\r
330 #define CSR0_DSL_MASK 0x0000007CuL
\r
331 #define CSR0_DSL_SHIFT 2
\r
333 /*------------------------------------------------------------------------------
\r
335 * BAR field of register CSR0.
\r
336 *------------------------------------------------------------------------------
\r
337 * Bus arbitration scheme
\r
339 #define CSR0_BAR_OFFSET 0x00
\r
340 #define CSR0_BAR_MASK 0x00000002uL
\r
341 #define CSR0_BAR_SHIFT 1
\r
343 /*------------------------------------------------------------------------------
\r
345 * SWR field of register CSR0.
\r
346 *------------------------------------------------------------------------------
\r
349 #define CSR0_SWR_OFFSET 0x00
\r
350 #define CSR0_SWR_MASK 0x00000001uL
\r
351 #define CSR0_SWR_SHIFT 0
\r
353 /*******************************************************************************
\r
355 *------------------------------------------------------------------------------
\r
356 * CSR1 - Transmit Poll Demand Register
\r
358 #define CSR1_REG_OFFSET 0x08
\r
360 /*------------------------------------------------------------------------------
\r
362 * TPD3 field of register CSR1.
\r
363 *------------------------------------------------------------------------------
\r
366 #define CSR1_TPD3_OFFSET 0x08
\r
367 #define CSR1_TPD3_MASK 0xFF000000uL
\r
368 #define CSR1_TPD3_SHIFT 24
\r
370 /*------------------------------------------------------------------------------
\r
372 * TPD2 field of register CSR1.
\r
373 *------------------------------------------------------------------------------
\r
376 #define CSR1_TPD2_OFFSET 0x08
\r
377 #define CSR1_TPD2_MASK 0x00FF0000uL
\r
378 #define CSR1_TPD2_SHIFT 16
\r
380 /*------------------------------------------------------------------------------
\r
382 * TPD1 field of register CSR1.
\r
383 *------------------------------------------------------------------------------
\r
386 #define CSR1_TPD1_OFFSET 0x08
\r
387 #define CSR1_TPD1_MASK 0x0000FF00uL
\r
388 #define CSR1_TPD1_SHIFT 8
\r
390 /*------------------------------------------------------------------------------
\r
392 * TPD0 field of register CSR1.
\r
393 *------------------------------------------------------------------------------
\r
396 #define CSR1_TPD0_OFFSET 0x08
\r
397 #define CSR1_TPD0_MASK 0x000000FFuL
\r
398 #define CSR1_TPD0_SHIFT 0
\r
400 /*******************************************************************************
\r
402 *------------------------------------------------------------------------------
\r
403 * CSR2 - Receive Poll Demand Register
\r
405 #define CSR2_REG_OFFSET 0x10
\r
407 /*------------------------------------------------------------------------------
\r
409 * RPD3 field of register CSR2.
\r
410 *------------------------------------------------------------------------------
\r
413 #define CSR2_RPD3_OFFSET 0x10
\r
414 #define CSR2_RPD3_MASK 0xFF000000uL
\r
415 #define CSR2_RPD3_SHIFT 24
\r
417 /*------------------------------------------------------------------------------
\r
419 * RPD2 field of register CSR2.
\r
420 *------------------------------------------------------------------------------
\r
423 #define CSR2_RPD2_OFFSET 0x10
\r
424 #define CSR2_RPD2_MASK 0x00FF0000uL
\r
425 #define CSR2_RPD2_SHIFT 16
\r
427 /*------------------------------------------------------------------------------
\r
429 * RPD1 field of register CSR2.
\r
430 *------------------------------------------------------------------------------
\r
433 #define CSR2_RPD1_OFFSET 0x10
\r
434 #define CSR2_RPD1_MASK 0x0000FF00uL
\r
435 #define CSR2_RPD1_SHIFT 8
\r
437 /*------------------------------------------------------------------------------
\r
439 * RPD0 field of register CSR2.
\r
440 *------------------------------------------------------------------------------
\r
443 #define CSR2_RPD0_OFFSET 0x10
\r
444 #define CSR2_RPD0_MASK 0x000000FFuL
\r
445 #define CSR2_RPD0_SHIFT 0
\r
447 /*******************************************************************************
\r
449 *------------------------------------------------------------------------------
\r
450 * CSR3 - Receive Descriptor List Base Address Register
\r
452 #define CSR3_REG_OFFSET 0x18
\r
454 /*------------------------------------------------------------------------------
\r
456 * RLA3 field of register CSR3.
\r
457 *------------------------------------------------------------------------------
\r
460 #define CSR3_RLA3_OFFSET 0x18
\r
461 #define CSR3_RLA3_MASK 0xFF000000uL
\r
462 #define CSR3_RLA3_SHIFT 24
\r
464 /*------------------------------------------------------------------------------
\r
466 * RLA2 field of register CSR3.
\r
467 *------------------------------------------------------------------------------
\r
470 #define CSR3_RLA2_OFFSET 0x18
\r
471 #define CSR3_RLA2_MASK 0x00FF0000uL
\r
472 #define CSR3_RLA2_SHIFT 16
\r
474 /*------------------------------------------------------------------------------
\r
476 * RLA1 field of register CSR3.
\r
477 *------------------------------------------------------------------------------
\r
480 #define CSR3_RLA1_OFFSET 0x18
\r
481 #define CSR3_RLA1_MASK 0x0000FF00uL
\r
482 #define CSR3_RLA1_SHIFT 8
\r
484 /*------------------------------------------------------------------------------
\r
486 * RLA0 field of register CSR3.
\r
487 *------------------------------------------------------------------------------
\r
490 #define CSR3_RLA0_OFFSET 0x18
\r
491 #define CSR3_RLA0_MASK 0x000000FFuL
\r
492 #define CSR3_RLA0_SHIFT 0
\r
494 /*******************************************************************************
\r
496 *------------------------------------------------------------------------------
\r
497 * CSR4 - Transmit Descriptor List Base Address Register
\r
499 #define CSR4_REG_OFFSET 0x20
\r
501 /*------------------------------------------------------------------------------
\r
503 * TLA3 field of register CSR4.
\r
504 *------------------------------------------------------------------------------
\r
507 #define CSR4_TLA3_OFFSET 0x20
\r
508 #define CSR4_TLA3_MASK 0xFF000000uL
\r
509 #define CSR4_TLA3_SHIFT 24
\r
511 /*------------------------------------------------------------------------------
\r
513 * TLA2 field of register CSR4.
\r
514 *------------------------------------------------------------------------------
\r
517 #define CSR4_TLA2_OFFSET 0x20
\r
518 #define CSR4_TLA2_MASK 0x00FF0000uL
\r
519 #define CSR4_TLA2_SHIFT 16
\r
521 /*------------------------------------------------------------------------------
\r
523 * TLA1 field of register CSR4.
\r
524 *------------------------------------------------------------------------------
\r
527 #define CSR4_TLA1_OFFSET 0x20
\r
528 #define CSR4_TLA1_MASK 0x0000FF00uL
\r
529 #define CSR4_TLA1_SHIFT 8
\r
531 /*------------------------------------------------------------------------------
\r
533 * TLA0 field of register CSR4.
\r
534 *------------------------------------------------------------------------------
\r
537 #define CSR4_TLA0_OFFSET 0x20
\r
538 #define CSR4_TLA0_MASK 0x000000FFuL
\r
539 #define CSR4_TLA0_SHIFT 0
\r
541 /*******************************************************************************
\r
543 *------------------------------------------------------------------------------
\r
544 * CSR5 - Status Register
\r
546 #define CSR5_REG_OFFSET 0x28
\r
547 #define CSR5_INT_BITS (CSR5_NIS_MASK | CSR5_AIS_MASK | CSR5_ERI_MASK | \
\r
548 CSR5_GTE_MASK | CSR5_ETI_MASK | CSR5_RPS_MASK | CSR5_RU_MASK | \
\r
549 CSR5_RI_MASK | CSR5_UNF_MASK | CSR5_TU_MASK | CSR5_TPS_MASK | CSR5_TI_MASK)
\r
551 /*------------------------------------------------------------------------------
\r
553 * TS field of register CSR5.
\r
554 *------------------------------------------------------------------------------
\r
555 * Transmit process state
\r
557 #define CSR5_TS_OFFSET 0x28
\r
558 #define CSR5_TS_MASK 0x00700000uL
\r
559 #define CSR5_TS_SHIFT 20
\r
561 /** 000 - Stopped; RESET or STOP TRANSMIT command issued. */
\r
562 #define CSR5_TS_STOPPED 0u
\r
563 /** 001 - Running, fetching the transmit descriptor. */
\r
564 #define CSR5_TS_RUNNING_FD 1u
\r
565 /** 010 - Running, waiting for end of transmission. */
\r
566 #define CSR5_TS_RUNNING_WT 2u
\r
567 /** 011 - Running, transferring data buffer from host memory to FIFO. */
\r
568 #define CSR5_TS_RUNNING_TD 3u
\r
569 /** 101 - Running, setup packet. */
\r
570 #define CSR5_TS_RUNNING_SP 5u
\r
571 /** 110 - Suspended; FIFO underflow or unavailable descriptor. */
\r
572 #define CSR5_TS_SUSPENDED 6u
\r
573 /** 111 - Running, closing transmit descriptor. */
\r
574 #define CSR5_TS_RUNNING_CD 7u
\r
576 /*------------------------------------------------------------------------------
\r
578 * RS field of register CSR5.
\r
579 *------------------------------------------------------------------------------
\r
580 * Receive process state
\r
582 #define CSR5_RS_OFFSET 0x28
\r
583 #define CSR5_RS_MASK 0x00060000uL
\r
584 #define CSR5_RS_SHIFT 17
\r
586 /** 000 - Stopped; RESET or STOP RECEIVE command issued. */
\r
587 #define CSR5_RS_STOPPED 0u
\r
588 /** 001 - Running, fetching the receive descriptor. */
\r
589 #define CSR5_RS_RUNNING_FD 1u
\r
590 /** 010 - Running, waiting for the end-of-receive packet before prefetch of the
\r
591 *next descriptor. */
\r
592 #define CSR5_RS_RUNNING_WR 2u
\r
593 /** 011 - Running, waiting for the receive packet. */
\r
594 #define CSR5_RS_RUNNING_RB 3u
\r
595 /** 100 - Suspended, unavailable receive buffer. */
\r
596 #define CSR5_RS_SUSPENDED 4u
\r
597 /** 101 - Running, closing the receive descriptor. */
\r
598 #define CSR5_RS_RUNNING_CD 5u
\r
599 /** 111 - Running, transferring data from FIFO to host memory. */
\r
600 #define CSR5_RS_RUNNING_TD 7u
\r
602 /*------------------------------------------------------------------------------
\r
604 * NIS field of register CSR5.
\r
605 *------------------------------------------------------------------------------
\r
606 * Normal interrupt summary
\r
608 #define CSR5_NIS_OFFSET 0x28
\r
609 #define CSR5_NIS_MASK 0x00010000uL
\r
610 #define CSR5_NIS_SHIFT 16
\r
612 /*------------------------------------------------------------------------------
\r
614 * AIS field of register CSR5.
\r
615 *------------------------------------------------------------------------------
\r
616 * Abnormal interrupt summary
\r
618 #define CSR5_AIS_OFFSET 0x28
\r
619 #define CSR5_AIS_MASK 0x00008000UL
\r
620 #define CSR5_AIS_SHIFT 15
\r
622 /*------------------------------------------------------------------------------
\r
624 * ERI field of register CSR5.
\r
625 *------------------------------------------------------------------------------
\r
626 * Early receive interrupt
\r
628 #define CSR5_ERI_OFFSET 0x28
\r
629 #define CSR5_ERI_MASK 0x00004000UL
\r
630 #define CSR5_ERI_SHIFT 14
\r
632 /*------------------------------------------------------------------------------
\r
634 * GTE field of register CSR5.
\r
635 *------------------------------------------------------------------------------
\r
636 * General-purpose timer expiration
\r
638 #define CSR5_GTE_OFFSET 0x28
\r
639 #define CSR5_GTE_MASK 0x00000800UL
\r
640 #define CSR5_GTE_SHIFT 11
\r
642 /*------------------------------------------------------------------------------
\r
644 * ETI field of register CSR5.
\r
645 *------------------------------------------------------------------------------
\r
646 * Early transmit interrupt
\r
648 #define CSR5_ETI_OFFSET 0x28
\r
649 #define CSR5_ETI_MASK 0x00000400UL
\r
650 #define CSR5_ETI_SHIFT 10
\r
652 /*------------------------------------------------------------------------------
\r
654 * RPS field of register CSR5.
\r
655 *------------------------------------------------------------------------------
\r
656 * Receive process stopped
\r
658 #define CSR5_RPS_OFFSET 0x28
\r
659 #define CSR5_RPS_MASK 0x00000100UL
\r
660 #define CSR5_RPS_SHIFT 8
\r
662 /*------------------------------------------------------------------------------
\r
664 * RU field of register CSR5.
\r
665 *------------------------------------------------------------------------------
\r
666 * Receive buffer unavailable
\r
668 #define CSR5_RU_OFFSET 0x28
\r
669 #define CSR5_RU_MASK 0x00000080UL
\r
670 #define CSR5_RU_SHIFT 7
\r
672 /*------------------------------------------------------------------------------
\r
674 * RI field of register CSR5.
\r
675 *------------------------------------------------------------------------------
\r
676 * Receive interrupt
\r
678 #define CSR5_RI_OFFSET 0x28
\r
679 #define CSR5_RI_MASK 0x00000040UL
\r
680 #define CSR5_RI_SHIFT 6
\r
682 /*------------------------------------------------------------------------------
\r
684 * UNF field of register CSR5.
\r
685 *------------------------------------------------------------------------------
\r
686 * Transmit underflow
\r
688 #define CSR5_UNF_OFFSET 0x28
\r
689 #define CSR5_UNF_MASK 0x00000020UL
\r
690 #define CSR5_UNF_SHIFT 5
\r
692 /*------------------------------------------------------------------------------
\r
694 * TU field of register CSR5.
\r
695 *------------------------------------------------------------------------------
\r
696 * Transmit buffer unavailable
\r
698 #define CSR5_TU_OFFSET 0x28
\r
699 #define CSR5_TU_MASK 0x00000004UL
\r
700 #define CSR5_TU_SHIFT 2
\r
702 /*------------------------------------------------------------------------------
\r
704 * TPS field of register CSR5.
\r
705 *------------------------------------------------------------------------------
\r
706 * Transmit process stopped
\r
708 #define CSR5_TPS_OFFSET 0x28
\r
709 #define CSR5_TPS_MASK 0x00000002UL
\r
710 #define CSR5_TPS_SHIFT 1
\r
712 /*------------------------------------------------------------------------------
\r
714 * TI field of register CSR5.
\r
715 *------------------------------------------------------------------------------
\r
716 * Transmit interrupt
\r
718 #define CSR5_TI_OFFSET 0x28
\r
719 #define CSR5_TI_MASK 0x00000001UL
\r
720 #define CSR5_TI_SHIFT 0
\r
722 /*******************************************************************************
\r
724 *------------------------------------------------------------------------------
\r
725 * CSR6 - Operation Mode Register
\r
727 #define CSR6_REG_OFFSET 0x30
\r
729 /*------------------------------------------------------------------------------
\r
731 * RA field of register CSR6.
\r
732 *------------------------------------------------------------------------------
\r
735 #define CSR6_RA_OFFSET 0x30
\r
736 #define CSR6_RA_MASK 0x40000000UL
\r
737 #define CSR6_RA_SHIFT 30
\r
739 /*------------------------------------------------------------------------------
\r
741 * TTM field of register CSR6.
\r
742 *------------------------------------------------------------------------------
\r
743 * Transmit threshold mode
\r
745 #define CSR6_TTM_OFFSET 0x30
\r
746 #define CSR6_TTM_MASK 0x00400000UL
\r
747 #define CSR6_TTM_SHIFT 22
\r
749 /*------------------------------------------------------------------------------
\r
751 * SF field of register CSR6.
\r
752 *------------------------------------------------------------------------------
\r
753 * Store and forward
\r
755 #define CSR6_SF_OFFSET 0x30
\r
756 #define CSR6_SF_MASK 0x00200000UL
\r
757 #define CSR6_SF_SHIFT 21
\r
759 /*------------------------------------------------------------------------------
\r
761 * TR field of register CSR6.
\r
762 *------------------------------------------------------------------------------
\r
763 * Threshold control bits
\r
765 #define CSR6_TR_OFFSET 0x30
\r
766 #define CSR6_TR_MASK 0x0000C000UL
\r
767 #define CSR6_TR_SHIFT 14
\r
769 /*------------------------------------------------------------------------------
\r
771 * ST field of register CSR6.
\r
772 *------------------------------------------------------------------------------
\r
773 * Start/stop transmit command
\r
775 #define CSR6_ST_OFFSET 0x30
\r
776 #define CSR6_ST_MASK 0x00002000UL
\r
777 #define CSR6_ST_SHIFT 13
\r
779 /*------------------------------------------------------------------------------
\r
781 * FD field of register CSR6.
\r
782 *------------------------------------------------------------------------------
\r
785 #define CSR6_FD_OFFSET 0x30
\r
786 #define CSR6_FD_MASK 0x00000200UL
\r
787 #define CSR6_FD_SHIFT 9
\r
789 /*------------------------------------------------------------------------------
\r
791 * PM field of register CSR6.
\r
792 *------------------------------------------------------------------------------
\r
793 * Pass all multicast
\r
795 #define CSR6_PM_OFFSET 0x30
\r
796 #define CSR6_PM_MASK 0x00000080UL
\r
797 #define CSR6_PM_SHIFT 7
\r
799 /*------------------------------------------------------------------------------
\r
801 * PR field of register CSR6.
\r
802 *------------------------------------------------------------------------------
\r
805 #define CSR6_PR_OFFSET 0x30
\r
806 #define CSR6_PR_MASK 0x00000040UL
\r
807 #define CSR6_PR_SHIFT 6
\r
809 /*------------------------------------------------------------------------------
\r
811 * IF field of register CSR6.
\r
812 *------------------------------------------------------------------------------
\r
813 * Inverse filtering
\r
815 #define CSR6_IF_OFFSET 0x30
\r
816 #define CSR6_IF_MASK 0x00000010UL
\r
817 #define CSR6_IF_SHIFT 4
\r
819 /*------------------------------------------------------------------------------
\r
821 * PB field of register CSR6.
\r
822 *------------------------------------------------------------------------------
\r
825 #define CSR6_PB_OFFSET 0x30
\r
826 #define CSR6_PB_MASK 0x00000008UL
\r
827 #define CSR6_PB_SHIFT 3
\r
829 /*------------------------------------------------------------------------------
\r
831 * HO field of register CSR6.
\r
832 *------------------------------------------------------------------------------
\r
833 * Hash-only filtering mode
\r
835 #define CSR6_HO_OFFSET 0x30
\r
836 #define CSR6_HO_MASK 0x00000004UL
\r
837 #define CSR6_HO_SHIFT 2
\r
839 /*------------------------------------------------------------------------------
\r
841 * SR field of register CSR6.
\r
842 *------------------------------------------------------------------------------
\r
843 * Start/stop receive command
\r
845 #define CSR6_SR_OFFSET 0x30
\r
846 #define CSR6_SR_MASK 0x00000002UL
\r
847 #define CSR6_SR_SHIFT 1
\r
849 /*------------------------------------------------------------------------------
\r
851 * HP field of register CSR6.
\r
852 *------------------------------------------------------------------------------
\r
853 * Hash/perfect receive filtering mode
\r
855 #define CSR6_HP_OFFSET 0x30
\r
856 #define CSR6_HP_MASK 0x00000001UL
\r
857 #define CSR6_HP_SHIFT 0
\r
859 /*******************************************************************************
\r
861 *------------------------------------------------------------------------------
\r
862 * CSR7 - Interrupt Enable Register
\r
864 #define CSR7_REG_OFFSET 0x38
\r
866 /*------------------------------------------------------------------------------
\r
868 * NIE field of register CSR7.
\r
869 *------------------------------------------------------------------------------
\r
870 * Normal interrupt summary enable
\r
872 #define CSR7_NIE_OFFSET 0x38
\r
873 #define CSR7_NIE_MASK 0x00010000UL
\r
874 #define CSR7_NIE_SHIFT 16
\r
876 /*------------------------------------------------------------------------------
\r
878 * AIE field of register CSR7.
\r
879 *------------------------------------------------------------------------------
\r
880 * Abnormal interrupt summary enable
\r
882 #define CSR7_AIE_OFFSET 0x38
\r
883 #define CSR7_AIE_MASK 0x00008000UL
\r
884 #define CSR7_AIE_SHIFT 15
\r
886 /*------------------------------------------------------------------------------
\r
888 * ERE field of register CSR7.
\r
889 *------------------------------------------------------------------------------
\r
890 * Early receive interrupt enable
\r
892 #define CSR7_ERE_OFFSET 0x38
\r
893 #define CSR7_ERE_MASK 0x00004000UL
\r
894 #define CSR7_ERE_SHIFT 14
\r
896 /*------------------------------------------------------------------------------
\r
898 * GTE field of register CSR7.
\r
899 *------------------------------------------------------------------------------
\r
900 * General-purpose timer overflow enable
\r
902 #define CSR7_GTE_OFFSET 0x38
\r
903 #define CSR7_GTE_MASK 0x00000800UL
\r
904 #define CSR7_GTE_SHIFT 11
\r
906 /*------------------------------------------------------------------------------
\r
908 * ETE field of register CSR7.
\r
909 *------------------------------------------------------------------------------
\r
910 * Early transmit interrupt enable
\r
912 #define CSR7_ETE_OFFSET 0x38
\r
913 #define CSR7_ETE_MASK 0x00000400UL
\r
914 #define CSR7_ETE_SHIFT 10
\r
916 /*------------------------------------------------------------------------------
\r
918 * RSE field of register CSR7.
\r
919 *------------------------------------------------------------------------------
\r
920 * Receive stopped enable
\r
922 #define CSR7_RSE_OFFSET 0x38
\r
923 #define CSR7_RSE_MASK 0x00000100UL
\r
924 #define CSR7_RSE_SHIFT 8
\r
926 /*------------------------------------------------------------------------------
\r
928 * RUE field of register CSR7.
\r
929 *------------------------------------------------------------------------------
\r
930 * Receive buffer unavailable enable
\r
932 #define CSR7_RUE_OFFSET 0x38
\r
933 #define CSR7_RUE_MASK 0x00000080UL
\r
934 #define CSR7_RUE_SHIFT 7
\r
936 /*------------------------------------------------------------------------------
\r
938 * RIE field of register CSR7.
\r
939 *------------------------------------------------------------------------------
\r
940 * Receive interrupt enable
\r
942 #define CSR7_RIE_OFFSET 0x38
\r
943 #define CSR7_RIE_MASK 0x00000040UL
\r
944 #define CSR7_RIE_SHIFT 6
\r
946 /*------------------------------------------------------------------------------
\r
948 * UNE field of register CSR7.
\r
949 *------------------------------------------------------------------------------
\r
950 * Underflow interrupt enable
\r
952 #define CSR7_UNE_OFFSET 0x38
\r
953 #define CSR7_UNE_MASK 0x00000020UL
\r
954 #define CSR7_UNE_SHIFT 5
\r
956 /*------------------------------------------------------------------------------
\r
958 * TUE field of register CSR7.
\r
959 *------------------------------------------------------------------------------
\r
960 * Transmit buffer unavailable enable
\r
962 #define CSR7_TUE_OFFSET 0x38
\r
963 #define CSR7_TUE_MASK 0x00000004UL
\r
964 #define CSR7_TUE_SHIFT 2
\r
966 /*------------------------------------------------------------------------------
\r
968 * TSE field of register CSR7.
\r
969 *------------------------------------------------------------------------------
\r
970 * Transmit stopped enable
\r
972 #define CSR7_TSE_OFFSET 0x38
\r
973 #define CSR7_TSE_MASK 0x00000002UL
\r
974 #define CSR7_TSE_SHIFT 1
\r
976 /*------------------------------------------------------------------------------
\r
978 * TIE field of register CSR7.
\r
979 *------------------------------------------------------------------------------
\r
980 * Transmit interrupt enable
\r
982 #define CSR7_TIE_OFFSET 0x38
\r
983 #define CSR7_TIE_MASK 0x00000001UL
\r
984 #define CSR7_TIE_SHIFT 0
\r
986 /*******************************************************************************
\r
988 *------------------------------------------------------------------------------
\r
989 * CSR8 - Missed Frames and Overflow Counter Register
\r
991 #define CSR8_REG_OFFSET 0x40
\r
993 /*------------------------------------------------------------------------------
\r
995 * OCO field of register CSR8.
\r
996 *------------------------------------------------------------------------------
\r
997 * Overflow counter overflow
\r
999 #define CSR8_OCO_OFFSET 0x40
\r
1000 #define CSR8_OCO_MASK 0x10000000UL
\r
1001 #define CSR8_OCO_SHIFT 28
\r
1003 /*------------------------------------------------------------------------------
\r
1005 * FOC field of register CSR8.
\r
1006 *------------------------------------------------------------------------------
\r
1007 * FIFO overflow counter
\r
1009 #define CSR8_FOC_OFFSET 0x40
\r
1010 #define CSR8_FOC_MASK 0x0FFE0000UL
\r
1011 #define CSR8_FOC_SHIFT 17
\r
1013 /*------------------------------------------------------------------------------
\r
1015 * MFO field of register CSR8.
\r
1016 *------------------------------------------------------------------------------
\r
1017 * Missed frame overflow
\r
1019 #define CSR8_MFO_OFFSET 0x40
\r
1020 #define CSR8_MFO_MASK 0x00010000UL
\r
1021 #define CSR8_MFO_SHIFT 16
\r
1023 /*------------------------------------------------------------------------------
\r
1025 * MFC field of register CSR8.
\r
1026 *------------------------------------------------------------------------------
\r
1027 * Missed frame counter
\r
1029 #define CSR8_MFC_OFFSET 0x40
\r
1030 #define CSR8_MFC_MASK 0x0000FFFFUL
\r
1031 #define CSR8_MFC_SHIFT 0
\r
1033 /*******************************************************************************
\r
1035 *------------------------------------------------------------------------------
\r
1036 * CSR9 - MII Management and Serial ROM Interface Register
\r
1038 #define CSR9_REG_OFFSET 0x48
\r
1040 /*------------------------------------------------------------------------------
\r
1042 * MDI field of register CSR9.
\r
1043 *------------------------------------------------------------------------------
\r
1044 * MII management data in signal
\r
1046 #define CSR9_MDI_OFFSET 0x48
\r
1047 #define CSR9_MDI_MASK 0x00080000UL
\r
1048 #define CSR9_MDI_SHIFT 19
\r
1050 /*------------------------------------------------------------------------------
\r
1052 * MII field of register CSR9.
\r
1053 *------------------------------------------------------------------------------
\r
1054 * MII management operation mode
\r
1056 #define CSR9_MII_OFFSET 0x48
\r
1057 #define CSR9_MII_MASK 0x00040000UL
\r
1058 #define CSR9_MII_SHIFT 18
\r
1060 /*------------------------------------------------------------------------------
\r
1062 * MDO field of register CSR9.
\r
1063 *------------------------------------------------------------------------------
\r
1064 * MII management write data
\r
1066 #define CSR9_MDO_OFFSET 0x48
\r
1067 #define CSR9_MDO_MASK 0x00020000UL
\r
1068 #define CSR9_MDO_SHIFT 17
\r
1070 /*------------------------------------------------------------------------------
\r
1072 * MDC field of register CSR9.
\r
1073 *------------------------------------------------------------------------------
\r
1074 * MII management clock
\r
1076 #define CSR9_MDC_OFFSET 0x48
\r
1077 #define CSR9_MDC_MASK 0x00010000UL
\r
1078 #define CSR9_MDC_SHIFT 16
\r
1080 /*------------------------------------------------------------------------------
\r
1082 * SDO field of register CSR9.
\r
1083 *------------------------------------------------------------------------------
\r
1084 * Serial ROM data output
\r
1086 #define CSR9_SDO_OFFSET 0x48
\r
1087 #define CSR9_SDO_MASK 0x00000008UL
\r
1088 #define CSR9_SDO_SHIFT 3
\r
1090 /*------------------------------------------------------------------------------
\r
1092 * SDI field of register CSR9.
\r
1093 *------------------------------------------------------------------------------
\r
1094 * Serial ROM data input
\r
1096 #define CSR9_SDI_OFFSET 0x48
\r
1097 #define CSR9_SDI_MASK 0x00000004UL
\r
1098 #define CSR9_SDI_SHIFT 2
\r
1100 /*------------------------------------------------------------------------------
\r
1102 * SCLK field of register CSR9.
\r
1103 *------------------------------------------------------------------------------
\r
1104 * Serial ROM clock
\r
1106 #define CSR9_SCLK_OFFSET 0x48
\r
1107 #define CSR9_SCLK_MASK 0x00000002UL
\r
1108 #define CSR9_SCLK_SHIFT 1
\r
1110 /*------------------------------------------------------------------------------
\r
1112 * SCS field of register CSR9.
\r
1113 *------------------------------------------------------------------------------
\r
1114 * Serial ROM chip select
\r
1116 #define CSR9_SCS_OFFSET 0x48
\r
1117 #define CSR9_SCS_MASK 0x00000001UL
\r
1118 #define CSR9_SCS_SHIFT 0
\r
1120 /*******************************************************************************
\r
1122 *------------------------------------------------------------------------------
\r
1123 * CSR11 - General-Purpose Timer and Interrupt Mitigation Control Register
\r
1125 #define CSR11_REG_OFFSET 0x58
\r
1127 /*------------------------------------------------------------------------------
\r
1129 * CS field of register CSR11.
\r
1130 *------------------------------------------------------------------------------
\r
1133 #define CSR11_CS_OFFSET 0x58
\r
1134 #define CSR11_CS_MASK 0x80000000UL
\r
1135 #define CSR11_CS_SHIFT 31
\r
1137 /*------------------------------------------------------------------------------
\r
1139 * TT field of register CSR11.
\r
1140 *------------------------------------------------------------------------------
\r
1143 #define CSR11_TT_OFFSET 0x58
\r
1144 #define CSR11_TT_MASK 0x78000000UL
\r
1145 #define CSR11_TT_SHIFT 27
\r
1147 /*------------------------------------------------------------------------------
\r
1149 * NTP field of register CSR11.
\r
1150 *------------------------------------------------------------------------------
\r
1151 * Number of transmit packets
\r
1153 #define CSR11_NTP_OFFSET 0x58
\r
1154 #define CSR11_NTP_MASK 0x07000000UL
\r
1155 #define CSR11_NTP_SHIFT 24
\r
1157 /*------------------------------------------------------------------------------
\r
1159 * RT field of register CSR11.
\r
1160 *------------------------------------------------------------------------------
\r
1163 #define CSR11_RT_OFFSET 0x58
\r
1164 #define CSR11_RT_MASK 0x00F00000UL
\r
1165 #define CSR11_RT_SHIFT 20
\r
1167 /*------------------------------------------------------------------------------
\r
1169 * NRP field of register CSR11.
\r
1170 *------------------------------------------------------------------------------
\r
1171 * Number of receive packets
\r
1173 #define CSR11_NRP_OFFSET 0x58
\r
1174 #define CSR11_NRP_MASK 0x000E0000UL
\r
1175 #define CSR11_NRP_SHIFT 17
\r
1177 /*------------------------------------------------------------------------------
\r
1179 * CON field of register CSR11.
\r
1180 *------------------------------------------------------------------------------
\r
1183 #define CSR11_CON_OFFSET 0x58
\r
1184 #define CSR11_CON_MASK 0x00010000UL
\r
1185 #define CSR11_CON_SHIFT 16
\r
1187 /*------------------------------------------------------------------------------
\r
1189 * TIM field of register CSR11.
\r
1190 *------------------------------------------------------------------------------
\r
1193 #define CSR11_TIM_OFFSET 0x58
\r
1194 #define CSR11_TIM_MASK 0x0000FFFFUL
\r
1195 #define CSR11_TIM_SHIFT 0
\r
1197 #ifdef __cplusplus
\r
1201 #endif /* MSS_ETHERNET_MAC_REGISTERS_H_*/
\r