1. HOME
  2. FAQ
  3. CPU-5V/7V/8VT/20VT OpenBoot PROM上からVMEbusへのアクセス方法について

FAQ

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バイト書きます。