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