SSD_Uboot升级指南


1. 概述

SSD20X不支持空片升级,但是在Uboot阶段提供了USB/SD卡升级功能,升级可以制定需要升级的分区,只要准备好对应升级包按照以下文档执行即可。


2. SD卡升级

Uboot默认支持SD卡,只需要将对应制作的升级包(默认是:SigmastarUpgradeSD.bin)放到SD卡根目录,在uboot执行对应操作即可。

2.1. 构建SD卡升级包

在project下已经将image打包好之后,执行 ./make_sd_upgrade_sigmastar.sh 脚本按照提示选择需要升级的对应分区打包生成SD卡升级包。

打包完成后将在project/image/output/images目录下生成 SigmastarUpgradeSD.bin,如下图。将该文件拷贝到SD卡根目录即可。


2.2. SD卡升级操作

SSD20X不支持空片升级,只能开机按enter键进入uboot控制台,在控制台输入sdstar即进入升级,升级成功后会自动重启。

SigmaStar # sdstar

另,还可以通过设置以下env,达到开机自动检测升级的效果(即不需要手动敲sdstar)

setenv sdautoupgrade 1;saveenv;

3. U盘升级

Uboot打开USB驱动支持,然后将对应制作的升级包(默认是:SigmastarUpgrade.bin)放到U盘根目录,在uboot执行对应操作即可。

3.1. 配置Uboot config

使用对应的defconfig配置完后(公版nand配置:make infinity2m_spinand_defconfig),通过make menuconfig开启如下配置。

Device Drivers下开启如下配置:

MStar drivers下开启如下配置:


3.2. 构建U盘升级包

在project下已经将image打包好之后,执行 ./make_usb_upgrade_sigmastar.sh 脚本按照提示选择需要升级的对应分区打包生成U盘升级包。

打包完成后将在project/image/output/images目录下生成 SigmastarUpgrade.bin,如下图。将该文件拷贝到U盘根目录即可。


3.3. U盘升级操作

SSD20X不支持U盘空片升级,开机后按enter键进入Uboot控制台。

设置usb升级port口:

如果不确定USB port口,也可以使用usb cmd去检测,如下图检测到storage设备即可:输入 usb start 0/½ 看哪个口可以识别到存储设备(一般0比较常见)

识别到之后设置对应的port口即可,如上截图setenv UpgradePort 1 ;saveenv ;然后usbstart即进入升级,升级成功后自动重启

另,还可以通过设置以下env,达到开机自动检测升级的效果(即不需要手动敲usbstar)

setenv usbautoupgrade 1;saveenv

4. 升级包打开CRC校验

a. CRC校验针对的是每一个分区数据,升级过程中某个分区数据CRC校验失败,整个升级流程即会被打断

b. CRC校验需要打开以下config: CONFIG_UPGRADE_CRC_CHECK (默认关闭)


5. 支持版本控制

目前version只是简单的将打包的时间记录:upgrade_bin_version=11261056

a. 升级的时候,会对比板子上env上upgrade_bin_version记录的version,只有当version不一样的时候才会升级(不比较大小,不一样就会升级)

b. 可以通过设置env: setenv enable_version_chk 1;saveenv;打开版本校验


6. USB/SD卡升级支持UI进度条显示

需打开以下config:CONFIG_SSTAR_UPGRADE_UI (默认关闭)