当前位置:主页 > 服务器教程 > Ubuntu >

FL2440的U-boot-2010.09移植(二)

时间:2019-11-09 | 栏目:Ubuntu | 点击:

U-Boot源代码下载地址

FL2440的U-boot-2010.09移植(一)
FL2440的U-boot-2010.09移植(二)
FL2440的U-boot-2010.09移植(三)DM9000网卡及开发板相关配置
FL2440的U-boot-2010.09移植(四) 添加NOR FLash启动支持
FL2440的U-boot-2010.09移植(五)uboot架构中NAND FLash驱动修改
FL2440的U-boot-2010.09移植(六)NAND FLash启动支持
FL2440的U-boot-2010.09移植(七)LCD的支持
针对FL2440开发板的u-boot-2010.09版本补丁

一、汇编文件修改,这部分主要集中修改修改cpu/arm920t/start.S文件。

1、删除AT91RM9200使用的LED代码,117、118行,关闭LED代码。

// bl coloured_LED_init    // bl red_LED_on  

2、修改编译条件支持s3c2440,修改寄存器地址定义,修改 CPU频率初始化设置

# if defined(CONFIG_S3C2400)   #  define pWTCON    0x15300000   #  define INTMSK    0x14400008  /* Interupt-Controller base addresses */   #  define CLKDIVN   0x14800014  /* clock divisor register */   #else   #  define pWTCON    0x53000000   #  define INTMSK    0x4A000008  /* Interupt-Controller base addresses */   #  define INTSUBMSK 0x4A00001C   #  define CLKDIVN   0x4C000014  /* clock divisor register */   # endif   添加   #  define CLK_CTL_BASE  0x4C000000   #  define MDIV_405      0x7f<<12           #  define PSDIV_405     0x21            /*set s3c2440 MPLL 405MHZ*/   #  define MDIV_200      0xa1<<12   #  define PSDIV_200     0x31            /*set s3c2410 MPLL 200MHZ*/   

3、修改中断禁止部分

# if defined(CONFIG_S3C2410)    //ldr r1, =0x3ff    ldr r1, =0x7ff  /*uboot error*/    ldr r0, =INTSUBMSK    str r1, [r0]   # endif   后添加   #if defined(CONFIG_S3C2440)           ldr     r1, =0x7ff           ldr     r0, =INTSUBMSK           str     r1, [r0]           /*INTSUBMSK 关闭中断 S3C2440有15位*/   # endif  

4、修改时钟设置(2440的主频为405MHz),紧接着上面一步,在其后添加和修改为:

#if defined(CONFIG_S3C2440)            /* FCLK:HCLK:PCLK = 1:4:8 */           /* default FCLK is 405 MHz ! */           ldr r0, =CLKDIVN           mov r1, #5           str r1, [r0]              mrc     p15, 0, r1, c1, c0, 0           orr     r1, r1, #0xc0000000 //asynchronous            mcr     p15, 0, r1, c1, c0, 0           /*上面这段代码见s3c2440a手册p215,HDIVN != 0 叫做异步总线模式*/              /* cpu clock FCLK = 405MHZ 通常我们叫400MHZ,实际是405MHZ,见S3C2440手册(英文版)chapt7,P227要习惯用英文手册:-)*/           /*根据表中的数据设置MDIV,PDIV,SDIV*/           mov     r1, #CLK_CTL_BASE           mov     r2, #MDIV_405           add     r2, r2, #PSDIV_405           str     r2, [r1, #0x04] //写入MPLLCON          #else        /* FCLK:HCLK:PCLK = 1:2:4 */       /* default FCLK is 120 MHz ! */           ldr r0, =CLKDIVN           mov r1, #3           str r1, [r0]           mrc     p15, 0, r1, c1, c0, 0           orr     r1, r1, #0xc0000000 //asynchronous            mcr     p15, 0, r1, c1, c0, 0                 /* cpu clock is 200MHZ*/           mov     r1, #CLK_CTL_BASE           mov     r2, #MDIV_200           add     r2, r2, #PSDIV_200           str     r2, [r1, #0x04] //MPLLCON    #endif  

5、修改SDRAM的REFRESH刷新周期,修改board/fl2440/lowlevel_init.S文件

您可能感兴趣的文章:

相关文章