PMC67x PPC vxWorks ドライバー V2.13.2 インストール

 

PMC67x PPC vxWorks ドライバー V2.13.2 インストール


bootromからデバイスを認識させる手順についてはここを参照ください。


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

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

  vxWorks5.xの場合

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

・target (フォルダごと)
・if_rxgbiSENSPPC_54.o
・if_rxgbiSENSPPC_55.o
・rxLocateDevicePPC_54.o
・rxLocateDevicePPC_55.o
・rxPciLibPPC_54.o
・rxPciLibPPC_55.o
・rxgbi_usr.h
・rxsetup.c
・rxsetup.h
・rxTest.c
 

  vxWorks6.xの場合

  例: C:\WindRiver\vxworks-6.5\target\config\mv6100

・target (フォルダごと)
・if_rxgbiSENSPPC_60.o
・if_rxgbiSENSPPC_61.o
・if_rxgbiSENSPPC_62.o
・if_rxgbiSENSPPC_63.o
・if_rxgbiSENSPPC_64.o
・if_rxgbiSENSPPC_65.o
・if_rxgbiSENSPPC_66.o
・if_rxgbiSENSPPC_67.o
・rxLocateDevicePPC_60.o
・rxLocateDevicePPC_61.o
・rxLocateDevicePPC_62.o
・rxLocateDevicePPC_63.o
・rxLocateDevicePPC_64.o
・rxLocateDevicePPC_65.o
・rxLocateDevicePPC_66.o
・rxLocateDevicePPC_67.o
・rxPciLibPPC_60.o
・rxPciLibPPC_61.o
・rxPciLibPPC_62.o
・rxPciLibPPC_63.o
・rxPciLibPPC_64.o
・rxPciLibPPC_65.o
・rxPciLibPPC_66.o
・rxPciLibPPC_67.o
・rxgbi_usr.h
・rxsetup.c
・rxsetup.h
・rxTest.c

 

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

if_rxgbiSENSPPC_xx.o  ⇒  if_rxgbiSENSPPC_xx.obj

rxPciLibPPC_xx.o  ⇒ rxPciLibPPC_67.obj

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

 

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

    Makefileファイル

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

      MACH_EXTRA = if_rxgbiSENSPPC_xx.obj rxPciLibPPC_xx.obj rxsetup.obj rxTest.obj

    ※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ファイルの下記行を変更します。

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

    例: MVME6100の場合

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

             ↓ 変更

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

 

5. rxTest.cファイルを変更します。

 

・68行付近の下線部を変更します。

vxWorks5.xの場合

  


#define NEW_STYLE_IFCONFIG 0

#include <stdio.h>
#include "ipProto.h"
#if NEW_STYLE_IFCONFIG
#include "net/utils/ifconfig.h"
#else
#include "ifLib.h"
#endif
#include "rxgbi_usr.h"
 

 

vxWorks6.xの場合はそのままOkです。

 

・次に、使用するPMCカードのポート数に合わせてinitStringパラメータを用意します。
このパラメータは使用するポート数につき1つ必要になります。

例:
PMC676/1  1ポート  initString0のみ 
PMC676/2  2ポート  initString0、initString1 
PMC673     3ポート  initString0、initString1、initString2
PMC677   4ポート  initString0、initString1、initString2、initString3 

 

105行付近に 下記の行があります。

    char *initString0 =
        "-1:0:0:-1:0x0:0x0:-1:-1:0x80000000:128:128:1500";


複数ポートのカードの場合はポート数分定義を追加してください。

例: 2ポートの場合

    char *initString0 =
        "-1:0:0:-1:0x0:0x0:-1:-1:0x80000000:128:128:1500";

    char *initString1 =
        "-1:1:0:-1:0x0:0x0:-1:-1:0x80000000:128:128:1500";

    例: 3ポートの場合

    char *initString0 =
         "-1:0:0:-1:0x0:0x0:-1:-1:0x80000000:128:128:1500";

    char *initString1 =
         "-1:1:0:-1:0x0:0x0:-1:-1:0x80000000:128:128:1500";

    char *initString2 =
        "-1:2:0:-1:0x0:0x0:-1:-1:0x80000000:128:128:1500";


    例: 4ポートの場合

    char *initString0 =
       "-1:0:0:-1:0x0:0x0:-1:-1:0x80000000:128:128:1500";

    char *initString1 =
         "-1:1:0:-1:0x0:0x0:-1:-1:0x80000000:128:128:1500";

    char *initString2 =
       "-1:2:0:-1:0x0:0x0:-1:-1:0x80000000:128:128:1500";

    char *initString3 =
         "-1:3:0:-1:0x0:0x0:-1:-1:0x80000000:128:128:1500";


ポートにより赤字部分の番号が異なりますので注意してください。

 

・rxConfigAllTestルーチンの変更

164行付近の#endif の行を削除し135行へ#endifを定義してください。

これで、rxConfigAllTestルーチンがコンパイルされるようになります。

また、使用するポート数に合わせて下記行の変更が必要になります。

最初の設定内容:

    if (RxTest(0, "192.168.10.10", initString1) != 0)
        return ERROR;
    if (RxTest(1, "192.168.20.20", initString2) != 0)
        return ERROR;
    if (RxTest(2, "192.168.30.30", initString3) != 0)
        return ERROR;

使用ポート数に合わせて定義を削除するか必要な場合には追加してください。

また、IPアドレスは、太文字箇所を変更してください。

例: 1ポートのみの場合

  if (RxTest(0, "192.168.10.10", initString0) != 0)
        return ERROR;

例: 2ポートの場合

  if (RxTest(0, "192.168.10.10", initString0) != 0)
        return ERROR;
if (RxTest(1, "192.168.20.10", initString1) != 0)
        return ERROR;

例: 3ポートの場合

  if (RxTest(0, "192.168.10.10", initString0) != 0)
        return ERROR;
if (RxTest(1, "192.168.20.10", initString1) != 0)
        return ERROR;
if (RxTest(2, "192.168.30.10", initString2) != 0)
        return ERROR;

例: 4ポートの場合

  if (RxTest(0, "192.168.10.10", initString0) != 0)
        return ERROR;
if (RxTest(1, "192.168.20.10", initString1) != 0)
        return ERROR;
    if (RxTest(2, "192.168.30.20", initString2) != 0)
        return ERROR;
    if (RxTest(3, "192.168.40.30", initString3) != 0)
        return ERROR;

 

 

JumboFrame使用時の設定について

 JumboFrameを使用する場合には、initStringパラメータの一番最後の1500を変更してください。

 

    例: MTUが9000の場合

    char *initString0 =
         "-1:0:0:-1:0x0:0x0:-1:-1:0x80000000:128:128:9000";

 

送受信ディスクリプタ数の設定について

 送受信に使用するディスクリプタの数を変更することができます。
デフォルトでは128になっていますが、最高で256まで大きく出来ます。

    例: 送受信ディスクリプタを256へ変更

    char *initString0 =
        "-1:0:0:-1:0x0:0x0:-1:-1:0x80000000:256:256:1500";

 

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

    make vxWorks

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

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

 

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


-> rxConfigAllTest

 

初期化例: PMC677 4ポート vxWorks6.7

-> rxConfigAllTest
initString = 0:-1:0:0:-1:0x0:0x0:-1:-1:0x80000000:128:128:1500
RAMiX gigabit Ethernet driver VxWorks 6.7 M-GBI-SEV-ARC(2.13.2) [Dec  1 2009 15:48:29] pDrvCtrl = 0x0x1fff9c20
Found device 8086:1079 at 3:4.0
PCI Address was a1000000 to device
        Application address is a1000000
Connect to interrupt 0x50 level 0x50
Set IP address to 192.168.10.10
Address set OK
initString = 1:-1:1:0:-1:0x0:0x0:-1:-1:0x80000000:128:128:1500
RAMiX gigabit Ethernet driver VxWorks 6.7 M-GBI-SEV-ARC(2.13.2) [Dec  1 2009 15:48:29] pDrvCtrl = 0x0x2492d00
Found device 8086:1079 at 3:4.1
PCI Address was a1040000 to device
        Application address is a1040000
Connect to interrupt 0x51 level 0x51
Set IP address to 192.168.20.20
Address set OK
initString = 2:-1:2:0:-1:0x0:0x0:-1:-1:0x80000000:128:128:1500
RAMiX gigabit Ethernet driver VxWorks 6.7 M-GBI-SEV-ARC(2.13.2) [Dec  1 2009 15:48:29] pDrvCtrl = 0x0x2513fd0
Found device 8086:1079 at 3:5.0
PCI Address was a1080000 to device
        Application address is a1080000
Connect to interrupt 0x51 level 0x51
Set IP address to 192.168.30.30
Address set OK
initString = 3:-1:3:0:-1:0x0:0x0:-1:-1:0x80000000:128:128:1500
RAMiX gigabit Ethernet driver VxWorks 6.7 M-GBI-SEV-ARC(2.13.2) [Dec  1 2009 15:48:29] pDrvCtrl = 0x0x25952a0
Found device 8086:1079 at 3:5.1
PCI Address was a10c0000 to device
        Application address is a10c0000
Connect to interrupt 0x52 level 0x52
Set IP address to 192.168.40.30
Address set OK
value = 0 = 0x0
->

 

9. 下記を入力し、ネットワークインターフェースが作成されているか確認します。
 

  vxWorks5.xの場合

    -> ifShow

  vxWorks6.xの場合

    -> ifConfig
 

     表示例: PMC677 4ポート vxWorks6.7

-> ifconfig
lo0     Link type:Local loopback  Queue:none
        inet 127.0.0.1  mask 255.255.255.255
        UP RUNNING LOOPBACK MULTICAST
        MTU:1500  metric:1  VR:0  ifindex:1
        RX packets:0 mcast:0 errors:0 dropped:0
        TX packets:0 mcast:0 errors:0
        collisions:0 unsupported proto:0
        RX bytes:0  TX bytes:0

geisc0  Link type:Ethernet  HWaddr 00:01:af:17:d1:62  Queue:none
        inet 192.168.11.161  mask 255.255.255.0  broadcast 192.168.11.255
        UP RUNNING SIMPLEX BROADCAST MULTICAST
        MTU:1500  metric:1  VR:0  ifindex:2
        RX packets:16 mcast:14 errors:0 dropped:0
        TX packets:1 mcast:0 errors:0
        collisions:0 unsupported proto:0
        RX bytes:2004  TX bytes:42

rxg0    Link type:Ethernet  HWaddr 00:30:f7:90:0a:00  Queue:none
        inet 192.168.10.10  mask 255.255.255.0  broadcast 192.168.10.255
        UP RUNNING SIMPLEX BROADCAST MULTICAST
        MTU:1500  metric:1  VR:0  ifindex:3
        RX packets:0 mcast:0 errors:0 dropped:0
        TX packets:1 mcast:0 errors:0
        collisions:0 unsupported proto:0
        RX bytes:0  TX bytes:42

rxg1    Link type:Ethernet  HWaddr 00:30:f7:90:0a:01  Queue:none
        inet 192.168.20.20  mask 255.255.255.0  broadcast 192.168.20.255
        UP RUNNING SIMPLEX BROADCAST MULTICAST
        MTU:1500  metric:1  VR:0  ifindex:4
        RX packets:0 mcast:0 errors:0 dropped:0
        TX packets:1 mcast:0 errors:0
        collisions:0 unsupported proto:0
        RX bytes:0  TX bytes:42

rxg2    Link type:Ethernet  HWaddr 00:30:f7:90:0a:02  Queue:none
        inet 192.168.30.30  mask 255.255.255.0  broadcast 192.168.30.255
        UP RUNNING SIMPLEX BROADCAST MULTICAST
        MTU:1500  metric:1  VR:0  ifindex:5
        RX packets:0 mcast:0 errors:0 dropped:0
        TX packets:1 mcast:0 errors:0
        collisions:0 unsupported proto:0
        RX bytes:0  TX bytes:42

rxg3    Link type:Ethernet  HWaddr 00:30:f7:90:0a:03  Queue:none
        inet 192.168.40.30  mask 255.255.255.0  broadcast 192.168.40.255
        UP RUNNING SIMPLEX BROADCAST MULTICAST
        MTU:1500  metric:1  VR:0  ifindex:6
        RX packets:0 mcast:0 errors:0 dropped:0
        TX packets:1 mcast:0 errors:0
        collisions:0 unsupported proto:0
        RX bytes:0  TX bytes:42

value = 0 = 0x0
->
 

 

 

 

lhsPMC67x PPC vxWorks ドライバー V2.13.2 インストール