================================================================================

                     μNet3 RZ/T1内蔵 Ethernetドライバ説明書

                      Copyright (c) 2015, eForce Co., Ltd.

                                                                         2015-05
================================================================================


　本ファイルは、バージョンアップの履歴を記載、およびユーザーズガイドを補足する
情報を説明します。
　ルネサス社製の評価ボードRTK7910022C00000BR向けのサンプルプログラムを用いて、
説明します。他のハードウェアを使用される場合は読み替えてください。

 ファイル構成
==============
　Ethernetドライバの関連ファイルを以下に示します。

    1. \Driver\src\DDR_RZT1_ETH.c    - ドライバモジュール本体
    2. \Sample\xxx\DDR_RZT1_ETH_cfg.h -ドライバのコンフィグレーション設定
    3. \sample\xxx\net_cfg.c         - μNet3のコンフィグレーション設定,
                                       ドライバインターフェースの設定
    4. \sample\xxx\net_cfg.h         - 同上

 コンフィグレーション
======================
 コンフィグレーションする項目を説明します。


PHYの設定
----------------
 コンフィグレータのCPU設定タブ（R7910017など）の「Ethernet0」の「PHYアドレス」
 ※DDR_RZT1_ETH_cfg.hファイルに #define ETH_CFG_PHY_ADDR : として自動生成される

    ハードウェアで使用するPHYアドレスを設定します。
    設定可能な値
      0 〜 31

 コンフィグレータのCPU設定タブ（R7910017など）の「Ethernet0」の「PHYインタフェース」
 ※DDR_RZT1_ETH_cfg.hファイルに #define ETH_CFG_PHY_IF : として自動生成される

    ハードウェアで使用するPHYインタフェースモードを設定します。
    設定可能な
    ・MII
      MIIを使用します。
    ・RMII
      RMIIを使用します。
    
    ※RMIIでの動作は確認できておりません。

 コンフィグレータのCPU設定タブ（R7910017など）の「Ethernet0」の「PHYモード」
 ※DDR_RZT1_ETH_cfg.hファイルに #define ETH_CFG_PHY_MODE ： として自動生成される

    PHYのネゴシエーションモードを選択します。
    設定可能な値
    ・Auto
      自動      (フルAuto-Negotiationモード (10HD/10FD/100HD/100FD/1000HD/1000FD))
    ・10M HD    (10M半二重通信マニュアルモード)
    ・10M FD/HD (10M半二重通信・全二重通信Auto-Negotiationモード)
    ・100M HD   (100M半二重通信マニュアルモード)
    ・100M FD/HD(100M半二重通信・全二重通信Auto-Negotiationモード)


MACの設定
----------------
 MACアドレス : コンフィグレータのTCP/IP設定タブの「インタフェース」

    インタフェース一覧から対象レコードをダブルクリックし、
    MACアドレスのエディットボックスから設定します。

filterモード
----------------
 コンフィグレータのCPU設定タブ（R7910017など）の「Ethernet0」の「filterモード」
 ※DDR_RZT1_ETH_cfg.hファイルに #define ETH_CFG_FILTER_MODE : として自動生成される

    以下の受信フィルターモードを選択できます。

    Perfect filter
       自身のMACアドレスとブロードキャストアドレスを受信します。

    Promiscuous
       すべてのフレームを受信します。

    Multicast
       次のフレームを受信します。
       ・自身のMACアドレス宛
       ・ブロードキャスト
       ・マルチキャスト


その他設定
----------
 コンフィグレータのCPU設定タブ（R7910017など）の「Ethernet0」の「割込みレベル」
 ※DDR_RZT1_ETH_cfg.hファイルに #define IPL_ETHERNET : として自動生成される
 
    LANドライバに関連した割り込みの割り込みサービスルーチンの割り込みレベルを
    設定します。
    詳細はμC3/Standard ユーザーズガイドの「acre_isr」の説明を参照してください。

 コンフィグレータのKernel設定タブ「タスク」の「ID_ETH_SND_TSK」「ID_ETH_RCV_TSK」「ID_ETH_CTL_TSK」
 ※DDR_RZT1_ETH_cfg.hファイルに #define ETH_CFG_TSK_PRI : として上記タスクの優先度が自動生成される
   
    LANドライバに関連したタスクの優先度を設定します。（受信、送信、コントロール）
    注意：受信、送信、コントロールタスクの優先度は同じ値でなければなりません。
    
    設定可能な値はカーネルのコンフィグレーションによります。
    詳細はμC3/Standard ユーザーズガイドの「コンフィグレーションとシステムの起動」
    の章を参照してください。
 
 コンフィグレータのKernCPU設定タブ（R7910017など）の「Ethernet0」の「PHY操作時のタスク優先」
 ※DDR_RZT1_ETH_cfg.hファイルに #define ETH_CFG_TSK_PRI_PHY : として自動生成される
 
    PHYレジスタの読み書きを実行するときのタスク優先度を設定します。
    LANのドライバは、PHYレジスタの読み書きの終了をポーリングで待っています。
    その際に、タスク優先度を一時的にこのマクロの優先度に変更します。
    PHYレジスタの読み書きを行っている最中は、この値より劣る優先度のタスクは
    実行されなくなりますので、ご使用の環境に合わせて、適切な値を設定してください。
    
    設定可能な値はカーネルのコンフィグレーションによります。
    詳細はμC3/Standard ユーザーズガイドの「コンフィグレーションとシステムの起動」
    の章を参照してください。
 
 コンフィグレータのKernCPU設定タブ（R7910017など）の「Ethernet0」の「MACセレクト」
 ※DDR_RZT1_ETH_cfg.hファイルに #define ETH_CFG_MACSEL : として自動生成される

    MACセレクトレジスタ(MACSEL)に設定する値を指定してください。
    MACセレクトレジスタ(MACSEL)の詳細は、RZ/T1のユーザーズマニュアルを参照して
    ください。
    
    設定可能な値
    (R-IN Engine搭載製品)
     ・EtherCAT
       レジスタに0x01を設定します。
     ・EthernetMAC
       レジスタに0x03を設定します。
     設定項目は上記以外にもありますが、他の項目はサポートしていません。

 ポーティング
==============
  下記の項はターゲットに依存するので、ターゲットに合わせて設定してください。

・端子の設定
  マルチピンファンクションコントローラ(MPC),I/Oポートを設定して、
  RZ/T1の端子をイーサネットにして下さい。
  マルチピンファンクションコントローラ(MPC),I/OポートはRZ/T1のユーザーズマニュア
  ルを参照してください。
  上記を行う上でコンフィグレータのKernCPU設定タブ（R7910017など）の「GPIO Port」から設定できます。

  サンプル
    サンプルプログラムのsample.3cfファイルをコンフィグレータで開き、「GPIO Port」の設定を参照してください。

・EtherクロックE(ETCLKE), EtherクロックD(ETCLKD)の設定
  システムクロックコントロールレジスタを操作してEtherクロックE(ETCLKE)と
  EtherクロックD(ETCLKD)を設定してください。
  システムクロックコントロールレジスタ、EtherクロックE(ETCLKE)、EtherクロックD
  (ETCLKD)の詳細はRZ/T1のユーザーズマニュアルを参照してください。
  
  サンプル
    サンプルプログラムのsample.cファイルのboard_set_eth_clk関数を参照してください。

・MIIコントロールレジスタ(MII_CTRLn)(n = 0〜2)の設定
  MIIコントロールレジスタ(MII_CTRLn)(n = 0〜2)を設定してください。
  MIIコントロールレジスタ(MII_CTRLn)(n = 0〜2)の詳細はRZ/T1のユーザーズマニュア
  ルを参照してください。
  
  サンプル
    サンプルプログラムのsample.cファイルのboard_eth_ini関数を参照してください。
  
・PHYのリセット解除
  PHYのリセットを解除してください。
  解除の手順はターゲットの回路によりますので、ハードウェア設計者に確認して
  ください。
  
  イーサネット周辺リセットレジスタ(ETHSFTRST)の次のビットのいずれかを操作する
  ことで、PHYのリセットが解除することが多いです。
  - ビット2 PHYRST  PHYRESTOUT#端子リセット制御ビット
  - ビット3 PHYRST2 PHYRESTOUT2#端子リセット制御ビット
  
  サンプル
    サンプルプログラムのsample.cファイルのboard_eth_ini関数を参照してください。

・ハードウェアファンクションの初期化
  LANドライバは「Buffer RAM」の領域をネットワークバッファとして使用します。
  「Buffer RAM」の領域を使用するにはハードウェアファンクションを初期化する必要が
  あります。ネットワークバッファを初期化する前(net_ini関数を実行する前)に、
  次の関数を実行して、ハードウェアファンクションを初期化してください。
  
      関数名 eth_hwfunc_ini
      書式   ER eth_hwfunc_ini(void)
      戻り値 実行結果
             E_OK : 成功
             その他 : 失敗

  サンプル
    サンプルプログラムのsample.cファイルのMainTask関数を参照してください。

 トラブルシューティング
========================
　Ethernet機能の初期化が成功すると、eth_ini()関数からE_OKが返却されます。
もしE_OKが返却されないような問題が発生する場合は、eth_ini()をデバッガ
でトレースして下さい。


 TCP/IP-ドライバインタフェース
===============================
　μNet3プロトコルスタックとドライバのインタフェースついては
「uNet3Ethernetドライバインタフェース.pdf」を参照してください。


 Kernel Resources
==================
　Ethernetドライバで使用しているカーネルリソースを以下に示します。

    Object               ID                  
    ------               --                  
    1) タスク            ID_ETH_SND_TSK      
    2) タスク            ID_ETH_RCV_TSK      
    3) タスク            ID_ETH_CTL_TSK      
    4) イベントフラグ    ID_ETH_RCV_FLG      
    5) イベントフラグ    ID_ETH_SND_FLG      
    6) メールボックス    ID_ETH_RCV_MBX      
    7) セマフォ          ID_ETH_HWFUNC_SEM   
    8) 割り込み          ID_ETH_ETHDMAIT_ISR
       サービスルーチン  
    9) 割り込み          ID_ETH_ETHTFIU_ISR
       サービスルーチン
    10)割り込み          ID_ETH_ETHDTIE_ISR
       サービスルーチン
    11)割り込み          ID_ETH_ETHRFI_ISR
       サービスルーチン
    12)割り込み          ID_ETH_ETHRFE_ISR
       サービスルーチン
    13)割り込み          ID_ETH_ETHDRIE_ISR
       サービスルーチン
    14)メールボックス    ID_NETBUF_MBX
       

 統計情報
========================
　本ドライバは統計情報を取得する機能をサポートしていません。
　gNET_DEV[].refを処理する関数eth_refはE_NOSPTを返却します。


 制限
======
　本ドライバはuNet3 TCP/IPスタックの使用に限った設計を行っています。eForceでは、
それ以外の使用や、如何なるカスタマイズに対しては、一切のサポートは行っておりませ
んのでご了承下さい。


 バージョンアップの履歴
========================

--------------------------------------------------------------------------------
  2015-05
--------------------------------------------------------------------------------
・コンフィグレータ対応

--------------------------------------------------------------------------------
  2015-03
--------------------------------------------------------------------------------
・ファーストリリース

