U-boot 设置S3c2440的时钟频率

1604阅读 1评论2010-02-20 waderwang
分类:LINUX

我期望s3c2440能够稳定的工作在400M主频上,
查看S3C2440的资料发现:

Input Frequency Output Frequency    MDIV    PDIV SDIV
                 48.00 MHz (Note)
  12.0000MHz                      56(0x38)   2    2
                 96.00 MHz (Note)
  12.0000MHz                      56(0x38)   2    1
  12.0000MHz       271.50 MHz     173(0xad)  2    2
  12.0000MHz       304.00 MHz     68(0x44)   1    1
  12.0000MHz       405.00 MHz     127(0x7f)  2    1
  12.0000MHz       532.00 MHz     125(0x7d)  1    1
                 47.98 MHz (Note)
  16.9344MHz                      60(0x3c)   4    2
                 95.96 MHz (Note)
  16.9344MHz                      60(0x3c)   4    1
  16.9344MHz       266.72 MHz     118(0x76)  2    2
  16.9344MHz       296.35 MHz     97(0x61)   1    2
  16.9344MHz       399.65 MHz     110(0x6e)  3    1
  16.9344MHz       530.61 MHz     86(0x56)   1    1
  16.9344MHz       533.43 MHz     118(0x76)  1    1

比较接近的是: 红色部分, 于是我按照红色部分的值进行设置。
             并且 FCLK :HLCK :PCLK  = 1:4:8。

然后发现, 开始能够正常工作,但是u-boot中的某些宏开关后,发现程序莫名的死掉了。
非常的不稳定。

后来试着设置:    MDIV   PDIV   SDIV
                 92      1      1

代码:

     #define M_MDIV    92
     #define M_PDIV    1
     #define M_SDIV    1

    /* configure MPLL */
    clk_power->MPLLCON = ((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV); //FCLK=400M.
    clk_power->CLKDIVN = 0x05; //P:H:F  = 1:4:8


发现,正常了。 开关某些宏也没有问题。
不知道那位高手能解释一下为什么阿? 小弟不甚感激。 为什么官方推荐的值竟然不能用?




上一篇:PCI 转并口在H-Jtag 中的使用
下一篇:vim快速替换和搜索一个单词

文章评论