GIMONS DEVELOPER WORKS/Memory expansion board for X68000 - MarsX/P -

MarsX/Pファームウェア更新手順

ファームウェアのダウンロード

MarsX/Pファームウェア(20250629)のダウンロード(TAR.GZ形式)



ファームウェアとは

MarsX/PにはアドレスデコードならびにPSRAM制御用にSLG46824G(以下GreenPAKと呼びます)が1つ実装されています。 ファームウェアはこのGreenPAKの制御プログラムです。

このファームウェアは改善のために書き換えが可能になっています。 このアップデートはそのファームウェアを更新して最新化するものです。

RaspberryPiとMarsX/Pの接続

ファームウェアの更新にはRaspberryPiが必要です。

配線中はRaspberryPiの電源は入れてはいけません!

当然ながらRaspberryPiとMarsX/Pを接続する必要があります。 ファームウェアの更新はI2Cという通信方式で行います。 電源、グランド、I2Cの信号線(SCL,SDA)の計4本を接続します。

やり方は色々あると思いますが代表的な3案を示します。

接続方法①(ブレッドボード及びジャンパワイヤ2種使用)

RaspberryPiのGPIOコネクタからジャンパワイヤで信号線を引き出しブレッドボードに中継させ、 さらにMarsX/Pには両端がバネタイプのジャンパワイヤで接続します。

ブレッドボードとブレッドボード用ジャンパワイヤは次の様な物です。 ジャンパワイヤは片方がメス、もう片方がオスの物になります。 ジャンパワイヤは4本必要です。

ブレッドボードとMarsX/Pのスルーホールを繋ぐジャンパワイヤは次の様な物です。 コネクタがバネ付きになっておりスルーホールに差し込んでも正しく接触するようになっています。 秋月電子等で入手可能ですが片方だけバネ付きの物と、両端バネ付きの物があります。 どちらでも構いませんが両端バネ付きでも問題ありません。 両端バネ付きであれば拙作FDX68のファームウェア更新にも使用できます。

秋月電子やサンハヤトの物が手に入り易いと思います。

ご参考
秋月電子 スルーホール用テストワイヤ TT-200

これも4本必要です。

必要な物が揃ったらワイヤリングしていきます。 接続が必要な物はVCC、GND、SCL(I2C)、SDA(I2C)の4つになります。

まずRaspberryPiのピンヘッダーに接続する必要のある個所に下線(オレンジ色)を付けました。 VCC->5V powrt,GND->Groundとなります。 画像にも書いてありますがSCL、SDAはそれぞれGPIO3とGPIO2です。

RaspberryPiとブレッドボードを接続すると次の様になります(普通のジャンパワイヤ使用)。

さらにブレッドボードからMarsX/Pに繋いだ状態です(バネ付きジャンパワイヤ使用)。 写真はパイルダータイプですが、ボードタイプ、IOボード寄生タイプでも同じ要領です。

MarsX/Pには3タイプがありますがそれぞれVCC、GND、SCL、SDAを記載しています。

ボードタイプ
本体からMarsX/Pを取り外して作業してください。

IOボード寄生タイプ
MarsX/PはIOボードにはんだ付けしているでしょうからIOボードごと取り外して作業してください。

パイルダータイプ
PilederXのベースボードからMarsX/Pを取り外して作業してください。




接続方法②(FDX68のシールドと両端バネ付きジャンパワイヤを使用)

FDX68のシールドにもVCC、GND、SCL、SDA用のスルーホールがあります。 この場合はスルーホール用のジャンパワイヤのみで接続することが可能です。 FDX68のシールドの右下にVCC、GND、SCL、SDAを記載していますのでここと接続します。

両端バネ付きのジャンパワイヤのみで接続が可能です。




接続方法③(普通のジャンパワイヤしか無い場合の簡易手段)

お勧めしませんが結局のところVCC、GND、SCL、SDAが接触不良無く接続できれば良いだけですので、 MarsX/Pのスルーホールに普通のジャンパワイヤを差し込み(当然ユルユルです)、 テープで斜めに固定して無理やり接触させます。

大人の約束としてお勧めしませんからね(笑)。



ファームウェア更新手順(RaspberryPi OS上での作業です)

前提条件

RaspberryPiとMarsX/Pの配線が正しいことを確認してから行ってください。

SSH等でターミナル操作及びファイル転送が出来る状態にセットアップしたRaspberryPi本体とRaspberryPi OSが必要になります。

gputilが32ビット版ですのでRaspberryPi OSも32ビット版を用意してください。

RaspberryPi5は使用できません(64ビット版OSしかインストールできないため)。

I2Cの有効化

RaspberryPiでI2Cが使用できるように設定を行います。

コンフィグレーションツールの起動
sudo raspi-config

"Interface Options"を選択

"I2C"を選択

"YES"を選択

以上でI2Cが利用できるようになります。

ファームウェアと更新ツールの準備

このページの一番上にあるリンクから最新のファームウェアと更新ツールをダウンロードしてください。

ダウンロードしたアーカイブはSCP等でRaspberry Piに転送してください。

そのモジュールをRaspberry Pi上で展開すれば以下のファイルが入手できます。 展開はRaspberryPi上で行ってください(例:tar -xvf marsxp_fw_20250629.tar.gz)。

ダウンロードしたアーカイブをWindows上等で解凍して転送しないでください。 gputilの実行属性が外れて実行できなくなります(chmodで対応できますが・・・)。

-rwxr-xr-x pi/pi         13624 2025-01-27 01:55 gputil
-rw-r--r-- pi/pi           715 2025-06-28 17:18 MARSXP_BOARD_20250629.hex
				

拡張子がhexのファイルがファームウェアです。

gputilはファームウェアの更新ツールです。

更新ツールの使用方法(通信確立および現在のファームウェアの参照)

ファームウェアのアーカイブに含まれるgputilの使用方法を説明します。 ホームディレクトリ上のmarsxp_fw_20250629フォルダにて作業する例です。

引数無しで起動すると簡単なヘルプが出力されます。

pi@raspberrypi:~/marsxp_fw_20250629 $ ./gputil
GreenPAK configuration utility
Copyright (C) 2021 GIMONS

Usage: ./gputil [-t TYPE] [-w FILE] [-c CODE]
 -t is config type, TYPE is {reg|nvm|eeprom}.
 -w is write operation, FILE is configration file path..
 -c control code, CODE is {0..f}. Default is 1.
				

テストワイヤでSDA端子間が接続されていることを確認しIC内のファームウェアを参照します。 引数に"-t nvm"を指定してください。

pi@raspberrypi:~/marsxp_fw_20250629 $ ./gputil -t nvm
				

GreenPAKとの通信に成功すれば以下のように出力されます。

pi@raspberrypi:~/marsxp_fw_20250629 $ ./gputil -t nvm
GreenPAK configuration utility
Copyright (C) 2021 GIMONS

Chip configration data.
---------------------------------------
Page |  0 1 2 3 4 5 6 7 8 9 A B C D E F
-----+---------------------------------
0x00 | 550b0097ea4816753e8e94a26c92a229
0x01 | ea2629fa381290a4e8ba348cd2308310
0x02 | 0c423008c12004831000000000000000
0x03 | 000000000000c60400d803fd00000000
0x04 | 00000000000000000000000000000000
0x05 | 00000000000000000000000000000000
0x06 | 0070700070300c000000848404003030
0x07 | 00000000000000000000000000000000
0x08 | 00000000001422300c00000000000000
0x09 | 77090000e96860384020000097000000
0x0A | 00001e2000010000eb020100eb020001
0x0B | 000c0201000902000100200201000202
0x0C | 00010040020001000000010100000000
0x0D | 00000000000000000000000000000000
0x0E | 00000000000000000000000000000000
0x0F | 40000c2b231e101010008000000000a5
				

これが現在のファームウェアです。 何らかのデータが表示されているならば GreenPAKと正しく通信ができておりファームウェアの更新が可能です。

もし以下のように全て0で表示されたなら接続もしくは通信に失敗しています。

pi@raspberrypi:~/marsxp_fw_20250629 $ ./gputil -t nvm
GreenPAK configuration utility
Copyright (C) 2021 GIMONS

Chip configration data.
---------------------------------------
Page |  0 1 2 3 4 5 6 7 8 9 A B C D E F
-----+---------------------------------
0x00 | 00000000000000000000000000000000
0x01 | 00000000000000000000000000000000
0x02 | 00000000000000000000000000000000
0x03 | 00000000000000000000000000000000
0x04 | 00000000000000000000000000000000
0x05 | 00000000000000000000000000000000
0x06 | 00000000000000000000000000000000
0x07 | 00000000000000000000000000000000
0x08 | 00000000000000000000000000000000
0x09 | 00000000000000000000000000000000
0x0A | 00000000000000000000000000000000
0x0B | 00000000000000000000000000000000
0x0C | 00000000000000000000000000000000
0x0D | 00000000000000000000000000000000
0x0E | 00000000000000000000000000000000
0x0F | 00000000000000000000000000000000
				

この状態ではファームウェアの更新はできません。I2Cの設定及び接続を確認してください。

更新ツールの使用方法(ファームウェアの更新)

まず引数に"-t nvm"を指定してGreenPAKと正しく通信が出来ていることを確認した後に更新します。

pi@raspberrypi:~/marsxp_fw_20250629 $ ./gputil -t nvm
GreenPAK configuration utility
Copyright (C) 2021 GIMONS

Chip configration data.
---------------------------------------
Page |  0 1 2 3 4 5 6 7 8 9 A B C D E F
-----+---------------------------------
0x00 | 550b0097ea4816753e8e94a26c92a229
0x01 | ea2629fa381290a4e8ba348cd2308310
0x02 | 0c423008c12004831000000000000000
0x03 | 000000000000c60400d803fd00000000
0x04 | 00000000000000000000000000000000
0x05 | 00000000000000000000000000000000
0x06 | 0070700070300c000000848404003030
0x07 | 00000000000000000000000000000000
0x08 | 00000000001422300c00000000000000
0x09 | 77090000e96860384020000097000000
0x0A | 00001e2000010000eb020100eb020001
0x0B | 000c0201000902000100200201000202
0x0C | 00010040020001000000010100000000
0x0D | 00000000000000000000000000000000
0x0E | 00000000000000000000000000000000
0x0F | 40000c2b231e101010008000000000a5
				

正しく通信できていますので更新作業に入ります。

ファームウェアの更新には"-t nvm -w ファームウェアファイル名"という引数を使用します。

pi@raspberrypi:~/marsxp_fw_20250629 $ ./gputil -t nvm -w MARSXP_BOARD_20250629.hex
				

以下、ファームウェアを書き込んだ時のログです。

pi@raspberrypi:~/marsxp_fw_20250629 $ ./gputil -t nvm -w MARSXP_BOARD_20250629.hex
GreenPAK configuration utility
Copyright (C) 2021 GIMONS

Configration file.
---------------------------------------
Page |  0 1 2 3 4 5 6 7 8 9 A B C D E F
-----+---------------------------------
0x00 | d043b5927119d5742a0b9b288bb2b889
0x01 | b2586a043d289028cbda300000008310
0x02 | 0c423008c12004831000000000000000
0x03 | 0000000000000606000ef4fc00000000
0x04 | 00000000000000000000000000000000
0x05 | 00000000000000000000000000000000
0x06 | 00707000703078010000808000003001
0x07 | 01010101000000000000000000000000
0x08 | 00000000001422300c00000000000000
0x09 | d98d0000166038402038000060000000
0x0A | 00001e20000100000602010000020001
0x0B | 000c0201000902000100200201000202
0x0C | 00010040020001000000010100000000
0x0D | 00000000000000000000000000000000
0x0E | 00000000000000000000000000000000
0x0F | 000000000000000000000000000000a5

Erase chip configration.
---------------------------------------
Page 0x00 : complete
Page 0x01 : complete
Page 0x02 : complete
Page 0x03 : complete
Page 0x04 : complete
Page 0x05 : complete
Page 0x06 : complete
Page 0x07 : complete
Page 0x08 : complete
Page 0x09 : complete
Page 0x0A : complete
Page 0x0B : complete
Page 0x0C : complete
Page 0x0D : complete
Page 0x0E : complete
Page 0x0F : complete

Write configration data.
---------------------------------------
Addr 0x02
Page 0x00 : complete
Page 0x01 : complete
Page 0x02 : complete
Page 0x03 : complete
Page 0x04 : complete
Page 0x05 : complete
Page 0x06 : complete
Page 0x07 : complete
Page 0x08 : complete
Page 0x09 : complete
Page 0x0A : complete
Page 0x0B : complete
Page 0x0C : complete
Page 0x0D : complete
Page 0x0E : complete
Page 0x0F : complete

Chip configration data.
---------------------------------------
Page |  0 1 2 3 4 5 6 7 8 9 A B C D E F
-----+---------------------------------
0x00 | d043b5927119d5742a0b9b288bb2b889
0x01 | b2586a043d289028cbda300000008310
0x02 | 0c423008c12004831000000000000000
0x03 | 0000000000000606000ef4fc00000000
0x04 | 00000000000000000000000000000000
0x05 | 00000000000000000000000000000000
0x06 | 00707000703078010000808000003001
0x07 | 01010101000000000000000000000000
0x08 | 00000000001422300c00000000000000
0x09 | d98d0000166038402038000060000000
0x0A | 00001e20000100000602010000020001
0x0B | 000c0201000902000100200201000202
0x0C | 00010040020001000000010100000000
0x0D | 00000000000000000000000000000000
0x0E | 00000000000000000000000000000000
0x0F | 40000c2b231e101010008000000000a5
				

これでファームウェアの書き込みが完了しました。



[EOF]