minis3c2440移植之uboot移植
ldr
mov
str
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_405
add r2,r2,#PSDIV_405
str r2,[r1,#0x4]
#else
在#endif
#endif
#define LENGTH_UBOOT
#define NAND_CTL_BASE
#ifdef CONFIG_S3C2440_NAND_BOOT
//#define oNFCONF 0x00
//#define oNFCONT 0x04
//#define oNFSTAT 0x08
//#define oNFCMD 0x20
mov r1,#NAND_CTL_BASE
ldr r2,=( (7<<12)|(7<<8)|(7<<4)|(0<<0))
str r2,[r1,#oNFCONF]
ldr r2,[r1,#oNFCONF]
ldr r2,=((1<<4)|(0<<1)|(1<<0))
str r2,[r1,#oNFCONT]
ldr r2,[r1,#oNFCONT]
ldr r2,=(0x6)
str r2,[r1,#oNFSTAT]
ldr r2,[r1,#oNFSTAT]
mov r2,#0xff
strb r2,[r1,#oNFCMD]
mov r3,#0
nand1:
nand2:
ldr r2,[r1,#oNFCONT]
@copy U-Boot to Ram
bad_nand_read:
loop2:
ok_nand_read:
go_next:
notmatch:
loop3:
#endif
在对BSS段清零操作代码之后添加以点灯操作代码:
#if defined(CONFIG_TOCORE2440_LED)
#endif
在_start_armboot:
#define STACK_BASE 0x33f00000
#define STACK_SIZE 0x10000
DW_STACK_START: .word
至此start.S文件修改完毕,整个配置文件修改完成。
Linux内核编译步骤(支持S3C2440)
1.
修改arch宏定义:ARCH?=arm (line176)
修改CROSS_COMPILE为CROSS_COMPILE?=arm-linux- (line177)
2.执行命令cp arch/arm/configs/smdk2410_defconfig .config,完成对smdk2410配置信息的拷贝。执行命令make menuconfig命令,实现对.config文件的配置信息的设置。
3. 对.config配置方法如下:
选择S3C24XX Implementations
进入后选定NWFPE math emulation和其子项Support extended precision,至此完成对Floating point emulation项的设置。
1)配置Memory Technology Devices (MTD)
2)配置Block devices
3)配置Network device support
4)进入Character devices
d.配置File systems
e.退出,保存。
#if 0
#endif
};
修改函数void __init smdk2440_map_io():将主频设置为12000000。 代码为s3c24xx_init_clocks(12000000);
评论