//下面添加2440中u-boot从Nand Flash启动
#ifdef CONFIG_S3C2440_NAND_BOOT
mov r1, #NAND_CTL_BASE //复位Nand Flash
ldr r2, =( (7<<12)|(7<<8)|(7<<4)|(0<<0) )
str r2, [r1, #oNFCONF] //设置配置寄存器的初始值,参考s3c2440手册
ldr r2, [r1, #oNFCONF]
ldr r2, =( (1<<4)|(0<<1)|(1<<0) )
str r2, [r1, #oNFCONT] //设置控制寄存器
ldr r2, [r1, #oNFCONT]
这是start.文件中的一小代码,其中
ldr r2, =( (7<<12)|(7<<8)|(7<<4)|(0<<0) )
str r2, [r1, #oNFCONF] //设置配置寄存器的初始值,参考s3c2440手册
ldr r2, [r1, #oNFCONF]
从s3c2440的数据手册上查到 NFCONF 寄存器的 Reset Value 为0x0000100X
但为什么这里的 ldr r2, =( (7<<12)|(7<<8)|(7<<4)|(0<<0) ),得出r2的值为0x7770,显然不是0x0000100X,NFCONT寄存器的设置也是如此。
我是个新手,请高手解答下,万分感激!!