#define EFUSE_REPEAT_THRESHOLD_ 3
+#define IS_MASKED_MP(ic, txt, offset) (EFUSE_IsAddressMasked_MP_##ic##txt(offset))
+#define IS_MASKED_TC(ic, txt, offset) (EFUSE_IsAddressMasked_TC_##ic##txt(offset))
+#define GET_MASK_ARRAY_LEN_MP(ic, txt) (EFUSE_GetArrayLen_MP_##ic##txt())
+#define GET_MASK_ARRAY_LEN_TC(ic, txt) (EFUSE_GetArrayLen_TC_##ic##txt())
+#define GET_MASK_ARRAY_MP(ic, txt, offset) (EFUSE_GetMaskArray_MP_##ic##txt(offset))
+#define GET_MASK_ARRAY_TC(ic, txt, offset) (EFUSE_GetMaskArray_TC_##ic##txt(offset))
+
+
+#define IS_MASKED(ic, txt, offset) ( IS_MASKED_MP(ic,txt, offset) )
+#define GET_MASK_ARRAY_LEN(ic, txt) ( GET_MASK_ARRAY_LEN_MP(ic,txt) )
+#define GET_MASK_ARRAY(ic, txt, out) do { GET_MASK_ARRAY_MP(ic,txt, out);} while(0)
+
//=============================================
// The following is for BT Efuse definition
//=============================================
u8 word_cnts;
}PGPKT_STRUCT,*PPGPKT_STRUCT;
+typedef enum
+{
+ ERR_SUCCESS = 0,
+ ERR_DRIVER_FAILURE,
+ ERR_IO_FAILURE,
+ ERR_WI_TIMEOUT,
+ ERR_WI_BUSY,
+ ERR_BAD_FORMAT,
+ ERR_INVALID_DATA,
+ ERR_NOT_ENOUGH_SPACE,
+ ERR_WRITE_PROTECT,
+ ERR_READ_BACK_FAIL,
+ ERR_OUT_OF_RANGE
+} ERROR_CODE;
+
/*------------------------------Define structure----------------------------*/
typedef struct _EFUSE_HAL{
u8 fakeEfuseBank;
u8 fakeEfuseContent[EFUSE_MAX_HW_SIZE];
u8 fakeEfuseInitMap[EFUSE_MAX_MAP_LEN];
u8 fakeEfuseModifiedMap[EFUSE_MAX_MAP_LEN];
-
+ u32 EfuseUsedBytes;
+ u8 EfuseUsedPercentage;
+
u16 BTEfuseUsedBytes;
u8 BTEfuseUsedPercentage;
u8 BTEfuseContent[EFUSE_MAX_BT_BANK][EFUSE_MAX_HW_SIZE];
u8 fakeBTEfuseContent[EFUSE_MAX_BT_BANK][EFUSE_MAX_HW_SIZE];
u8 fakeBTEfuseInitMap[EFUSE_BT_MAX_MAP_LEN];
u8 fakeBTEfuseModifiedMap[EFUSE_BT_MAX_MAP_LEN];
+
+ // EFUSE Configuration, initialized in HAL_CmnInitPGData().
+ const u16 MaxSecNum_WiFi;
+ const u16 MaxSecNum_BT;
+ const u16 WordUnit;
+ const u16 PhysicalLen_WiFi;
+ const u16 PhysicalLen_BT;
+ const u16 LogicalLen_WiFi;
+ const u16 LogicalLen_BT;
+ const u16 BankSize;
+ const u16 TotalBankNum;
+ const u16 BankNum_WiFi;
+ const u16 BankNum_BT;
+ const u16 OOBProtectBytes;
+ const u16 ProtectBytes;
+ const u16 BankAvailBytes;
+ const u16 TotalAvailBytes_WiFi;
+ const u16 TotalAvailBytes_BT;
+ const u16 HeaderRetry;
+ const u16 DataRetry;
+
+ ERROR_CODE Status;
+
}EFUSE_HAL, *PEFUSE_HAL;
+extern u8 maskfileBuffer[32];
/*------------------------Export global variable----------------------------*/
extern u8 fakeEfuseBank;
u8 efuse_GetCurrentSize(PADAPTER padapter, u16 *size);
u16 efuse_GetMaxSize(PADAPTER padapter);
u8 rtw_efuse_access(PADAPTER padapter, u8 bRead, u16 start_addr, u16 cnts, u8 *data);
+u8 rtw_efuse_mask_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data);
u8 rtw_efuse_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data);
u8 rtw_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data);
u8 rtw_BT_efuse_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data);
void EFUSE_ShadowRead(PADAPTER pAdapter, u8 Type, u16 Offset, u32 *Value);
void Rtw_Hal_ReadMACAddrFromFile(PADAPTER padapter);
u32 Rtw_Hal_readPGDataFromConfigFile(PADAPTER padapter);
+u8 rtw_efuse_file_read(PADAPTER padapter,u8 *filepatch,u8 *buf, u32 len);
#endif