1 /****************************************************************************** 2 * 3 * Copyright(c) 2016 - 2019 Realtek Corporation. All rights reserved. 4 * 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. 8 * 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 12 * more details. 13 * 14 ******************************************************************************/ 15 16 #ifndef _HALMAC_TX_BD_NIC_H_ 17 #define _HALMAC_TX_BD_NIC_H_ 18 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \ 19 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT ||\ 20 HALMAC_8192F_SUPPORT || HALMAC_8197G_SUPPORT || HALMAC_8814B_SUPPORT) 21 22 /*TXBD_DW0*/ 23 24 #define SET_TX_BD_OWN(txbd, value) \ 25 SET_BITS_TO_LE_4BYTE(txbd + 0x00, 31, 1, value) 26 #define GET_TX_BD_OWN(txbd) LE_BITS_TO_4BYTE(txbd + 0x00, 31, 1) 27 #define SET_TX_BD_PSB(txbd, value) \ 28 SET_BITS_TO_LE_4BYTE(txbd + 0x00, 16, 8, value) 29 #define GET_TX_BD_PSB(txbd) LE_BITS_TO_4BYTE(txbd + 0x00, 16, 8) 30 #define SET_TX_BD_TX_BUFF_SIZE0(txbd, value) \ 31 SET_BITS_TO_LE_4BYTE(txbd + 0x00, 0, 16, value) 32 #define GET_TX_BD_TX_BUFF_SIZE0(txbd) LE_BITS_TO_4BYTE(txbd + 0x00, 0, 16) 33 34 /*TXBD_DW1*/ 35 36 #define SET_TX_BD_PHYSICAL_ADDR0_LOW(txbd, value) \ 37 SET_BITS_TO_LE_4BYTE(txbd + 0x04, 0, 32, value) 38 #define GET_TX_BD_PHYSICAL_ADDR0_LOW(txbd) LE_BITS_TO_4BYTE(txbd + 0x04, 0, 32) 39 40 /*TXBD_DW2*/ 41 42 #define SET_TX_BD_PHYSICAL_ADDR0_HIGH(txbd, value) \ 43 SET_BITS_TO_LE_4BYTE(txbd + 0x08, 0, 32, value) 44 #define GET_TX_BD_PHYSICAL_ADDR0_HIGH(txbd) LE_BITS_TO_4BYTE(txbd + 0x08, 0, 32) 45 46 /*TXBD_DW4*/ 47 48 #define SET_TX_BD_A1(txbd, value) \ 49 SET_BITS_TO_LE_4BYTE(txbd + 0x10, 31, 1, value) 50 #define GET_TX_BD_A1(txbd) LE_BITS_TO_4BYTE(txbd + 0x10, 31, 1) 51 #define SET_TX_BD_TX_BUFF_SIZE1(txbd, value) \ 52 SET_BITS_TO_LE_4BYTE(txbd + 0x10, 0, 16, value) 53 #define GET_TX_BD_TX_BUFF_SIZE1(txbd) LE_BITS_TO_4BYTE(txbd + 0x10, 0, 16) 54 55 /*TXBD_DW5*/ 56 57 #define SET_TX_BD_PHYSICAL_ADDR1_LOW(txbd, value) \ 58 SET_BITS_TO_LE_4BYTE(txbd + 0x14, 0, 32, value) 59 #define GET_TX_BD_PHYSICAL_ADDR1_LOW(txbd) LE_BITS_TO_4BYTE(txbd + 0x14, 0, 32) 60 61 /*TXBD_DW6*/ 62 63 #define SET_TX_BD_PHYSICAL_ADDR1_HIGH(txbd, value) \ 64 SET_BITS_TO_LE_4BYTE(txbd + 0x18, 0, 32, value) 65 #define GET_TX_BD_PHYSICAL_ADDR1_HIGH(txbd) LE_BITS_TO_4BYTE(txbd + 0x18, 0, 32) 66 67 /*TXBD_DW8*/ 68 69 #define SET_TX_BD_A2(txbd, value) \ 70 SET_BITS_TO_LE_4BYTE(txbd + 0x20, 31, 1, value) 71 #define GET_TX_BD_A2(txbd) LE_BITS_TO_4BYTE(txbd + 0x20, 31, 1) 72 #define SET_TX_BD_TX_BUFF_SIZE2(txbd, value) \ 73 SET_BITS_TO_LE_4BYTE(txbd + 0x20, 0, 16, value) 74 #define GET_TX_BD_TX_BUFF_SIZE2(txbd) LE_BITS_TO_4BYTE(txbd + 0x20, 0, 16) 75 76 /*TXBD_DW9*/ 77 78 #define SET_TX_BD_PHYSICAL_ADDR2_LOW(txbd, value) \ 79 SET_BITS_TO_LE_4BYTE(txbd + 0x24, 0, 32, value) 80 #define GET_TX_BD_PHYSICAL_ADDR2_LOW(txbd) LE_BITS_TO_4BYTE(txbd + 0x24, 0, 32) 81 82 /*TXBD_DW10*/ 83 84 #define SET_TX_BD_PHYSICAL_ADDR2_HIGH(txbd, value) \ 85 SET_BITS_TO_LE_4BYTE(txbd + 0x28, 0, 32, value) 86 #define GET_TX_BD_PHYSICAL_ADDR2_HIGH(txbd) LE_BITS_TO_4BYTE(txbd + 0x28, 0, 32) 87 88 /*TXBD_DW12*/ 89 90 #define SET_TX_BD_A3(txbd, value) \ 91 SET_BITS_TO_LE_4BYTE(txbd + 0x30, 31, 1, value) 92 #define GET_TX_BD_A3(txbd) LE_BITS_TO_4BYTE(txbd + 0x30, 31, 1) 93 #define SET_TX_BD_TX_BUFF_SIZE3(txbd, value) \ 94 SET_BITS_TO_LE_4BYTE(txbd + 0x30, 0, 16, value) 95 #define GET_TX_BD_TX_BUFF_SIZE3(txbd) LE_BITS_TO_4BYTE(txbd + 0x30, 0, 16) 96 97 /*TXBD_DW13*/ 98 99 #define SET_TX_BD_PHYSICAL_ADDR3_LOW(txbd, value) \ 100 SET_BITS_TO_LE_4BYTE(txbd + 0x34, 0, 32, value) 101 #define GET_TX_BD_PHYSICAL_ADDR3_LOW(txbd) LE_BITS_TO_4BYTE(txbd + 0x34, 0, 32) 102 103 /*TXBD_DW14*/ 104 105 #define SET_TX_BD_PHYSICAL_ADDR3_HIGH(txbd, value) \ 106 SET_BITS_TO_LE_4BYTE(txbd + 0x38, 0, 32, value) 107 #define GET_TX_BD_PHYSICAL_ADDR3_HIGH(txbd) LE_BITS_TO_4BYTE(txbd + 0x38, 0, 32) 108 109 #endif 110 111 #endif 112