注意:开机按ctrl+C既可以进入uboot指令集
因为之前习惯了用RK的烧录工具,为了兼容ssd202d的烧录方法
于是我开始尝试了使用ssd202d的方法烧录
SSD202D的方法是
烧录uboot
然后用TFTP烧录下去,于是我开始尝试
烧录前三个即可,后面的img用tftp烧录,由于工作量太大不好展示,于是我只做boot.img的示范
=========================================================================
1.清空内存
2.烧录大部分固件,故意不烧录boot.img (因为只验证可行性)
卡死在uboot指令集这里,因为没有内核固件,很正常。
设置IP,143是我的window电脑IP;199是主板的IP;
setenv serverip 192.168.1.143
setenv ipaddr 192.168.1.199
saveenv
estart
都可以看到有,然后用tftp指令烧录
md 30000000 40
tftp 30000000 boot.img
里面的内容出现edfe0dd0,这个就是dtb的头部,就是boot.img的头部
这样tftp就成功烧录了boot.img镜像,但是并没有结束,这时只是在RAM空间,我们要把它写到对应的内存中,我这边用的是emmc,后期会用spinand;
然后根据可知开始地址0x8000,大小0x10000;
也可以用mmc part
可知 //0x00008000 0x00017fff "boot"
也可以读一下boot的内容
mmc read 30000000 8000 100000
写emmc
mmc write 30000000 8000 10000
md 32000000 40
mmc read 32000000 8000 10000
可以看到读出的内容就不一样了,然后reset重启
现在就进入系统了,说明我们的tftp烧录boot.img已经成功
=====================================================================
参考:
ssd202d的烧录方法,不过nand换成了mmc
成功之后即可!
===========================spi nand===================================
拓展了一个spinand的
原来ssd用的是nand工具,但是rv1126-rv1109走的是mtd
所以
这里由于地址有偏移这些,所以:(先设置IP)
setenv serverip 192.168.1.147
setenv ipaddr 192.168.1.150
saveenv
tftp 22000000 boot.img
mtd erase spi-nand0 B00000 800000
mtd write.oob spi-nand0 22000000 B00000 800000
mtd read.oob spi-nand0 22000000 B00000 800000
22000000是内存空间RAM的;
先用tftp 把boot.img放进去0x22000000;
然后erase擦除指定空间;
write.oob写进去;nand都要擦除了才能写;
最后读出来看一下nand是否写入
<name>: spi-nand0
<addr>: 22000000
<off>: B00000
<size>: 800000
可以看到0x00004000@0x00005800(boot),就是我们要下载的boot.img
然后可以看到实际内存中的大小是
可以看到0x800000怎么对应上0x4000
所以同理计算出(中间要乘0x200)就是512
深藏功与名!
===========================================================================
spi nand查看分区的方法:
mtdparts(SSD202D)
mtd_blk part 1(RV1126_RV1109)