| 12M晶体更改为16.9344M晶体的步骤: 
 一:换Uboot;    option.inc中,修改定义外部晶体为16.9344M: ;(2) Select XTaL ;XTAL_SEL        SETA         12000000    XTAL_SEL         SETA         16934400    option.inc中,FCLK修改为39965184M: FCLK                  SETA         399651840 ;FCLK                 SETA         400000000    option.inc中,修改CLKDIV_VAL的值为7,即1:3:6分频,这时SDRAM的CLK为133M:          [FCLK = 399651840  ;lqm added for K390. ;CLKDIV_VAL  EQU 5       ;7.这里修改为7后,PCLK=66.7M,程序运行不稳定!!!          CLKDIV_VAL   EQU7       ;7.这里修改为7后,PCLK=66.7M,程序运行不稳定!!!  M_MDIV           EQU 110   ;Fin=16.9344MHz M_PDIV             EQU 3                    [CPU_SEL = 32440001 M_SDIV             EQU 1                 ;2440A                    | M_SDIV             EQU 1                 ;2440X 
 二:换Eboot;    startup.s中,修改锁相环寄存器值: PLLVAL     EQU     (((0x6e << 12) +(0x3 << 4) + 0x1))                  ;//2440A.lqmchanged for FIN=16.9344M for 399.65M. ;PLLVAL     EQU     (((0x3e << 12) +(0x2 << 4) + 0x1))        ; 2440A Startup.s 中,修改SDRAM的相关参数: B6_MT      EQU     (0x3)    ; SDRAM ;B6_Trcd    EQU     (0x2)    ; 4clk B6_Trcd    EQU        (0x1)  ; 3clk.lqm changed. B6_SCAN    EQU     (0x1)    ; 9bit ; Bank 7 ; Note - there is no memory connected to Bank 7 B7_MT      EQU     (0x3)    ; SDRAM ;B7_Trcd    EQU     (0x2)    ; 4clk B7_Trcd    EQU        (0x1)  ; 3clk.lqm changed. B7_SCAN    EQU     (0x1)    ; 9bit 三:在Src文件夹中添加BOOTPART文件夹,用于生成BOOTPART.lib文件。     这部分主要是将public下的代码移过来,需要更改source文件下的lib库指定路径。 四:修改bsp_cfg.h头文件的S3C2440A_FCLK等定义值。 /* #define S3C2440A_FCLK           400000000 #define S3C2440A_HCLK           (S3C2440A_FCLK/4)   // divisor 4 #define S3C2440A_PCLK           (S3C2440A_FCLK/8)   // divisor 8 */ // lqm changed for FCLK:HCLK:PCLK=1:3:6.2010-06-09 #ifdef CRYSTAL12M #define S3C2440A_FCLK                      400000000 #else #define S3C2440A_FCLK           399651840 #endif #define S3C2440A_HCLK           (S3C2440A_FCLK/3)   // divisor 4 #define S3C2440A_PCLK           (S3C2440A_FCLK/6)   // divisor 8 五:修改fmd.cpp中的nand flash保留块,由104变为0. NAND_Flash_Chip_t g_NandFlash_Chip_set[]= {          {0xEC76,/*K9S1208*/          FALSE,          0,//*/40,//104,//0,//62M //lqm changed for reserve bootpart.10-04-13.lqmchanged from 104 to 40 for erase pic area.10-07-07                    {NAND,4096,512*32,32,512},                    FMD_ReadSector1208,                    FMD_WriteSector1208,                    FMD_EraseBlock1208,                    IsBlockBad1208,                    MarkBlockBad1208          }, …… } 六:通过JTAG仿真时,如果bootloader没有起来,先要初始化一次SDRAM,换用16.9344M晶体后,用以前的12M的初始化程序无法启动,这时需要修2440init.mcp工程,修改为16.9344M后问题解决。 说明:由于该文档系项目结案后的总结,可能有些修改的地方有遗漏,需要补充。
 
 |