1 /******************************************************************************
3 * Copyright(c) 2016 Realtek Corporation.
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of version 2 of the GNU General Public License as
7 * published by the Free Software Foundation.
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 * The full GNU General Public License is included in this distribution in the
15 * file called LICENSE.
17 * Contact Information:
18 * wlanfae <wlanfae@realtek.com>
19 * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
20 * Hsinchu 300, Taiwan.
22 * Larry Finger <Larry.Finger@lwfinger.net>
24 *****************************************************************************/
25 #ifndef _HALMAC_TX_BD_NIC_H_
26 #define _HALMAC_TX_BD_NIC_H_
30 #define SET_TX_BD_OWN(__tx_bd, __value) \
31 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x00, 31, 1, __value)
32 #define GET_TX_BD_OWN(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x00, 31, 1)
33 #define SET_TX_BD_PSB(__tx_bd, __value) \
34 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x00, 16, 8, __value)
35 #define GET_TX_BD_PSB(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x00, 16, 8)
36 #define SET_TX_BD_TX_BUFF_SIZE0(__tx_bd, __value) \
37 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x00, 0, 16, __value)
38 #define GET_TX_BD_TX_BUFF_SIZE0(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x00, 0, 16)
42 #define SET_TX_BD_PHYSICAL_ADDR0_LOW(__tx_bd, __value) \
43 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x04, 0, 32, __value)
44 #define GET_TX_BD_PHYSICAL_ADDR0_LOW(__tx_bd) \
45 LE_BITS_TO_4BYTE(__tx_bd + 0x04, 0, 32)
49 #define SET_TX_BD_PHYSICAL_ADDR0_HIGH(__tx_bd, __value) \
50 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x08, 0, 32, __value)
51 #define GET_TX_BD_PHYSICAL_ADDR0_HIGH(__tx_bd) \
52 LE_BITS_TO_4BYTE(__tx_bd + 0x08, 0, 32)
56 #define SET_TX_BD_A1(__tx_bd, __value) \
57 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x10, 31, 1, __value)
58 #define GET_TX_BD_A1(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x10, 31, 1)
59 #define SET_TX_BD_TX_BUFF_SIZE1(__tx_bd, __value) \
60 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x10, 0, 16, __value)
61 #define GET_TX_BD_TX_BUFF_SIZE1(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x10, 0, 16)
65 #define SET_TX_BD_PHYSICAL_ADDR1_LOW(__tx_bd, __value) \
66 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x14, 0, 32, __value)
67 #define GET_TX_BD_PHYSICAL_ADDR1_LOW(__tx_bd) \
68 LE_BITS_TO_4BYTE(__tx_bd + 0x14, 0, 32)
72 #define SET_TX_BD_PHYSICAL_ADDR1_HIGH(__tx_bd, __value) \
73 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x18, 0, 32, __value)
74 #define GET_TX_BD_PHYSICAL_ADDR1_HIGH(__tx_bd) \
75 LE_BITS_TO_4BYTE(__tx_bd + 0x18, 0, 32)
79 #define SET_TX_BD_A2(__tx_bd, __value) \
80 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x20, 31, 1, __value)
81 #define GET_TX_BD_A2(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x20, 31, 1)
82 #define SET_TX_BD_TX_BUFF_SIZE2(__tx_bd, __value) \
83 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x20, 0, 16, __value)
84 #define GET_TX_BD_TX_BUFF_SIZE2(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x20, 0, 16)
88 #define SET_TX_BD_PHYSICAL_ADDR2_LOW(__tx_bd, __value) \
89 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x24, 0, 32, __value)
90 #define GET_TX_BD_PHYSICAL_ADDR2_LOW(__tx_bd) \
91 LE_BITS_TO_4BYTE(__tx_bd + 0x24, 0, 32)
95 #define SET_TX_BD_PHYSICAL_ADDR2_HIGH(__tx_bd, __value) \
96 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x28, 0, 32, __value)
97 #define GET_TX_BD_PHYSICAL_ADDR2_HIGH(__tx_bd) \
98 LE_BITS_TO_4BYTE(__tx_bd + 0x28, 0, 32)
102 #define SET_TX_BD_A3(__tx_bd, __value) \
103 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x30, 31, 1, __value)
104 #define GET_TX_BD_A3(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x30, 31, 1)
105 #define SET_TX_BD_TX_BUFF_SIZE3(__tx_bd, __value) \
106 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x30, 0, 16, __value)
107 #define GET_TX_BD_TX_BUFF_SIZE3(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x30, 0, 16)
111 #define SET_TX_BD_PHYSICAL_ADDR3_LOW(__tx_bd, __value) \
112 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x34, 0, 32, __value)
113 #define GET_TX_BD_PHYSICAL_ADDR3_LOW(__tx_bd) \
114 LE_BITS_TO_4BYTE(__tx_bd + 0x34, 0, 32)
118 #define SET_TX_BD_PHYSICAL_ADDR3_HIGH(__tx_bd, __value) \
119 SET_BITS_TO_LE_4BYTE(__tx_bd + 0x38, 0, 32, __value)
120 #define GET_TX_BD_PHYSICAL_ADDR3_HIGH(__tx_bd) \
121 LE_BITS_TO_4BYTE(__tx_bd + 0x38, 0, 32)