[U-Boot-Users] How to change MPU frequency in U-Boot?

phAntOm yAng dalalilala at hellokitty.com
Tue Jun 13 09:46:15 CEST 2006


Dear all:

Now, I'm working on OMAP5912OSK with U-Boot 1.1.4-gb1d71358-dirty.

The message of print_cpuinfo() is:
CPU:   OMAP1611b at 96.0 MHz (DPLL1=96.0 MHz)

But OMAP5912OSK should work on 192MHz.
How to let OMAP5912 work on 192MHz during U-Boot phase?

I found three reference, but these seem like no direct relationship.

1)OMAP5912OSK Board Support Library
~ti\boards\osk5912\lib\osk5912bsl\osk5912.c
/* -------------------------------------------------------------- *
 *  Clocking Parameters after initialization                      *
 *      DPLL freq:  96 MHz                 192 MHz                *
 *      Clock mode: Fully Sync             Scalable Sync          *
 *      ARM freq:   96 MHz                 192 MHz                *
 *      DSP freq:   96 MHz                 192 MHz                *
 *      DSPMMU freq:96 MHz                 192 MHz                *
 *      TC freq:    96 MHz                 96  MHz                *
 *      LCD freq:   24 MHz                 24  MHz                *
 *      PER freq:   24 MHz                 24  MHz                *
 * -------------------------------------------------------------- */

2)Linux kernel 2.6.14 include file
linux/arch/arm/mach-omap1/clock.h

/*---------------------------------------------------------------
 * Omap1 MPU rate table
 *---------------------------------------------------------------*/
static struct mpu_rate rate_table[] = {
/* MPU MHz, xtal MHz, dpll1 MHz, CKCTL, DPLL_CTL
 * NOTE: Comment order here is different from bits in CKCTL value:
 * armdiv, dspdiv, dspmmu, tcdiv, perdiv, lcddiv
 */
#if defined(CONFIG_OMAP_ARM_192MHZ)
{ 192000000, 19200000, 192000000, 0x050f, 0x2510 }, /* 1/1/2/2/8/8 */
{ 192000000, 12000000, 192000000, 0x050f, 0x2810 }, /* 1/1/2/2/8/8 */
{  96000000, 12000000, 192000000, 0x055f, 0x2810 }, /* 2/2/2/2/8/8 */
{  48000000, 12000000, 192000000, 0x0baf, 0x2810 }, /* 4/4/4/8/8/8 */
{  24000000, 12000000, 192000000, 0x0fff, 0x2810 }, /* 8/8/8/8/8/8 */
#endif
#if defined(CONFIG_OMAP_ARM_168MHZ)
{ 168000000, 12000000, 168000000, 0x010f, 0x2710 }, /* 1/1/1/2/8/8 */
#endif
#if defined(CONFIG_OMAP_ARM_120MHZ)
{ 120000000, 12000000, 120000000, 0x010a, 0x2510 }, /* 1/1/1/2/4/4 */
#endif
#if defined(CONFIG_OMAP_ARM_60MHZ)
{  60000000, 12000000,  60000000, 0x0005, 0x2290 }, /* 1/1/1/1/2/2 */
#endif
#if defined(CONFIG_OMAP_ARM_30MHZ)
{  30000000, 12000000,  60000000, 0x0555, 0x2290 }, /* 2/2/2/2/2/2 */
#endif
{ 0, 0, 0, 0, 0 },
};

3)U-Boot DPLL1 setting
u-boot/board/omap5912osk/lowlevel_init.S

VAL_ARM_CKCTL:
        .word 0x2000 /* was: 0x3000, now use CLK_REF for timer input */
VAL_DPLL1_CTL:
        .word 0x2830

Best regards,
phantom yang

> From: "Stefan Roese"
> Don't start working on such an old version of U-Boot. Please use 
> current top-of-git tree version. Especially for the OMAP5912OSK some 
> important changes have been incoorporated.


-- 
Get your free email from http://www.sanriotown.com



網炫技術支援




More information about the U-Boot mailing list