Go to the source code of this file.
Data Structures | |
| struct | Bootloader_CoreBootInfo |
| Data structure containing information about a core specific to the AM62x SOC. More... | |
Macros | |
| #define | FREERTOS_SMP_RPRC_CORE_ID (100) |
| #define | FREERTOS_SMP_NO_OF_CORES (4) |
| #define | FREERTOS_SMP_CSL_CORE_ID_MAX (FREERTOS_SMP_NO_OF_CORES + CSL_CORE_ID_A53SS0_0) |
| #define | BOOTLOADER_DMA_CHANNEL_TYPE UDMA_CH_TYPE_TR_BLK_COPY |
Typedefs | |
| typedef void | __attribute__((__noreturn__)) (*Bootloader_SelfCoreJump) (void) |
| Function pointer to jump a self core to specific code location in AM62x SOC. More... | |
Functions | |
| int32_t | Bootloader_socCpuRequest (uint32_t cpuId) |
| Request for a particular CPU in the AM62x SOC. More... | |
| int32_t | Bootloader_socCpuRelease (uint32_t cpuId) |
| Release a particular CPU in the AM62x SOC. More... | |
| int32_t | Bootloader_socCpuSetClock (uint32_t cpuId, uint32_t cpuHz) |
| Set the clock of a particular CPU in the AM62x SOC. More... | |
| uint64_t | Bootloader_socCpuGetClock (uint32_t cpuId) |
| Get the clock of a particular CPU in the AM62x SOC. More... | |
| uint32_t | Bootloader_socCpuGetClkDefault (uint32_t cpuId) |
| Get the default clock of a particular CPU in the AM62x SOC. More... | |
| int32_t | Bootloader_socCpuPowerOnReset (uint32_t cpuId, void *socCoreOpMode) |
| Do power-on-reset of a particular CPU in the AM62x SOC. More... | |
| int32_t | Bootloader_socCpuResetRelease (uint32_t cpuId, uintptr_t entryPoint) |
| Release a particular CPU in the AM62x SOC from reset. More... | |
| int32_t | Bootloader_socCpuResetReleaseSelf () |
| Release self CPU in the AM62x SOC from reset. More... | |
| void | __attribute__ ((__noreturn__)) Bootloader_socSelfCPUjump() |
| Jump the self cpu to specified load address. More... | |
| int32_t | Bootloader_socCpuSetEntryPoint (uint32_t cpuId, uintptr_t entryPoint) |
| Set entry point for self CPU in the AM62x SOC from reset. More... | |
| uint32_t | Bootloader_socTranslateSectionAddr (uint32_t cslCoreId, uint32_t addr) |
| Translate a CPU address to the SOC address wherever applicable. More... | |
| uint32_t | Bootloader_socRprcToCslCoreId (uint32_t rprcCoreId) |
| Obtain the CSL core ID of a CPU from its RPRC core ID. More... | |
| bool | Bootloader_socIsSmpEnable (uint32_t rprcCoreId) |
| Check whether the smp is enabled or not for the soc. More... | |
| uint32_t * | Bootloader_socGetSelfCpuList (void) |
| Get the list of self cpus in the SOC. More... | |
| char * | Bootloader_socGetCoreName (uint32_t cpuId) |
| Get the name of a core. More... | |
| int32_t | Bootloader_socMemInitCpu (uint32_t cpuId) |
| Initialize the core memories of a specific core. More... | |
| uint32_t | Bootloader_socGetSciclientCpuProcId (uint32_t cpuId) |
| Obtain the Sciclient Proc Id corresponding to the CSL core ID. More... | |
| uint32_t | Bootloader_socGetSciclientCpuDevId (uint32_t cpuId) |
| Obtain the Sciclient Device Id corresponding to the CSL core ID. More... | |
| int32_t | Bootloader_socSecHandover (void) |
| API to trigger the security handover from SYSFW. More... | |
| int32_t | Bootloader_socWaitForFWBoot (void) |
| API to wait for boot notification from SYSFW/ROM. More... | |
| int32_t | Bootloader_socOpenFirewalls (void) |
| API to open required firewalls using SYSFW. More... | |
| int32_t | Bootloader_socAuthImage (uint32_t certLoadAddr) |
| API to authenticate (and decrypt if needed) an appimage using SYSFW. More... | |
| uint32_t | Bootloader_socIsAuthRequired (void) |
| API to check if authentication is required for the device. Checks the SYS_STATUS register to see if device is GP, HS-FS, HS-SE etc. More... | |
| void | Bootloader_enableMCUPLL (void) |
| Enable MCU PLL. The MCU PLL will be initialized by SYSFW if devgrp is set to DEVGRP_ALL. If devgrp is set to DEVGRP_00 (0x01) (Main Domain), the MCU PLL will not be initialized. This API initializes MCU PLL when devgrp is set to DEVGRP_00. More... | |
| uint32_t | Bootloader_socIsMCUResetIsoEnabled () |
| Check if MCU M4 is reset isolated. More... | |
| void | Bootloader_socCpuPowerOff (uint32_t cpuId) |
| Power off a core. More... | |
| #define FREERTOS_SMP_RPRC_CORE_ID (100) |
| #define FREERTOS_SMP_NO_OF_CORES (4) |
| #define FREERTOS_SMP_CSL_CORE_ID_MAX (FREERTOS_SMP_NO_OF_CORES + CSL_CORE_ID_A53SS0_0) |
| #define BOOTLOADER_DMA_CHANNEL_TYPE UDMA_CH_TYPE_TR_BLK_COPY |
| int32_t Bootloader_socCpuRequest | ( | uint32_t | cpuId | ) |
Request for a particular CPU in the AM62x SOC.
This API internally makes Sciclient calls to request control of the CPU
| cpuId | [in] The CSL ID of the core |
| int32_t Bootloader_socCpuRelease | ( | uint32_t | cpuId | ) |
Release a particular CPU in the AM62x SOC.
This API internally makes Sciclient calls to release control of the CPU
| cpuId | [in] The CSL ID of the core |
| int32_t Bootloader_socCpuSetClock | ( | uint32_t | cpuId, |
| uint32_t | cpuHz | ||
| ) |
Set the clock of a particular CPU in the AM62x SOC.
This API internally makes Sciclient calls to set CPU clock
| cpuId | [in] The CSL ID of the core |
| cpuHz | [in] Desired clock frequency of the CPU in Hertz |
| uint64_t Bootloader_socCpuGetClock | ( | uint32_t | cpuId | ) |
Get the clock of a particular CPU in the AM62x SOC.
This API internally makes Sciclient calls to get the current clock frequency of CPU
| cpuId | [in] The CSL ID of the core |
| uint32_t Bootloader_socCpuGetClkDefault | ( | uint32_t | cpuId | ) |
Get the default clock of a particular CPU in the AM62x SOC.
This API queries and internal lookup table to fetch the default clock speed at which a particular CPU should run.
| cpuId | [in] The CSL ID of the core |
| int32_t Bootloader_socCpuPowerOnReset | ( | uint32_t | cpuId, |
| void * | socCoreOpMode | ||
| ) |
Do power-on-reset of a particular CPU in the AM62x SOC.
This API is called only when booting a non-self CPU.
| cpuId | [in] The CSL ID of the core |
| socCoreOpMode | Lockstep/Dual core mode as per setting in syscfg. |
| int32_t Bootloader_socCpuResetRelease | ( | uint32_t | cpuId, |
| uintptr_t | entryPoint | ||
| ) |
Release a particular CPU in the AM62x SOC from reset.
This API is called only when booting a non-self CPU. There is a different API Bootloader_socCpuResetReleaseSelf in the case of a self CPU
| cpuId | [in] The CSL ID of the core |
| entryPoint | [in] The entryPoint of the CPU, from where it should start execution |
| int32_t Bootloader_socCpuResetReleaseSelf | ( | ) |
Release self CPU in the AM62x SOC from reset.
| void __attribute__ | ( | (__noreturn__) | ) |
Jump the self cpu to specified load address.
| int32_t Bootloader_socCpuSetEntryPoint | ( | uint32_t | cpuId, |
| uintptr_t | entryPoint | ||
| ) |
Set entry point for self CPU in the AM62x SOC from reset.
This API need not be called when booting a non-self CPU. The entry point can be specified in the Bootloader_socCpuResetRelease function itself
| cpuId | [in] The CSL ID of the core |
| entryPoint | [in] The entryPoint of the CPU, from where it should start execution |
| uint32_t Bootloader_socTranslateSectionAddr | ( | uint32_t | cslCoreId, |
| uint32_t | addr | ||
| ) |
Translate a CPU address to the SOC address wherever applicable.
This API need not be called when booting a non-self CPU. The entry point can be specified in the Bootloader_socCpuResetRelease function itself
| cslCoreId | [in] The CSL ID of the core |
| addr | [in] The CPU addr |
| uint32_t Bootloader_socRprcToCslCoreId | ( | uint32_t | rprcCoreId | ) |
Obtain the CSL core ID of a CPU from its RPRC core ID.
| rprcCoreId | [in] The RPRC ID of the core |
| bool Bootloader_socIsSmpEnable | ( | uint32_t | rprcCoreId | ) |
Check whether the smp is enabled or not for the soc.
| rprcCoreId | [in] The RPRC ID of the core |
| uint32_t* Bootloader_socGetSelfCpuList | ( | void | ) |
Get the list of self cpus in the SOC.
| char* Bootloader_socGetCoreName | ( | uint32_t | cpuId | ) |
Get the name of a core.
| cpuId | [in] The CSL ID of the core |
| int32_t Bootloader_socMemInitCpu | ( | uint32_t | cpuId | ) |
Initialize the core memories of a specific core.
| cpuId | [in] The CSL ID of the core |
| uint32_t Bootloader_socGetSciclientCpuProcId | ( | uint32_t | cpuId | ) |
Obtain the Sciclient Proc Id corresponding to the CSL core ID.
| cpuId | [in] The CSL ID of the core |
| uint32_t Bootloader_socGetSciclientCpuDevId | ( | uint32_t | cpuId | ) |
Obtain the Sciclient Device Id corresponding to the CSL core ID.
| cpuId | [in] The CSL ID of the core |
| int32_t Bootloader_socSecHandover | ( | void | ) |
API to trigger the security handover from SYSFW.
| int32_t Bootloader_socWaitForFWBoot | ( | void | ) |
API to wait for boot notification from SYSFW/ROM.
| int32_t Bootloader_socOpenFirewalls | ( | void | ) |
API to open required firewalls using SYSFW.
| int32_t Bootloader_socAuthImage | ( | uint32_t | certLoadAddr | ) |
API to authenticate (and decrypt if needed) an appimage using SYSFW.
| certLoadAddr | [in] The SOC address pointing to the certificate+appimage |
| uint32_t Bootloader_socIsAuthRequired | ( | void | ) |
API to check if authentication is required for the device. Checks the SYS_STATUS register to see if device is GP, HS-FS, HS-SE etc.
| void Bootloader_enableMCUPLL | ( | void | ) |
Enable MCU PLL. The MCU PLL will be initialized by SYSFW if devgrp is set to DEVGRP_ALL. If devgrp is set to DEVGRP_00 (0x01) (Main Domain), the MCU PLL will not be initialized. This API initializes MCU PLL when devgrp is set to DEVGRP_00.
| uint32_t Bootloader_socIsMCUResetIsoEnabled | ( | ) |
Check if MCU M4 is reset isolated.
| void Bootloader_socCpuPowerOff | ( | uint32_t | cpuId | ) |
Power off a core.
| cpuId | [in] The CSL ID of the core |