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_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...
|
|
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_parseAndLoadLinuxAppImage (Bootloader_Handle handle, Bootloader_BootImageInfo *bootImageInfo) |
| Parse and load linux Appimage, containing linux binaries(ATF, OPTEE, SPL) More...
|
|
int32_t | Bootloader_runSelfCpuWithLinux () |
| API to boot self CPU with Linux. 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...
|
|
◆ BOOTLOADER_INVALID_ID
#define BOOTLOADER_INVALID_ID (0xDEADBABE) |
Invalid ID magic number to be used for initializations.
◆ BOOTLOADER_MEDIA_MEM
#define BOOTLOADER_MEDIA_MEM (0xB0070001) |
◆ BOOTLOADER_MEDIA_FLASH
#define BOOTLOADER_MEDIA_FLASH (0xB0070002) |
◆ BOOTLOADER_MEDIA_EMMC
#define BOOTLOADER_MEDIA_EMMC (0xB0070003) |
◆ 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
-
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_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_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_loadCpu()
API to load a non-self CPU.
This API will load RPRC images 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 loaded by the Bootloader_loadSelfCpu API.
NOTE: No checks are done to confirm non-self CPU ID is passed, user need to make sure non-self CPU ID is passed, else the load could fail.
- Parameters
-
- Returns
- SystemP_SUCCESS on success, else failure
◆ Bootloader_loadSelfCpu()
API to load self CPU.
This API will load RPRC images on self CPU, i.e a CPU on which the bootloader application is running
NOTE: No checks are done to confirm self CPU ID is passed, user need to make sure self CPU ID is passed, else the load could fail.
- Parameters
-
- Returns
- SystemP_SUCCESS on success, else failure
◆ 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_loadCpu 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. It is expected that this API be called after Bootloader_loadSelfCpu API
- Parameters
-
- Returns
- SystemP_SUCCESS on success, else failure
◆ 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. Now if the self CPU is a dual core CPU, like a Cortex R5, this API is not applicable for the second core of the self CPU. That will be booted by the Bootloader_bootSelfCpu API.
- Parameters
-
- Returns
- SystemP_SUCCESS on success, else failure
◆ Bootloader_bootSelfCpu()
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_parseMultiCoreAppImage()
Parse Multicore Appimage.
When the booting is done through some boot media, unlike loading via CCS, the application binaries for each core applicable are converted into a file format '.rprc' and combined together into a multicore appimage binary. The bootloader needs to read this appimage, and load the binaries correctly into memories. This API helps in parsing the multicore appimage and filling the metadata in the bootImageInfo structure passed.
- Parameters
-
- Returns
- SystemP_SUCCESS on success, else failure
◆ Bootloader_rprcImageParseEntryPoint()
Parse entrypoint from RPRC.
This API reads the RPRC image to parse the entry points of a particular CPU
◆ Bootloader_rprcImageLoad()
Load application binaries into SOC memory.
This API loads the application binaries for each core applicable is loaded from the boot media to the SOC memory
◆ Bootloader_parseAndLoadLinuxAppImage()
Parse and load linux Appimage, containing linux binaries(ATF, OPTEE, SPL)
- Parameters
-
- 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_loadSelfCpu API. This API does not perform a security handoff
- Returns
- SystemP_SUCCESS on success, else failure