/*
 * リンクレイヤ設定パラメータクラス
 * LinkLayerParam.cpp
 *
 *  Created on: 2018/09/27
 *      Author: shingo
 */

#include "LinkLayerParam.h"

/**
 * コンストラクタ
 */
LinkLayerParam::LinkLayerParam()
{
}

/**
 * デストラクタ
 */
LinkLayerParam::~LinkLayerParam()
{
}

/**
* CPSW(ギガポート）の初期化パラメータを取得する。
*
* @param pParmCpsw 初期化パラメータを設定するバッファポインタ
*
*/
void LinkLayerParam::getParamCPSW(EC_T_LINK_PARMS_CPSW* pParmCpsw) {

    memset(pParmCpsw, 0, sizeof(EC_T_LINK_PARMS_CPSW));

    // 共通リンクパラメータを設定
    pParmCpsw->linkParms.dwSignature = EC_LINK_PARMS_SIGNATURE_CPSW;     // アダプタ固有の構造体のシグネチャ
    pParmCpsw->linkParms.dwSize = sizeof(EC_T_LINK_PARMS_CPSW);          // リンクパラメータ情報サイズ
    strncpy(pParmCpsw->linkParms.szDriverIdent, EC_LINK_PARMS_IDENT_CPSW, MAX_DRIVER_IDENT_LEN - 1);    // リンクモジュール名
    pParmCpsw->linkParms.dwInstance = CpswInstance;                     // 使用ポート
    pParmCpsw->linkParms.eLinkMode = EcLinkMode_POLLING;                // 動作モード
    pParmCpsw->linkParms.dwIstPriority = 0;                             // 割込みモード時のプライオリティ

    // ギガポート(CPSW)モジュール用の情報設定
    pParmCpsw->eCpswType = eCPSW_AM57X;
    pParmCpsw->dwPhyAddr = pParmCpsw->linkParms.dwInstance - 1;     // 0 -> Port1, 1 -> Port2  PHY address (0 .. 31) on MII bus */
    pParmCpsw->dwPortPrio = PortPriority;
    pParmCpsw->bMaster = EC_TRUE;
    pParmCpsw->bPhyRestartAutoNegotiation = EC_TRUE;
    pParmCpsw->ePhyInterface = ePHY_RGMII;
}


/**
* 100Mポートの初期化パラメータを取得する。
*
* @param pParmIcss 初期化パラメータを設定するバッファポインタ
*
*/
void LinkLayerParam::getParamICSS(EC_T_LINK_PARMS_ICSS* pParmIcss) {

    memset(pParmIcss, 0, sizeof(EC_T_LINK_PARMS_ICSS));

    // 共通リンクパラメータを設定
    pParmIcss->linkParms.dwSignature = EC_LINK_PARMS_SIGNATURE_ICSS;     // アダプタ固有の構造体のシグネチャ
    pParmIcss->linkParms.dwSize = sizeof(EC_T_LINK_PARMS_ICSS);          // リンクパラメータ情報サイズ
    strncpy(pParmIcss->linkParms.szDriverIdent, EC_LINK_PARMS_IDENT_ICSS, MAX_DRIVER_IDENT_LEN - 1);    // リンクモジュール名
    pParmIcss->linkParms.dwInstance = 1; //CpswInstance;                     // 使用ポート
    pParmIcss->linkParms.eLinkMode = IcssLinkMode;                // 動作モード
    pParmIcss->linkParms.dwIstPriority = 0;                             // 割込みモード時のプライオリティ

  /*   EC_T_LINK_PARMS_ICSSの構造体が、参考にする "EcDemoICSS2プロジェクト”と異なるため、使用バージョンを決定後とする
    // 100Mポートモジュール用の情報設定
    pParmIcss->eCpswType = eCPSW_AM57X;
    pParmIcss->dwPhyAddr = pParmCpsw->linkParms.dwInstance - 1;     // 0 -> Port1, 1 -> Port2  PHY address (0 .. 31) on MII bus
    pParmIcss->dwPortPrio = PortPriority;
    pParmIcss->bMaster = EC_TRUE;
    pParmIcss->bPhyRestartAutoNegotiation = EC_TRUE;
    pParmIcss->ePhyInterface = ePHY_RGMII;

*/
}



