HPM SDK
HPMicro Software Development Kit
hpm_romapi.h File Reference

Go to the source code of this file.

Data Structures

union  api_boot_arg_t
 Enter Bootloader API argument. More...
 
struct  exip_region_param_t
 
struct  sm3_context_t
 
struct  sm4_context_t
 
struct  otp_driver_interface_t
 OTP driver interface. More...
 
struct  xpi_driver_interface_t
 XPI driver interface. More...
 
struct  xpi_nor_driver_interface_t
 XPI NOR driver interface. More...
 
struct  xpi_ram_driver_interface_t
 XPI RAM driver interface. More...
 
struct  sdp_driver_interface_t
 SDP API interface. More...
 
struct  sm3_api_interface_t
 
struct  sm4_api_interface_t
 
struct  bootloader_api_table_t
 Bootloader API table. More...
 

Macros

#define HPM_XPI0_BASE   (0xF3040000UL)
 
#define HPM_XPI0   ((XPI_Type *) HPM_XPI0_BASE)
 
#define HPM_XPI1_BASE   (0xF3044000UL)
 
#define HPM_XPI1   ((XPI_Type *) HPM_XPI1_BASE)
 
#define API_BOOT_TAG   (0xEBU)
 
#define API_BOOT_SRC_OTP   (0U)
 
#define API_BOOT_SRC_PRIMARY   (1U)
 
#define API_BOOT_SRC_SERIAL_BOOT   (2U)
 
#define API_BOOT_SRC_ISP   (3U)
 
#define API_BOOT_PERIPH_AUTO   (0U)
 
#define API_BOOT_PERIPH_UART   (1U)
 
#define API_BOOT_PERIPH_USBHID   (2U)
 
#define SM4_ENCRYPT   1
 
#define SM4_DECRYPT   0
 
#define ROM_API_TABLE_ROOT   ((const bootloader_api_table_t *)0x2001FF00U)
 

Functions

static hpm_stat_t rom_enter_bootloader (void *ctx)
 Eneter specified Boot mode. More...
 
static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_get_config (XPI_Type *base, xpi_nor_config_t *nor_cfg, xpi_nor_config_option_t *cfg_option)
 Get XPI NOR configuration via cfg_option. More...
 
static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_init (XPI_Type *base, xpi_nor_config_t *nor_config)
 Initialize XPI NOR based on nor_config. More...
 
static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_erase (XPI_Type *base, xpi_xfer_channel_t channel, const xpi_nor_config_t *nor_config, uint32_t start, uint32_t length)
 Erase specified FLASH region. More...
 
static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_erase_sector (XPI_Type *base, xpi_xfer_channel_t channel, const xpi_nor_config_t *nor_config, uint32_t start)
 Erase specified FLASH sector in blocking way. More...
 
static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_erase_sector_nonblocking (XPI_Type *base, xpi_xfer_channel_t channel, const xpi_nor_config_t *nor_config, uint32_t start)
 Erase specified FLASH sector in non-blocking way. More...
 
static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_erase_block (XPI_Type *base, xpi_xfer_channel_t channel, const xpi_nor_config_t *nor_config, uint32_t start)
 Erase specified FLASH blcok in blocking way. More...
 
static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_erase_block_nonblocking (XPI_Type *base, xpi_xfer_channel_t channel, const xpi_nor_config_t *nor_config, uint32_t start)
 Erase specified FLASH blcok in non-blocking way. More...
 
static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_erase_chip (XPI_Type *base, xpi_xfer_channel_t channel, const xpi_nor_config_t *nor_config)
 Erase the whole FLASH in blocking way. More...
 
static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_erase_chip_nonblocking (XPI_Type *base, xpi_xfer_channel_t channel, const xpi_nor_config_t *nor_config)
 Erase the whole FLASH in non-blocking way. More...
 
static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_program (XPI_Type *base, xpi_xfer_channel_t channel, const xpi_nor_config_t *nor_config, const uint32_t *src, uint32_t dst_addr, uint32_t length)
 Program data to specified FLASH address in blocking way. More...
 
static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_page_program_nonblocking (XPI_Type *base, xpi_xfer_channel_t channel, const xpi_nor_config_t *nor_config, const uint32_t *src, uint32_t dst_addr, uint32_t length)
 Page-Program data to specified FLASH address in non-blocking way. More...
 
static hpm_stat_t rom_xpi_nor_read (XPI_Type *base, xpi_xfer_channel_t channel, const xpi_nor_config_t *nor_config, uint32_t *dst, uint32_t start, uint32_t length)
 Read data from specified FLASH address. More...
 
static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_auto_config (XPI_Type *base, xpi_nor_config_t *config, xpi_nor_config_option_t *cfg_option)
 Automatically configure XPI NOR based on cfg_option. More...
 
static hpm_stat_t rom_xpi_nor_get_property (XPI_Type *base, xpi_nor_config_t *nor_cfg, uint32_t property_id, uint32_t *value)
 Get XPI NOR properties. More...
 
static hpm_stat_t rom_xpi_nor_get_status (XPI_Type *base, xpi_xfer_channel_t channel, const xpi_nor_config_t *nor_config, uint32_t addr, uint16_t *out_status)
 Return the status register value on XPI NOR FLASH. More...
 
static ATTR_RAMFUNC bool rom_xpi_nor_remap_config (XPI_Type *base, uint32_t start, uint32_t len, uint32_t offset)
 Configure the XPI Address Remapping Logic. More...
 
static ATTR_RAMFUNC void rom_xpi_nor_remap_disable (XPI_Type *base)
 Disable XPI Remapping logic. More...
 
static ATTR_RAMFUNC bool rom_xpi_nor_is_remap_enabled (XPI_Type *base)
 Check whether XPI Remapping is enabled. More...
 
static ATTR_RAMFUNC bool rom_xpi_nor_exip_region_config (XPI_Type *base, uint32_t index, exip_region_param_t *param)
 Configure Specified EXiP Region. More...
 
static ATTR_RAMFUNC void rom_xpi_nor_exip_region_disable (XPI_Type *base, uint32_t index)
 Disable EXiP Feature on specified EXiP Region. More...
 
static ATTR_RAMFUNC void rom_xpi_nor_exip_enable (XPI_Type *base)
 Enable global EXiP logic. More...
 
static ATTR_RAMFUNC void rom_xpi_nor_exip_disable (XPI_Type *base)
 Disable global EXiP logic. More...
 
static hpm_stat_t rom_xpi_ram_get_config (XPI_Type *base, xpi_ram_config_t *ram_cfg, xpi_ram_config_option_t *cfg_option)
 Get XPI RAM configuration based on cfg_option. More...
 
static hpm_stat_t rom_xpi_ram_init (XPI_Type *base, xpi_ram_config_t *ram_cfg)
 Initialize XPI RAM. More...
 
static void rom_sdp_init (void)
 Initialize SDP IP. More...
 
static void rom_sdp_deinit (void)
 De-initialize SDP IP. More...
 
static hpm_stat_t rom_sdp_aes_set_key (sdp_aes_ctx_t *aes_ctx, const uint8_t *key, sdp_aes_key_bits_t key_bits, uint32_t key_idx)
 Set AES key to SDP. More...
 
static hpm_stat_t rom_sdp_aes_crypt_ecb (sdp_aes_ctx_t *aes_ctx, sdp_aes_op_t op, uint32_t len, const uint8_t *in, uint8_t *out)
 SDP AES ECB crypto operation(Encrypt or Decrypt) More...
 
static hpm_stat_t rom_sdp_aes_crypt_cbc (sdp_aes_ctx_t *aes_ctx, sdp_aes_op_t op, uint32_t length, uint8_t iv[16], const uint8_t *in, uint8_t *out)
 SDP AES ECB crypto operation(Encrypt or Decrypt) More...
 
static hpm_stat_t rom_sdp_hash_init (sdp_hash_ctx_t *hash_ctx, sdp_hash_alg_t alg)
 HASH initialization. More...
 
static hpm_stat_t rom_sdp_hash_update (sdp_hash_ctx_t *hash_ctx, const uint8_t *data, uint32_t length)
 HASH Update. More...
 
static hpm_stat_t rom_sdp_hash_finish (sdp_hash_ctx_t *hash_ctx, uint8_t *digest)
 HASH finialize. More...
 
static hpm_stat_t rom_sdp_memcpy (sdp_dma_ctx_t *dma_ctx, void *dst, const void *src, uint32_t length)
 SDP memcpy operation. More...
 
static hpm_stat_t rom_sdp_memset (sdp_dma_ctx_t *dma_ctx, void *dst, uint8_t pattern, uint32_t length)
 SDP memset operation. More...
 
static hpm_stat_t rom_sm3_init (sm3_context_t *ctx)
 SM4 initialization. More...
 
static hpm_stat_t rom_sm3_update (sm3_context_t *ctx, const void *input, uint32_t len)
 SM3 update operation. More...
 
static hpm_stat_t rom_sm3_finalize (sm3_context_t *ctx, uint8_t output[32])
 SM3 finalize Return the computing SM3 digest. More...
 
static void rom_sm4_setkey_enc (sm4_context_t *ctx, const uint8_t key[16])
 Set SM4 encryption key. More...
 
static void rom_sm4_setkey_dec (sm4_context_t *ctx, const uint8_t key[16])
 Set SM4 decryption key. More...
 
static hpm_stat_t rom_sm4_crypt_ecb (sm4_context_t *ctx, uint32_t mode, uint32_t length, const uint8_t *input, uint8_t *output)
 SM4 ECB crypto operation(Encrypt or Decrypt) More...
 
static hpm_stat_t rom_sm4_crypt_cbc (sm4_context_t *ctx, uint32_t mode, uint32_t length, const uint8_t iv[16], const uint8_t *input, uint8_t *output)
 SM4 CBC crypto operation(Encrypt or Decrypt) More...
 

Function Documentation

◆ rom_enter_bootloader()

static hpm_stat_t rom_enter_bootloader ( void *  ctx)
inlinestatic

Eneter specified Boot mode.

Parameters
[in]ctxEnter bootloader context
Return values
status_invalidInvalid parameters were deteced

◆ rom_sdp_aes_crypt_cbc()

static hpm_stat_t rom_sdp_aes_crypt_cbc ( sdp_aes_ctx_t aes_ctx,
sdp_aes_op_t  op,
uint32_t  length,
uint8_t  iv[16],
const uint8_t *  in,
uint8_t *  out 
)
inlinestatic

SDP AES ECB crypto operation(Encrypt or Decrypt)

Parameters
[in]aes_ctxAES context
[in]opAES operation: encrypt or decrypt
[in]lengthData length for AES encryption/decryption
[in]ivInitial vector/nonce
[in]inInput data
[out]outOutput data
Returns
API execution status

◆ rom_sdp_aes_crypt_ecb()

static hpm_stat_t rom_sdp_aes_crypt_ecb ( sdp_aes_ctx_t aes_ctx,
sdp_aes_op_t  op,
uint32_t  len,
const uint8_t *  in,
uint8_t *  out 
)
inlinestatic

SDP AES ECB crypto operation(Encrypt or Decrypt)

Parameters
[in]aes_ctxAES context
[in]opAES operation: encrypt or decrypt
[in]lenData length for AES encryption/decryption
[in]inInput data
[out]outOutput data
Returns
API execution status

◆ rom_sdp_aes_set_key()

static hpm_stat_t rom_sdp_aes_set_key ( sdp_aes_ctx_t aes_ctx,
const uint8_t *  key,
sdp_aes_key_bits_t  key_bits,
uint32_t  key_idx 
)
inlinestatic

Set AES key to SDP.

Parameters
[in]aes_ctxAES context
[in]keyAES key buffer
[in]key_bitsAES key-bit option
[in]key_idxAES key index
Returns
API execution status

◆ rom_sdp_deinit()

static void rom_sdp_deinit ( void  )
inlinestatic

De-initialize SDP IP.

◆ rom_sdp_hash_finish()

static hpm_stat_t rom_sdp_hash_finish ( sdp_hash_ctx_t hash_ctx,
uint8_t *  digest 
)
inlinestatic

HASH finialize.

Parameters
[in]hash_ctxHASH context
[out]digestthe output digest
Returns
API execution status

◆ rom_sdp_hash_init()

static hpm_stat_t rom_sdp_hash_init ( sdp_hash_ctx_t hash_ctx,
sdp_hash_alg_t  alg 
)
inlinestatic

HASH initialization.

Parameters
[in]hash_ctxHASH context
[in]algHASH algorithm
Returns
API execution status

◆ rom_sdp_hash_update()

static hpm_stat_t rom_sdp_hash_update ( sdp_hash_ctx_t hash_ctx,
const uint8_t *  data,
uint32_t  length 
)
inlinestatic

HASH Update.

Parameters
[in]hash_ctxHASH context
[in]dataData for HASH operation
[in]lengthof the data for HASH operation
Returns
API execution status

◆ rom_sdp_init()

static void rom_sdp_init ( void  )
inlinestatic

Initialize SDP IP.

◆ rom_sdp_memcpy()

static hpm_stat_t rom_sdp_memcpy ( sdp_dma_ctx_t dma_ctx,
void *  dst,
const void *  src,
uint32_t  length 
)
inlinestatic

SDP memcpy operation.

Parameters
[in]dma_ctxDMA context
[out]dstDestination address for memcpy
[in]srcSource address for memcpy
[in]lengthSize of data for memcpy operation
Returns
API execution status

◆ rom_sdp_memset()

static hpm_stat_t rom_sdp_memset ( sdp_dma_ctx_t dma_ctx,
void *  dst,
uint8_t  pattern,
uint32_t  length 
)
inlinestatic

SDP memset operation.

Parameters
[in]dma_ctxDMA context
[out]dstDestination address for memset
[in]patternpattern for memset
[in]lengthSize of data for memset operation
Returns
API execution status

◆ rom_sm3_finalize()

static hpm_stat_t rom_sm3_finalize ( sm3_context_t ctx,
uint8_t  output[32] 
)
inlinestatic

SM3 finalize Return the computing SM3 digest.

Parameters
[in]ctxSM3 context
[out]outputSM3 digest calculated by the above API
Returns
API execution status

◆ rom_sm3_init()

static hpm_stat_t rom_sm3_init ( sm3_context_t ctx)
inlinestatic

SM4 initialization.

Parameters
[in]ctxSM3 context
Returns
API execution status

◆ rom_sm3_update()

static hpm_stat_t rom_sm3_update ( sm3_context_t ctx,
const void *  input,
uint32_t  len 
)
inlinestatic

SM3 update operation.

Parameters
[in,out]ctxSM3 context
[in]inputData for SM3 calculation
[in]lenlength of the data for SM3 calculation
Returns
API execution status

◆ rom_sm4_crypt_cbc()

static hpm_stat_t rom_sm4_crypt_cbc ( sm4_context_t ctx,
uint32_t  mode,
uint32_t  length,
const uint8_t  iv[16],
const uint8_t *  input,
uint8_t *  output 
)
inlinestatic

SM4 CBC crypto operation(Encrypt or Decrypt)

Parameters
[in]ctxSM4 context
[in]modeSM4 operation: 1 - ENCRYPT, 0 - DECRYPT
[in]lengthData length for SM4 encryption/decryption
[in]ivThe initial vector for SM4 CBC crypto operation
[in]inputInput data
[out]outputOutput data
Returns
API execution status

◆ rom_sm4_crypt_ecb()

static hpm_stat_t rom_sm4_crypt_ecb ( sm4_context_t ctx,
uint32_t  mode,
uint32_t  length,
const uint8_t *  input,
uint8_t *  output 
)
inlinestatic

SM4 ECB crypto operation(Encrypt or Decrypt)

Parameters
[in]ctxSM4 context
[in]modeSM4 operation: 1 - ENCRYPT, 0 - DECRYPT
[in]lengthData length for SM4 encryption/decryption
[in]inputInput data
[out]outputOutput data
Returns
API execution status

◆ rom_sm4_setkey_dec()

static void rom_sm4_setkey_dec ( sm4_context_t ctx,
const uint8_t  key[16] 
)
inlinestatic

Set SM4 decryption key.

Parameters
[in]ctxSM4 context
[in]keySM4 decryption key

◆ rom_sm4_setkey_enc()

static void rom_sm4_setkey_enc ( sm4_context_t ctx,
const uint8_t  key[16] 
)
inlinestatic

Set SM4 encryption key.

Parameters
[in]ctxSM4 context
[in]keySM4 encryption key

◆ rom_xpi_nor_auto_config()

static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_auto_config ( XPI_Type base,
xpi_nor_config_t config,
xpi_nor_config_option_t cfg_option 
)
inlinestatic

Automatically configure XPI NOR based on cfg_option.

Parameters
[in]baseXPI base address
[out]configXPI NOR configuration structure
[in]cfg_optionXPI NOR configuration option
Returns
API execution status

◆ rom_xpi_nor_erase()

static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_erase ( XPI_Type base,
xpi_xfer_channel_t  channel,
const xpi_nor_config_t nor_config,
uint32_t  start,
uint32_t  length 
)
inlinestatic

Erase specified FLASH region.

Parameters
[in]baseXPI base address
[in]channelXPI transfer channel
[in]nor_configXPI nOR configuration
[in]startErase address start address
[in]lengthRegion size to be erased
Returns
API execution status

◆ rom_xpi_nor_erase_block()

static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_erase_block ( XPI_Type base,
xpi_xfer_channel_t  channel,
const xpi_nor_config_t nor_config,
uint32_t  start 
)
inlinestatic

Erase specified FLASH blcok in blocking way.

Parameters
[in]baseXPI base address
[in]channelXPI transfer channel
[in]nor_configXPI NOR configuration
[in]startBlock address
Returns
API execution status

◆ rom_xpi_nor_erase_block_nonblocking()

static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_erase_block_nonblocking ( XPI_Type base,
xpi_xfer_channel_t  channel,
const xpi_nor_config_t nor_config,
uint32_t  start 
)
inlinestatic

Erase specified FLASH blcok in non-blocking way.

Parameters
[in]baseXPI base address
[in]channelXPI transfer channel
[in]nor_configXPI NOR configuration
[in]startBlock address
Returns
API execution status

◆ rom_xpi_nor_erase_chip()

static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_erase_chip ( XPI_Type base,
xpi_xfer_channel_t  channel,
const xpi_nor_config_t nor_config 
)
inlinestatic

Erase the whole FLASH in blocking way.

Parameters
[in]baseXPI base address
[in]channelXPI transfer channel
[in]nor_configXPI NOR configuration
Returns
API execution status

◆ rom_xpi_nor_erase_chip_nonblocking()

static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_erase_chip_nonblocking ( XPI_Type base,
xpi_xfer_channel_t  channel,
const xpi_nor_config_t nor_config 
)
inlinestatic

Erase the whole FLASH in non-blocking way.

Parameters
[in]baseXPI base address
[in]channelXPI transfer channel
[in]nor_configXPI NOR configuration
Returns
API execution status

◆ rom_xpi_nor_erase_sector()

static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_erase_sector ( XPI_Type base,
xpi_xfer_channel_t  channel,
const xpi_nor_config_t nor_config,
uint32_t  start 
)
inlinestatic

Erase specified FLASH sector in blocking way.

Parameters
[in]baseXPI base address
[in]channelXPI transfer channel
[in]nor_configXPI NOR configuration
[in]startSector address
Returns
API execution status

◆ rom_xpi_nor_erase_sector_nonblocking()

static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_erase_sector_nonblocking ( XPI_Type base,
xpi_xfer_channel_t  channel,
const xpi_nor_config_t nor_config,
uint32_t  start 
)
inlinestatic

Erase specified FLASH sector in non-blocking way.

Parameters
[in]baseXPI base address
[in]channelXPI transfer channel
[in]nor_configXPI NOR configuration
[in]startSector address
Returns
API execution status

◆ rom_xpi_nor_exip_disable()

static ATTR_RAMFUNC void rom_xpi_nor_exip_disable ( XPI_Type base)
inlinestatic

Disable global EXiP logic.

Parameters
[in]baseXPI base address

◆ rom_xpi_nor_exip_enable()

static ATTR_RAMFUNC void rom_xpi_nor_exip_enable ( XPI_Type base)
inlinestatic

Enable global EXiP logic.

Parameters
[in]baseXPI base address

◆ rom_xpi_nor_exip_region_config()

static ATTR_RAMFUNC bool rom_xpi_nor_exip_region_config ( XPI_Type base,
uint32_t  index,
exip_region_param_t param 
)
inlinestatic

Configure Specified EXiP Region.

Parameters
[in]baseXPI base address
[in]indexEXiP Region index
[in]paramExiP Region Parameter
Return values
trueAll parameters are valid
falseAny parameter is invalid

< XPI0 Base address

< XPI0 Base pointer

< XPI1 Base address

< XPI1 Base pointer

◆ rom_xpi_nor_exip_region_disable()

static ATTR_RAMFUNC void rom_xpi_nor_exip_region_disable ( XPI_Type base,
uint32_t  index 
)
inlinestatic

Disable EXiP Feature on specified EXiP Region.

Parameters
[in]baseXPI base address
[in]indexEXiP Region index

◆ rom_xpi_nor_get_config()

static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_get_config ( XPI_Type base,
xpi_nor_config_t nor_cfg,
xpi_nor_config_option_t cfg_option 
)
inlinestatic

Get XPI NOR configuration via cfg_option.

Parameters
[in]baseXPI base address
[out]nor_cfgXPI NOR configuration structure
[in]cfg_optionXPI NOR configuration option
Returns
API execution status

◆ rom_xpi_nor_get_property()

static hpm_stat_t rom_xpi_nor_get_property ( XPI_Type base,
xpi_nor_config_t nor_cfg,
uint32_t  property_id,
uint32_t *  value 
)
inlinestatic

Get XPI NOR properties.

Parameters
[in]baseXPI base address
[in]nor_cfgXPI NOR configuration structure
[in]property_id
[out]valueproperty value retrieved by this API
Returns
API execution status

◆ rom_xpi_nor_get_status()

static hpm_stat_t rom_xpi_nor_get_status ( XPI_Type base,
xpi_xfer_channel_t  channel,
const xpi_nor_config_t nor_config,
uint32_t  addr,
uint16_t *  out_status 
)
inlinestatic

Return the status register value on XPI NOR FLASH.

Parameters
[in]baseXPI base address
[in]channelXPI transfer channel
[in]nor_configXPI NOR configuration
[in]addrFLASH address offset
[out]out_statusFLASH status register value
Returns
API execution status

◆ rom_xpi_nor_init()

static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_init ( XPI_Type base,
xpi_nor_config_t nor_config 
)
inlinestatic

Initialize XPI NOR based on nor_config.

Parameters
[in]baseXPI base address
[in]nor_configXPI NOR configuration
Returns
API execution status

◆ rom_xpi_nor_is_remap_enabled()

static ATTR_RAMFUNC bool rom_xpi_nor_is_remap_enabled ( XPI_Type base)
inlinestatic

Check whether XPI Remapping is enabled.

Parameters
[in]baseXPI base address
Return values
trueRemapping logic is enabled
falseRemapping logic is disabled

◆ rom_xpi_nor_page_program_nonblocking()

static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_page_program_nonblocking ( XPI_Type base,
xpi_xfer_channel_t  channel,
const xpi_nor_config_t nor_config,
const uint32_t *  src,
uint32_t  dst_addr,
uint32_t  length 
)
inlinestatic

Page-Program data to specified FLASH address in non-blocking way.

Parameters
[in]baseXPI base address
[in]channelXPI transfer channel
[in]nor_configXPI NOR configuration
[in]srcdata source address
[in]dst_addrDestination FLASH address
[in]lengthlength of data to be programmed
Returns
API execution status

◆ rom_xpi_nor_program()

static ATTR_RAMFUNC hpm_stat_t rom_xpi_nor_program ( XPI_Type base,
xpi_xfer_channel_t  channel,
const xpi_nor_config_t nor_config,
const uint32_t *  src,
uint32_t  dst_addr,
uint32_t  length 
)
inlinestatic

Program data to specified FLASH address in blocking way.

Parameters
[in]baseXPI base address
[in]channelXPI transfer channel
[in]nor_configXPI NOR configuration
[in]srcdata source address
[in]dst_addrDestination FLASH address
[in]lengthlength of data to be programmed
Returns
API execution status

◆ rom_xpi_nor_read()

static hpm_stat_t rom_xpi_nor_read ( XPI_Type base,
xpi_xfer_channel_t  channel,
const xpi_nor_config_t nor_config,
uint32_t *  dst,
uint32_t  start,
uint32_t  length 
)
inlinestatic

Read data from specified FLASH address.

Parameters
[in]baseXPI base address
[in]channelXPI transfer channel
[in]nor_configXPI NOR configuration
[in]dstMemory start address to store the data read out from FLASH
[in]startFLASH address for data read
[in]lengthlength of data to be read out
Returns
API exection address

◆ rom_xpi_nor_remap_config()

static ATTR_RAMFUNC bool rom_xpi_nor_remap_config ( XPI_Type base,
uint32_t  start,
uint32_t  len,
uint32_t  offset 
)
inlinestatic

Configure the XPI Address Remapping Logic.

Parameters
[in]baseXPI base address
[in]startStart Address (memory mapped address)
[in]lenSize for the remapping region
[in]offsetRelative address based on parameter "start"
Return values
trueis all parameters are valid
falseif any parameter is invalid

< XPI0 Base address

< XPI0 Base pointer

< XPI1 Base address

< XPI1 Base pointer

◆ rom_xpi_nor_remap_disable()

static ATTR_RAMFUNC void rom_xpi_nor_remap_disable ( XPI_Type base)
inlinestatic

Disable XPI Remapping logic.

Parameters
[in]baseXPI base address

◆ rom_xpi_ram_get_config()

static hpm_stat_t rom_xpi_ram_get_config ( XPI_Type base,
xpi_ram_config_t ram_cfg,
xpi_ram_config_option_t cfg_option 
)
inlinestatic

Get XPI RAM configuration based on cfg_option.

Parameters
[in]baseXPI base address
[out]ram_cfgXPI RAM configuration structure
[in]cfg_optionXPI RAM configuration option
Returns
API execution status

◆ rom_xpi_ram_init()

static hpm_stat_t rom_xpi_ram_init ( XPI_Type base,
xpi_ram_config_t ram_cfg 
)
inlinestatic

Initialize XPI RAM.

Parameters
[in]baseXPI base address
[in]ram_cfgXPI ram configuration
Returns
API execution status