AM62Ax MCU+ SDK  10.01.00
bootloader.h File Reference

Introduction

Bootloader Driver API/interface file.

Go to the source code of this file.

Data Structures

struct  Bootloader_Params
 Parameters passed during Bootloader_open() More...
 
struct  Bootloader_Fxns
 Driver implementation callbacks. More...
 
struct  Bootloader_Config
 Bootloader driver configuration, these are filled by SysCfg based on the boot media selected. More...
 
struct  Bootloader_CpuInfo
 Data structure containing information related to a particular CPU, required for RPRC loading. More...
 
struct  Bootloader_BootImageInfo
 Data structure containing information related all CPUs, this will be filled by Bootloader_parseMultiCoreAppImage. More...
 
struct  Bootloader_LoadImageParams
 Data structure containing necessary structs to load AppImage on different CPUs. More...
 

Macros

#define BOOTLOADER_INVALID_ID   ((uint32_t)0xDEADBABE)
 Invalid ID magic number to be used for initializations. More...
 
#define BOOTLOADER_OPMODE_LOCKSTEP   (0U)
 Operating mode type. More...
 
#define BOOTLOADER_OPMODE_STANDALONE   (1U)
 
#define BOOTLOADER_MEDIA_MEM   ((uint32_t)0xB0070001)
 Boot media IDs. More...
 
#define BOOTLOADER_MEDIA_FLASH   ((uint32_t)0xB0070002)
 
#define BOOTLOADER_MEDIA_EMMC   ((uint32_t)0xB0070003)
 
#define BOOTLOADER_MEDIA_SD   ((uint32_t)0xB0070004)
 
#define BOOTLOADER_MEDIA_BUFIO   ((uint32_t)0xB0070005)
 

Typedefs

typedef void * Bootloader_Handle
 Handle to the Bootloader driver returned by Bootloader_open() More...
 
Bootloader driver implementation callbacks
typedef int32_t(* Bootloader_imgOpenFxn) (void *args, Bootloader_Params *params)
 Driver implementation to open a specific bootloader driver - Memory, OSPI, UART, MMCSD etc. More...
 
typedef int32_t(* Bootloader_imgReadFxn) (void *dstAddr, uint32_t length, void *args)
 Driver implementation to read from boot media using a specific bootloader driver - Memory, OSPI, UART, MMCSD etc. More...
 
typedef uint32_t(* Bootloader_imgOffsetFxn) (void *args)
 Driver implementation to get the current offset in the boot media. More...
 
typedef void(* Bootloader_imgSeekFxn) (uint32_t location, void *args)
 Driver implementation to read from boot media using a specific bootloader driver - Memory, OSPI, UART, MMCSD etc. More...
 
typedef void(* Bootloader_imgCloseFxn) (void *handle, void *args)
 Driver implementation to close a specific bootloader driver - Memory, OSPI, UART, MMCSD etc. More...
 
typedef int32_t(* Bootloader_imgCustomFxn) (void *args)
 Driver implementation to enable a custom function for a specific bootloader driver - Memory, OSPI, UART, MMCSD etc. More...
 

Enumerations

enum  Bootloader_AppImageLoadStatus { BOOTLOADER_IMAGE_NOT_LOADED, BOOTLOADER_IMAGE_LOADED }
 AppImage load status. More...
 

Functions

void Bootloader_Params_init (Bootloader_Params *params)
 Initialize Bootloader params. More...
 
void Bootloader_BootImageInfo_init (Bootloader_BootImageInfo *bootImageInfo)
 Initialize BootImage info. More...
 
void Bootloader_CpuInfo_init (Bootloader_CpuInfo *cpuInfo)
 Initialize CPU info. More...
 
Bootloader_Handle Bootloader_open (uint32_t instanceNum, Bootloader_Params *openParams)
 Open bootloader driver. More...
 
void Bootloader_close (Bootloader_Handle handle)
 Close bootloader driver. More...
 
int32_t Bootloader_loadCpu (Bootloader_Handle handle, Bootloader_CpuInfo *cpuInfo)
 API to load a non-self CPU. More...
 
int32_t Bootloader_loadSelfCpu (Bootloader_Handle handle, Bootloader_CpuInfo *cpuInfo)
 API to load self CPU. More...
 
int32_t Bootloader_runCpu (Bootloader_Handle handle, Bootloader_CpuInfo *cpuInfo)
 API to run a non-self CPU. More...
 
int32_t Bootloader_runSelfCpu (Bootloader_Handle handle, Bootloader_BootImageInfo *bootImageInfo)
 API to boot self CPU. More...
 
void Bootloader_JumpSelfCpu (void)
 API to jump self CPU. More...
 
int32_t Bootloader_bootCpu (Bootloader_Handle handle, Bootloader_CpuInfo *cpuInfo)
 API to boot a non-self CPU. More...
 
int32_t Bootloader_bootSelfCpu (Bootloader_Handle handle, Bootloader_BootImageInfo *bootImageInfo)
 API to boot self CPU. More...
 
int32_t Bootloader_parseMultiCoreAppImage (Bootloader_Handle handle, Bootloader_BootImageInfo *bootImageInfo)
 Parse Multicore Appimage. More...
 
int32_t Bootloader_rprcImageParseEntryPoint (Bootloader_Handle handle, Bootloader_CpuInfo *cpuInfo)
 Parse entrypoint from RPRC. More...
 
int32_t Bootloader_rprcImageLoad (Bootloader_Handle handle, Bootloader_CpuInfo *cpuInfo)
 Load application binaries into SOC memory. More...
 
int32_t Bootloader_runSelfCpuWithLinux ()
 API to boot self CPU with Linux. More...
 
uint32_t Bootloader_getMulticoreImageSize (Bootloader_Handle handle)
 API to fetch the size of the multicore image. More...
 
uint32_t Bootloader_isCorePresent (Bootloader_Handle handle, uint32_t cslCoreId)
 API to check if a particular core's RPRC image is present in the multicore image. More...
 
uint32_t Bootloader_getBootMedia (Bootloader_Handle handle)
 API to get the selected boot media in the bootloader instance. More...
 
void Bootloader_ReservedMemInit (uint32_t startAddress, uint32_t regionlength)
 API to set the memory region of bootloader. More...
 
void Bootloader_powerOffCpu (Bootloader_Handle handle, Bootloader_CpuInfo *cpuInfo)
 API to power off a core. More...
 
int32_t Bootloader_parseAppImage (Bootloader_Handle handle, Bootloader_BootImageInfo *bootImageInfo)
 API to Parse Multicore Appimage. More...