Skip to main content

升级固件

前言

Sophon-BM1684X-LD800 目前提供三种更新方式:SD 卡刷机、文件替换、在线刷机。以下内容将介绍两种软件更新方式的操作,建议使用 SD 卡刷机和在线刷机方式:

刷机方式刷机成功依赖烧录内容备注
SD 卡刷机SD 卡为 MBR+FAT32 格式设备 flash 和 emmceMMC 所有数据丢失
文件替换设备 flash 和 emmc 正常,软件系统正常被替换的部分有版本不匹配、文件损坏等风险
在线刷机设备 flash 和 emmc 正常,软件系统正常,刷机前后分区表不能发生改动设备 flash 和 emmc 中除分区表和 data 分区外的部分需要设备能通过串口或网络方式进入终端,且刷机前后分区表不能发生改动

注意

  • SD 卡刷机会清空 eMMC,包括所有用户数据,需谨慎操作或提前备份数据
  • SD 卡刷机后,需拔掉 SD 卡,重新上电

1 升级 SOC 固件

在 Neardi 官网下载最新刷机包

1.1 SD 卡刷机

本文介绍了如何将主机上的固件烧录到 Sophon-BM1684X-LD800 开发板的存储器中��。

  1. 请将 SD 卡格式化为 MBR+FAT32 格式

    步骤1 下载压缩包 sdcard_imgs.zip,解压后文件类似下图,按照 SD 卡大小和刷机包大小选择合适的 img.gz 文件

    比如 4GB 的 SD 卡,则选择其中 sdcard.3G.img.gz 包

    步骤2 使用 balenaEtcher 将选择的 img.gz 文件写入 SD 卡

    步骤3 将卡刷包解压后拷贝到 SD 卡中即可

  2. 升级固件

    请将下载的固件拷贝到 SD 卡根目录。确保 SD 卡根目录可以看到 BOOT 等文件:

    请将 Sophon-BM1684X-LD800 断电,插入 SD 卡,并连接串口终端,然后给设备上电。您将看到 Sophon-BM1684X-LD800 自动进入刷机流程:

    刷机通常耗时约 3 分钟,结束后,当绿色灯匀速闪烁时,即刷机完成:

    下电,拔掉 SD 卡,再次上电,执行 bm_version 可查看版本信息

1.2 文件替换

文件替换均在 Ubuntu 下执行,您可以选择使用串口或 SSH 终端。以下分别介绍如何替换各个组件。

  • 替换 bootloader:请将您要更新的 spi_flash.bin 文件上传到设备,然后执行 sudo flash_update -i ./spi_flash.bin -b 0x6000000 -f 0x0,成功后可以看到如下 log:

  • 替换 kernel:将您要更新的 emmcboot.itb 放入/boot 中替换同名文件,再 sudo reboot 即可。

    提示

    请注意:做完上述文件操作后不要马上暴力断电,否则可能会有文件损坏,请执行 sync、sudo reboot、sudo poweroff 等动作。

2 升级 MCU 固件

替换 MCU 固件:核心板上有一颗 MCU 负责 BM1684X 的上电时序等重要工作,它的固件��只能通过下面的命令升级,不能通过 SD 卡升级。

这颗 MCU 的固件如果烧写错误,会造成 BM1684X 无法上电,此时就只能通过专用的烧写器进行修复了,因此请谨慎操作,通常也并不需要对它进行升级。命令:sudo mcu-util-aarch64 upgrade 1 0x17 mcu.bin

升级完成后请执行 sudo poweroff,待关机动作完成后(串口会打印 NOTICE: CPU0 bm_system_off,并且风扇声音会突然变大)对其进行断电后重新上电。