sbin/newfs_msdos: sync with NetBSD-8
[minix3.git] / minix / drivers / net / lan8710a / lan8710a.h
blob3bcce840db0dcae51b2b9957d09abccb02d6bbdf
1 #ifndef LAN8710A_H_
2 #define LAN8710A_H_
4 #define LAN8710A_DEBUG (1)
6 #if LAN8710A_DEBUG == 1
7 #define LAN8710A_DEBUG_PRINT(args) \
8 do { \
9 printf("LAN8710A DEBUG: "); \
10 printf args; \
11 printf("\n"); \
12 } while (0)
13 #else
14 #define LAN8710A_DEBUG_PRINT(args)
15 #endif
17 /* Ethernet driver defines */
18 #define LAN8710A_NAME_LEN (11)
20 /* Descriptors flags */
21 #define LAN8710A_DESC_FLAG_OWN (1 << 29) /* ownership flag */
22 #define LAN8710A_DESC_FLAG_SOP (1 << 31) /* start of packet flag */
23 #define LAN8710A_DESC_FLAG_EOP (1 << 30) /* end of packet flag */
25 /* Number of Tx and Rx interrupts */
26 #define LAN8710A_RX_INTR (41)
27 #define LAN8710A_TX_INTR (42)
29 /* Values to be written after interrupt handle and interrupt masks*/
30 #define RX_INT (1)
31 #define TX_INT (2)
33 /** Numbers of Tx DMA channels */
34 #define TX_DMA_CHANNELS (8)
36 /** Number of transmit descriptors */
37 #define LAN8710A_NUM_TX_DESC (255)
39 /** Number of receive descriptors */
40 #define LAN8710A_NUM_RX_DESC (255)
42 /** Size of each I/O buffer per descriptor. */
43 #define LAN8710A_IOBUF_SIZE (1520)
45 /** MAC address override variable. */
46 #define LAN8710A_ENVVAR "LAN8710AETH"
48 /** MAX DMA Channels */
49 #define DMA_MAX_CHANNELS (8)
51 /* Setting of Tx descriptors */
52 #define TX_DESC_TO_PORT1 (1 << 16)
53 #define TX_DESC_TO_PORT_EN (1 << 20)
55 typedef struct lan8710a_desc_t
57 u32_t next_pointer;
58 u32_t buffer_pointer;
59 u32_t buffer_length_off;
60 u32_t pkt_len_flags;
61 } lan8710a_desc_t;
63 typedef struct lan8710a_t
65 lan8710a_desc_t *rx_desc;
66 lan8710a_desc_t *tx_desc;
67 phys_bytes rx_desc_phy;
68 phys_bytes tx_desc_phy;
69 int irq_rx_hook; /* Rx interrupt Request Vector Hook. */
70 int irq_tx_hook; /* Tx interrupt Request Vector Hook. */
71 u8_t *regs;
72 u32_t phy_address;
73 u8_t *p_rx_buf; /* pointer to the buffer with receive frames */
74 u8_t *p_tx_buf; /* pointer to the buffer with transmit frames */
76 u16_t tx_desc_idx; /* index of the next transmit desciptor */
77 u16_t rx_desc_idx; /* index of the next receive desciptor */
79 /* register mapping */
80 vir_bytes regs_cp_per;
81 vir_bytes regs_mdio;
82 vir_bytes regs_cpsw_cpdma;
83 vir_bytes regs_ctrl_mod;
84 vir_bytes regs_cpsw_sl;
85 vir_bytes regs_cpsw_ss;
86 vir_bytes regs_cpsw_stats;
87 vir_bytes regs_cpsw_ale;
88 vir_bytes regs_cpsw_wr;
89 vir_bytes regs_intc;
90 vir_bytes regs_cpdma_stram;
91 } lan8710a_t;
93 #endif /* LAN8710A_H_ */