halmac_88xx_cfg.h 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. #ifndef _HALMAC_88XX_CFG_H_
  2. #define _HALMAC_88XX_CFG_H_
  3. #include "../halmac_2_platform.h"
  4. #include "../halmac_type.h"
  5. #include "../halmac_hw_cfg.h"
  6. #include "../halmac_api.h"
  7. #include "../halmac_bit2.h"
  8. #include "../halmac_reg2.h"
  9. #include "../halmac_pwr_seq_cmd.h"
  10. #include "halmac_func_88xx.h"
  11. #include "halmac_api_88xx.h"
  12. #include "halmac_api_88xx_usb.h"
  13. #include "halmac_api_88xx_pcie.h"
  14. #include "halmac_api_88xx_sdio.h"
  15. #if HALMAC_PLATFORM_TESTPROGRAM
  16. #include "halmisc_api_88xx.h"
  17. #include "halmisc_api_88xx_usb.h"
  18. #include "halmisc_api_88xx_pcie.h"
  19. #include "halmisc_api_88xx_sdio.h"
  20. #endif
  21. #define HALMAC_SVN_VER_88XX "13359M"
  22. #define HALMAC_MAJOR_VER_88XX 0x0001 /* major version, ver_1 for async_api */
  23. #define HALMAC_PROTOTYPE_VER_88XX 0x0003 /* For halmac_api num change or prototype change, increment prototype version */
  24. #define HALMAC_MINOR_VER_88XX 0x0006 /* else increment minor version */
  25. #define HALMAC_PATCH_VER_88XX 0x0002 /* patch version */
  26. #define HALMAC_C2H_DATA_OFFSET_88XX 10
  27. #define HALMAC_RX_AGG_ALIGNMENT_SIZE_88XX 8
  28. #define HALMAC_TX_AGG_ALIGNMENT_SIZE_88XX 8
  29. #define HALMAC_TX_AGG_BUFF_SIZE_88XX 32768
  30. #define HALMAC_RX_DESC_DUMMY_SIZE_MAX_88XX 80 /*8*10 Bytes*/
  31. #define HALMAC_RX_FIFO_EXPANDING_MODE_PKT_SIZE_MAX_88XX 80 /* should be 8 Byte alignment*/
  32. #define HALMAC_TX_PAGE_SIZE_88XX 128 /* PageSize 128Byte */
  33. #define HALMAC_TX_PAGE_SIZE_2_POWER_88XX 7 /* 128 = 2^7 */
  34. #define HALMAC_EXTRA_INFO_BUFF_SIZE_88XX 4096 /*4K*/
  35. #define HALMAC_EXTRA_INFO_BUFF_SIZE_FULL_FIFO_88XX 16384 /*16K*/
  36. #define HALMAC_FW_OFFLOAD_CMD_SIZE_88XX 12 /*Fw config parameter cmd size, each 12 byte*/
  37. #define HALMAC_H2C_CMD_ORIGINAL_SIZE_88XX 8
  38. #define HALMAC_H2C_CMD_SIZE_UNIT_88XX 32 /* Only support 32 byte packet now */
  39. #define HALMAC_NLO_INFO_SIZE_88XX 1024
  40. /* Download FW */
  41. #define HALMAC_FW_SIZE_MAX_88XX 0x40000
  42. #define HALMAC_FWHDR_SIZE_88XX 64
  43. #define HALMAC_FW_CHKSUM_DUMMY_SIZE_88XX 8
  44. #define HALMAC_FW_MAX_DL_SIZE_88XX 0x2000 /* need power of 2 */
  45. /* Max dlfw size can not over 31K, because SDIO HW restriction */
  46. #define HALMAC_FW_CFG_MAX_DL_SIZE_MAX_88XX 0x7C00
  47. #define DLFW_RESTORE_REG_NUM_88XX 9
  48. #define ID_INFORM_DLEMEM_RDY 0x80
  49. /* FW header information */
  50. #define HALMAC_FWHDR_OFFSET_VERSION_88XX 4
  51. #define HALMAC_FWHDR_OFFSET_SUBVERSION_88XX 6
  52. #define HALMAC_FWHDR_OFFSET_SUBINDEX_88XX 7
  53. #define HALMAC_FWHDR_OFFSET_MONTH_88XX 16
  54. #define HALMAC_FWHDR_OFFSET_DATE_88XX 17
  55. #define HALMAC_FWHDR_OFFSET_HOUR_88XX 18
  56. #define HALMAC_FWHDR_OFFSET_MIN_88XX 19
  57. #define HALMAC_FWHDR_OFFSET_YEAR_88XX 20
  58. #define HALMAC_FWHDR_OFFSET_MEM_USAGE_88XX 24
  59. #define HALMAC_FWHDR_OFFSET_H2C_FORMAT_VER_88XX 28
  60. #define HALMAC_FWHDR_OFFSET_DMEM_ADDR_88XX 32
  61. #define HALMAC_FWHDR_OFFSET_DMEM_SIZE_88XX 36
  62. #define HALMAC_FWHDR_OFFSET_IRAM_SIZE_88XX 48
  63. #define HALMAC_FWHDR_OFFSET_ERAM_SIZE_88XX 52
  64. #define HALMAC_FWHDR_OFFSET_EMEM_ADDR_88XX 56
  65. #define HALMAC_FWHDR_OFFSET_IRAM_ADDR_88XX 60
  66. /* HW memory address */
  67. #define HALMAC_OCPBASE_TXBUF_88XX 0x18780000
  68. #define HALMAC_OCPBASE_DMEM_88XX 0x00200000
  69. #define HALMAC_OCPBASE_IMEM_88XX 0x00000000
  70. /* define the SDIO Bus CLK threshold, for avoiding CMD53 fails that result from SDIO CLK sync to ana_clk fail */
  71. #define HALMAC_SDIO_CLK_THRESHOLD_88XX 150 /* 150MHz */
  72. #define HALMAC_SDIO_CLOCK_SPEED_MAX_88XX 208 /* 208MHz */
  73. /* MAC clock */
  74. #define HALMAC_MAC_CLOCK_88XX 80 /* 80M */
  75. /* H2C/C2H*/
  76. #define HALMAC_H2C_CMD_SIZE_88XX 32
  77. #define HALMAC_H2C_CMD_HDR_SIZE_88XX 8
  78. #define HALMAC_PROTECTED_EFUSE_SIZE_88XX 0x60
  79. /* Function enable */
  80. #define HALMAC_FUNCTION_ENABLE_88XX 0xDC
  81. /* FIFO size & packet size */
  82. /* #define HALMAC_WOWLAN_PATTERN_SIZE 256 */
  83. /* CFEND rate */
  84. #define HALMAC_BASIC_CFEND_RATE_88XX 0x5
  85. #define HALMAC_STBC_CFEND_RATE_88XX 0xF
  86. /* Response rate */
  87. #define HALMAC_RESPONSE_RATE_BITMAP_ALL_88XX 0xFFFFF
  88. #define HALMAC_RESPONSE_RATE_88XX HALMAC_RESPONSE_RATE_BITMAP_ALL_88XX
  89. /* Spec SIFS */
  90. #define HALMAC_SIFS_CCK_PTCL_88XX 16
  91. #define HALMAC_SIFS_OFDM_PTCL_88XX 16
  92. /* Retry limit */
  93. #define HALMAC_LONG_RETRY_LIMIT_88XX 8
  94. #define HALMAC_SHORT_RETRY_LIMIT_88XX 7
  95. /* Slot, SIFS, PIFS time */
  96. #define HALMAC_SLOT_TIME_88XX 0x05
  97. #define HALMAC_PIFS_TIME_88XX 0x19
  98. #define HALMAC_SIFS_CCK_CTX_88XX 0xA
  99. #define HALMAC_SIFS_OFDM_CTX_88XX 0xA
  100. #define HALMAC_SIFS_CCK_TRX_88XX 0x10
  101. #define HALMAC_SIFS_OFDM_TRX_88XX 0x10
  102. /* TXOP limit */
  103. #define HALMAC_VO_TXOP_LIMIT_88XX 0x186
  104. #define HALMAC_VI_TXOP_LIMIT_88XX 0x3BC
  105. /* NAV */
  106. #define HALMAC_RDG_NAV_88XX 0x05
  107. #define HALMAC_TXOP_NAV_88XX 0x1B
  108. /* TSF */
  109. #define HALMAC_CCK_RX_TSF_88XX 0x30
  110. #define HALMAC_OFDM_RX_TSF_88XX 0x30
  111. /* Send beacon related */
  112. #define HALMAC_TBTT_PROHIBIT_88XX 0x04
  113. #define HALMAC_TBTT_HOLD_TIME_88XX 0x064
  114. #define HALMAC_DRIVER_EARLY_INT_88XX 0x04
  115. #define HALMAC_BEACON_DMA_TIM_88XX 0x02
  116. /* RX filter */
  117. #define HALMAC_RX_FILTER0_RECIVE_ALL_88XX 0xFFFFFFF
  118. #define HALMAC_RX_FILTER0_88XX HALMAC_RX_FILTER0_RECIVE_ALL_88XX
  119. #define HALMAC_RX_FILTER_RECIVE_ALL_88XX 0xFFFF
  120. #define HALMAC_RX_FILTER_88XX HALMAC_RX_FILTER_RECIVE_ALL_88XX
  121. /* RCR */
  122. #define HALMAC_RCR_CONFIG_88XX 0xE400631E
  123. /* Security config */
  124. #define HALMAC_SECURITY_CONFIG_88XX 0x01CC
  125. /* CCK rate ACK timeout */
  126. #define HALMAC_ACK_TO_CCK_88XX 0x40
  127. /* RX pkt max size */
  128. #define HALMAC_RXPKT_MAX_SIZE 12288 /* 12K */
  129. #define HALMAC_RXPKT_MAX_SIZE_BASE512 (HALMAC_RXPKT_MAX_SIZE >> 9)
  130. #endif