SemiDrive SSDK Appication Program Interface PTG3.0
Functions
sdrv_fuse.h File Reference
#include <compiler.h>
#include <types.h>
#include "sdrv_common.h"

Go to the source code of this file.

Functions

uint32_t sdrv_fuse_read (uint32_t index)
 
status_t sdrv_fuse_sense (uint32_t index, uint32_t *data)
 
status_t sdrv_fuse_program (uint32_t index, uint32_t v)
 
status_t sdrv_fuse_program_raw (uint32_t index, uint32_t val, bool ecc)
 
status_t sdrv_fuse_reload (void)
 
status_t sdrv_fuse_set_sticky_bit (uint32_t id)
 
status_t sdrv_fuse_lock_bank (fuse_lock_bank_e bank, fuse_lock_bits_e lock_bits)
 
uint32_t sdrv_fuse_get_bank_lock (fuse_lock_bank_e bank)
 
status_t sdrv_fuse_ctl_cfg_timing (uint32_t freq_mhz)
 
status_t sdrv_fuse_ctl_trigger_sw_vio (fuse_lock_bits_e msk)
 

Detailed Description

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Fuse status return code.

Enumerator
SDRV_FUSE_CTRL_ERROR_OR_BUSY 
SDRV_FUSE_CTRL_ERROR 

◆ fuse_lock_bank_e

Fuse lock bank.

Enumerator
FUSE_LOCK_BANK1 
FUSE_LOCK_BANK2 
FUSE_LOCK_BANK3 
FUSE_LOCK_BANK4 
FUSE_LOCK_BANK5 
FUSE_LOCK_BANK6 
FUSE_LOCK_BANK7 
FUSE_LOCK_BANK8 
FUSE_LOCK_BANK9 
FUSE_LOCK_BANK10 
FUSE_LOCK_BANK11 
FUSE_LOCK_BANK12 
FUSE_LOCK_BANK13 
FUSE_LOCK_BANK14 
FUSE_LOCK_BANK15 
FUSE_LOCK_BANK16 
FUSE_LOCK_BANK17 
FUSE_LOCK_BANK18 
FUSE_LOCK_BANK19 
FUSE_LOCK_BANK20 
FUSE_LOCK_BANK21 
FUSE_LOCK_BANK22 
FUSE_LOCK_BANK23 
FUSE_LOCK_BANK24 
FUSE_LOCK_BANK25 
FUSE_LOCK_BANK26 
FUSE_LOCK_BANK27 
FUSE_LOCK_BANK28 
FUSE_LOCK_BANK29 
FUSE_LOCK_BANK30 
FUSE_LOCK_BANK31 
FUSE_LOCK_BANK32 

◆ fuse_lock_bits_e

Fuse lock types.

Enumerator
PLOCK 

Prohibit programming fuse bank Prohibit reading from the fuse bank, the corresponding shadow registers of the bank, and its output to SEIP.

RLOCK 

Prohibit overriding shadow register for the bank.

OLOCK 

Same as RLock, but allow output to SEIP

HLOCK 

Function Documentation

◆ sdrv_fuse_ctl_cfg_timing()

status_t sdrv_fuse_ctl_cfg_timing ( uint32_t  freq_mhz)

Update fuse control timing.

Parameters
freq_mhzAPB clock frequency. Default hardware setting is based on 150MHz APB clock.
Returns
SDRV_STATUS_OK represents success

◆ sdrv_fuse_ctl_trigger_sw_vio()

status_t sdrv_fuse_ctl_trigger_sw_vio ( fuse_lock_bits_e  msk)

Trigger software violation.

Parameters
mskLock type bitmask.
Returns
SDRV_STATUS_OK represents success

◆ sdrv_fuse_get_bank_lock()

uint32_t sdrv_fuse_get_bank_lock ( fuse_lock_bank_e  bank)

Get fuse bank lock type.

Parameters
bankThe bank to get lock type.
Returns
Lock type bitmask.

◆ sdrv_fuse_lock_bank()

status_t sdrv_fuse_lock_bank ( fuse_lock_bank_e  bank,
fuse_lock_bits_e  lock_bits 
)

Lock fuse banks.

Parameters
bankThe bank to lock.
lock_bitsLock type bitmask.
Returns
SDRV_STATUS_OK represents success

◆ sdrv_fuse_program()

status_t sdrv_fuse_program ( uint32_t  index,
uint32_t  v 
)

Program fuse.

This function program specified value into fuse area. Redundant bits are programmed as well, for fuse indices protected by redundancy.

Parameters
indexFuse index
vFuse value
Returns
Return SDRV_STATUS_OK or error code

◆ sdrv_fuse_program_raw()

status_t sdrv_fuse_program_raw ( uint32_t  index,
uint32_t  val,
bool  ecc 
)

Program raw fuse value.

This function program specified value into fuse area, without redundancy protection bits.

Parameters
indexFuse index
valFuse value
eccTrue to enable ECC protection, only for non-redundancy bits
Returns
Return SDRV_STATUS_OK or error code

◆ sdrv_fuse_read()

uint32_t sdrv_fuse_read ( uint32_t  index)

Read fuse value from shadow register.

This function load fuse value from shadow registers, which are filled automatically by hardware after chip reset.

Parameters
indexFuse index
Returns
Fuse value

◆ sdrv_fuse_reload()

status_t sdrv_fuse_reload ( void  )

Reload fuse into shadow registers.

Returns
Return SDRV_STATUS_OK or error code

◆ sdrv_fuse_sense()

status_t sdrv_fuse_sense ( uint32_t  index,
uint32_t *  data 
)

Load fuse value by software.

This function manually triggers fuse reading operation to specified index, and store fuse value in user buffer.

Parameters
indexFuse index
dataBuffer to place fuse data
Returns
Return SDRV_STATUS_OK or error code

◆ sdrv_fuse_set_sticky_bit()

status_t sdrv_fuse_set_sticky_bit ( uint32_t  id)

Set stick bit for specified fuse Id.

Parameters
idfuse id
Returns
SDRV_STATUS_OK represents success