bf0_hal_efuse.h

Defines

HAL_EFUSE_BANK_SIZE

EFUSE bank size in bytes

HAL_EFUSE_BANK_WORD_SIZE

EFUSE bank size in words, must be 2^n

HAL_EFUSE_BANK_BIT_SIZE

EFUSE bank size in bits, must be 2^n

HAL_EFUSE_BANK_NUM

EFUSE bank number

Functions

HAL_StatusTypeDef HAL_EFUSE_Init(void)

Init Efuse controller.

Return values:

void

void HAL_EFUSE_ConfigBypass(bool enabled)

Configure bypass.

Parameters:
  • enabled – true: enable bypass, false: disable bypass

Return values:

void

int32_t HAL_EFUSE_Write(uint16_t bit_offset, uint8_t *data, int32_t size)

Write data to efuse starting from bit_offset.

Parameters:
  • bit_offset – bit_offset in efuse, must be 32bits aligned, bank0: 0~255, bank1: 256~511

  • data – point to the data to be written

  • size – data size in byte, must be multiple of 4bytes and written data cannot cross bank boundary

Return values:

size – successfully written

int32_t HAL_EFUSE_Read(uint16_t bit_offset, uint8_t *data, int size)

Read data to efuse starting from bit_offset.

Parameters:
  • bit_offset – bit_offset in efuse, must be 32bits aligned, bank0: 0~255, bank1: 256~511

  • data – point to buffer to save read data

  • size – data size in byte, must be multiple of 4bytes and read data cannot cross bank boundary

Return values:

size – successfully read

int32_t HAL_EFUSE_Read2(uint16_t bit_offset, uint8_t *data, int bit_size)

Read data from efuse starting from bit_offset, no alignment requirement for bit_offset.

Parameters:
  • bit_offset – bit_offset in efuse, bank0: 0~255, bank1: 256~511

  • data – point to buffer to save read data

  • bit_size – data size in bit to be read, read data cannot cross bank boundary

Returns:

bit size successfully read

int32_t HAL_EFUSE_Extract(const uint32_t *bank_data, uint16_t bit_offset_in_bank, uint8_t *data, int bit_size)

Extract data from provided bank data starting from bit_offset, no alignment requirement for bit_offset.

Parameters:
  • bank_data – pointer to the whole bank data array, HAL_EFUSE_BANK_WORD_SIZE words are expected

  • bit_offset_in_bank – bit_offset in one bank, range: 0~255

  • data – point to buffer to save read data

  • bit_size – data size in bit to be read, read data cannot cross bank boundary

Returns:

bit size successfully read

int32_t HAL_EFUSE_Write2(uint16_t bit_offset, uint8_t *data, int32_t bit_size)

Write data to efuse starting from bit_offset, no alignment requirement for bit_offset.

Parameters:
  • bit_offset – bit_offset in efuse, bank0: 0~255, bank1: 256~511

  • data – point to the data to be written

  • bit_size – data size in bit to be written, written data cannot cross bank boundary

Returns:

bit size successfully written