AM62 devices fall under the K3 SoC family and employ the concept of centralized management for Power, Resources, and Security, to mitigate the challenges of traditional system control approaches. System Firmware (hereafter referred to as SYSFW) is the collective name for the TI Foundational Security (TIFS) and Device Management firmware (DM firmware). In this concept, a processing unit (an M4F for example) can request the DM firmware to control power, grant resources, or provide secure services. This is done via a special messaging channel called secure proxy, where all messages follow a proprietary protocol called TISCI (TI System Controller Interface). For more information on the TISCI protocol, refer to the TISCI Public Documentation.
The Wake-Up (WKUP) R5 core or the DM R5 core is responsible for running the DM firmware, which is responsible for resource management and power management.
DM firmware is a culmination of the following components:
DM, specifically Sciclient Direct, can be run in Polling Mode (Default) as well as Interrupt Mode. For each PM or RM messages that DM processes, it checks whether further processing by TIFS is required. If it is required then DM forwards such messages to TIFS and keep polling for the response from TIFS. Instead of polling, DM can check for the response using interrupts. To switch the mode to Interrupt Mode, follow the steps below -
am62ax
.r5f.ti-arm-clang.During low power mode, the DM R5 will suspend its sciclient services, stop the scheduler, turn off the main domain and go to WFI for power saving. If the application that is running along with DM requires something to be saved before going to low power mode and needs to be restored during resume, it can use the Sciclient_initLPMSusResHook function to register suspend and resume hooks. One suspend hook and one resume hook can be passed to this function. These hooks will get invoked during low power mode entry and exit.
During low power mode, DDR is kept in self refresh, which means DM R5 cannot run from DDR. As a result, DM R5 run from the TCM memory instead. However, if users want to use the TCM memory for a user application, low power mode can be disabled, and then the TCM memory will be available for the user application. To do so, follow the steps below:
AM62AX
.mk to '-CONFIG_LPM_DM=n'.am62ax
.r5f.ti-arm-clang'.am62ax
.r5f.ti-arm-clang.am62ax
.r5f.ti-arm-clang.GROUP{ .dm_stub_text : { _privileged_code_begin = .; _text_secure_start = .; dm_stub*(.text) } palign(8) .dm_stub_data : { _privileged_data_begin = .; dm_stub*(.data) _privileged_data_end = .; } palign(8) .dm_stub_bss : { _start_bss = .; dm_stub*(.bss) _end_bss = .; } palign(8) .dm_stub_rodata : { _start_rodata = .; dm_stub*(.rodata) _end_rodata = .; } palign(8) .dm_stub_stack : { _start_stack = .; . += __DM_STUB_STACK_SIZE; _end_stack = .; } palign(8) } load = R5F_TCMB, run = R5F_TCMA