halmac_tx_bd_nic.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. /******************************************************************************
  2. *
  3. * Copyright(c) 2016 - 2018 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. #ifndef _HALMAC_TX_BD_NIC_H_
  16. #define _HALMAC_TX_BD_NIC_H_
  17. #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
  18. HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT ||\
  19. HALMAC_8812F_SUPPORT)
  20. /*TXBD_DW0*/
  21. #define SET_TX_BD_OWN(txbd, value) \
  22. SET_BITS_TO_LE_4BYTE(txbd + 0x00, 31, 1, value)
  23. #define GET_TX_BD_OWN(txbd) LE_BITS_TO_4BYTE(txbd + 0x00, 31, 1)
  24. #define SET_TX_BD_PSB(txbd, value) \
  25. SET_BITS_TO_LE_4BYTE(txbd + 0x00, 16, 8, value)
  26. #define GET_TX_BD_PSB(txbd) LE_BITS_TO_4BYTE(txbd + 0x00, 16, 8)
  27. #define SET_TX_BD_TX_BUFF_SIZE0(txbd, value) \
  28. SET_BITS_TO_LE_4BYTE(txbd + 0x00, 0, 16, value)
  29. #define GET_TX_BD_TX_BUFF_SIZE0(txbd) LE_BITS_TO_4BYTE(txbd + 0x00, 0, 16)
  30. /*TXBD_DW1*/
  31. #define SET_TX_BD_PHYSICAL_ADDR0_LOW(txbd, value) \
  32. SET_BITS_TO_LE_4BYTE(txbd + 0x04, 0, 32, value)
  33. #define GET_TX_BD_PHYSICAL_ADDR0_LOW(txbd) LE_BITS_TO_4BYTE(txbd + 0x04, 0, 32)
  34. /*TXBD_DW2*/
  35. #define SET_TX_BD_PHYSICAL_ADDR0_HIGH(txbd, value) \
  36. SET_BITS_TO_LE_4BYTE(txbd + 0x08, 0, 32, value)
  37. #define GET_TX_BD_PHYSICAL_ADDR0_HIGH(txbd) LE_BITS_TO_4BYTE(txbd + 0x08, 0, 32)
  38. /*TXBD_DW4*/
  39. #define SET_TX_BD_A1(txbd, value) \
  40. SET_BITS_TO_LE_4BYTE(txbd + 0x10, 31, 1, value)
  41. #define GET_TX_BD_A1(txbd) LE_BITS_TO_4BYTE(txbd + 0x10, 31, 1)
  42. #define SET_TX_BD_TX_BUFF_SIZE1(txbd, value) \
  43. SET_BITS_TO_LE_4BYTE(txbd + 0x10, 0, 16, value)
  44. #define GET_TX_BD_TX_BUFF_SIZE1(txbd) LE_BITS_TO_4BYTE(txbd + 0x10, 0, 16)
  45. /*TXBD_DW5*/
  46. #define SET_TX_BD_PHYSICAL_ADDR1_LOW(txbd, value) \
  47. SET_BITS_TO_LE_4BYTE(txbd + 0x14, 0, 32, value)
  48. #define GET_TX_BD_PHYSICAL_ADDR1_LOW(txbd) LE_BITS_TO_4BYTE(txbd + 0x14, 0, 32)
  49. /*TXBD_DW6*/
  50. #define SET_TX_BD_PHYSICAL_ADDR1_HIGH(txbd, value) \
  51. SET_BITS_TO_LE_4BYTE(txbd + 0x18, 0, 32, value)
  52. #define GET_TX_BD_PHYSICAL_ADDR1_HIGH(txbd) LE_BITS_TO_4BYTE(txbd + 0x18, 0, 32)
  53. /*TXBD_DW8*/
  54. #define SET_TX_BD_A2(txbd, value) \
  55. SET_BITS_TO_LE_4BYTE(txbd + 0x20, 31, 1, value)
  56. #define GET_TX_BD_A2(txbd) LE_BITS_TO_4BYTE(txbd + 0x20, 31, 1)
  57. #define SET_TX_BD_TX_BUFF_SIZE2(txbd, value) \
  58. SET_BITS_TO_LE_4BYTE(txbd + 0x20, 0, 16, value)
  59. #define GET_TX_BD_TX_BUFF_SIZE2(txbd) LE_BITS_TO_4BYTE(txbd + 0x20, 0, 16)
  60. /*TXBD_DW9*/
  61. #define SET_TX_BD_PHYSICAL_ADDR2_LOW(txbd, value) \
  62. SET_BITS_TO_LE_4BYTE(txbd + 0x24, 0, 32, value)
  63. #define GET_TX_BD_PHYSICAL_ADDR2_LOW(txbd) LE_BITS_TO_4BYTE(txbd + 0x24, 0, 32)
  64. /*TXBD_DW10*/
  65. #define SET_TX_BD_PHYSICAL_ADDR2_HIGH(txbd, value) \
  66. SET_BITS_TO_LE_4BYTE(txbd + 0x28, 0, 32, value)
  67. #define GET_TX_BD_PHYSICAL_ADDR2_HIGH(txbd) LE_BITS_TO_4BYTE(txbd + 0x28, 0, 32)
  68. /*TXBD_DW12*/
  69. #define SET_TX_BD_A3(txbd, value) \
  70. SET_BITS_TO_LE_4BYTE(txbd + 0x30, 31, 1, value)
  71. #define GET_TX_BD_A3(txbd) LE_BITS_TO_4BYTE(txbd + 0x30, 31, 1)
  72. #define SET_TX_BD_TX_BUFF_SIZE3(txbd, value) \
  73. SET_BITS_TO_LE_4BYTE(txbd + 0x30, 0, 16, value)
  74. #define GET_TX_BD_TX_BUFF_SIZE3(txbd) LE_BITS_TO_4BYTE(txbd + 0x30, 0, 16)
  75. /*TXBD_DW13*/
  76. #define SET_TX_BD_PHYSICAL_ADDR3_LOW(txbd, value) \
  77. SET_BITS_TO_LE_4BYTE(txbd + 0x34, 0, 32, value)
  78. #define GET_TX_BD_PHYSICAL_ADDR3_LOW(txbd) LE_BITS_TO_4BYTE(txbd + 0x34, 0, 32)
  79. /*TXBD_DW14*/
  80. #define SET_TX_BD_PHYSICAL_ADDR3_HIGH(txbd, value) \
  81. SET_BITS_TO_LE_4BYTE(txbd + 0x38, 0, 32, value)
  82. #define GET_TX_BD_PHYSICAL_ADDR3_HIGH(txbd) LE_BITS_TO_4BYTE(txbd + 0x38, 0, 32)
  83. #endif
  84. #endif