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.

SK-AM62A-LP: The DSP frequency changes when the CCS program is loaded.

Part Number: SK-AM62A-LP

Tool/software:

Hi experts,

This is a continuation of the answer below from the original thread.

From 4fa3af8d3f1b3ad653417c19af4bb1c3470be83b Mon Sep 17 00:00:00 2001
From: Anand <s-anand@ti.com>
Date: Wed, 16 Jul 2025 12:19:10 +0530
Subject: [PATCH 1/2] Enabled C7X CPU Clock modification

---
 bootloader_soc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bootloader_soc.c b/bootloader_soc.c
index eaf28f1..8516b55 100644
--- a/bootloader_soc.c
+++ b/bootloader_soc.c
@@ -552,7 +552,7 @@ int32_t Bootloader_socCpuSetClock(uint32_t cpuId, uint32_t cpuHz)
     uint32_t sciclientCpuDevId;
     uint32_t sciclientCpuClkId;
 
-    if((cpuId != CSL_CORE_ID_HSM_M4FSS0_0) && (cpuId != CSL_CORE_ID_C75SS0_0))
+    if((cpuId != CSL_CORE_ID_HSM_M4FSS0_0))
     {
         sciclientCpuDevId = Bootloader_socGetSciclientCpuDevId(cpuId);
         sciclientCpuClkId = Bootloader_socGetSciclientCpuClkId(cpuId);
-- 
2.33.0.windows.2


From de16d9281c30f277355d6b4ff9e10874633dc244 Mon Sep 17 00:00:00 2001
From: Anand <s-anand@ti.com>
Date: Wed, 16 Jul 2025 12:30:51 +0530
Subject: [PATCH 2/2] Updated C7x clock to 1GHz

---
 bootloader_soc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bootloader_soc.c b/bootloader_soc.c
index 8516b55..e943c39 100644
--- a/bootloader_soc.c
+++ b/bootloader_soc.c
@@ -163,7 +163,7 @@ Bootloader_CoreBootInfo gCoreBootInfo[] =
     .tisciProcId    = SCICLIENT_PROC_ID_C7X256V0_C7XV_CORE_0,
     .tisciDevId     = TISCI_DEV_C7X256V0_C7XV_CORE_0,
     .tisciClockId   = TISCI_DEV_C7X256V0_C7XV_CORE_0_C7XV_CLK,
-    .defaultClockHz = (uint32_t)(500*1000000),
+    .defaultClockHz = (uint32_t)(1000*1000000),
     .coreName       = "c7x0-0",
     },
 };
-- 
2.33.0.windows.2

A customer created SBL NULLs for the AM62AxRTOS SDK c7x, operating at 500MHz and 1000MHz, based on the above.
After booting them up and using the CCS profile clock, both clock speeds appeared to be running at 850MHz.

(A 50msec sleep operation was measured at 42041576 cycles, approximately 840.83MHz.)

Q1: Does the profile clock frequency change depending on the CCS load program?

Best regards,
O.H

  • Q1: Does the profile clock frequency change depending on the CCS load program?

    No, load program should not change the clock frequency. It is simply a memory write access to the target while the target is halted. I suppose there could be some actions in the GEL file that could do some target configuration before/after the program is loaded. But it is unlikely that it would be actions like changing the frequency.

    Thanks

    ki

  • Hi ki,

    Below is a comment from a customer.

    ====================

    We're not using a GEL file, so the frequency setting in the c7x bootloader has not been changed.
    Our understanding is that when booting with a bootloader set to 500MHz, we would like the profile clock value to also operate at a 500MHz cycle.
    (The cycles per second vary depending on the frequency set in the bootloader.)
    Have you seen any cases where the profile clock varies depending on the bootloader for each frequency?

    Also, please let us know if there are any errors in this understanding.

    ====================

    Best regards,
    O.H

  • Our understanding is that when booting with a bootloader set to 500MHz, we would like the profile clock value to also operate at a 500MHz cycle.

    That is correct.

    Have you seen any cases where the profile clock varies depending on the bootloader for each frequency?

    The profile clock counts clock cycles. So if the clock frequency changes, that would impact the clock. 

    Back to your original question - I don't know why the clock speed of the CPU would change. I will bring this thread to the attention of the device experts who may have more answers.

    Thanks

    ki

  • Hi O.H,

    Which SDK version are you using, could you try testing this with SDK V11.1

    Best Regards,

    Meet.

  • Hi Ki, Meet,

    Thank you for your reply.

    Now is v10_00_00_14. We asked the customer to share the results of their test with v11.1.

    Best regards,
    O.H

  • Hi Meet,

    Below are comments from customers.
    ========================

    I'm trying to test with mcu_plus_sdk_am62ax_11_01_00_16, but I'm having trouble confirming the frequency. System_Init() doesn't complete.

    The steps I took are as follows:

    1. Applying the frequency change patch and building the bootloader with mcusdkv11
      sbl_null.release.hs_fs.tiimage(created based on this thread) write to emmc.
    2. Successfully booting the c7x at 250MHz (set to 250MHz for testing)
    3. Connecting with CCSv20 - Importing the project in mcusdkv11 (helloworld)
    4. Running after building
    5. Unable to complete PowerClock_init() execution in System_init(void)

    This issue did not occur when booting with the previous version of the bootloader. The startup log displays the follow message.
    Is this related to the issue? 

    "WARNING: Bootloader_rprcImageLoad:233: Software version mismatch, Installer version 0xb010010, AppImage version 0x1 Some tests have failed!!"

    Starting NULL Bootloader ...
    
    SYSFW Firmware Version 11.1.5--v11.01.05 (Fancy Rat)
    SYSFW Firmware revision 0xb
    SYSFW ABI revision 4.0
    
    INFO: Bootloader_runCpu:137: CPU mcu-r5f is initialized to 800000000 Hz !!!
    INFO: Bootloader_runCpu:137: CPU a530-0 is initialized to 1400000000 Hz !!!
    INFO: Bootloader_runCpu:137: CPU a530-1 is initialized to 1400000000 Hz !!!
    INFO: Bootloader_runCpu:137: CPU a531-0 is initialized to 1400000000 Hz !!!
    INFO: Bootloader_runCpu:137: CPU a531-1 is initialized to 1400000000 Hz !!!
    INFO: Bootloader_runCpu:137: CPU c7x0-0 is initialized to 250000000 Hz !!!
    WARNING: Bootloader_rprcImageLoad:233: Software version mismatch, Installer version 0xb010010, AppImage version 0x1
    Some tests have failed!!
    INFO: Bootloader_JumpSelfCpu:157: All done, jumping self ...
    

    ========================

    Best regards,
    O.H

  • Hi O.H,
    Can you please recompile all the binaries and reflash the bootloader?

    Thanks,
    Shreyansh

  • Hi Shreyansh,

    Can you please recompile all the binaries and reflash the bootloader?

    Do you mean using the command "make -s all PROFILE=debug"?

    Best regards,
    O.H

  • Yes, but first do a clean "make -s clean", and then build.

    Thanks,
    Shreyansh

  • I understood. I will check with the customer.

    Best regards,
    O.H

  • Hi Shreyansh,

    The above "sbl_null.release.hs_fs.tiimage" was the first build of version 11 using "make -sj4 all", so the customer believes it is equivalent to the one rebuilt using clean->make. He said he would check it with debug just in case.

    Best regrads,
    O.H

  • Hi Shreyansh,

    The customer tried rewriting the bootloader with the latest mcuSDKv11.01 and running make -s all PROFILE=debug, but the result did not change. When running c7x helloworld, it gets stuck waiting for a message in PowerClock_init() in void System_init(void), resulting in NG.

    Best regards,
    O.H

  • Hi O.H,
    Are you using emmc bootmode? If yes, Can you please try the following change?

    1.  comment out System_deinit in line 210 and line 356 respectively of mcu_plus_sdk\am62a\examples\drivers\boot\sbl_emmc_multistage(both stage 1 and stage 2)

    2. clean project and rebuild

    Thanks,
    Shreyansh

  • Hi Shreyansh,

    Thank you for your reply.

    1.  comment out System_deinit in line 210 and line 356 respectively of mcu_plus_sdk\am62a\examples\drivers\boot\sbl_emmc_multistage(both stage 1 and stage 2)

    Is it "System_deinit()" on lines 216 and 285? The line numbers don't match, so I'm just checking to be sure.

    "WARNING: Bootloader_rprcImageLoad:233: Software version mismatch, Installer version 0xb010010, AppImage version 0x1 Some tests have failed!!"

    My customer and I are using the same software, but the above WARNIG message was not output in my environment. In my environment, I boot from QSPI and check the frequency (clock count) change. I believe the appearance of this WARNIG message is the cause of the problem.

    Best regards,
    O.H

  • Hi O.H,

    My customer and I are using the same software, but the above WARNIG message was not output in my environment. In my environment, I boot from QSPI and check the frequency (clock count) change. I believe the appearance of this WARNIG message is the cause of the problem.

    The issue is currently only seen with EMMC and SD boot mode. It will be fixed in the upcoming release.

    Is it "System_deinit()" on lines 216 and 285? The line numbers don't match, so I'm just checking to be sure.

    Sorry, my bad. Yes, line 285 in stage 2 and 216 in stage 1.

    Thanks,

    Shreyansh

  • Hi Shreyansh,

    Thank you for your reply.

    Below is a customer comment.

    ============
    Based on your advice, I was able to change the startup frequency and perform measurements.
    Thank you.

    I have one additional question. I tried running our measurement app at 250MHz and 1000MHz. The results showed that the measured execution clocks for the same process were different (1000MHz was higher than 250MHz). My assumption was that even if the startup frequency was different, the measured clock speed would be the same for the same process.
    Do you have any ideas why this might be different?
    ============

    Best regards,
    O.H

  • Hi O.H,

    have one additional question. I tried running our measurement app at 250MHz and 1000MHz. The results showed that the measured execution clocks for the same process were different (1000MHz was higher than 250MHz). My assumption was that even if the startup frequency was different, the measured clock speed would be the same for the same process.
    Do you have any ideas why this might be different?

    Can you share more detail about this measurement app? How and what are they measuring? I would suggest creating a new E2E for the issue.

    Thanks,
    Shreyansh

  • Hi Shreyansh,

    Below is additional information from a customer.
    ==================

    The executable binary we have been using up until now is AM62ASDK (based on am62ax_mcu_plus_sdk_10_00_00_14). When we ran this binary on AM62D-EVM, the values ​​were close to the measurement results with SK-AM62A-LP. The value for 1000MHz operation is higher than the previous measurement value of 850MHz operation, but is within an acceptable range.
    Therefore, the current situation is that the measurement values ​​of the measurement app created based on AM62DSDK (freertos_sdk_am62dx_11_01_00_16) are higher.

    We are currently checking this to see if there are any configuration errors or anything like that.
    We will consider whether we can share the project itself, so please wait.

    =============

    Best reagrds,
    O.H

  • Hi O.H,
    Is the customer measuring the execution time of a program? If so, which timer are they using?

    Thanks,

    Shreyansh

  • Hi Shreyansh,

    Can you share more detail about this measurement app? How and what are they measuring? I would suggest creating a new E2E for the issue.

    Sorry, I overlooked your point. Since the thread title and question have changed, I will create a new thread with the revised information below.

    Thank you for your support.

    Best regards,
    O.H