文档详情

移植U-Boot2009-01到阳初S3C2440超值版支持NAND启动,.doc

发布:2017-08-22约1.8万字共16页下载文档
文本预览下载声明
移植U-Boot2009-01到阳初S3C2440超值版支持NAND启动,支持YAFFS文件系统 参考《移植U-Boot-2008.10到友善之臂mini2440hgateway_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t hgateway NULL s3c24x0 hgateway为我的目标板名字。注意第二行前面有一个TAB,这是Makefile的语法规定的命令前面必须有个TAB。5个参数顺序分别为:CPU架构(ARCH);CPU类型(CPU);开发板型号(BOARD);开发者/经销商(VENDER);片上系统(SOC)。 在《移植U-Boot-2008.10到友善之臂mini2440#include status_led.h …… bl coloured_LED_init bl red_LED_on …… #if defined(CONFIG_AT91RM9200DK) || defined(CONFIG_AT91RM9200EK) /* * relocate exception table */ ldr r0, =_start ldr r1, =0x0 mov r2, #16 copyex: subs r2, r2, #1 ldr r3, [r0], #4 str r3, [r1], #4 bne copyex #endif 修改为对S3C2440的支持 #if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410)改为 #if defined (CONFIG_S3C2440) 删除关于2400的部分 # if defined(CONFIG_S3C2400) # define pWTCON 0# define INTMSK 0/* Interupt-Controller base addresses */ # define CLKDIVN 0/* clock divisor register */ #else 增加S3C2440的时钟控制寄存器 # define CAMDIVN 0x4C000018 //CAMDIVN 2440增加了摄像头,CAMDIVN将影响到CLKDIVN # define MPLLCON 0x4C000004 //MPLLCON register # define UPLLCON 0x4C000008 //UPLLCON register 去掉宏# if defined(CONFIG_S3C2410)并修改子中断屏蔽控制寄存器的值 ldr r1, =0x7ff ldr r0, =INTSUBMSK str r1, [r0] 改为 ldr r1, =0x7fff ldr r0, =INTSUBMSK str r1, [r0] 增加PLL的初始化,对于S3C2440来说,只有当PLL初始化以后CPU才能按照设定的时钟进行工作,即使全部用初始值也必须重新写一次PLL。 //初始化时钟,晶振为12MHz,主频为405MHz //locktime用来在正常运行时更改时钟的时候保护时钟 ldr r0,=LOCKTIME mov r1,#0xffffff str r1,[r0] //清除摄像头分频寄存器值 ldr r0,=CAMDIVN mov r1,#0 str r1,[r0] 修改时钟分频为1:4:8 ldr r0, =CLKDIVN mov r1, #3 str r1, [r0] 改为 ldr r0, =CLKDIVN mov r1, #5 str r1, [r0] 在其后增加对UPLL和MPLL的初始设置 //在2440的手册中写着若HDIVN不为0,则需要下面几句 mrc p15, 0, r1, c1, c0, 0 @ read ctrl register orr r1, r1, #0xc0000000 @ Asynchronous mcr p15, 0, r1, c1, c0, 0 @ write ctrl register //USB时钟48MHz (5612)+(24)+(2) ldr r0, =UPLLCON ldr r1, =0 str r1, [r0] //arm920t为5级流水线,延迟几个周期,使指令生效 nop nop nop nop nop nop nop nop //写MPLL使pll生效,405MHz,(12712)+(24)+(1) ldr r0, =MPLLC
显示全部
相似文档