前提条件
-
SSH等でターミナル操作及びファイル転送が出来る状態にセットアップしたRaspberryPi本体とRaspberryPi OSが必要になります。
-
基本的な操作(ターミナル操作、ファイル転送、解凍作業)に不慣れな場合はファームウェアの更新はお勧めしません。
-
PhantomXのベースボードおよびリロケータをX68000本体から外して作業します。
リロケータを外す際には短辺方向に少しずつ傾けながら外してください(長辺方向だとピンが曲がりすぐに折れます)。
-
XVIの16MHzサポートやFPUボードのサポートが不要な場合はファームウェアの更新は必要ありません。
-
ファームウェアの書き込みに失敗した場合に復旧できない可能性はゼロではありません。
正しく手順を慎重に守れば失敗するリスクは殆どありません。
-
改良版ファームウェアで問題が出た場合には頒布版ファームウェアを再度書き込む必要があります。
I2Cの有効化
ベースボードにはSLG46826GもしくはSLG46824G(以下GreenPAKと呼びます)が4つ実装されておりそれぞれファームウェアを書き込む必要があります。
ファームウェアの書き込みにはRaspberryPiから各GreenPAKにI2Cで通信を行う必要があります。
従って、まずRaspberryPiでI2Cが使用できるように設定を行います。
"Interface Options"を選択
"I2C"を選択
"YES"を選択
以上でI2Cが利用できるようになります。
ジャンパの準備
I2Cはクロック(SCL)とデータ信号(SDA)の2本の信号線を用いて通信する方式です。
クロック(SCL)はRaspberryPiのSCLと全てのGreenPAKで共通ですのでジャンパを一つ付けて接続します。
データ信号(SDA)は基板上のそれぞれのGreenPAKに対応したジャンパがありますので付け替えながら作業します。
頒布開始当初のベースボードにはファームウェアのバグFIXが必要になることを想定してジャンパを付けて出荷していました。
2022年秋以降はファームウェアが十分に安定していると判断しジャンパを付けていません。
お手元のベースボードにジャンパが無い場合は別途用意していただく必要があります。
GreenPAKとジャンパの対応関係
横一列に並んだGreenPAKにはそれぞれ左から順にGP1からGP4という名前をつけています。
それぞれのGreenPAKのSDA端子は右下のジャンパの上段のピンに結線されています。
下段のピンは全てRaspberryPIのSDA端子に結線されています。
RaspberryPiのSDA端子は共通です(ジャンパの下段に結線されています)。
ファームウェアを更新する個々のGreenPAKのSDA端子をジャンパで接続して作業を行います。
例えば一番右のGP4のファームウェアを書き込むときには次のように接続します。
リロケータをつけたまま机の上などで作業する場合はピンがとても折れやすいので注意が必要です。
ファームウェアと更新ツールの準備
このページの一番上にあるリンクから最新のファームウェアと更新ツールをダウンロードしてください。
そのモジュールをRaspberry Pi上で展開すれば以下のファイルが入手できます。
拡張子がhexのファイルがファームウェアです。
GP+連番はそれぞれGreenPAKのGP1~4に該当します。
GP1_XVIはXVI専用のGP1ファームウェアです。
通常はGP1.hexを書き込んでください。
GP1_XVI.hexはXVI16MHzモードで僅かに性能が向上する特別バージョンです。
gputilはファームウェアの更新ツールです。
更新ツールの使用方法(通信確立および現在のファームウェアの参照)
ファームウェアのアーカイブに含まれるgputilの使用方法を説明します。
引数無しで起動すると簡単なヘルプが出力されます。
該当するGreenPAKのジャンパが接続されていることを確認しIC内のファームウェアを参照します。
引数に"-t nvm"を指定してください。
GreenPAKとの通信に成功すれば以下のように出力されます。
これが現在のファームウェアです。
何らかのデータが表示されているならば
GreenPAKと正しく通信ができておりファームウェアの更新が可能です。
もし以下のように全て0で表示されたなら接続もしくは通信に失敗しています。
この状態ではファームウェアの更新はできません。
I2Cの設定やジャンパ接続を確認してください(ジャンパの端子が汚れている場合はジャンパをグリグリしてください)。
ごく稀に正しくジャンパ設定されているにも関わらず通信に失敗することがあります。
これはGP1から4に順次更新していく途中でGreenPAKの状態が不安定になり
I2Cの通信に失敗しているようです(割と高い確率で発生します)。
この事象が発生した時には
RaspberryPiをシャットダウンして一度電源を完全に切ってください。
その後再度電源オンで起動します。
リブートではありません。必ず電源オフが必要です。
更新ツールの使用方法(ファームウェアの更新)
まず引数に"-t nvm"を指定してGreenPAKと正しく通信が出来ていることを確認した後に更新します。
正しく通信できていますので更新作業に入ります。
ファームウェアの更新には"-t nvm -w ファームウェアファイル名"という引数を使用します。
以下の'?'には1~4の該当する番号が入ります。
以下、GP1にGP1.hexを書き込んだ時のログです。
これでファームウェアの書き込みが完了しました。
この操作をGP1からGP4まで繰り返せば全てのファームウェアの更新作業が完了です。
兎に角心配な方はファームウェアを1つ更新するごとにRaspberryPIをシャットダウンすることです。
以下の手順をGP1からGP4まで4回繰り返せば更新に失敗することはまず無いと思います。
- ジャンパを変える
- RaspberryPIに電源をつなぐ
- RaspberryPI OSを起動する
- RaspberryPI OSにログインする
- ファームウェアを展開したディレクトリに移動する
- ./gputil -nvm でI2C通信が正常か確認する
- ./gputil -nvm -w GP{1|2|3|4}.hex でファームを書き込む
- RaspberryPI OSをシャットダウンする
- RaspberryPIの電源をはずす