u-boot-2009.08移植笔记四,平台TQ2440 .
来源:互联网 发布:linux 拷贝命令 编辑:程序博客网 时间:2024/06/12 08:17
任务:让 u-boot 支持从 nand- flash 启动(也就是同时支持 Nor Flash 和 NAND Flash
启动)
1.修改cpu/arm920t/start.S代碼搬移程序,這裡按照TQ2440提供的U-BOOT1.1.6
源碼修改
將堆棧初始華提到前面,因為這裡搬運代碼用的C代碼,需要用到堆棧,然後添加修改如下
#ifndef CONFIG_SKIP_RELOCATE_UBOOT
relocate: /* relocate U-Boot to RAM */
adr r0, _start /* r0 <- current position of code */
ldr r1, _TEXT_BASE /* test if we run from flash or RAM */
cmp r0, r1 /* don't reloc during debug */
beq clear_bss
ldr r2, _armboot_start
ldr r3, _bss_start
sub r2, r3, r2 /* r2 <- size of armboot */
#if 1
bl CopyCode2Ram
#else
add r2, r0, r2 /* r2 <- source end address */
#endif
/*copy_loop:
ldmia r0!, {r3-r10} copy from source address [r0]
stmia r1!, {r3-r10} copy to target address [r1]
cmp r0, r2 until source end addreee [r2]
ble copy_loop
*/
/*#endif CONFIG_SKIP_RELOCATE_UBOOT */
2.現在增加CopyCode2Ram();函數及其支持函數,這裡直接用TQ提供的boot_init.c
這是這個函數拷貝的原理
* 无论是从NOR Flash还是从NAND Flash启动,
* 地址0处为指令"b Reset", 机器码为0xEA00000B,
* 对于从NAND Flash启动的情况,其开始4KB的代码会复制到CPU内部4K内存中,
* 对于从NOR Flash启动的情况,NOR Flash的开始地址即为0。
* 对于NOR Flash,必须通过一定的命令序列才能写数据,
* 所以可以根据这点差别来分辨是从NAND Flash还是NOR Flash启动:
* 向地址0写入一个数据,然后读出来,如果没有改变的话就是NOR Flash
將此文件拷貝到board/samsung/CM2440/目錄下,並在此目錄下的Makefile中添加
COBJS := CM2440.o flash.o boot_init.o
並在u-boot.lds文件中添加,使其在鏈接位置靠前
3.修改s3c2410.h s3c2440.h,由於他們的NAND控制器基地址相同
按照2410的NAND添加
static inline S3C2440_NAND * const S3C2440_GetBase_NAND(void)
{
return (S3C2440_NAND * const)S3C2410_NAND_BASE;
}
現在make 一下,注意要bl cpu_init_crit 去掉前面的@,如果沒錯下載到
NAND中,從NAND啟動后在串口能看到信息
- u-boot-2009.08移植笔记四,平台TQ2440 .
- u-boot-2009.08移植笔记一,平台TQ2440
- u-boot-2009.08移植笔记二,平台TQ2440
- u-boot-2009.08移植笔记三,平台TQ2440 .
- u-boot-2009.08移植笔记五,平台TQ2440 .
- u-boot-2009.08移植笔记六,平台TQ2440 .
- u-boot-2009.08移植笔记七,平台TQ2440
- TQ2440 u-boot-2012.04.01移植四支持NAND Flash
- TQ2440 学习笔记—— 32、移植U-Boot【U-Boot 的移植】
- TQ2440 学习笔记—— 28、移植U-Boot【U-Boot 的配置过程】
- TQ2440 学习笔记—— 29、移植U-Boot【U-Boot 的编译、链接过程】
- u-boot-2012.04.01移植到TQ2440(四):移植网卡DM9000
- u-boot-2012.04.01移植到TQ2440
- TQ2440 u-boot-1.1.6移植全过程
- TQ2440 u-boot-2012.04.01移植六完善u-boot
- TQ2440 学习笔记—— 30、移植U-Boot【U-Boot 的启动过程第一阶段源码分析】
- TQ2440 学习笔记—— 31、移植U-Boot【U-Boot 的启动过程第二阶段源码分析】
- u-boot移植笔记
- u-boot-2009.08移植笔记三,平台TQ2440 .
- C++类的静态成员
- 【融博笔试题】查找单链表倒数第k个结点的值
- git常用命令-------自用-------持续更新中
- java初接触
- u-boot-2009.08移植笔记四,平台TQ2440 .
- JAVA学习第三回:JAVA语法基础:大致了解
- hdu3977 - fibonacci模p的周期
- 图
- u-boot-2009.08移植笔记五,平台TQ2440 .
- JS解析XML文档中的数据(兼容各个浏览器)
- u-boot-2009.08移植笔记六,平台TQ2440 .
- 10056 - What is the Probability ? 解题报告
- Socket 处理客户端、服务器端 断开连接