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.

DRA712: Linux Frequency settings

Part Number: DRA712

Hello.

We use DRA712 SoC in our project. We need to configure the linux u-boot and the kernel such a way, that the frequency of modules does not exceed limits for this SoC.

DEVICE SPEED

MAXIMUM FREQUENCY (MHz)

MPU

600

DSP

400

IPU

212.8

IVA

532

GPU

212.8

L3

266

DDR3 / DDR3L

532 (DDR-1066)

 

What changes should be made to get these frequencies are correctly set.

Thank you.

  • Hi Shutov,

    Can you tell us the SDK version you are planning to use?

    - Keerthy

  • Hi Keerthy,

    We are using "ti-processor-sdk-linux-automotive-dra7xx-evm-6.00.00.03".

  • Hi Mikhail,



    MPU


    600


    This was already taken care in previous e2e - https://e2e.ti.com/support/processors/f/791/p/914335/3381373#3381373


    DSP


    400


    1) Make sure CONFIG_DRA7_DSPEVE_OPP_NOM is enabled and CONFIG_DRA7_DSPEVE_OPP_HIGH is disabled in u-boot config

    2) Make the below changes in u-boot code and try

    diff --git a/arch/arm/mach-omap2/omap5/fdt.c b/arch/arm/mach-omap2/omap5/fdt.c
    index 96d488f43f..2a8fc84c68 100644
    --- a/arch/arm/mach-omap2/omap5/fdt.c
    +++ b/arch/arm/mach-omap2/omap5/fdt.c
    @@ -183,7 +183,7 @@ u32 dra76_opp_dsp_clk_rates[NUM_OPPS][OPP_DSP_CLK_NUM] = {
     /* DSPEVE voltage domain */
     u32 dra7_opp_dsp_clk_rates[NUM_OPPS][OPP_DSP_CLK_NUM] = {
            {}, /*OPP_LOW */
    -       {600000000, 600000000, 400000000}, /* OPP_NOM */
    +       {400000000, 400000000, 266666667}, /* OPP_NOM */
            {700000000, 700000000, 466666667}, /* OPP_OD */
            {750000000, 750000000, 500000000}, /* OPP_HIGH */
            {}, /* OPP_PLUS */


    IPU


    212.8


    This is the default.


    IVA


    532


    For this make sure CONFIG_DRA7_IVA_OPP_HIGH is enabled in u-boot config.

    GPU

    212.8


    1) Make sure CONFIG_DRA7_GPU_OPP_NOM is enabled and other CONFIG_DRA7_GPU_OPP_OD is disabled in u-boot config.

    2) Make the below changes in u-boot code and try

    diff --git a/arch/arm/mach-omap2/omap5/fdt.c b/arch/arm/mach-omap2/omap5/fdt.c
    index 96d488f43f..28c387adb7 100644
    --- a/arch/arm/mach-omap2/omap5/fdt.c
    +++ b/arch/arm/mach-omap2/omap5/fdt.c
    @@ -201,7 +201,7 @@ u32 dra7_opp_iva_clk_rates[NUM_OPPS][OPP_IVA_CLK_NUM] = {
     /* GPU voltage domain */
     u32 dra7_opp_gpu_clk_rates[NUM_OPPS][OPP_GPU_CLK_NUM] = {
            {}, /* OPP_LOW */
    -       {1277000000, 425666667}, /* OPP_NOM */
    +       {638500000, 212833333}, /* OPP_NOM */
            {1000000000, 500000000}, /* OPP_OD */
            {1064000000, 532000000}, /* OPP_HIGH */
            {1330000000, 665000000}, /* OPP_PLUS */


    L3


    266


     This is the default

    DDR3 / DDR3L


    532 (DDR-1066)


    Make the below changes to u-boot code and test

    diff --git a/arch/arm/mach-omap2/omap5/hw_data.c b/arch/arm/mach-omap2/omap5/hw_data.c
    index e6bdcb44c6..7eff08c268 100644
    --- a/arch/arm/mach-omap2/omap5/hw_data.c
    +++ b/arch/arm/mach-omap2/omap5/hw_data.c
    @@ -272,7 +272,7 @@ struct dplls dra72x_dplls = {
            .abe = abe_dpll_params_sysclk2_361267khz,
            .iva = iva_dpll_params_2330mhz_dra7xx,
            .usb = usb_dpll_params_1920mhz,
    -       .ddr =  ddr_dpll_params_2664mhz,
    +       .ddr =  ddr_dpll_params_2128mhz,
            .gmac = gmac_dpll_params_2000mhz,
     };
    



    After doing these changes, could you share the output of "omapconf show opp" command?

  • DDR3 setting changes are also updated in the table.