This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] AM64x/AM243 : How to enable SYSFW trace on AM64x/AM243 devices

Part Number: AM6412

Tool/software:

In AM64x/AM243 devices, we are using DMSC  core (M3 core) for doing Resets, individual core Reset, SOC Reset, Core or IP frequency settings and resource allocation and security operations .

We need to use SCI client configurations for resource allocations  in routing gpio interrupts, routing dma interrupts and routing compare and time synch interrupts to destination cores.

In these applications, if users give the wrong parameters like src id , src index , dst id an dst host  index parameters to the SCI client, the users mostly get the SCI client error.

In other applications, like if a firewall is opened in a particular memory location or peripherals and the firewall is configured to be accessible by only a few cores. 

In this case accessing other than read permissible cores create an exception and  the same exception will be routed to the DMSC core.

To debug these issues, we really needed to enable DM log since DMSC is a Black box.

So, here I am trying to explain how to enable DMSC log's  on AM64X , and mostly it seems the same for other AM6x and AM243 devices.

Actually, in AM64X/AM243X  devices DM operations and security operations will do by dedicated core and it is done by M3 core. 

In AM62X, DM core is R5F core and the security core is M4F. Please look at TRM for other AM6X devices for DM and Security cores.

  • In this example, I am explaining DM log enable for AM64X and the procedure is the same for other devices.

    1. DM logs will print on UART peripheral. So, we need to enable UART peripheral in Application  Please look at the SCI documentation here based on the SOC we need to enable a particular UART. For the AM64X, we need to enable UART 1 and enable UART 1 in your Application and compile it.

    https://software-dl.ti.com/tisci/esd/latest/4_trace/trace.html?highlight=trace%20layer#trace-memory-buffer-location

    2. To print DMSC logs , users need to enable a macro which is available in the file below.

    define the macro as below.

    3. The above file is available in SYSFW files . So, we need to compile new sysfw. 

       For that, we need to give the command as below. 

    4. Next, the new sysfw bin is ready and this sysfw bin is need to be flashed by the SBL.

    So, after compiling the sysfw bin, we need to compile SBL. Here, users can use any SBL. It may be null or sbl_ospi based on user application. 

    5. Flash SBL . Here make sure that , the updated SBL bin should be flashed on SOC .

    copy and paste updated SBL image file to sbl_prebuilt images folder .

    C:\ti\mcu_plus_sdk_am64x_09_00_00_35\tools\boot\sbl_prebuilt\am64x-evm

    6. Next, load Application from CCS

    7. On CCS,  enables the UART 1 console with the settings below. 

    Here COM port number will be different for every user .

    8. After printing data on the console, you can just copy and paste it into the .txt file. 

    Usually, sysfw log will be in format below .

    SYSFW_log.txt
    FWL Bit  0x1
                Exception addr  0x45B01000
                                          FWL Exception  0x1002300
                                                                   0x60000
                                                                           0x2800000
                                                                                     0x0
                                                                                         0x801000
                                                                                                  0x1
    
    
    
    
    
    
    
    

    9. SYSFW logs can't be readable, so in MCU+SDK there are parser scripts to convert these logs to user readability.

    For that, we need to give the command below.