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.

AM620-Q1: MCU Only Mode Checking

Part Number: AM620-Q1


Tool/software:

Hi, Dear Expert

Ref this page.

https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/10_01_10_04/exports/docs/linux/Foundational_Components/Power_Management/pm_low_power_modes.html#deep-sleep

-> 3.3.5.5. MCU Only

This is Feedback from customer, and I post this thread for double checking

Customer found AM620x can enter MCU only mode, but they also found MCU also go to suspend, I feel confuse, here are few question,

(1) Even AM620x goes to MCU only mode, I think MCUSS (M4 Core) should keep working without suspend, isn't?

(2) The command as below, does it mean M4 core can use SW API wakeup A53 main doamin (Linux)? so far we are not support, do we have release schedule?

echo enabled > /sys/bus/platform/devices/5000000.m4fss/power/wakeup

(3) Do we have any way to check MCUSS (M4 Core) application "keep running" in MCU only mode?

(4) I saw some message from MCU uart when AM62 exit from MCU only mode.

I guess this log should be an evidence to show MCUSS keep running without suspend, isn't?

If the answer is yes, should we add some special function (or API) to handle MCU only mode for our own program?

[IPC RPMSG ECHO] Next MCU mode is 1
[IPC RPMSG ECHO] Suspend request to MCU-only mode received
[IPC RPMSG ECHO] Press a single key on this terminal to resume the kernel from MCU only mode

(5) I feel very curious, When AM620x wake up from MCU only mode, Is it need to backup/recover "resource table" from DDR?

(6) If I want to replace M4 firmware in linux, the most simple way should be like below.

root@am62xx-evm:/lib/firmware# ln -sf /usr/lib/firmware/ti-ipc/am62xx/my_m4_app.out am62-mcu-m4f0_0-fw
 

Basically, *.xer5f and  *.out almost the same binary, we can create soft link to *.out which the file was builded from CCS, is it correct?

Thank You Very Much

Gibbs 

  • Hi Gibbs,

    (1) Even AM620x goes to MCU only mode, I think MCUSS (M4 Core) should keep working without suspend, isn't?

    Please read section 6.2.4 Power Modes in the AM62x TRM: https://www.ti.com/lit/ug/spruiv7b/spruiv7b.pdf

    The MCU Power Domain and PLL remains on during MCU Only mode. This allows the M4F core remain online.

    (2) The command as below, does it mean M4 core can use SW API wakeup A53 main doamin (Linux)? so far we are not support, do we have release schedule?

    Please read the statement directly above the wakeup enable statement.

    The old SDKs use

     

    echo enabled > /sys/bus/platform/devices/5000000.m4fss/power/wakeup

    which doesn't work on SDK 10.1. The new SDKs will use:

    echo 100 > /sys/devices/system/cpu/cpu0/power/pm_qos_resume_latency_us

    This command will tell the DM firmware that the next suspend state will be MCU Only mode.

    (3) Do we have any way to check MCUSS (M4 Core) application "keep running" in MCU only mode?

    The M4F MCU IPC firmware will do this for you.

    If you want more, then the most simple way is to add debug statements to the MCU M4F Firmware to indicate that its still running. In all the other Low power modes in SDK 10.1, the MCU core will be turned off so these print statements would stop. 

    For the other queries, I'll discuss with the IPC expert and respond back to you.

    Best Regards,

    Anshu

  • Hi Gibbs,

    I guess this log should be an evidence to show MCUSS keep running without suspend, isn't?

    Yes. You can look at the source code directly: https://github.com/TexasInstruments/mcupsdk-core-k3/blob/k3_main/examples/drivers/ipc/ipc_rpmsg_echo_linux/ipc_rpmsg_echo.c

    The source code shows that there are messages printed when the device suspends and then also resumes for MCU Only mode:

    ####MCU IPC Wakeup
    [IPC RPMSG ECHO] Next MCU mode is 1
    [IPC RPMSG ECHO] Suspend request to MCU-only mode received 
    [IPC RPMSG ECHO] Press a single key on this terminal to resume the kernel from MCU only mode 
    [IPC RPMSG ECHO] Main domain resumed due to MCU UART 
    
    ####Other wakeup source
    [IPC RPMSG ECHO] Next MCU mode is 1
    [IPC RPMSG ECHO] Suspend request to MCU-only mode received 
    [IPC RPMSG ECHO] Press a single key on this terminal to resume the kernel from MCU only mode 
    [IPC RPMSG ECHO] Main domain resumed from a different wakeup source 

    The print statements are different for Deep Sleep:

    [IPC RPMSG ECHO] Next MCU mode is 0
    ERROR: RPMessage_recv:367: [IPC RPMSG] Message recv @ 13 local end point failed due to invali!
    ERROR: RPMessage_recv:367: [IPC RPMSG] Message recv @ 14 local end point failed due to invali!
    [IPC RPMSG ECHO] Closing all drivers and going to WFI ... !!!
    [IPC RPMSG ECHO] Version: REL.MCUSDK.K3.10.01.00.10+ (Nov 14 2024 14:02:24):  
    [IPC RPMSG ECHO] Remote Core waiting for messages at end point 13 ... !!!
    [IPC RPMSG ECHO] Remote Core waiting for messages at end point 14 ... !!!
    

    (5) I feel very curious, When AM620x wake up from MCU only mode, Is it need to backup/recover "resource table" from DDR?

    No this is not required. The resource table is needed upon initial boot. Since a low power mode is only executed after inital boot, it doesn't need to be made again upon resuming from a low power mode.

    Multicore Academy on Resource Table: dev.ti.com/.../node

    (6) If I want to replace M4 firmware in linux, the most simple way should be like below.

    Please refer to the Linux and Multicore Academies Sections: