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显示如下的错误状态;两种情况下,脚本均不会自动重启;

错误状态

  1. 如果Power LED OFF,说明script未能找到/dev/sda1设备节点文件;可能是USB接口松动、接触不佳导致;应关闭Barcelona电源,重新插拔USB Drive,重试;

  2. 如果Power LED橙色,fast blink,说明script mount /dev/sda1设备节点失败;原因未知;

  3. 如果Power LED橙色,slow blink,说明未能找到emmc.img和spi_nor.bin文件;

  4. 如果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