如何在线更新hmcode和bios

其它 其它 1979 人阅读 | 4 人回复 | 2021-08-24

在申威平台测试时,有时候固件版本不对,需要更新时,因为没有维护卡,非常不方便。
那是否有这样的工具,可以在操作系统运行的时候,在线(不断电、不关机)更新hmcode和bios的版本呢?

答案是:有这样的工具。

如下,提供了基于申威GCC830编译器0x9916版本操作系统在线更新hmcode和bios的工具。

使用说明:
1. 读取FLASH自定义地址和长度./read_flash <flash_addr> <len> > filename
flash_addr 是读取的起始地址
len是读取的长度
filename   是重定向的文件名

举例:     
1)读取当前hmcode版本,并保存
./read_flash 0x80000 0x10000 > hmcode
2)读取当前bios版本,并保存
./read_flash 0x100000 0x300000 > bios


2. 将文件烧写入FLASH指定空间./write_flash <file> <flash_addr> [length]
file       是要写入的文件
flash_addr 是要写入的地址
length     是要写入的长度。该项是可选项,当其值比file的长度小时,可以使用。当其值比file长度大时,会退出并返回。

举例:
1) 烧写hmcode
./write_flash hmcode 0x80000 0x10000
或者
./write_flash hmcode 0x80000
2) 烧写bios./write_flash bios  0x100000 0x300000或者./write_flash hmcode 0x100000

3. 附件







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

回答|共 4 个

zytc

发表于 2021-8-25 17:22:50 | 显示全部楼层

这个很实用啊!
回复

使用道具 举报

TecSupport

发表于 2021-9-7 14:34:36 | 显示全部楼层

对的,如果是非同源版本更新到同源版本,别忘记同步更新grub.efi,否则系统起不来
回复

使用道具 举报

Rain

发表于 2021-9-8 16:14:27 | 显示全部楼层

非常使用
回复

使用道具 举报

zytc

发表于 2021-11-5 12:25:20 | 显示全部楼层

使用 flash_write 烧写固件后,在维护卡浏览器界面看到版本信息没变。

然后试了下能否烧写版本信息:
首先读取srom的版本, ./read_flash 0x9000 0x4 > srom_version ,
使用十六进制编辑器修改内容,
最后写入 ./write_flash srom_version 0x9000 0x4
发现好像不在能烧写的地址范围内
Flash addr out of range.Flash:<0x10000-0x800000>

这样看来 hmcode(0xa000)和 bios(0xb000) 的版本信息也不能烧写了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则