AM64x MCU+ SDK  08.03.00
SOC

The SOC driver provides API to configure SOC specific features like clocks.

Features Supported

  • API to enable/disable a module clock
  • API to set clock frequency for module
  • Generic utility API like get CPU clock, get core name string, control module MMR lock/unlock API
  • Address Translation APIs for all the R5F cores
  • SOC Software Warm Reset/POR Reset APIs

SysConfig Features

  • SOC driver is integrated with each of the drivers. User need not perform any explicit configuration for this driver

Features NOT Supported

NA

Important Usage Guidelines

  • Most of these APIs are already integrated with SysConfig tool and the generated code does the required call to enable a module, set the required clock and so on. User need to use these APIs in their application only for exceptional scenarios.
Note
The SOC_controlModuleLockMMR API will be ineffective in the case of AM64x SOC, since AM64x is mostly used in conjunction with Linux, and the linux kernel assumes MMRs to be unlocked. This is protected with a #if statement in the SOC driver. Please remove this condition if the SDK is used without linux.
  • All MCU domain resets act as a master reset to the whole device. (MAIN and MCU domains)
  • MAIN domain resets will only reset the MAIN domain.
  • Please refer "Reset" chapter in techical reference manual for more details.

Example Usage

Include the below file to access the APIs

#include <drivers/soc.h>

Get Core Name String

const char *coreName;
DebugP_log("Core name is: %s\r\n", coreName);

Get CPU Clock Frequency

uint64_t cpuClockRate;
cpuClockRate = SOC_getSelfCpuClk();
DebugP_log("CPU Clock Frequency: %u\r\n", cpuClockRate);

API

APIs for SOC Specific Functions

CSL_CORE_ID_R5FSS0_0
#define CSL_CORE_ID_R5FSS0_0
Definition: cslr_soc_defines.h:69
DebugP_log
#define DebugP_log(format,...)
Function to log a string to the enabled console.
Definition: DebugP.h:211
SOC_getSelfCpuClk
uint64_t SOC_getSelfCpuClk(void)
Get the clock frequency in Hz of the CPU on which the driver is running.
SOC_getCoreName
const char * SOC_getCoreName(uint16_t coreId)
Convert a core ID to a user readable name.