2026/03/07

【続】TangConsoleDCJ11MEMへの2.11BSDのインストール ~メモリの拡張実験~

実験的にRAMを124kw(248KB)から252kw(504KB)に拡張してみました。

必要な準備

アドレス腺を増やすため、ジャンパの配線が必要です。DCJ11のDALH[18]とDALH[19] をPmod1のW19とF19にそれぞれ接続してください。FPGAの更新も必要です。

なお、FPGAの入力耐圧については確認していませんので、ジャンパを直結すると故障する可能性があります。抵抗分圧回路を組んで接続したほうが良いと思います。なお、パターンカットを伴う方法についても検討中です。(追記:こちらを参照)

2.11BSDのカーネルについては追加のパッチが必要です。パッチはこちら パッチを適用したカーネルで置き換えてください。スワップデバイスに対してかなり大きなサイズのリクエストが来ていたので、PCで言うところのbounce bufferに相当するバッファのサイズを拡大しています。(3月9日更新: 誤ったパッチを登録していたため、パッチを更新しました。)

 設定変更

シングルユーザモードで起動後は、適宜/etc/fstabなどを変更してください。カーネルを置き換える際についでに編集するのがよいと思います(実機ではedしか使えないので)。

デバイスファイルに関しては、swapとdrumを作り直してください。デバイス番号は以下の通りです。(/dev/rk1hがスワップデバイスとして使用されます。)

 # ls -l /dev/swap /dev/drum
brw-r-----  1 root       6,   1 Mar  5 15:10 /dev/drum
brw-r-----  1 root       6,   1 Mar  5 15:10 /dev/swap

/etc/rcや/etc/rc.local、/etc/netstartは動作しないデーモンなどをコメントアウトするとよいでしょう。現時点で判明しているのは、lpd, hostid, sendmailです。

諸注意

RAMの拡張に伴い、ブートローダのアドレスが0773xxxから1773xxxに変更されています。 

動作が不安定で再現性のない挙動をします。例えば、カーネルをビルドするためにmakeを実行すると、makeが"Memory fault - core dumped"になったり、/lib/cppが"Fatal error in /lib/cpp"になったりします。viも正常動作はしません。

こんな状態なので、これはあくまでも「実験」です。 

なお、 メモリを640KB(RAM)+8KB(ROM)に拡張するとFPGAのBSRAMの使用率が100%になります。(3月9日追記: 実装方法を変更してメモリを640KB(RAM)+4KB(ROM)にしました。使用率は97%です。)

フルインストール方法の改良

インストールテープのイメージ作成ですが、以下の手順に変更すればmicroSDカードは1枚で済みます。"mt fsf"のパラメータは適宜変更してください。

 #!/bin/sh

# file 0
dd if=mtboot    of=211bsd.img conv=notrunc
dd if=mtboot    of=211bsd.img conv=notrunc seek=1
dd if=boot      of=211bsd.img conv=notrunc seek=2
# file 1
dd if=disklabel of=211bsd.img conv=notrunc seek=65536
# file 2
dd if=mkfs      of=211bsd.img conv=notrunc seek=131072
# file 3
dd if=restor    of=211bsd.img conv=notrunc seek=196608
# file 4
dd if=icheck    of=211bsd.img conv=notrunc seek=262144
# file 5
dd if=root.dump of=211bsd.img conv=notrunc seek=327680
# file 6
dd if=file6.tar of=211bsd.img conv=notrunc seek=393216
# file 7
# (this file is intentionally unused)
# file 8
dd if=file7.tar of=211bsd.img conv=notrunc seek=524288
# file 9
dd if=file8.tar of=211bsd.img conv=notrunc seek=589824
# file 10
# (this file is intentionally unused)

お試しあれ。

0 件のコメント:

コメントを投稿

TangConsoleDCJ11MEMにおける2BSDの誤動作の調査 その3

誤動作の原因の二つ目が判明しました。 符号なし2進数と符号付2進数の比較 後述するSOFUB_MAPの実装に符号なし2進数と符号付2進数を比較しているコードがありました。直接の比較ではありませんでしたが、符号なし整数の値を符号付整数の変数に代入し、その変数と定数を比較していたため...