AM263x MCU+ SDK  10.00.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...
 

Macros

#define BOOTLOADER_INVALID_ID   (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   (0xB0070001)
 Boot media IDs. More...
 
#define BOOTLOADER_MEDIA_FLASH   (0xB0070002)
 
#define BOOTLOADER_MEDIA_EMMC   (0xB0070003)
 
#define BOOTLOADER_MEDIA_SD   (0xB0070004)
 
#define BOOTLOADER_MEDIA_BUFIO   (0xB0070005)
 
#define BOOTLOADER_MEDIA_PCIE   (0xB0070006)
 
#define BOOTLOADER_MEDIA_USB   (0xB0070007)
 
#define BOOTLOADER_SCRATCH_MEM_ENABLE   (1U)
 Bootloader buffer enable. More...
 

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...
 

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_initCpu (Bootloader_Handle handle, Bootloader_CpuInfo *cpuInfo)
 API to initialize a non-self CPU. 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, uint32_t skipLoad)
 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...
 
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_cpuSetAppEntryPoint (Bootloader_BootImageInfo *bootImageInfo, uint32_t bDualSelfR5F)
 Set Application entry point for self CPU in the AM65x SOC from reset. 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_parseAndLoadLinuxAppImage (Bootloader_Handle handle, Bootloader_BootImageInfo *bootImageInfo)
 Parse and load linux Appimage, containing linux binaries(ATF, OPTEE, SPL) More...
 
int32_t Bootloader_runSelfCpuWithLinux (void)
 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...
 
int32_t Bootloader_parseAndLoadMultiCoreELF (Bootloader_Handle handle, Bootloader_BootImageInfo *bootImageInfo)
 API to parse and load MCELF image. More...
 
uint32_t Bootloader_getX509CertLen (uint8_t *x509_cert_ptr)
 API to get the length of an x509 certificate. More...
 
uint32_t Bootloader_getMsgLen (uint8_t *x509_cert_ptr, uint32_t x509_cert_size)
 API to get image length from a x509 certificate. More...