WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
Efuse

宏定义

#define EFUSE_REGION_NUM   1
 
#define EFUSE_REGION_MAX_BITS   2048
 
#define EFUSE_REGION_MAX_BYTES   (EFUSE_REGION_MAX_BITS >> 3)
 
#define EFUSE_MAX_BITS   (EFUSE_REGION_MAX_BITS * EFUSE_REGION_NUM)
 
#define EFUSE_MAX_BYTES   (EFUSE_MAX_BITS >> 3)
 
#define EFUSE_MAX_BIT_POS   8U
 
#define EFUSE_PMU_CLKLDO_VSET_MASK   0x78
 
#define EFUSE_PMU_CLKLDO_OFFSET   3
 
#define EFUSE_TRIM_VERSION_DEFAULT_VALUE   1
 
#define EFUSE_CHAR_BIT_WIDE   8
 
#define EFUSE_CALC_CRC_MAX_LEN   32
 
#define EFUSE_DIE_ID_BASE_BYTE_ADDR   0
 
#define EFUSE_TRIM_FLAG   50
 
#define EFUSE_IS_CHIP_TRIMED   0
 
#define EFUSE_TRIM_VERSION   51
 
#define EFUSE_PMU_TRIM_VSET   25
 
#define EFUSE_IDX_NRW   0x0
 
#define EFUSE_IDX_RO   0x1
 
#define EFUSE_IDX_WO   0x2
 
#define EFUSE_IDX_RW   0x3
 
#define EFUSE_FLASHBOOT_ROLLBACK_VERSION   656
 
#define EFUSE_APP_ROLLBACK_VERSION   624
 
#define MAC_ADDR_0_EFUSE_START_BIT   1584
 
#define MAC_ADDR_1_EFUSE_START_BIT   1632
 
#define MAC_ADDR_2_EFUSE_START_BIT   1680
 
#define MAC_ADDR_LAST_EFUSE_START_BIT   1728
 
#define EFUSE_MAC_NUM   4
 
#define EFUSE_SIZE_1_BYTS   1
 
#define HASH_ROOT_PUBLIC_KEY_LEN   32
 
#define EFUSE_SSI_MASK_START_BIT   193
 
#define EFUSE_FUNC_JTAG_MASK_START_BIT   194
 
#define EFUSE_DFT_JTAG_MASK_START_BIT   195
 
#define EFUSE_HASH_ROOT_PUBLIC_KEY_START_BIT   672
 
#define EFUSE_SEC_VERIFY_ENABLE_START_BIT   960
 
#define CUSTOM_RESVED_EFUSE_BYTE_LEN   16
 
#define CUSTOM_RESVED_EFUSE_LEN_START_BYTE_ADDR   222
 
#define CUSTOM_RESVED2_EFUSE_BYTE_LEN   16
 
#define CUSTOM_RESVED2_EFUSE_LEN_START_BYTE_ADDR   84
 
#define CUSTOM_RESVED3_EFUSE_LEN_START_BYTE_ADDR   100
 
#define BURN_EFUSE_IDX_MAX   115
 
#define EFUSE_BIT_NUM   2048
 
#define EFUSE_READ_MAX_BYTE   32
 
#define BURN_EFUSE_BIN_ADDR   0xA30000
 
#define EFUSE_CFG_MAX_LEN   1320
 
#define EFUSE_CFG_MIN_LEN   48
 
#define CUSTOMER_RSVD_EFUSE_START_BIT   1776
 
#define CUSTOMER_RSVD_EFUSE_BIT_LEN   128
 

枚举

enum  hal_efuse_region_t { HAL_EFUSE_REGION_0 , HAL_EFUSE_REGION_MAX }
 
enum  efuse_idx {
  EFUSE_CHIP_ID = 0 , EFUSE_DIE_ID = 1 , EFUSE_MCU_VER_ID = 2 , EFUSE_FLASHBOOT_VER_ID = 3 ,
  EFUSE_PARAMS_VER_ID = 4 , EFUSE_HASH_ROOT_PUBLIC_KEY_ID = 5 , EFUSE_MSID_ID = 6 , EFUSE_SEC_VERIFY_ENABLE = 7 ,
  EFUSE_TYPE_ID = 8 , EFUSE_MAC_ADDR_01_ID = 9 , EFUSE_MAC_ADDR_02_ID = 10 , EFUSE_MAC_ADDR_03_ID = 11 ,
  EFUSE_MAC_ADDR_LAST_ID = 12 , EFUSE_CUSTOM_RESVED_ID = 13 , EFUSE_CUSTOM_RESVED2_ID = 14 , EFUSE_GET_S_ID = 15 ,
  EFUSE_GET_B_ID = 16 , EFUSE_GET_K_ID = 17 , EFUSE_MAC_SLE_ADDR_ID = 18 , EFUSE_IDX_MAX
}
 

函数

void efuse_port_register_hal_funcs (void)
 将hal funcs对象注册到hal_efuse模块中
 
void efuse_port_unregister_hal_funcs (void)
 从hal_efuse模块注销hal funcs对象
 
hal_efuse_region_t hal_efuse_get_region (uint32_t byte_addr)
 Get the region of a otp byte address
 
uint16_t hal_efuse_get_byte_offset (uint32_t byte_addr)
 Get the offset addr of a otp byte address
 
uint32_t efuse_read_item (efuse_idx efuse_id, uint8_t *data, uint16_t data_len)
 Get the value from efuse
 
void set_efuse_period (void)
 
uint32_t efuse_write_mac (uint8_t *data, uint16_t data_len)
 
uint32_t efuse_read_mac (uint8_t *data, uint16_t data_len, uint8_t *left_time)
 
uint32_t efuse_write_sle_mac (uint8_t *data, uint16_t data_len)
 
uint32_t efuse_read_sle_mac (uint8_t *data, uint16_t data_len)
 
uint32_t efuse_write_customer_rsvd_efuse (uint8_t *data, uint16_t data_len)
 
uint32_t efuse_write_customer_rsvd2_efuse (uint8_t *data, uint16_t data_len)
 
uint32_t efuse_read_customer_rsvd2_efuse (uint8_t *data, uint16_t data_len)
 

变量

uint32_t g_efuse_boot_done_addr
 EFUSE的上电完成地址
 
uint32_t g_efuse_base_addr [1]
 IP的基地址
 
uint32_t g_efuse_region_read_address [1]
 IP的读基地址
 
uint32_t g_efuse_region_write_address [1]
 IP的写基地址
 

详细描述

宏定义说明

◆ BURN_EFUSE_BIN_ADDR

#define BURN_EFUSE_BIN_ADDR   0xA30000

◆ BURN_EFUSE_IDX_MAX

#define BURN_EFUSE_IDX_MAX   115

◆ CUSTOM_RESVED2_EFUSE_BYTE_LEN

#define CUSTOM_RESVED2_EFUSE_BYTE_LEN   16

◆ CUSTOM_RESVED2_EFUSE_LEN_START_BYTE_ADDR

#define CUSTOM_RESVED2_EFUSE_LEN_START_BYTE_ADDR   84

◆ CUSTOM_RESVED3_EFUSE_LEN_START_BYTE_ADDR

#define CUSTOM_RESVED3_EFUSE_LEN_START_BYTE_ADDR   100

◆ CUSTOM_RESVED_EFUSE_BYTE_LEN

#define CUSTOM_RESVED_EFUSE_BYTE_LEN   16

◆ CUSTOM_RESVED_EFUSE_LEN_START_BYTE_ADDR

#define CUSTOM_RESVED_EFUSE_LEN_START_BYTE_ADDR   222

◆ CUSTOMER_RSVD_EFUSE_BIT_LEN

#define CUSTOMER_RSVD_EFUSE_BIT_LEN   128

◆ CUSTOMER_RSVD_EFUSE_START_BIT

#define CUSTOMER_RSVD_EFUSE_START_BIT   1776

◆ EFUSE_APP_ROLLBACK_VERSION

#define EFUSE_APP_ROLLBACK_VERSION   624

◆ EFUSE_BIT_NUM

#define EFUSE_BIT_NUM   2048

◆ EFUSE_CALC_CRC_MAX_LEN

#define EFUSE_CALC_CRC_MAX_LEN   32

◆ EFUSE_CFG_MAX_LEN

#define EFUSE_CFG_MAX_LEN   1320

◆ EFUSE_CFG_MIN_LEN

#define EFUSE_CFG_MIN_LEN   48

◆ EFUSE_CHAR_BIT_WIDE

#define EFUSE_CHAR_BIT_WIDE   8

◆ EFUSE_DFT_JTAG_MASK_START_BIT

#define EFUSE_DFT_JTAG_MASK_START_BIT   195

◆ EFUSE_DIE_ID_BASE_BYTE_ADDR

#define EFUSE_DIE_ID_BASE_BYTE_ADDR   0

◆ EFUSE_FLASHBOOT_ROLLBACK_VERSION

#define EFUSE_FLASHBOOT_ROLLBACK_VERSION   656

◆ EFUSE_FUNC_JTAG_MASK_START_BIT

#define EFUSE_FUNC_JTAG_MASK_START_BIT   194

◆ EFUSE_HASH_ROOT_PUBLIC_KEY_START_BIT

#define EFUSE_HASH_ROOT_PUBLIC_KEY_START_BIT   672

◆ EFUSE_IDX_NRW

#define EFUSE_IDX_NRW   0x0

◆ EFUSE_IDX_RO

#define EFUSE_IDX_RO   0x1

◆ EFUSE_IDX_RW

#define EFUSE_IDX_RW   0x3

◆ EFUSE_IDX_WO

#define EFUSE_IDX_WO   0x2

◆ EFUSE_IS_CHIP_TRIMED

#define EFUSE_IS_CHIP_TRIMED   0

◆ EFUSE_MAC_NUM

#define EFUSE_MAC_NUM   4

◆ EFUSE_MAX_BIT_POS

#define EFUSE_MAX_BIT_POS   8U

◆ EFUSE_MAX_BITS

#define EFUSE_MAX_BITS   (EFUSE_REGION_MAX_BITS * EFUSE_REGION_NUM)

◆ EFUSE_MAX_BYTES

#define EFUSE_MAX_BYTES   (EFUSE_MAX_BITS >> 3)

◆ EFUSE_PMU_CLKLDO_OFFSET

#define EFUSE_PMU_CLKLDO_OFFSET   3

◆ EFUSE_PMU_CLKLDO_VSET_MASK

#define EFUSE_PMU_CLKLDO_VSET_MASK   0x78

◆ EFUSE_PMU_TRIM_VSET

#define EFUSE_PMU_TRIM_VSET   25

◆ EFUSE_READ_MAX_BYTE

#define EFUSE_READ_MAX_BYTE   32

◆ EFUSE_REGION_MAX_BITS

#define EFUSE_REGION_MAX_BITS   2048

◆ EFUSE_REGION_MAX_BYTES

#define EFUSE_REGION_MAX_BYTES   (EFUSE_REGION_MAX_BITS >> 3)

◆ EFUSE_REGION_NUM

#define EFUSE_REGION_NUM   1

◆ EFUSE_SEC_VERIFY_ENABLE_START_BIT

#define EFUSE_SEC_VERIFY_ENABLE_START_BIT   960

◆ EFUSE_SIZE_1_BYTS

#define EFUSE_SIZE_1_BYTS   1

◆ EFUSE_SSI_MASK_START_BIT

#define EFUSE_SSI_MASK_START_BIT   193

◆ EFUSE_TRIM_FLAG

#define EFUSE_TRIM_FLAG   50

◆ EFUSE_TRIM_VERSION

#define EFUSE_TRIM_VERSION   51

◆ EFUSE_TRIM_VERSION_DEFAULT_VALUE

#define EFUSE_TRIM_VERSION_DEFAULT_VALUE   1

◆ HASH_ROOT_PUBLIC_KEY_LEN

#define HASH_ROOT_PUBLIC_KEY_LEN   32

◆ MAC_ADDR_0_EFUSE_START_BIT

#define MAC_ADDR_0_EFUSE_START_BIT   1584

◆ MAC_ADDR_1_EFUSE_START_BIT

#define MAC_ADDR_1_EFUSE_START_BIT   1632

◆ MAC_ADDR_2_EFUSE_START_BIT

#define MAC_ADDR_2_EFUSE_START_BIT   1680

◆ MAC_ADDR_LAST_EFUSE_START_BIT

#define MAC_ADDR_LAST_EFUSE_START_BIT   1728

枚举类型说明

◆ efuse_idx

enum efuse_idx
枚举值
EFUSE_CHIP_ID 
EFUSE_DIE_ID 
EFUSE_MCU_VER_ID 
EFUSE_FLASHBOOT_VER_ID 
EFUSE_PARAMS_VER_ID 
EFUSE_HASH_ROOT_PUBLIC_KEY_ID 
EFUSE_MSID_ID 
EFUSE_SEC_VERIFY_ENABLE 
EFUSE_TYPE_ID 
EFUSE_MAC_ADDR_01_ID 
EFUSE_MAC_ADDR_02_ID 
EFUSE_MAC_ADDR_03_ID 
EFUSE_MAC_ADDR_LAST_ID 
EFUSE_CUSTOM_RESVED_ID 
EFUSE_CUSTOM_RESVED2_ID 
EFUSE_GET_S_ID 
EFUSE_GET_B_ID 
EFUSE_GET_K_ID 
EFUSE_MAC_SLE_ADDR_ID 
EFUSE_IDX_MAX 

◆ hal_efuse_region_t

枚举值
HAL_EFUSE_REGION_0 
HAL_EFUSE_REGION_MAX 

函数说明

◆ efuse_port_register_hal_funcs()

void efuse_port_register_hal_funcs ( void  )

将hal funcs对象注册到hal_efuse模块中

◆ efuse_port_unregister_hal_funcs()

void efuse_port_unregister_hal_funcs ( void  )

从hal_efuse模块注销hal funcs对象

◆ efuse_read_customer_rsvd2_efuse()

uint32_t efuse_read_customer_rsvd2_efuse ( uint8_t *  data,
uint16_t  data_len 
)

◆ efuse_read_item()

uint32_t efuse_read_item ( efuse_idx  efuse_id,
uint8_t *  data,
uint16_t  data_len 
)

Get the value from efuse

参数
efuse_idxthe index of the byte to get in map
datathe value of the byte to get
data_lenthe length of the byte to get
返回值
ERRCODE_SUCCSuccess.
OtherFailure. For details, see errcode_t

从efuse中读取指定字节

参数
efuse_idx要获取字节在表中的序号
data要获取的字节返回的值
data_len要获取的字节的长度
返回值
ERRCODE_SUCC成功
Other失败,参考 errcode_t

◆ efuse_read_mac()

uint32_t efuse_read_mac ( uint8_t *  data,
uint16_t  data_len,
uint8_t *  left_time 
)

◆ efuse_read_sle_mac()

uint32_t efuse_read_sle_mac ( uint8_t *  data,
uint16_t  data_len 
)

◆ efuse_write_customer_rsvd2_efuse()

uint32_t efuse_write_customer_rsvd2_efuse ( uint8_t *  data,
uint16_t  data_len 
)

◆ efuse_write_customer_rsvd_efuse()

uint32_t efuse_write_customer_rsvd_efuse ( uint8_t *  data,
uint16_t  data_len 
)

◆ efuse_write_mac()

uint32_t efuse_write_mac ( uint8_t *  data,
uint16_t  data_len 
)

◆ efuse_write_sle_mac()

uint32_t efuse_write_sle_mac ( uint8_t *  data,
uint16_t  data_len 
)

◆ hal_efuse_get_byte_offset()

uint16_t hal_efuse_get_byte_offset ( uint32_t  byte_addr)

Get the offset addr of a otp byte address

参数
byte_addrthe addr of the byte to get register
返回值
address

获取otp字节地址的偏移地址

参数
byte_addr要获取寄存器的字节的地址
返回值
偏移地址

◆ hal_efuse_get_region()

hal_efuse_region_t hal_efuse_get_region ( uint32_t  byte_addr)

Get the region of a otp byte address

参数
byte_addrthe addr of the byte to get register
返回值
regionThe region of otp

获取otp字节地址的区域

参数
byte_addr要获取寄存器的字节的地址
返回值
区域OTP的区域

◆ set_efuse_period()

void set_efuse_period ( void  )

变量说明

◆ g_efuse_base_addr

uint32_t g_efuse_base_addr[1]
extern

IP的基地址

◆ g_efuse_boot_done_addr

uint32_t g_efuse_boot_done_addr
extern

EFUSE的上电完成地址

◆ g_efuse_region_read_address

uint32_t g_efuse_region_read_address[1]
extern

IP的读基地址

◆ g_efuse_region_write_address

uint32_t g_efuse_region_write_address[1]
extern

IP的写基地址