Uboot在S3C2440上的移植详解(一)
/*bl coloured_LED_init//这两行是AT91RM9200DK开发板的LED初始化,注释掉 #if defined(CONFIG_S3C2440) //区别与其他开发板 //根据mini2440原理图可知LED分别由S3C2440的PB5、6、7、8口来控制,以下是PB端口寄存器基地址(查2440的DataSheet得知) //以下对寄存器的操作参照S3C2440的DataSheet进行操作 ldr r0,=GPBCON //配置PB5、6、7、8为输出口,对应PBCON寄存器的第10-17位 ldr r0,=GPBDAT //此段代码使u-boot启动后,点亮开发板上的LED1,LED2、LED3、LED4不亮 |
在include/configs/my2440.h头文件中添加CONFIG_S3C2440宏
#gedit include/configs/my2440.h |
#define CONFIG_ARM920T 1 /* This is an ARM920T Core */ |
3)在u-boot中添加对S3C2440一些寄存器的支持、添加中断禁止部分和时钟设置部分。
由于2410和2440的寄存器及地址大部分是一致的,所以这里就直接在2410的基础上再加上对2440的支持即可,代码如下:
S3C2440的时钟部分除了在start.S中添加外,还要分别在board/samsung/my2440/my2440.c和cpu/arm920t/s3c24x0/speed.c中修改或添加部分代码,如下:
#gedit board/samsung/my2440/my2440.c //设置主频和USB时钟频率参数与start.S中的一致 |
#define FCLK_SPEED 2 //设置默认等于2,即下面红色代码部分有效 #if FCLK_SPEED==0 /* Fout = 203MHz, Fin = 12MHz for Audio */ #define USB_CLOCK 2 //设置默认等于2,即下面红色代码部分有效 #if USB_CLOCK==0 |
#gedit cpu/arm920t/start.S |
#if defined(CONFIG_S3C2400)|| defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440) # if defined(CONFIG_S3C2400) ldr r0,=pWTCON /* ldr r0,=INTSUBMSK # if defined(CONFIG_S3C2440) //添加s3c2440的时钟部分# endif #define MPLLCON 0x4C000004 //系统主频配置寄存器基地址 #define UPLLCON 0x4C000008 //USB时钟频率配置寄存器基地址 ldr r0, =MPLLCON //设置系统主频为405MHz ldr r1, =0x7F021 //这个值参考芯片手册“PLL VALUE SELECTION TABLE” |
UbootS3C2440移植详 相关文章:
- Uboot在S3C2440上的移植详解(二)(11-09)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
