Netgate RCC-VE 4860のBIOS更新(01.00.00.12)

Netgate RCC-VE 4860のBIOS更新した記録 01.00.00.06→01.00.00.12

アップデート内容確認

今回はpfSenseを2.4.0へアップデートする際にルータが停止するので
ついでにBIOSも01.00.00.06から01.00.00.12へアップデートしました

変更点はGitHubで確認できます
GitHub – ADIEngineering/adi_coreboot_public: adi_coreboot
https://github.com/ADIEngineering/adi_coreboot_public

01.00.00.07-01.00.00.09はほぼ関係なし

01.00.00.10ではバグフィックス1点

Bug Fixes
・miniPCIe slot B interrupt fix
Certain legacy PCIe devices could cause interrupt storm when inserted in miniPCIe slot B. This issue is fixed in this release.

01.00.00.11は飛ばしverなのでスキップ

01.00.00.12ではAVR.50対策です

New Features
・Workaround for Intel C2000 Errata AVR.58
A software workaround for Intel C2000 Errata AVR.50 has been implemented in this release. The workaround disables SERIRQ to prevent indeterminate interrupt behavior for systems that do not have external pull up resistor on SERIRQ PIN.

01.00.00.10のバグに関しては今の環境へは影響なかったんですが
メインは01.00.00.12のAtom C2000エラッタ対策導入です

リリースノートのタイトルにはAVR58とありますがおそらくAVR50が正解
インテルのサイトで確認してもAVR58は登録されてませんでした

例の起動しなくなる問題はAVR54なので今回とは別かと思いますが
公式でも言及してないので真偽の程は不明

アップデートの手順

RCC-VE 4860のコンソールポートを使用して
正常動作させている状態から更新していきます

コンソールポートの接続方法などは以前の記事を参照してください
Netgate RCC-VE 4860でコンソールポートを使う | fefcc.net
https://fefcc.net/archives/101

コンソール画面が表示準備が整えば
次に更新BIOSの入ったUSBメモリを作成します
今回使用したイメージはこちら
http://firmware.netgate.com/bios/bios12.img.gz

解凍してbios12.imgを抽出してUSBメモリへ書き込み
(当然ですがイメージファイルとして書き込みしてください)

USB2.0ポートの上側にあるUSB0にpfSenseが稼働した状態のまま刺して
pfSenseを再起動させます

iPXE (http://ipxe.org) 00:14.3 C400 PCI2.10 PnP PMM 7FB7BE20 7FADBE20 C400

Press F12 for boot menu.

という表示が出るのでF12キーを押すとブートデバイス選択メニューが表示される

Select boot device:

1. USB MSC Drive SanDisk Cruzer Switch 1.26
2. AHCI/0: M4-CT032M4SSD3 ATA-9 Hard-Disk (30533 MiBytes)
3. USB MSC Drive Generic Ultra HS-COMBO 1.98
4. iPXE (PCI 00:14.0)
5. iPXE (PCI 00:14.1)
6. iPXE (PCI 00:14.2)
7. iPXE (PCI 00:14.3)
8. Payload [setup]

今回はUSB0なので1キーを押してブートさせます
今回もFreeBSDベースのimgなのでFreeBSDが起動

何も押さず放置でコマンド待機状態まで待ちます

root@bios12:~ #

起動完了すればlsコマンドで更新shのファイル名確認

root@bios12:~ # ls -al

total 33908
drwxr-xr-x   3 1001  1001      1024 Feb 28  2017 .
drwxr-xr-x  18 1001  1001       512 Oct 12 20:06 ..
-rw-r--r--   2 root  wheel      966 Aug 12  2015 .cshrc
-rw-r--r--   1 root  wheel      149 Aug 12  2015 .k5login
-rw-r--r--   1 root  wheel      297 Aug 12  2015 .login
-rw-r--r--   1 1001  1001       352 May 12  2015 .profile
-rw-r--r--   1 1001  1001    548041 Aug  5  2015 ADI Engineering RCCVE Bootrom Software Release Notes.pdf
-rw-r--r--   1 1001  1001   8388608 Jan 25  2016 ADI_DFF2-01.00.00.08-nodebug.rom
-rw-r--r--   1 root  1001   8388608 Feb 28  2017 ADI_DFF2-01.00.00.12-nodebug.rom
-rw-r--r--   1 1001  1001   8388608 Jan 25  2016 ADI_RCCVE-01.00.00.08-nodebug.rom
-rw-r--r--   1 root  1001   8388608 Feb 28  2017 ADI_RCCVE-01.00.00.12-nodebug.rom
-rwxr-xr-x   1 1001  1001     13478 Nov  9  2015 adi_flash_util
drwxr-xr-x   2 root  wheel      512 Jan 25  2016 bin
-rwxr-xr-x   1 1001  1001      1401 Feb 28  2017 flash.sh
-rwxr-xr-x   1 1001  1001       105 Jan 25  2016 flash_08.sh
-rwxr-xr-x   1 1001  1001       105 Feb 28  2017 flash_12.sh
-rwxr-xr-x   1 1001  1001       104 Feb 28  2017 flash_dff.sh
-rwxr-xr-x   1 1001  1001    540293 Aug 24  2015 flashrom
-rwxr-xr-x   1 1001  1001       160 Sep 28  2015 serial.sh
-rwxr-xr-x   1 1001  1001       429 Jun  9  2015 zerodisk.sh

flash.shが実行ファイルなので指定実行

root@bios12:~ # ./flash.sh

Your current Bios is ADI_RCCVE-01.00.00.06-nodebug
Factory Bios Version is ADI_RCCVE-01.00.00.12-nodebug
Upgrade BIOS?

現在が01.00.00.06 更新が01.00.00.12になっているのを確認して
yキーを押してエンターキー

後はエラーでないことを祈りながら放置

root@bios12:~ # ./flash.sh

Your current Bios is ADI_RCCVE-01.00.00.06-nodebug
Factory Bios Version is ADI_RCCVE-01.00.00.12-nodebug
Upgrade BIOS?y
12 Oct 20:07:19 ntpdate[696]: no servers can be used, exiting
Updating flashing ...
flashrom v0.9.8-r1888 on FreeBSD 10.2-RELEASE (amd64)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
coreboot table found at 0x7fbf0c00.
Found chipset "Intel Avoton/Rangeley".
This chipset is marked as untested. If you are using an up-to-date version
of flashrom *and* were (not) able to successfully update your firmware with it,
then please email a report to flashrom@flashrom.org including a verbose (-V) log.
Thank you!
Enabling flash write... OK.
Found Winbond flash chip "W25Q64.V" (8192 kB, SPI) mapped at physical address 0x00000000ff800000.
Reading flash... done.
SN:  ************
Serial Number Read from Flash ************
flashrom v0.9.8-r1888 on FreeBSD 10.2-RELEASE (amd64)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
coreboot table found at 0x7fbf0c00.
Found chipset "Intel Avoton/Rangeley".
This chipset is marked as untested. If you are using an up-to-date version
of flashrom *and* were (not) able to successfully update your firmware with it,
then please email a report to flashrom@flashrom.org including a verbose (-V) log.
Thank you!
Enabling flash write... OK.
Found Winbond flash chip "W25Q64.V" (8192 kB, SPI) mapped at physical address 0x00000000ff800000.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.
Done. Please power cycle the board if the flash has been updated
DONE
Your flash is up to date, or has been upgraded.
root@bios12:~ #

無事に完了したら念のため再起動ではなくシャットダウン

root@bios12:~ # shutdown -p now

シャットダウン後はコンソールポートからケーブルを外して
更新用BIOSが入ったUSBメモリを抜きます

電源を入れなおしていつも通りpfSenseを起動させます
pfSenseのダッシュボードでBIOSのバージョン確認できるので便利

これで完了です

最後に

所要時間は手順わかってれば5分ほどで完了します

公式での解説はこちら
BIOS Flash Procedure — Netgate Documentation
https://www.netgate.com/docs/rcc-ve-4860/adi-bios-flash.html