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.

AM3356: Inquiry about flexible changing CPU speed

Part Number: AM3356

Hi Experts,

Customer is developing their system with AM3356BZCZA80(Linux SDK version:06_03_00_106)/TPS65910AA1RSLR. In their current system, Cortex-A8 is working at 600MHz/VDD_CORE=1.1V. Recently, their End-customer is requesting to reduce bootup/startup time. Therefore, customer is considering they would like to operate at 800HMz from powerup. After bootup/startup, customer is also considering that the operating clock frequency is changed to 600MHz dynamically, because of reducing power-consumption.

According to Datasheet " Table 5-7. VDD_MPU OPPs for ZCZ Package". If Cortex-A8 is operating at 800MHz, customer has to supply not "VDD_MPU = 1.1V" but "VDD_MPU = 1.26V". it means, it seems that customer needs to control PMIC.

Customer is asking if TI Linux SDK is supporting the above control(CPU speed/VDD_MPU voltage)? Is it possible to change CPU speed/VDD_MPU voltage dynamically? Can I have your Expert's advice/comments on this, please?

If there is any solution which reduces bootup/startup time, could you share it, please?

Best regards,

Miyazaki

  • Hi Miyazaki-san,

    Your query has been assigned to the expert. Due to US holidays, the response will be delayed.

  • Hi Miyazaki-san,
    #1. max speed auto-detection in SPL
    On AM335x, SPL sets the max speed supported by the device based on reading CM EFUSE_SMA register @44E107Fc.
    An example reading @u-boot prompt on 1GHz part is listed below for your reference:

    => md 0x44E107Fc 1
    44e107fc: 00013c2f

    #2. PMIC configuration in SPL
    PMIC is configured in SPL board file "/board/ti/am335x/board.c" based on the max speed detected, specifically in function

    void scale_vcores_generic(int freq){
    ...
    	/*
    	 * The GP EVM, IDK and EVM SK use a TPS65910 PMIC.  For all
    	 * MPU frequencies we support we use a CORE voltage of
    	 * 1.10V.  For MPU voltage we need to switch based on
    	 * the frequency we are running at.
    	 */
    ...
    }

    #3. Linux DVFS
    When Dynamic Voltage and Frequency Scaling (DVFS) is enabled, Linux kernel dynamically scale the voltage and frequency based on need,
    user preference, or other factors. Please refer the following link for details on DVFS framework.
    software-dl.ti.com/.../Power_Management.html
    I captured a sample log for DVFS on AM335x GP EVM with 1GHz part, and uploaded it in attachment for your reference

    Best,

    -Hong

    7853.am3_gp_6.3_dvfs.txt
    devmem2 0x44e107fc
    /dev/mem opened.
    Memory mapped at address 0xb6efe000.
    Read at address  0x44E107FC (0xb6efe7fc): 0x00013C2F
    root@am335x-hs-evm:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available__frequencies
    300000 600000 720000 800000 1000000 
    root@am335x-hs-evm:~# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
    600000
    root@am335x-hs-evm:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
    600000
    root@am335x-hs-evm:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available__governors
    conservative userspace powersave ondemand performance 
    root@am335x-hs-evm:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
    cpufreq-dt
    root@am335x-hs-evm:~# cat /sys/devices/system/cpu/cpu0/cpufreq/stats/trans_table 
       From  :    To
             :    300000    600000    720000    800000   1000000 
       300000:         0       129        14        15        59 
       600000:       126         0         9         7        44 
       720000:        20         7         0         4        21 
       800000:        22         9         2         0        29 
      1000000:        49        42        27        36         0 
    root@am335x-hs-evm:~# cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_statte
    300000 79303
    600000 610
    720000 131
    800000 186
    1000000 3556
    root@am335x-hs-evm:~#