新闻中心

EEPW首页>嵌入式系统>设计应用> mini2440开发板 u-boot 移植

mini2440开发板 u-boot 移植

作者: 时间:2016-11-27 来源:网络 收藏
本实验所用的u-boot源码包,是国嵌提供的u-boot-2008.10

1.解压源码包

本文引用地址://m.amcfsurvey.com/article/201611/322209.htm

命令:tar jxvf u-boot-2008.10.tar.bz2

2.在顶层的Makefile中找到

smdk2410_config:unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0

参照此方法,添加:

mini2440_config:unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 NULL s3c24x0

3.修改/cpu/arm920t/start.S

(1)修改编译条件使其支持s3c2440

代码第136行#if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410)

改为#if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)

(2)添加寄存器的定义

在149行左右

#define pWTCON0x53000000
#define INTMSK0x4A000008
#define INTSUBMSK0x4A00001C
#define CLKDIVN0x4C000014
# endif
之后添加代码

#define CLK_CTL_BASE 0x4C000000
#define MDIV_405 0x7f << 12
#define PSDIV_405 0x21
#define UPLL_MDIV_48 0x38 << 12
#define UPLL_PSDIV_48 0x22
#define MDIV_200 0xa1 << 12
#define PSDIV_200 0x31

(3)修改中断禁止部分,添加s3c2440中断禁止代码

在170行左右:

# if defined(CONFIG_S3C2410)
ldrr1, =0x3ff
ldrr0, =INTSUBMSK
strr1, [r0]
# endif

后面添加:


#if defined(CONFIG_S3C2440)
ldr r1,=0x7fff
ldr r0,=INTSUBMSK
str r1,[r0]
#endif

(4)修改时钟设置(将s3c2440主频设置为405MHZ)

将180行左右关于时钟设置的代码注释掉


*
*ldrr0, =CLKDIVN
*movr1, #3
*strr1, [r0]
*#endif
*/

添加:

#if defined(CONFIG_S3C2440)

ldr r0,=CLKDIVN
move r1,#5
str r1,[r0]

mrc p15,0,r1,c1,c0,0
orr r1,r1,#0xc0000000
mcr p15,0,r1,c1,c0,0


mov r1,#CLK_CTL_BASE

mov r2,#UPLL_MDIV_48
add r2,r2,#UPLL_PSDIV_48
str r2,[r1,#0x08]

mov r2,#MDIV_405
add r2,r2,#PSDIV_405
str r2,[r1,#0x04]

#else

ldr r0,=CLKDIVN
mov r1,#3
str r1,[r0]

mrc p15,0,r1,c1,c0,0
orr r1,r1,#0xc0000000
mcr p15,0,r1,c1,c0,0


mov r1,#CLK_CTL_BASE
mov r2,#MDIV_200
add r2,r2,#PSDIV_200
str r2,[r1,#0x04]

#endif

#endif


上一页 1 2 下一页

评论


技术专区

关闭