AM62D FreeRTOS SDK  11.00.00
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
APIs for SOC Specific Functions

Introduction

For more details and example usage, see SOC

Functions

int32_t SOC_moduleClockEnable (uint32_t moduleId, uint32_t enable)
 Enable clock to specified module. More...
 
int32_t SOC_moduleSetClockFrequencyWithParent (uint32_t moduleId, uint32_t clkId, uint32_t clkParent, uint64_t clkRate)
 Set module clock to specified frequency and with a specific parent. More...
 
int32_t SOC_moduleSetClockFrequency (uint32_t moduleId, uint32_t clkId, uint64_t clkRate)
 Set module clock to specified frequency. More...
 
const char * SOC_getCoreName (uint16_t coreId)
 Convert a core ID to a user readable name. More...
 
uint32_t SOC_getCoreId (const char *coreName)
 Convert a core ID to a user readable name. More...
 
uint64_t SOC_getSelfCpuClk (void)
 Get the clock frequency in Hz of the CPU on which the driver is running. More...
 
void SOC_setEpwmTbClk (uint32_t epwmInstance, uint32_t enable)
 Enable or disable ePWM time base clock from Control MMR. More...
 
void SOC_controlModuleLockMMR (uint32_t domainId, uint32_t partition)
 Lock control module partition to prevent writes into control MMRs. More...
 
void SOC_controlModuleUnlockMMR (uint32_t domainId, uint32_t partition)
 Unlock control module partition to allow writes into control MMRs. More...
 
void SOC_unlockAllMMR (void)
 Unlocks all the control MMRs. More...
 
int32_t SOC_moduleGetClockFrequency (uint32_t moduleId, uint32_t clkId, uint64_t *clkRate)
 Get module clock frequency. More...
 
void SOC_setDevStat (uint32_t bootMode)
 Change boot mode by setting devstat register. More...
 
uint32_t SOC_getDevStat (void)
 Get boot mode by reading devstat register. More...
 
void SOC_triggerMcuLpmWakeup (void)
 Generates the MCU IPC interrupt to DM R5 to wakeup the main domain from MCU only LPM mode. More...
 
void SOC_generateSwWarmResetMainDomain (void)
 Generate SW Warm Reset Main Domain. More...
 
void SOC_generateSwPORResetMainDomain (void)
 Generate SW POR Reset Main Domain. More...
 
uint32_t SOC_getWarmResetCauseMainDomain (void)
 Get the reset reason source for Main Domain. More...
 
void SOC_generateSwWarmResetMcuDomain (void)
 Generate SW WARM Reset Mcu Domain. More...
 
void SOC_generateSwWarmResetMainDomainFromMcuDomain (void)
 Generate SW WARM Reset Main Domain from Mcu Domain. More...
 
void SOC_generateSwPORResetMainDomainFromMcuDomain (void)
 Generate SW POR Reset Main Domain from Mcu Domain. More...
 
uint32_t SOC_getWarmResetCauseMcuDomain (void)
 Get the reset reason source for Mcu Domain. More...
 
void SOC_clearResetCauseMainMcuDomain (uint32_t resetCause)
 Clears reason for Warm and Main/Mcu Domain Power On Resets. CTRLMMR_RST_SRC is just a mirror of CTRLMMR_MCU_RST_SRC register. It is read only. So we need to write 1 to CTRLMMR_MCU_RST_SRC to clear the reset reason. More...
 
int32_t SOC_enableResetIsolation (uint32_t main2McuIsolation, uint32_t mcu2MainIsolation, uint32_t mcu2dmIsolation, uint32_t debugIsolationEnable)
 Enable reset isolation of MCU domain for safety applications. More...
 
void SOC_setMCUResetIsolationDone (uint32_t value)
 Set MCU reset isolation done flag. More...
 
void SOC_waitMainDomainReset (void)
 Wait for main domain reset to complete. More...
 
int32_t SOC_getPSCState (uint32_t instNum, uint32_t domainNum, uint32_t moduleNum, uint32_t *domainState, uint32_t *moduleState)
 Get PSC (Power Sleep Controller) state. More...
 
int32_t SOC_setPSCState (uint32_t instNum, uint32_t domainNum, uint32_t moduleNum, uint32_t pscState)
 Set PSC (Power Sleep Controller) state. More...
 
void SOC_setFSSCtrlFlashBootSize (void)
 Update the boot block size for FSS subsystem. More...
 
uint64_t Soc_getPhyAddr (uint64_t virtAddr)
 Get Physical Address from virtual address. More...
 

Macros

#define SOC_BOOTMODE_MMCSD   (0X36C3)
 Switch value for SD card boot mode. More...
 
#define SOC_BOOTMODE_OSPI   (0x273)
 Switch value for OSPI boot mode. More...
 
#define SOC_BOOTMODE_EMMC   (0xCB)
 Switch value for EMMC boot mode. More...
 

SOC Domain ID

#define SOC_DOMAIN_ID_MAIN   (0U)
 
#define SOC_DOMAIN_ID_MCU   (1U)
 
#define SOC_DOMAIN_ID_WKUP   (2U)
 
#define SOC_PSC_DOMAIN_ID_MAIN   (0U)
 
#define SOC_PSC_DOMAIN_ID_MCU   (1U)
 

SOC PSC Module State

#define SOC_PSC_SYNCRESETDISABLE   (0x0U)
 
#define SOC_PSC_SYNCRESET   (0x1U)
 
#define SOC_PSC_DISABLE   (0x2U)
 
#define SOC_PSC_ENABLE   (0x3U)
 

SOC PSC Domain State

#define SOC_PSC_DOMAIN_OFF   (0x0U)
 
#define SOC_PSC_DOMAIN_ON   (0x1U)
 

Macro Definition Documentation

◆ SOC_DOMAIN_ID_MAIN

#define SOC_DOMAIN_ID_MAIN   (0U)

◆ SOC_DOMAIN_ID_MCU

#define SOC_DOMAIN_ID_MCU   (1U)

◆ SOC_DOMAIN_ID_WKUP

#define SOC_DOMAIN_ID_WKUP   (2U)

◆ SOC_PSC_DOMAIN_ID_MAIN

#define SOC_PSC_DOMAIN_ID_MAIN   (0U)

\ SOC PSC Domain ID

◆ SOC_PSC_DOMAIN_ID_MCU

#define SOC_PSC_DOMAIN_ID_MCU   (1U)

◆ SOC_PSC_SYNCRESETDISABLE

#define SOC_PSC_SYNCRESETDISABLE   (0x0U)

◆ SOC_PSC_SYNCRESET

#define SOC_PSC_SYNCRESET   (0x1U)

◆ SOC_PSC_DISABLE

#define SOC_PSC_DISABLE   (0x2U)

◆ SOC_PSC_ENABLE

#define SOC_PSC_ENABLE   (0x3U)

◆ SOC_PSC_DOMAIN_OFF

#define SOC_PSC_DOMAIN_OFF   (0x0U)

◆ SOC_PSC_DOMAIN_ON

#define SOC_PSC_DOMAIN_ON   (0x1U)

◆ SOC_BOOTMODE_MMCSD

#define SOC_BOOTMODE_MMCSD   (0X36C3)

Switch value for SD card boot mode.

◆ SOC_BOOTMODE_OSPI

#define SOC_BOOTMODE_OSPI   (0x273)

Switch value for OSPI boot mode.

◆ SOC_BOOTMODE_EMMC

#define SOC_BOOTMODE_EMMC   (0xCB)

Switch value for EMMC boot mode.

Function Documentation

◆ SOC_moduleClockEnable()

int32_t SOC_moduleClockEnable ( uint32_t  moduleId,
uint32_t  enable 
)

Enable clock to specified module.

Parameters
moduleId[in] see tisci_devices for list of device ID's
enable[in] 1: enable clock to the module, 0: disable clock to the module
Returns
SystemP_SUCCESS Module clock is enabled
SystemP_FAILURE Module clock could not be enabled

◆ SOC_moduleSetClockFrequencyWithParent()

int32_t SOC_moduleSetClockFrequencyWithParent ( uint32_t  moduleId,
uint32_t  clkId,
uint32_t  clkParent,
uint64_t  clkRate 
)

Set module clock to specified frequency and with a specific parent.

Parameters
moduleId[in] see tisci_devices for list of module ID's
clkId[in] see tisci_clocks for list of clocks associated with the specified module ID
clkParent[in] see tisci_clocks for list of clock parents associated with the specified module ID
clkRate[in] Frequency to set in Hz
Returns
SystemP_SUCCESS Module clock is enabled
SystemP_FAILURE Module clock could not be enabled

◆ SOC_moduleSetClockFrequency()

int32_t SOC_moduleSetClockFrequency ( uint32_t  moduleId,
uint32_t  clkId,
uint64_t  clkRate 
)

Set module clock to specified frequency.

Parameters
moduleId[in] see tisci_devices for list of module ID's
clkId[in] see tisci_clocks for list of clocks associated with the specified module ID
clkRate[in] Frequency to set in Hz
Returns
SystemP_SUCCESS Module clock is enabled
SystemP_FAILURE Module clock could not be enabled

◆ SOC_getCoreName()

const char* SOC_getCoreName ( uint16_t  coreId)

Convert a core ID to a user readable name.

Parameters
coreId[in] see CSL_CoreID
Returns
name as a string

◆ SOC_getCoreId()

uint32_t SOC_getCoreId ( const char *  coreName)

Convert a core ID to a user readable name.

Parameters
coreName[in] core Name
Returns
coreID

◆ SOC_getSelfCpuClk()

uint64_t SOC_getSelfCpuClk ( void  )

Get the clock frequency in Hz of the CPU on which the driver is running.

Returns
Clock frequency in Hz

◆ SOC_setEpwmTbClk()

void SOC_setEpwmTbClk ( uint32_t  epwmInstance,
uint32_t  enable 
)

Enable or disable ePWM time base clock from Control MMR.

Parameters
epwmInstance[in] ePWM instance number [0 - (CSL_EPWM_PER_CNT-1)]
enable[in] TRUE to enable and FALSE to disable

◆ SOC_controlModuleLockMMR()

void SOC_controlModuleLockMMR ( uint32_t  domainId,
uint32_t  partition 
)

Lock control module partition to prevent writes into control MMRs.

Parameters
domainId[in] See SOC_DomainId_t
partition[in] Partition number to unlock

◆ SOC_controlModuleUnlockMMR()

void SOC_controlModuleUnlockMMR ( uint32_t  domainId,
uint32_t  partition 
)

Unlock control module partition to allow writes into control MMRs.

Parameters
domainId[in] See SOC_DomainId_t
partition[in] Partition number to unlock

◆ SOC_unlockAllMMR()

void SOC_unlockAllMMR ( void  )

Unlocks all the control MMRs.

◆ SOC_moduleGetClockFrequency()

int32_t SOC_moduleGetClockFrequency ( uint32_t  moduleId,
uint32_t  clkId,
uint64_t *  clkRate 
)

Get module clock frequency.

Parameters
moduleId[in] see tisci_devices for list of module ID's
clkId[in] see tisci_clocks for list of clocks associated with the specified module ID
clkRate[out] Frequency of the clock
Returns
SystemP_SUCCESS on success, else failure

◆ SOC_setDevStat()

void SOC_setDevStat ( uint32_t  bootMode)

Change boot mode by setting devstat register.

Parameters
bootMode[IN] Boot mode switch value

◆ SOC_getDevStat()

uint32_t SOC_getDevStat ( void  )

Get boot mode by reading devstat register.

Returns
Boot mode

◆ SOC_triggerMcuLpmWakeup()

void SOC_triggerMcuLpmWakeup ( void  )

Generates the MCU IPC interrupt to DM R5 to wakeup the main domain from MCU only LPM mode.

◆ SOC_generateSwWarmResetMainDomain()

void SOC_generateSwWarmResetMainDomain ( void  )

Generate SW Warm Reset Main Domain.

◆ SOC_generateSwPORResetMainDomain()

void SOC_generateSwPORResetMainDomain ( void  )

Generate SW POR Reset Main Domain.

◆ SOC_getWarmResetCauseMainDomain()

uint32_t SOC_getWarmResetCauseMainDomain ( void  )

Get the reset reason source for Main Domain.

Returns
Reset Reason Source Main Domain

◆ SOC_generateSwWarmResetMcuDomain()

void SOC_generateSwWarmResetMcuDomain ( void  )

Generate SW WARM Reset Mcu Domain.

◆ SOC_generateSwWarmResetMainDomainFromMcuDomain()

void SOC_generateSwWarmResetMainDomainFromMcuDomain ( void  )

Generate SW WARM Reset Main Domain from Mcu Domain.

◆ SOC_generateSwPORResetMainDomainFromMcuDomain()

void SOC_generateSwPORResetMainDomainFromMcuDomain ( void  )

Generate SW POR Reset Main Domain from Mcu Domain.

◆ SOC_getWarmResetCauseMcuDomain()

uint32_t SOC_getWarmResetCauseMcuDomain ( void  )

Get the reset reason source for Mcu Domain.

Returns
Reset Reason Source Mcu Domain

◆ SOC_clearResetCauseMainMcuDomain()

void SOC_clearResetCauseMainMcuDomain ( uint32_t  resetCause)

Clears reason for Warm and Main/Mcu Domain Power On Resets. CTRLMMR_RST_SRC is just a mirror of CTRLMMR_MCU_RST_SRC register. It is read only. So we need to write 1 to CTRLMMR_MCU_RST_SRC to clear the reset reason.

Parameters
resetCause[IN] Reset reason value to clear.

◆ SOC_enableResetIsolation()

int32_t SOC_enableResetIsolation ( uint32_t  main2McuIsolation,
uint32_t  mcu2MainIsolation,
uint32_t  mcu2dmIsolation,
uint32_t  debugIsolationEnable 
)

Enable reset isolation of MCU domain for safety applications.

Parameters
main2McuIsolation[IN] Flag to enable isolation of mcu domain from main domain Setting this flag restricts the access of MCU resources by main domain
mcu2MainIsolation[IN] Flag to enable isolation of MCU domain from DM Setting this flag restricts the access of MCU resources by DM
mcu2dmIsolation[IN] Flag to enable isolation of DM from mcu domain Setting this flag restricts the access of DM resources by MCU domain
debugIsolationEnable[IN] Enable debug isolation. Setting this would restrict JTAG access to MCU domain

◆ SOC_setMCUResetIsolationDone()

void SOC_setMCUResetIsolationDone ( uint32_t  value)

Set MCU reset isolation done flag.

Parameters
value[IN] : 0 - Allow main domain reset to propogate : 1 - Do not allow main domain reset to propogate

◆ SOC_waitMainDomainReset()

void SOC_waitMainDomainReset ( void  )

Wait for main domain reset to complete.

◆ SOC_getPSCState()

int32_t SOC_getPSCState ( uint32_t  instNum,
uint32_t  domainNum,
uint32_t  moduleNum,
uint32_t *  domainState,
uint32_t *  moduleState 
)

Get PSC (Power Sleep Controller) state.

Parameters
instNum[IN] : PSC Instance. See SOC_PSCDomainId_t
domainNum[IN] : Power domain number
moduleNum[IN] : Module number
domainState[OUT] : Domain state (1 : ON, 0 : OFF)
moduleState[OUT] : Module State. See SOC_PSCModuleState_t
Returns
SystemP_SUCCESS on success, else failure

◆ SOC_setPSCState()

int32_t SOC_setPSCState ( uint32_t  instNum,
uint32_t  domainNum,
uint32_t  moduleNum,
uint32_t  pscState 
)

Set PSC (Power Sleep Controller) state.

Parameters
instNum[IN] : PSC Instance. See SOC_PSCDomainId_t
domainNum[IN] : Power domain number
moduleNum[IN] : Module number
pscState[IN] : PSC module state. See SOC_PSCModuleState_t
Returns
SystemP_SUCCESS on success, else failure

◆ SOC_setFSSCtrlFlashBootSize()

void SOC_setFSSCtrlFlashBootSize ( void  )

Update the boot block size for FSS subsystem.

Selects the size of the boot block to be used for the OSPI flash interface. Default value is 1'b0 - S0_BOOT_SIZE_64MB for the MMR register. Set 1'b1 - S0_BOOT_SIZE_128MB to update the value.

◆ Soc_getPhyAddr()

uint64_t Soc_getPhyAddr ( uint64_t  virtAddr)

Get Physical Address from virtual address.

Parameters
virtAddr[IN] : Virtual Address(Alias)
Returns
Physical Address