如果不慎擦除了nor flash中自带的supervivi,可以使用openjtag将bootloader恢复到内存,然后烧写nand flash
建议使用2010.06版本的U-boot,下载过1.1.6版本的结果最后无法正常编译。新版本的很多文件结构都发生了变化,要摸清楚需要一定时间。这个版本的资料相对比较多也比较好找。
注释掉初始化CPU/RAM代码,使得U-B能通过2440自带BL启动:
u-boot-2010.06/arch/arm/cpu/arm920t/start.s
//bl cpu_init_crit
设置时钟频率出现的错误:
1.In file included from speed.c:36:
/root/arm/u-boot-2010.06/include/asm/arch/s3c24x0_cpu.h:26:3: error: #error Please define the s3c24x0 cpu type
由于缺少相应配置文件,在u-boot-2010.06/include/asm/arch/目录下复制s3c2410.h为s3c2440.h
2.同目录下s3c24x0.h,修改第400行为#if defined (CONFIG_S3C2410) || defined (CONFIG_S3C2440)
原因:
可以看到,像GPACON这样的成员是被CONFIG_S3C2410这样的宏定义条件编译的。鉴于mini2440上所用的S3C2440还没有被uboot正式支持,建议你在include/configs/<board name>.h里定义一个新的宏CONFIG_S3C2440, 并且在这里改成#if defined (CONFIG_S3C2410) || defined (CONFIG_S3C2440)。同样的情况适用于所有2410和2440兼容的地方,但要注意不是所有的2410的寄存器都和2440兼容,比如NAND Flash Controller