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.

Changing OPP - How to set VDD_MPU?

Other Parts Discussed in Thread: AM3359

Hey,

we are evaluating the AM3359 device on an ICE Evalboard.

In our application there is no need of reducing power consumption so we want to use the maximum MPU frequency of 720 MHz. I saw that for debugging issues the OPP can be selected in the GEL file, which is setting the PLL Registers of the AM3359.

Changing to TURBO mode in the GEL file works fine, and brings more performance although i did not access the PMIC Registers and the VDD_MPU is still 1.09 V (meassured). I have some question about this:

1. TURBO mode seems to work with the VDD_MPU of OPP100, how can this be?
2. Are there APIs to change the VDD_MPU? Which way doing this is recommended?
3. Can the OPP be changed a runtime? If yes: Are there APIs which to this?

Regards,
Robin

PS: Heres an unanswered post with one of my questions http://e2e.ti.com/support/arm/sitara_arm/f/791/t/207159.aspx

  • Hello Robin,

    Question 1: I have not ever tested running the board at 720 MHz @ 1.1 V, but I suppose it wouldn't be impossible that the ARM core would not lock up under such conditions--although, it certainly would be very likely to stop functioning.  In the past, I have done some tests with OPP on other TI cortex-a8 devices, and found that individual ICs can tolerate voltages a bit below what we recommend, while some will freeze up instantly.  The OPP is what we establish so that we know all chips will function properly under those set conditions.

    Questions 2 and 3: I think cpufreq could help you out here: http://processors.wiki.ti.com/index.php/AM335x_Linux_Power_Management_User_Guide#cpufreq.  It can change both the frequency and the voltage of the ARM core during runtime.  There are examples on the wiki that show how this can be done.  Also, if you need more customization for your voltages, you could always try using something like i2c-tools (http://www.lm-sensors.org/wiki/I2CTools) to manually adjust the PMIC while linux is running, although you should take care when doing so.

    Also, you may want to check out our Power Management Training material (http://processors.wiki.ti.com/index.php/Sitara_Linux_Training:_Power_Management).  You may find some info that is helpful to you.

    Regards,

    Josh

  • Hello Josh,

    thank you for the answer. I changed the core frequency with the GEL File for ICE-Board delivered with CCS5. After excecuting "ARM_Turbo_Config" the Output is:

    CortxA8: Output: ************************************************************************
    CortxA8: Output: **** NOTE: VDD_MPU must be set to 1.26V for Turbo mode to work!!! ****
    CortxA8: Output: ************************************************************************
    CortxA8: Output: **** AM335x ALL PLL Config for OPP == Turbo is in progress .........
    CortxA8: Output: Input Clock Read from SYSBOOT[15:14]: 24MHz
    CortxA8: Output: **** Going to Bypass...
    CortxA8: Output: **** Bypassed, changing values...
    CortxA8: Output: **** Locking ARM PLL
    CortxA8: Output: **** Core Bypassed
    CortxA8: Output: **** Now locking Core...
    CortxA8: Output: **** Core locked
    CortxA8: Output: **** DDR DPLL Bypassed
    CortxA8: Output: **** DDR DPLL Locked
    CortxA8: Output: **** PER DPLL Bypassed
    CortxA8: Output: **** PER DPLL Locked
    CortxA8: Output: **** DISP PLL Config is in progress ..........
    CortxA8: Output: **** DISP PLL Config is DONE ..........
    CortxA8: Output: **** AM335x ALL PLL Config for OPP == Turbo is done .........

    So I guess the Core locked with 720 MHz??
    I did not get any strange behavior like freezing.

    The answers you gave were all based on running a Linux kernel. My application for the benchmarks is only a small project without any operating system, to get an impression of the performance of the ARM Cortex-A8 based Controller. For the real Application we are using SYS/BIOS and not Linux.

    So are there any APIs for setting the PMIC, that are NOT made for Linux?

    Regards.

  • Hello Robin,

    Thank you for the additional details.

    It sounds like StarterWare would be ideal for what you are trying to accomplish; it is a software package that contains no-OS platform support for AM335x (as well as many other TI processors).  Here is some information to get you started:

    Quick Start Guide

    Getting Started Guide

    User Guide

    Download Link

    Furthermore, it does look like your ARM core is running at 720 MHz.  I think it's definitely possible that you could see normal behavior under such conditions, although I would definitely not recommend using them as standard in your system, as we heavily test the parts to ensure that they all will run well at each OPP.

    Josh