根据
http://blog.csdn.net/xiaojiaohuazi/article/details/8265757文章,修改uboot-2012-10代码来启动u-boot
2013.10.15 修改完成(串口为uart2),编译通过 ,下一步是烧写flash,然后测试
2013.10.30 运行发现如下错误:
2013.11.3 应该是mem_setup.S配置内存有问题,下周调试
2013.11.10 查看0k210核心板原理图可以知道,内存是4片128M的ddr2组成,两片在DM0上,两片在DM1! 靠,怎么这么安排呢? 内存不好配置!
ok210中,RAM地址线为16bit,如何实现1G byte的内存的读写?解答: 地址高8位使用memconfig0(1)来配置,还有最多3bit bank线,可以使用32bit 数据总线,这样最多可以访问(2^(16+8+3))*32位,可以访问1G byte数据。
2013.11.26 读DRAM的datasheet可知,bank=8,Row Address=13,Column Address=10,所以s5pv210的DRAM控制器PAD MUX OFR ADDRESS CONFIGURE为config 3
读S5PV210_UM_REV可知,s5pv210有两个内存控制器,DRAM controller 0映射到0x20000000-0x40000000共512MB, 而DRAM controller 1映射到0x40000000-0x80000000,1GB。但是,察看ok210原理图可知,有两片ddr挂在DRAM controller 0上(每个ddr 16bit所输出,两片并联组成32bit data输出),另两片挂在DRAM controller1上,这样就需要对两个内存控制器都要配置,真是费事!
修改了DMC0_MEMCONFIG_0,DMC1_MEMCONFIG_0,DMC1_MEMCONTROL,准备少些板子测试
2013.12.8 根据blog来修改,不成,要修改地址才行!修改SD通道,但是最后sd烧写不了了,下次继续做
2013.12.22 跳转到uboot后就死掉了,不知是否是uboot没有修改正确?但spl设置内存正确呀!!!
突然发现,怎么和10.30号的结果一样呢?
经验证spl将uboot拷贝到dram中去了,但是uboot跑到哪里挂掉了??
2014.1.17 好长时间了,觉得必须用jtag才能继续调试下去,今天我试着将blog中的uart.c,uart.h和s5pv210.h搬到arch/arm/cpu/lib下,修改makefile并编译,发现可以在board.c的board_init_f中打印出信息来,心中很是高兴,下面我准备设置一下uboot的printf打印的串口,查看是否有东西出来
2014.2.15 要配置include/configs/smdkv210.h中的CONFIG_SERIAL0为CONFIG_SERIAL2,因为我们使用的是串口uart2来打印信息
更改后可以弹出以下信息:
但是信息好像不完全,下次再看
2014.2.22 将include/configs/smdkv210.h中#define CONFIG_CMD_ONENAND注释掉,这样uboot就起来了
BL1裸写,uboot启动成功!可以是使用uboot的一些命令了
2013.10.15 修改完成(串口为uart2),编译通过 ,下一步是烧写flash,然后测试
2013.10.30 运行发现如下错误:
SD Init Error
******s5pv210 Test********
********By ZheGao********
1: equ
2: equ
3: equ
copy uboot from sd to sdram ddr2
boot mmc chanel: EB200000
jump to u-boot image
可见,Uart配置成功了,但是为什么一开始会出现SD Init Error? 跳转到u-boot后,就没反应了,需要调试
2013.11.3 应该是mem_setup.S配置内存有问题,下周调试
2013.11.10 查看0k210核心板原理图可以知道,内存是4片128M的ddr2组成,两片在DM0上,两片在DM1! 靠,怎么这么安排呢? 内存不好配置!
ok210中,RAM地址线为16bit,如何实现1G byte的内存的读写?解答: 地址高8位使用memconfig0(1)来配置,还有最多3bit bank线,可以使用32bit 数据总线,这样最多可以访问(2^(16+8+3))*32位,可以访问1G byte数据。
2013.11.26 读DRAM的datasheet可知,bank=8,Row Address=13,Column Address=10,所以s5pv210的DRAM控制器PAD MUX OFR ADDRESS CONFIGURE为config 3
读S5PV210_UM_REV可知,s5pv210有两个内存控制器,DRAM controller 0映射到0x20000000-0x40000000共512MB, 而DRAM controller 1映射到0x40000000-0x80000000,1GB。但是,察看ok210原理图可知,有两片ddr挂在DRAM controller 0上(每个ddr 16bit所输出,两片并联组成32bit data输出),另两片挂在DRAM controller1上,这样就需要对两个内存控制器都要配置,真是费事!
修改了DMC0_MEMCONFIG_0,DMC1_MEMCONFIG_0,DMC1_MEMCONTROL,准备少些板子测试
2013.12.8 根据blog来修改,不成,要修改地址才行!修改SD通道,但是最后sd烧写不了了,下次继续做
2013.12.22 跳转到uboot后就死掉了,不知是否是uboot没有修改正确?但spl设置内存正确呀!!!
突然发现,怎么和10.30号的结果一样呢?
经验证spl将uboot拷贝到dram中去了,但是uboot跑到哪里挂掉了??
2014.1.17 好长时间了,觉得必须用jtag才能继续调试下去,今天我试着将blog中的uart.c,uart.h和s5pv210.h搬到arch/arm/cpu/lib下,修改makefile并编译,发现可以在board.c的board_init_f中打印出信息来,心中很是高兴,下面我准备设置一下uboot的printf打印的串口,查看是否有东西出来
2014.2.15 要配置include/configs/smdkv210.h中的CONFIG_SERIAL0为CONFIG_SERIAL2,因为我们使用的是串口uart2来打印信息
更改后可以弹出以下信息:
U-Boot 2012.10 (Feb 15 2014 - 06:11:13) for SMDKC100
CPU: S5PC110@400MHz
Board: SMDKV210
DRAM: 512 MiB
WARNING: Caches not enabled
但是信息好像不完全,下次再看
2014.2.22 将include/configs/smdkv210.h中#define CONFIG_CMD_ONENAND注释掉,这样uboot就起来了
BL1裸写,uboot启动成功!可以是使用uboot的一些命令了
其他:这个参看文档也不错http://blog.csdn.net/u010144373/article/details/9159385
http://bbs.csdn.net/topics/390500369