PMC42x PPC vxWorks ドライバー V2.7.1 インストール

PMC42x PPC vxWorks ドライバー V2.7.1 インストール



1. メディアキットのファイルを解凍します。

2. CPUボードのBSPディレクトリィへ下記のファイルをコピーします。

  vxWorks5.xの場合

  例: C:\Tornado2.2.1\target\config\mv5500

・setup/target (フォルダごと)
・setup/rxLocateDevicePPC_54.o
・setup/rxLocateDevicePPC_55.o
・setup/rxPciLibPPC_54.o
・setup/rxPciLibPPC_55.o
・setup/rxsetup.c
・setup/rxsetup.h
・ser2-sev-arc/ser2drvPPC_54.o
・ser2-sev-arc/ser2drvPPC_55.o
・ser2-sev-arc/ser2.h
・ser2-sev-arc/ttyex.c
・ser2-sev-arc/ttytest.c

  vxWorks6.xの場合

  例: C:\WindRiver\vxworks-6.6\target\config\mv5500

・setup/target (フォルダごと)
・setup/rxLocateDevicePPC_60.o
・setup/rxLocateDevicePPC_61.o
・setup/rxLocateDevicePPC_62.o
・setup/rxLocateDevicePPC_63.o
・setup/rxLocateDevicePPC_64.o
・setup/rxLocateDevicePPC_65.o
・setup/rxLocateDevicePPC_66.o
・setup/rxPciLibPPC_60.o
・setup/rxPciLibPPC_61.o
・setup/rxPciLibPPC_62.o
・setup/rxPciLibPPC_63.o
・setup/rxPciLibPPC_64.o
・setup/rxPciLibPPC_65.o
・setup/rxPciLibPPC_66.o
・setup/rxsetup.c
・setup/rxsetup.h
・ser2-sev-arc/ser2drvPPC_60.o
・ser2-sev-arc/ser2drvPPC_61.o
・ser2-sev-arc/ser2drvPPC_62.o
・ser2-sev-arc/ser2drvPPC_63.o
・ser2-sev-arc/ser2drvPPC_64.o
・ser2-sev-arc/ser2drvPPC_65.o
・ser2-sev-arc/ser2drvPPC_66.o
・ser2-sev-arc/ser2.h
・ser2-sev-arc/ttyex.c
・ser2-sev-arc/ttytest.c

 

コピーしたファイルで、以下のファイルは拡張子を.o から .objへ変更します。

ser2drvPPC_xx.o  ⇒  ser2drvPPC_xx.obj

rxPciLibPPC_xx.o  ⇒ rxPciLibPPC_xx.obj

rxLocateDevicePPC_xx.o ⇒ rxLocateDevicePPC_xx.obj

※make cleanを実行するとファイルが削除されてしまいますので
ファイル名を .o から .obj へ変更しておいてください。

 

3. BSPのMakefileを編集します。

    Makefileファイル

     下記の行へ下線部を追加します。

      MACH_EXTRA = ser2drvPPC_xx.obj rxPciLibPPC_xx.obj rxLocateDevicePPC_xx.obj rxsetup.o ttytest.o ttyex.o

    ※xxの部分は使用されているvxWorksのバージョンに合せて下さい。
         xx=54 ⇒ vxWorks5.4 xx=55 ⇒ vxWorks5.5(5.5.1)
        
xx=60 ⇒ vxWorks6.0 xx=67 ⇒ vxWorks6.7

4. rxsetup_target.hファイルを御使用の環境へ合わせて作成します。


targetディレクトリィから御使用のCPUボードに該当する
   rxsetup_xxxxxx.h ファイルがある場合、そのファイルをBSP
フォルダーへコピーし、名前をrxsetup_target.hヘ変更します。

rxsetup_dy4179.h  Dy4 SVME179,181,182,183用
rxsetup_frc6750.h  Force PowerCore6750、PowerCoreシリーズ用
rxsetup_mv2400.h  Motorola MVME2400用
rxsetup_mv2600.h  Motorola MVME2600用
rxsetup_mv5100.h  Motorola MVME5100用
rxsetup_mv5500.h  Motorola MVME5500用
rxsetup_mv6100.h  Motorola MVME6100用
rxsetup_ppc7d.h   Radstone PPC7d用
rxsetup_vme7050.h GEfanuc VMIVME7050用
rxsetup_vpmc6a.h  Thales VMPC6a用
 

    rxsetup_ppc_skel.h その他PPCボード用Skelton
    ※このファイルはあくまでテンプレートですので御使用のCPUボードでそのまま使えるとは限りません。

 

    rxsetup_target.hファイルの下記行を変更します。

    使用するボードに合わせて変更してください。

    例: MVME5500の場合

     #include "mv5500/config.h" /* read values from the BSP header */

             ↓ 変更

     #include "config.h" /* read values from the BSP header */
 

 

5. 必要に応じて、ttytest.cファイルを変更します。

     ・PCIコンフィグレーション設定

     殆どのBSPではPCIデバイスを自動コンフィグレーションするようになっております。
     対応しているBSPを使用している場合には変更する必要はありませんが
     対応していないBSPをご使用の場合には手動設定が必要になります。

     この場合には下記の行の各パラメータに適切な値をセットする必要があります。

       char *ser2_man_0 = "0:16:0:0xfd100000:0x00000:0x0:-1:-1:0x0";

       パラメータ1: PCIバス番号
       パラメータ2: PCIデバイス番号
       パラメータ3: PCIファンクション番号
       パラメータ4: BAR0アドレス
       パラメータ5: PCIから見たローカルメモリアドレス(殆どの場合0をセット)
       パラメータ6: CPUから見たローカルメモリアドレス(殆どの場合0をセット)
       パラメータ7: 割り込みベクタ
       パラメータ8: 割り込みレベル
       パラメータ9: デバイスフラグ(PMC422は0x0固定、PMC423は0x200固定)

     ・デバイスフラグ設定

       使用するボードやクロックモードによってデバイスフラグの設定が必要になります。
       下記いずれかの行の最後のパラメータ9へ適切な値をセットする必要があります。

char *ser2_auto_0 = "-1:-1:0:-1:0x0:-1:-1:-1:0x200";
char *ser2_man_0 = "0:16:0:0xfd100000:0x00000:0x0:-1:-1:0x0";

       パラメータ9: デバイスフラグ(PMC422は0x0固定、PMC423は0x200固定)

デバイスフラグの詳細

  bit 1-0 reserved. Set to 0.

  bit 2    0: connect interrupts
           1: use polling, do not connect interrupts
              (for debug use only)

  bit 4-3 00: default oscillator
          01: 50MHz oscillator using 8X sample rate
          10: 24MHz oscillator using 8X sample rate
          11: reserved

          The default for PMC422 and PMC423 default is a 14.7456MHz
          oscillator using 16X sample rate.  The 50MHz and 24MHz options
          are hardware options available only on PMC422 and PMC423 cards
          if a card has been orderd with a non-standard fit oscillator.

          All other cards use a 1.8432MHz oscillator and 16X sample rate
          and this cannot be changed.


  bits 7-5 are reserved

  bits 15-8 indicate the initial mode of the line drivers on a PMC423.
            The valid values here are one of the MODE_* values passed
            in ser2tyCoModeSet or ioctl(fd,FIOSET_MODE, mode)
            The flags are only used by PMC423 cards. All other card types
            will ignore this setting.

  bits 17-16 00: Use the default sample rate on a PMC422/3
             01: Use 8X sample rate on a PMC422/3
             10: Use 16X sample rate on a PMC422/3
             11: invalid

 

 

6. vxWorksカーネルを再構築します。

    make vxWorks

    ※エラーが出る場合は、make cleanを一度実行してください。

7. ”6.”にて作成した、vxWorksカーネルを立ち上げます。

 

8. 下記のように入力してドライバーを組み込ます。


-> TtyTest 1,0,0,8

5.の手順にてser2_man_0 を変更している場合には

-> TtyTest 8,0,0,8

と入力してください。

 

初期化例: MVME5500 PMC422 vxWorks5.5.1

-> TtyTest 1,0,0,8
Driver detected 8 ttys on this device
Creating SER2 devices
…/ser2tyCo/0
…/ser2tyCo/1
…/ser2tyCo/2
…/ser2tyCo/3
…/ser2tyCo/4
…/ser2tyCo/5
…/ser2tyCo/6
…/ser2tyCo/7
value = 8 = 0x8
->
 


9. devsコマンドを入力し、シリアルデバイスが作成されているか確認します。
 

表示例: PMC422 8ポート vxWorks5.5.1

-> devs
drv name
  0 /null
  1 /tyCo/0
  1 /tyCo/1
  5 host:
  6 /pty/rlogin.S
  7 /pty/rlogin.M
  8 /ser2tyCo/0
  8 /ser2tyCo/1
  8 /ser2tyCo/2
  8 /ser2tyCo/3
  8 /ser2tyCo/4
  8 /ser2tyCo/5
  8 /ser2tyCo/6
  8 /ser2tyCo/7
value = 25 = 0x19
->
 


10.シリアルポートの動作確認

  シリアルポートが正常に動作するか確認します。

  動作確認するには、シリアルポートのNRXNTXを折り返しループバック接続するか
  PMC423の場合にはループバックモードを設定する必要があります。

動作例: PMC422 シリアルポート1(ボーレート9600bps)

-> TtyTestRun 9600,0,0,1
Running SER2 port test.
Opening SER2 ports
Port  0: Write: OK  Read: OK  Test: OK
Closing SER2 ports
——–
Loopback test was successful
——–
value = 0 = 0x0
->

 

動作例: PMC422 シリアルポート1,2(ボーレート9600bps)

-> TtyTestRun 9600,0,0,2
Running SER2 port test.
Opening SER2 ports
Port  0: Write: OK  Read: OK  Test: OK
Port  1: Write: OK  Read: OK  Test: OK
Closing SER2 ports
——–
Loopback test was successful
——–
value = 0 = 0x0
->


動作例: PMC423 シリアルポート1(ボーレート9600bps, ループバック)

   TtyTestRun 9600,2,0,1

 

TakahashiKoujiPMC42x PPC vxWorks ドライバー V2.7.1 インストール