WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
efuse_porting.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.
3 * Description: Provides efuse port template
4 *
5 * Create: 2023-03-04
6 */
7#ifndef EFUSE_PORTING_H
8#define EFUSE_PORTING_H
9
10#include <stdint.h>
11
12#ifdef __cplusplus
13#if __cplusplus
14extern "C" {
15#endif /* __cplusplus */
16#endif /* __cplusplus */
17
24#define EFUSE_REGION_NUM 1
25#define EFUSE_REGION_MAX_BITS 2048
26#define EFUSE_REGION_MAX_BYTES (EFUSE_REGION_MAX_BITS >> 3) // MAX_BIT / 8
27#define EFUSE_MAX_BITS (EFUSE_REGION_MAX_BITS * EFUSE_REGION_NUM)
28#define EFUSE_MAX_BYTES (EFUSE_MAX_BITS >> 3) // MAX_BIT / 8
29#define EFUSE_MAX_BIT_POS 8U
30
31#define EFUSE_PMU_CLKLDO_VSET_MASK 0x78
32#define EFUSE_PMU_CLKLDO_OFFSET 3
33#define EFUSE_TRIM_VERSION_DEFAULT_VALUE 1
34#define EFUSE_CHAR_BIT_WIDE 8
35#define EFUSE_CALC_CRC_MAX_LEN 32
36#define EFUSE_DIE_ID_BASE_BYTE_ADDR 0
37
38#define EFUSE_TRIM_FLAG 50
39#define EFUSE_IS_CHIP_TRIMED 0
40// 7-0 -> Version of the trim
41#define EFUSE_TRIM_VERSION 51
42// 2-0 -> vset_bbldo[3:1]
43// 6-3 -> vset_clkldo[3:0]
44#define EFUSE_PMU_TRIM_VSET 25
45
50
51#define EFUSE_IDX_NRW 0x0
52#define EFUSE_IDX_RO 0x1
53#define EFUSE_IDX_WO 0x2
54#define EFUSE_IDX_RW 0x3
55
56#define EFUSE_FLASHBOOT_ROLLBACK_VERSION 656
57#define EFUSE_APP_ROLLBACK_VERSION 624
58#define MAC_ADDR_0_EFUSE_START_BIT 1584
59#define MAC_ADDR_1_EFUSE_START_BIT 1632
60#define MAC_ADDR_2_EFUSE_START_BIT 1680
61#define MAC_ADDR_LAST_EFUSE_START_BIT 1728
62#define EFUSE_MAC_NUM 4
63#define EFUSE_SIZE_1_BYTS 1
64#define HASH_ROOT_PUBLIC_KEY_LEN 32
65#define EFUSE_SSI_MASK_START_BIT 193
66#define EFUSE_FUNC_JTAG_MASK_START_BIT 194
67#define EFUSE_DFT_JTAG_MASK_START_BIT 195
68#define EFUSE_HASH_ROOT_PUBLIC_KEY_START_BIT 672
69#define EFUSE_SEC_VERIFY_ENABLE_START_BIT 960
70
71#define CUSTOM_RESVED_EFUSE_BYTE_LEN 16
72#define CUSTOM_RESVED_EFUSE_LEN_START_BYTE_ADDR 222
73
74#define CUSTOM_RESVED2_EFUSE_BYTE_LEN 16
75#define CUSTOM_RESVED2_EFUSE_LEN_START_BYTE_ADDR 84
76#define CUSTOM_RESVED3_EFUSE_LEN_START_BYTE_ADDR 100
77
78#define BURN_EFUSE_IDX_MAX 115
79#define EFUSE_BIT_NUM 2048
80#define EFUSE_READ_MAX_BYTE 32
81#define BURN_EFUSE_BIN_ADDR 0xA30000
82#define EFUSE_CFG_MAX_LEN 1320
83#define EFUSE_CFG_MIN_LEN 48
84#define CUSTOMER_RSVD_EFUSE_START_BIT 1776
85#define CUSTOMER_RSVD_EFUSE_BIT_LEN 128
86
109
117extern uint32_t g_efuse_boot_done_addr;
118
126extern uint32_t g_efuse_base_addr[1];
127
135extern uint32_t g_efuse_region_read_address[1];
136
144extern uint32_t g_efuse_region_write_address[1];
145
154
163
173hal_efuse_region_t hal_efuse_get_region(uint32_t byte_addr);
174
184uint16_t hal_efuse_get_byte_offset(uint32_t byte_addr);
185
201uint32_t efuse_read_item(efuse_idx efuse_id, uint8_t *data, uint16_t data_len);
202
203void set_efuse_period(void);
204
205uint32_t efuse_write_mac(uint8_t *data, uint16_t data_len);
206uint32_t efuse_read_mac(uint8_t *data, uint16_t data_len, uint8_t *left_time);
207uint32_t efuse_write_sle_mac(uint8_t *data, uint16_t data_len);
208uint32_t efuse_read_sle_mac(uint8_t *data, uint16_t data_len);
209uint32_t efuse_write_customer_rsvd_efuse(uint8_t *data, uint16_t data_len);
210uint32_t efuse_write_customer_rsvd2_efuse(uint8_t *data, uint16_t data_len);
211uint32_t efuse_read_customer_rsvd2_efuse(uint8_t *data, uint16_t data_len);
212#ifdef _PRE_WLAN_FEATURE_MFG_TEST
213uint32_t efuse_write_jtag_ssi(void);
214uint32_t efuse_read_jtag_ssi(uint8_t *data, uint16_t data_len);
215uint32_t efuse_write_hash_root_public_key(uint8_t *data, uint16_t data_len);
216uint32_t efuse_read_hash_root_public_key(uint8_t *data, uint16_t data_len);
217uint32_t efuse_write_sec_verify(void);
218uint32_t efuse_read_sec_verify(uint8_t *data, uint16_t data_len);
219#endif
220#ifdef __cplusplus
221#if __cplusplus
222}
223#endif /* __cplusplus */
224#endif /* __cplusplus */
225
226#endif
efuse_idx
Definition efuse_wrap.h:17
uint32_t g_efuse_region_write_address[1]
IP的写基地址
Definition efuse_porting.c:24
efuse_idx
Definition efuse_porting.h:87
uint32_t g_efuse_region_read_address[1]
IP的读基地址
Definition efuse_porting.c:23
uint32_t g_efuse_boot_done_addr
EFUSE的上电完成地址
Definition efuse_porting.c:21
void efuse_port_register_hal_funcs(void)
将hal funcs对象注册到hal_efuse模块中
Definition efuse_porting.c:54
uint32_t efuse_write_customer_rsvd_efuse(uint8_t *data, uint16_t data_len)
Definition efuse_porting.c:235
uint32_t efuse_read_sle_mac(uint8_t *data, uint16_t data_len)
Definition efuse_porting.c:227
uint32_t efuse_read_item(efuse_idx efuse_id, uint8_t *data, uint16_t data_len)
Get the value from efuse
Definition efuse_porting.c:74
void set_efuse_period(void)
Definition efuse_porting.c:117
uint32_t efuse_read_mac(uint8_t *data, uint16_t data_len, uint8_t *left_time)
Definition efuse_porting.c:167
uint32_t g_efuse_base_addr[1]
IP的基地址
Definition efuse_porting.c:22
uint32_t efuse_write_customer_rsvd2_efuse(uint8_t *data, uint16_t data_len)
Definition efuse_porting.c:250
hal_efuse_region_t hal_efuse_get_region(uint32_t byte_addr)
Get the region of a otp byte address
Definition efuse_porting.c:64
hal_efuse_region_t
Definition efuse_porting.h:46
uint32_t efuse_write_mac(uint8_t *data, uint16_t data_len)
Definition efuse_porting.c:140
uint32_t efuse_write_sle_mac(uint8_t *data, uint16_t data_len)
Definition efuse_porting.c:212
uint16_t hal_efuse_get_byte_offset(uint32_t byte_addr)
Get the offset addr of a otp byte address
Definition efuse_porting.c:69
uint32_t efuse_read_customer_rsvd2_efuse(uint8_t *data, uint16_t data_len)
Definition efuse_porting.c:273
void efuse_port_unregister_hal_funcs(void)
从hal_efuse模块注销hal funcs对象
Definition efuse_porting.c:59
@ EFUSE_MAC_ADDR_03_ID
Definition efuse_porting.h:99
@ EFUSE_CHIP_ID
Definition efuse_porting.h:88
@ EFUSE_GET_S_ID
Definition efuse_porting.h:103
@ EFUSE_MAC_ADDR_LAST_ID
Definition efuse_porting.h:100
@ EFUSE_DIE_ID
Definition efuse_porting.h:89
@ EFUSE_MCU_VER_ID
Definition efuse_porting.h:90
@ EFUSE_TYPE_ID
Definition efuse_porting.h:96
@ EFUSE_CUSTOM_RESVED2_ID
Definition efuse_porting.h:102
@ EFUSE_MAC_SLE_ADDR_ID
Definition efuse_porting.h:106
@ EFUSE_FLASHBOOT_VER_ID
Definition efuse_porting.h:91
@ EFUSE_MAC_ADDR_01_ID
Definition efuse_porting.h:97
@ EFUSE_PARAMS_VER_ID
Definition efuse_porting.h:92
@ EFUSE_SEC_VERIFY_ENABLE
Definition efuse_porting.h:95
@ EFUSE_GET_K_ID
Definition efuse_porting.h:105
@ EFUSE_GET_B_ID
Definition efuse_porting.h:104
@ EFUSE_IDX_MAX
Definition efuse_porting.h:107
@ EFUSE_HASH_ROOT_PUBLIC_KEY_ID
Definition efuse_porting.h:93
@ EFUSE_CUSTOM_RESVED_ID
Definition efuse_porting.h:101
@ EFUSE_MAC_ADDR_02_ID
Definition efuse_porting.h:98
@ EFUSE_MSID_ID
Definition efuse_porting.h:94
@ HAL_EFUSE_REGION_MAX
Definition efuse_porting.h:48
@ HAL_EFUSE_REGION_0
Definition efuse_porting.h:47
Definition hal_uart_v151_regs_def.h:38