hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/******************************************************************************
 *
 * Copyright(c) 2019 Realtek Corporation.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 * more details.
 *
 *****************************************************************************/
#ifndef _HAL_EFUSE_H_
#define _HAL_EFUSE_H_
 
#define MAX_EFUSE_FILE_VERSION_LENGTH 6
#define EFUSE_MASK_FILE_LEN 96
#define MAX_EFUSE_MAP_LEN 1536
 
enum EFUSE_STATUS_FLAGS {
   EFUSE_STATUS_PROCESS = BIT0,
   EFUSE_STATUS_MAP_FILE_LOADED = BIT1,
   EFUSE_STATUS_MASK_FILE_LOADED = BIT2,
   EFUSE_STATUS_BT_MAP_FILE_LOADED = BIT3,
   EFUSE_STATUS_BT_MASK_FILE_LOADED = BIT4
};
 
enum EFUSE_SHADOW_MAP_STATUS {
   DEFAULT_MAP = 0,
   HW_LOG_MAP = 1,
   FILE_MAP = 2,
   EFUSE_UNKNOWN,
};
 
#define SHADOWMAP_FROM2STR(status)\
(status == DEFAULT_MAP) ? "DEFAULT" :\
(status == HW_LOG_MAP) ? "HW_LOG_EFUSE" :\
(status == FILE_MAP) ? "FILE_EFUSE" :\
"UNknow"
 
/*
 *    @phl_com
 *    @hal_com
 *    @shadow_map: Buffer pointer for limited size logical map
 *    @mask: Buffer pointer for limited size mask read from mask file
 *    @map_version: Buffer pointer for map version read from map file
 *    @mask_version: Buffer pointer for mask version read from mask file
 *    @log_efuse_size: Limited logical map size
 *    @mask_size: Limited mask size
 *    @version_len: Length of verion field in map/mask
 *    @status: Efuse status
 *    @is_map_valid: Flag to check autoload status
 *    @reserved
 */
struct efuse_t {
   struct rtw_phl_com_t *phl_com;
   struct rtw_hal_com_t *hal_com;
   u8 *shadow_map;
   u8 *mask;
   u8 *map_version;
   u8 *mask_version;
   u32 log_efuse_size;
   u32 mask_size;
   u32 limit_efuse_size;
   u32 limit_mask_size;
   u8 efuse_a_die_size;
   u32 hci_to_a_die_offset;
   u32 a_die_start_offset;
   u8 version_len;
   u8 status;
   u8 is_map_valid;
   u8 reserved;
   u8 map_from_status;
   /* BT*/
   u8 *bt_shadow_map;
   u8 *bt_mask;
   u32 bt_log_efuse_size;
   u32 bt_efuse_size;
   u32 bt_mask_size;
};
 
#endif /* _HAL_EFUSE_H_ */