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.

关于AM335X StarterWare主频设置问题的求助

Other Parts Discussed in Thread: TPS65217

求助论坛各位大神,那位能告诉我AM3358的StaeterWare开发包中想要设置工作频率为1GHz是修改那个函数代码,求助啊,找半天没找到,谢谢了

  • 你是想问load.out文件这种调试的时候怎么修改?还是想问直接运行image文件的时候?

    前者的话修改GEL文件,后者的话修改bootloader

  • load .out文件,我想要在1GHz频率下测试算法的速度,能不能说具体点???

  • 这种情况下,你的ARM核初始化,DDR的初始化,都是在GEL文件中完成的,所以你需要要设置主频为1G,也是需要在这个GEL文件中修改的。另外可否提供一下,你使用的AM335x的开发板类型?或者是芯片的丝印Part No.

    我们不是所有的开发板都是支持1GHz的,GPEVM,StarterKit, BB最高只是到720MHz。BBB能跑在1GHz,下面就以BBB的GEL为例,简述一下,如果是你自己做的板子,也是修改应的地方:

    先找到这个函数,这里就是做初始化的地方:红色的部分注释掉原来的部分,并增加ARM_OPPNitro_Config()函数,用来配置1GHz频率。

    hotmenu AM335x_BeagleBlack_Initialization()
    {
    GEL_TextOut("**** AM335x BeagleBlack Initialization is in progress .......... \n","Output",1,1,1);
    ARM_OPPNitro_Config(); // ARM_OPP100_Config();
    DDR3_EMIF_Config();
    GEL_TextOut("**** AM335x BeagleBlack Initialization is Done ****************** \n\n\n","Output",1,1,1);
    }

    然后在下面搜索ARM_OPP100_Config函数的实现,复制并修改成为ARM_OPPNitro_Config函数:

    hotmenu ARM_OPPNitro_Config() //ARM_OPP100_Config()
    {
    GEL_TextOut("**** AM335x ALL PLL Config for OPP == OPP100 is in progress ......... \n","Output",1,1,1);
    GetInputClockFrequency();
    if(CLKIN==24)
    {
    MPU_PLL_Config( CLKIN, 23, 1000, 1);//MPU_PLL_Config( CLKIN, 23, 500, 1);
    CORE_PLL_Config( CLKIN, 23, 1000, 10, 8, 4);
    DDR_PLL_Config( CLKIN, 23, 400, 1);
    PER_PLL_Config( CLKIN, 23, 960, 5);
    DISP_PLL_Config( CLKIN, 23, 48, 1);
    GEL_TextOut("**** AM335x ALL ADPLL Config for OPP == OPP100 is Done ......... \n","Output",1,1,1);
    }
    else
    GEL_TextOut("**** AM335x PLL Config failed!! Check SYSBOOT[15:14] for proper input freq config \n","Output",1,1,1);
    }

    特别需要注意的是,如果设置为1GHz的时候,VDD_MPU的电压必须要满足datasheet的范围1.325V +/- 4%。

    最后附上原始的BBB GEL文件。


    AM335X_beagleboneblack.gel
  • 我用的是米尔科技的MYD-AM3358开发板,另外问一下,starterware提供的gel文件有五个,请问用哪个比较好?五个gel文件以附件发送

    gel.zip
  • 这5个分别对应的是TI官方发布的五种开发板。

    开发板所使用的DDR不同,有的是DDR2,有的是DDR3,而且layout也有差别,所以不同的开发板都需要与之对应的GEL文件。

    建议你看一下这个:浅析 GEL 文件在 ARM 初始化时的作用和修改http://www.deyisupport.com/files/m/sitara_arm/11904.aspx

    我不确定米尔科技的开发板是自己做的还是照着TI原厂的EVM板copy的,需要咨询一下米尔科技的相关人员,如果是自己做的layout,那肯定是有自己的一个GEL文件,这5个都不适用。我们的开发板资料可以在这里找到:http://processors.wiki.ti.com/index.php/AM335x_Resource_Guide(English/%E4%B8%AD%E6%96%87)

    硬件开发资源-评估板中

  • 另外插一句,你能看到主芯片上面的丝印料号吗?比如类似AM3358BZCZ80之类的。只有当这个料号带有BZCZ100的标识时,他才能跑到1GHz。否则的话,其他的只能跑到对应的频率比如300M, 600M, 800M, 720M。那么用这块评估板就干不了你想做的事情了,需要换块支持1GHz的芯片或者评估板。

  • 主板的丝印号码是AM3358BZZCZA100

  • 这是OK的,可以跑在1GHz,找米尔要到GEL文件,做以上修改后,注意调整VDD_MPU的供电电压为1.325V后,方可测试。供电电压这里,一定要注意设对了。

  • 谢谢您了,对了,我还有一个问题想要请教一下,在starterware提供的mmu.c文件中有一个函数:MMUEnable,里面有一个CP15MMUEnable(); 跑到这里程序就跑飞了,而且我找了整个StarterWare开发包都没有找到CP15MMUEnable();这个函数的源代码,求指导,附件是mmu.c的源代码

    /**
    * \brief Updates the Translation Table Base with the address of Master Page
    * Table and enables MMU.
    *
    * \param masterPt Master Page Table Base Address
    *
    * \return None.
    *
    * \Note Only TTB0 is used for page table walking.
    **/
    void MMUEnable(unsigned int *masterPt)
    {
    /* Set TTB0 register */
    CP15Ttb0Set((unsigned int)masterPt);

    /* Enable MMU */

    CP15MMUEnable();
    }

  • 这资料很不错,多谢

  • Hi Steven Liu,

    我想 processor SDK RTOS上 BBB跑1GHz,e2e 上问的问题在这儿, //e2e.ti.com/.../

    从evm板子上 port pm_management_main.c到BBB, 但是/pdk_am335x_1_0_9/packages/ti/drv/pm/src/pmhal/prcm/ 里缺了 pmhal_tps65217.c 和 pmhal_tps65217.h,有什么其他办法吗?

    另外,如果能让 MMCSD bootloader (MLO+app) 使 BBB跑1GHz,那样最好。看了前面的帖子内容,好像修改 bootloader 和 pm_management 是不同的。

    Please advise, thanks in advance,

    Mike