tiny210 uboot sd卡启动
1、下载tiny210 uboot
友善官方使用superboot作为uboot,superboot既没有命令行也没有源码,所以我们不使用。我们使用liukun321制作uboot for tiny210 来作为开发,原文链接如下
http://blog.csdn.net/liukun321/article/details/7438880
下载最新ver4.0源码下载:u-boot for tiny210 ver4.0
2、配置
tar xzvf tiny210-u-boot-version4.0.tar.gzcd tiny210-u-boot-version4.0/
这里可以配置编译生成tiny210或者mini210,测试发现配置成mini210编译无法通过,提示没有定义board_init_f_nand。因为自己的板子是tiny210,所以这里配置成tiny210。
make ARCH=arm CROSS_COMPILE=arm-linux- tiny210_config
3、编译
make ARCH=arm CROSS_COMPILE=arm-linux- all spl
4、合并nand spl
因为生成的uboot包括两部分,一般分是u-boot.bin,还有一部分为spl/tiny210-spl.bin,需要将两部分合并成一个bin文件,关于spl,可以操作之前写的一篇文章
http://blog.csdn.net/atmega_chen/article/details/67068486
使用cat 合并tiny210-spl.bin和u-boot.bin,其中tiny210-spl.bin要放在前面
cat spl/tiny210-spl.bin u-boot.bin > tiny210-uboot-cat.bin
其实在有的uboot中编译完后会自己合并这两个文件,在根目录下生成合并的文件,我们使用的uboot也做了这样的工作,在生成的文件中有一个tiny210-uboot.bin的文件
-rw-rw-r– 1 chen chen 249068 6月 8 14:58 tiny210-uboot.bin
-rw-rw-r– 1 chen chen 249068 6月 8 15:06 tiny210-uboot-cat.bin
对比两个文件会发现,生成的tiny210-uboot.bin和我们合并生成的tiny210-uboot-cat.bin是一样的
5、制作sd启动盘
将生成的tiny210-uboot-cat.bin使用dd命令写入到sd卡的第一个分区
sudo dd iflag=dsync oflag=dsync if=tiny210-uboot-cat.bin of=/dev/sdb1 seek=1
[sudo] password for chen:
记录了486+1 的读入
记录了486+1 的写出
249068字节(249 kB)已复制,2.07781 秒,120 kB/秒
6、将tiny210-uboot-cat.bin和uImage拷贝到sd卡第一个分区
可以先挂载/dev/sdb1,然后拷贝文件进去
sudo mount /dev/sdb1 /media/chen/sdb1
cp tiny210-uboot-cat.bin /media/chen/sdb1
cp uImage /media/chen/sdb1
7、将sd卡插入板子,拨码开关播到sd卡启动,打印如下的uboot启动信息
U-Boot 2011.06 (Jun 09 2017 - 01:00:18) for FriendlyLEG-TINY210CPU: S5PC110@1000MHzBoard: FriendlyLEG-TINY210
DRAM: 512 MiB
WARNING: Caches not enabledPWM Moudle Initialized.
NAND: 512 MiB
MMC: SAMSUNG SD/MMC: 0, SAMSUNG SD/MMC: 1
In: serial
Out: serial
Err: serial
Net: dm9000Hit any key to stop autoboot: 0
[FriendlyLEG-TINY210]#
[FriendlyLEG-TINY210]#
8、烧录到nand中,可以在uboot中直接操作文件系统,不需要用mmc read这种靠地址偏移的方式来读取
烧写uboot
//在读取mmc之前要先掉用mmc操作,不然读取不成功
mmc part
fatload mmc 0:1 0x21000000 tiny210-uboot-cat.bin
nand erase.chip
nand write 0x21000000 0x0 0x3eab8 (0x0为nand地址,0x3eab8为文件长度)
烧写kernel
fatload mmc 0:1 0x21000000 uImage
nand erase 0x600000 0xf200000
nand write 0x21000000 0x600000 0x34cb08
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
