See BOOTLOADER for more details.
|
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_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_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 ELF 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_parseAndLoadMultiCoreELF (Bootloader_Handle handle, Bootloader_BootImageInfo *bootImageInfo) |
| API to parse and load a multicore ELF image for Flash, eMMC & SD bootmedia. More...
|
|
int32_t | Bootloader_UartParseAndLoadMultiCoreELF (Bootloader_Handle handle, Bootloader_BootImageInfo *bootImageInfo) |
| API to parse and load a multicore ELF image for Uart bootmedia. More...
|
|
|
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...
|
|
◆ BOOTLOADER_INVALID_ID
#define BOOTLOADER_INVALID_ID ((uint32_t)0xDEADBABE) |
Invalid ID magic number to be used for initializations.
◆ BOOTLOADER_OPMODE_LOCKSTEP
#define BOOTLOADER_OPMODE_LOCKSTEP (0U) |
◆ BOOTLOADER_OPMODE_STANDALONE
#define BOOTLOADER_OPMODE_STANDALONE (1U) |
◆ BOOTLOADER_MEDIA_MEM
#define BOOTLOADER_MEDIA_MEM ((uint32_t)0xB0070001) |
◆ BOOTLOADER_MEDIA_FLASH
#define BOOTLOADER_MEDIA_FLASH ((uint32_t)0xB0070002) |
◆ BOOTLOADER_MEDIA_EMMC
#define BOOTLOADER_MEDIA_EMMC ((uint32_t)0xB0070003) |
◆ BOOTLOADER_MEDIA_SD
#define BOOTLOADER_MEDIA_SD ((uint32_t)0xB0070004) |
◆ BOOTLOADER_MEDIA_BUFIO
#define BOOTLOADER_MEDIA_BUFIO ((uint32_t)0xB0070005) |
◆ BOOTLOADER_MEDIA_UART
#define BOOTLOADER_MEDIA_UART ((uint32_t)0xB0070006) |
◆ Bootloader_Handle
◆ Bootloader_imgOpenFxn
Driver implementation to open a specific bootloader driver - Memory, OSPI, UART, MMCSD etc.
Typically this callback is hidden from the end application and is implemented when a new boot media needs to be supported.
- Parameters
-
args | [in] Boot media specific arguments, obtained from the config |
params | [in] User controllable params |
- Returns
- SystemP_SUCCESS on success, else failure
◆ Bootloader_imgReadFxn
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.
Typically this callback is hidden from the end application and is implemented when a new boot media needs to be supported.
- Parameters
-
dstAddr | [in] Destination address to which the data is to be read into |
length | [in] Length in bytes of the data to be read |
args | [in] Boot media specific arguments, obtained from the config |
- Returns
- SystemP_SUCCESS on success, else failure
◆ Bootloader_imgOffsetFxn
typedef uint32_t(* Bootloader_imgOffsetFxn) (void *args) |
Driver implementation to get the current offset in the boot media.
Typically this callback is hidden from the end application and is implemented when a new boot media needs to be supported.
- Parameters
-
args | [in] Boot media specific arguments, obtained from the config |
- Returns
- Current Offset
◆ Bootloader_imgSeekFxn
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.
Typically this callback is hidden from the end application and is implemented when a new boot media needs to be supported.
- Parameters
-
location | [in] Destination address to which read offset need to be moved |
args | [in] Boot media specific arguments, obtained from the config |
- Returns
- SystemP_SUCCESS on success, else failure
◆ Bootloader_imgCloseFxn
typedef void(* Bootloader_imgCloseFxn) (void *handle, void *args) |
Driver implementation to close a specific bootloader driver - Memory, OSPI, UART, MMCSD etc.
Typically this callback is hidden from the end application and is implemented when a new boot media needs to be supported.
- Parameters
-
handle | [in] Handle returned from Bootloader_imgOpen |
args | [in] Boot media specific arguments, obtained from the config |
- Returns
- SystemP_SUCCESS on success, else failure
◆ Bootloader_imgCustomFxn
typedef int32_t(* Bootloader_imgCustomFxn) (void *args) |
Driver implementation to enable a custom function for a specific bootloader driver - Memory, OSPI, UART, MMCSD etc.
Typically this callback is hidden from the end application and is implemented when a new boot media needs to be supported.
- Parameters
-
args | [in] Boot media specific arguments, obtained from the config |
- Returns
- SystemP_SUCCESS on success, else failure
◆ Bootloader_AppImageLoadStatus
AppImage load status.
Enumerator |
---|
BOOTLOADER_IMAGE_NOT_LOADED | |
BOOTLOADER_IMAGE_LOADED | |
◆ Bootloader_Params_init()
Initialize Bootloader params.
- Parameters
-
◆ Bootloader_BootImageInfo_init()
Initialize BootImage info.
- Parameters
-
◆ Bootloader_CpuInfo_init()
Initialize CPU info.
- Parameters
-
◆ Bootloader_open()
Open bootloader driver.
Make sure the SOC periheral driver is open'ed before calling this API. Drivers_open function generated by SysCfg opens the underlying SOC peripheral driver, e.g OSPI.
Global variables Bootloader_Config gBootloaderConfig[]
and uint32_t gBootloaderConfigNum
is instantiated by SysCfg to describe the boot media and other configuration based on user selection in SysCfg.
- Parameters
-
instanceNum | [in] Index within Bootloader_Config gBootloaderConfig[] denoting the bootloader driver to open |
openParams | [in] Open parameters |
- Returns
- Handle to bootloader driver which should be used in subsequent API call
-
NULL in case of failure
◆ Bootloader_close()
Close bootloader driver.
- Parameters
-
◆ Bootloader_runCpu()
API to run a non-self CPU.
This API will run a non-self CPU, i.e a CPU on which the bootloader application is not running. This API is not applicable for cores from self cluster. They will be run by the Bootloader_runSelfCpu API. It is expected that this API be called after Bootloader_parseAndLoadMultiCoreELF API
- Parameters
-
- Returns
- SystemP_SUCCESS on success, else failure
◆ Bootloader_runSelfCpu()
API to boot self CPU.
This API will boot self CPU, i.e a CPU on which the bootloader application is running.
- Parameters
-
- Returns
- SystemP_SUCCESS on success, else failure
◆ Bootloader_JumpSelfCpu()
void Bootloader_JumpSelfCpu |
( |
void |
| ) |
|
API to jump self CPU.
This API will make self CPU jump to another code location, i.e a CPU on which the bootloader application is running. It is expected that this API be called after Bootloader_parseAndLoadMultiCoreELF API
◆ Bootloader_bootCpu()
API to boot a non-self CPU.
This API will boot a non-self CPU, i.e a CPU on which the bootloader application is not running.
- Parameters
-
handle | [in] Bootloader driver handle from Bootloader_open |
cpuInfo | [in] Data structure containing information regarding the CPU. |
- Returns
- SystemP_SUCCESS on success, else failure
◆ Bootloader_runSelfCpuWithLinux()
int32_t Bootloader_runSelfCpuWithLinux |
( |
| ) |
|
API to boot self CPU with Linux.
This API will boot self CPU, i.e a CPU on which the bootloader application is running. It is expected that this API be called after Bootloader_parseAndLoadMultiCoreELF API. This API does not perform a security handoff
- Returns
- SystemP_SUCCESS on success, else failure
◆ Bootloader_getMulticoreImageSize()
API to fetch the size of the multicore image.
This API simply returns the internal global variable which gets updated everytime a section is loaded. So this API should only be called after all the mcelf loading is complete.
- Parameters
-
- Returns
- Size of the multicore image size
◆ Bootloader_isCorePresent()
API to check if a particular core's ELF image is present in the multicore image.
This API checks the csl core id against an internally maintained bitmap which will be populated after parsing the image. So this API should be called only after the multicore image is parsed.
- Parameters
-
handle | Bootloader driver handle from Bootloader_open |
cslCoreId | CSL core ID of the interested core |
- Returns
- TRUE if the given core's elf is present in the multicore image
◆ Bootloader_getBootMedia()
API to get the selected boot media in the bootloader instance.
This API returns the selected boot media. This data will be filled by sysconfig
- Parameters
-
- Returns
- Boot media ID of the selected media
◆ Bootloader_ReservedMemInit()
void Bootloader_ReservedMemInit |
( |
uint32_t |
startAddress, |
|
|
uint32_t |
regionlength |
|
) |
| |
API to set the memory region of bootloader.
This API is used to set the memory region of bootloader.
- Parameters
-
startAddress | [in] Start address of the memory region for bootloader. |
regionlength | [in] Length of the memory region of bootloader. |
◆ Bootloader_powerOffCpu()
API to power off a core.
- Parameters
-
handle | Bootloader driver handle from Bootloader_open |
cpuInfo | [in] Data structure containing information regarding the CPU. |
◆ Bootloader_parseAndLoadMultiCoreELF()
API to parse and load a multicore ELF image for Flash, eMMC & SD bootmedia.
When the booting is done through boot media like Flash, eMMC & SD, unlike loading via CCS, the application binaries for each core applicable are converted into a file format '.elf' and combined together into a multicore elf(.mcelf) binary. The bootloader needs to read this mcelf file, and load the binaries correctly into memories. This API helps in parsing the multicore elf file and loads the application binaries for each core from the boot media to the SOC memory. It also fills the metadata in the bootImageInfo structure passed.
- Parameters
-
- Returns
- SystemP_SUCCESS on success, else failure
◆ Bootloader_UartParseAndLoadMultiCoreELF()
API to parse and load a multicore ELF image for Uart bootmedia.
When the booting is done through boot media like Uart, unlike loading via CCS, the application binaries for each core applicable are converted into a file format '.elf' and combined together into a multicore elf(.mcelf) binary. The bootloader needs to read this mcelf file which is being sent in chunks from host side, and load the segments correctly into memories. This API helps in receiving the multicore elf file meta from host, parsing the multicore elf file meta, requests the program segments from host, receive and loads the segments for each core from the boot media to the SOC memory. It also fills the metadata in the bootImageInfo structure passed.
- Parameters
-
- Returns
- SystemP_SUCCESS on success, else failure