CPU-5V/7V/8VT/20VT OpenBoot PROM上からVMEbusへのアクセス方法について
Opebaoot PROM上からVMEbus上のボードへアクセスするには、
FGA-5000 ゲートアレイのVMEbusマスターインターフェースの設定とSbusアドレスのマッピングが必要になります。
以降にその方法について示します。
FGA-5000ゲートアレイ VMEマスターインターフェースの設定
説明
FGA-5000ゲートアレイのVMEマスターインターフェースには16個のレンジがあり、
それぞれにアドレス空間,データサイズ,ベースアドレス等の設定をするようになっています。
OPENBOOTからは、vme-master-range!,vme-master-ena,vme-master-mapコマンドを使用して
設定します。
また、設定内容を確認するには .vme-master-rangesコマンドを使用します。
設定例
※VME A32D32 0x800000番地から1MBをレンジ0に設定します。
ok 800000 cap-d32 cap-a32 100000 0 vme-master-range!
ok 0 vme-master-ena
ok .vme-master-ranges
no SBus addr slot size VME addr a-cap d-cap wp range
——————————————————————————–
0 7e000000 5 1000000 800000 A32 D32 wp: DIS range: ENA
1 7f000000 5 10000 0 A16 D32 wp: DIS range: ENA
2 3f000000 1 1000000 fa000000 A32 D32 wp: DIS range: ENA
3 3fff0000 1 10000 ffff0000 undef undef wp: DIS range: DIS
4 3fff0000 1 10000 ffff0000 undef undef wp: DIS range: DIS
5 3fff0000 1 10000 ffff0000 undef undef wp: DIS range: DIS
6 3fff0000 1 10000 ffff0000 undef undef wp: DIS range: DIS
7 3fff0000 1 10000 ffff0000 undef undef wp: DIS range: DIS
8 3fff0000 1 10000 ffff0000 undef undef wp: DIS range: DIS
9 3fff0000 1 10000 ffff0000 undef undef wp: DIS range: DIS
10 3fff0000 1 10000 ffff0000 undef undef wp: DIS range: DIS
11 3fff0000 1 10000 ffff0000 undef undef wp: DIS range: DIS
12 3fff0000 1 10000 ffff0000 undef undef wp: DIS range: DIS
13 3fff0000 1 10000 ffff0000 undef undef wp: DIS range: DIS
14 3fff0000 1 10000 ffff0000 undef undef wp: DIS range: DIS
15 3fff0000 1 10000 ffff0000 undef undef wp: DIS range: DIS
Sbusアドレスのマッピング方法
説明
VMEbus上のアドレスは、FGA-5000ゲートアレイを介して、Sbus上のアドレスに
割り当てられます。このSbusのアドレスを仮想メモリーへマッピングすることでVMEへアクセスが
出来る様になります。OPENBOOTからは map-pages,memmapコマンドを使用することで、
Sbus上のアドレスを仮想メモリーへマッピングすることが出来ます。
設定例
※VME A32D32 $800000番地から1MBをマッピングします。
ok 0 vme-master-map . <— レンジ0に設定されたSbusアドレスを表示します。
7e000000 <— このアドレスを仮想メモリーへマッピングします。
ok 7e800000 sbus 400000 100000 map-pages <— 仮想メモリー $400000に1MB分をマッピングします。
ok 0 vme-master-map . <— レンジ0に設定されたSbusアドレスを表示します。
7e000000 <— このアドレスを仮想メモリーへマッピングします。
ok 7e800000 sbus 100000 memmap . <— システムで割り当てた仮想メモリーに1MB分をマッピングしマッピング
fee00000 された仮想アドレスを表示します。
アクセスの方法
説明
マッピングされたアドレスへのアクセスには、OPENBOOTからは 下記のコマンドを使用します。
dumpコマンド アドレスの内容をダンプします。
使用例: ok 400000 100 dump <– 仮想アドレス 0x400000から256バイトをダンプします。
fillコマンド アドレスにデータを書き込みます。
使用例: ok 0 400000 100 fill <– 仮想アドレス 0x400000から256バイトに0'を書きます。
c?コマンド アドレスから1バイトのデータを読み込み表示します。
w? 〃 〃 2バイト 〃
l? 〃 〃 4バイト 〃
使用例: ok 400000 c? <– 仮想アドレス 0x400000の1バイト表示します。
c@コマンド アドレスから1バイトのデータを読み込みます。
w@ 〃 〃 2バイト 〃
l@ 〃 〃 4バイト 〃
使用例: ok 400000 c@ <– 仮想アドレス 0x400000から1バイトを読みます。
c!コマンド アドレスへ1バイトのデータを書き込みます。
w! 〃 〃 2バイト 〃
l! 〃 〃 4バイト 〃
使用例: ok 0 400000 c! <– 仮想アドレス 0x400000へ'0'を1バイト書きます。