hmcode 烧入

hmcode 是申威架构独有的技术,继承自 alpha。

配置 hmcode 烧入环境

​ 为了能够使用 hmcode 烧入相关的一系列软件工具,我们需要一个 Linux 操作系统以及一个 java 环境。

​ 创建一台虚拟机,安装 java 软件包,将 mt.tgz 文件解压到/root 目录下,配置环境变量:

1
2
3
4
5
6
7
8
9
$ tar xvf mt.tgz -C /root
$ ls
Maintance Maintance-6a
$ echo "# for 6A " >> /etc/bashrc
$ echo "export PATH=$PATH:/root/Maintance-6a/:/root/Maintance-6a/bin:/root/Maintance-6a/bin/2f:/root/Maintance-6a/swich " >> /etc/bashrc
$ echo "export CLASSPATH=/root/Maintance-6a/classes/server_md.jar:/root/Maintance-6a/classes/2F.jar:/root/Maintance-6a/classes/2F1.jar:/root/Maintance-6a/classes/comm.jar:." >> /etc/bashrc
$ source
$ echo $PATH
$ java -v

​ 检查是否配置成功:

1
2
$ readme
client version 2.17

扫描服务器维护端口号

保证服务器为正常开启状态,关闭笔记本 wifi。

注意:在这里务必保证你的网络设置是正确的,虚拟机使用桥接模式,同时设置 ip 到同一网段(192.168.1.x),一般推荐为 192.168.1.1 或 192.168.1.2。

1
2
3
$ ifconfig eth0 192.168.1.2
$ ip addr
$ ping bmcx

​ 连接服务器维护端口,端口 bmc 号(可以认为是一个固定的服务器 ip)可以通过打开服务器机盖查看,也可通过脚本扫描。

1
2
3
$ ./bmc.sh 0
$ ./bmc.sh 100
$ ./bmc.sh 200

后面的数字代表的意思是从哪个端口号开始扫描,灵活的使用可以缩短扫描时间。

​ 获取到 bmc 号(假设为 x)之后,将这个 bmc 号配置到 hosts :

1
2
$ echo "192.168.1.x bmcx" >> /etc/hosts
$ ping bmcx

烧入 hmcode

​ 配置好环境之后,烧入就简单多了,保持开机状态,烧入后重启:

1
2
$ loadhmcode -o x:0:0:0 -f hmcode.nh
$ reboot

​ 正确烧入后运行结果如下:

hmcode烧入结果

检查烧入结果

查看 hmcode 烧入情况

1
$ rflash -o x:0:0:0 -a 0x80000 -l 0x100 -b

读取 CPU 的 flash 中 HMCODE 文件的 256 个字节,判断 HMCODE 文件是否正确烧入。

查看 HMCODE 文件可以通过 genius disk 工具打开对应 hmcode.nh 文件。

注意:实际操作中可能会遇到烧写 hmcode.nh 之后内存地址 0 被刷掉的情况,这个时候查看配置文件

1
$ rflash -o x:0:0:0 -a 0x0 -l 0x100 -b

如果出现问题则需要重新烧写。

重新烧写:

1
$ loadflash -o x:0:0:0 -a 0 -f config_srom_eco.bin

重启服务器,烧入成功。