USB Flasher - ihipop/winsun_mininas_v1 GitHub Wiki
Release Note 2015-12-12
First Release.
支持使用U盘更新spi nor flash或emmc image。
更新spi nor flash功能是将U盘上的spi_nor.bin文件完整刷入,会覆盖原有的mac address, p2p id, 和serial number。故此版本不适合用于量产后的产品更新spi nor flash,仅用于工厂需求,将刷过kbl的Barcelona板恢复原始spi_nor.bin。
U盘文件
用于更新emmc镜像的U盘文件布局如下;
.
├── boot
│ ├── bzImage
│ └── cmdline
└── emmc.img
其中bzImage是此工具的专用内核,内含initramfs和init script;更新emmc或spi nor flash的功能在init script中;
cmdline是内核启动参数,内容是console=tty0 console=ttyS0,115200
emmc.img文件是emmc的镜像文件。
如果用于更新spi nor flash,bzImage/cmdline文件是一样的;emmc.img文件应替换为spi_nor.bin文件;
U盘文件系统要求
U盘的Partition Table必须为msdos格式,GPT格式不支持;
原则上FAT32, EXT2/3/4文件系统均支持;
但需注意U盘上有可能虽然仅有一个Partition,但是其Partition Number不是1,而是2/3/4;在这种情况下,该Partition的device file不是/dev/sda1,可能会导致无法工作;因此建议在制作该U盘时,先将U盘Format一次,推荐使用FAT32文件系统;
U盘使用
Barcelona板应处于关机状态,插入U盘,开机;
开机之后Power LED处于白色慢闪状态;
如果一切顺利,在(两级)内核启动完成后script开始更新spi nor flash或者emmc时,Power LED会进入白色快闪状态;
在操作完成后,Power LED进入白色ON状态,表示成功;或者Power LED显示如下的错误状态;两种情况下,脚本均不会自动重启;
错误状态
-
如果Power LED OFF,说明script未能找到/dev/sda1设备节点文件;可能是USB接口松动、接触不佳导致;应关闭Barcelona电源,重新插拔USB Drive,重试;
-
如果Power LED橙色,fast blink,说明script mount /dev/sda1设备节点失败;原因未知;
-
如果Power LED橙色,slow blink,说明未能找到emmc.img和spi_nor.bin文件;
-
如果Power LED橙色,ON,说明dd命令返回错误,flash失败;
烧录时间
spi nor flash烧录时间较短;emmc更新时间较长;实际测试在使用某USB 2.0 U盘时,烧录一次时间长达35分钟,使用某USB 3.0 U盘时,烧录时间在15分钟内;因此推荐使用USB 3.0 U盘;
其他
每次只会执行一种操作;如果USB Drive上有spi_nor.bin文件,会执行更新spi nor flash的操作;如果没有spi_nor.bin文件,有emmc.img文件,会执行更新emmc的操作;如果两个文件都有,只会更新spi nor flash,不会更新emmc;
init源码
https://github.com/matianfu/winsun_mininas_v1/blob/master/template/usb_flash_initramfs/init