Ignore:
Timestamp:
May 22, 2019, 10:03:37 PM (5 years ago)
Author:
coas-nagasima
Message:

ビルドが通るよう更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • azure_iot_hub/trunk/asp3_dcre/tinet/netdev/if_rx62n/if_rx62n.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r388 r389  
    66 *  Copyright (C) 2014-2017 by Cores Co., Ltd. Japan
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
    44  *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
     30 *
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  @(#) $Id$
     
    128113
    129114/*
    130  *  ネットワークインタフェースに依存するソフトウェアæƒ
    131 å ±
     115 *  ネットワークインタフェースに依存するソフトウェア情報
    132116 */
    133117
     
    142126
    143127/*
    144  *  ネットワークインタフェースのソフトウェアæƒ
    145 å ±
    146  */
    147 
    148 /* ネットワークインタフェースに依存するソフトウェアæƒ
    149 å ± */
     128 *  ネットワークインタフェースのソフトウェア情報
     129 */
     130
     131/* ネットワークインタフェースに依存するソフトウェア情報 */
    150132
    151133static T_RX62N_SOFTC rx62n_softc;
     
    167149#endif
    168150
    169 /* ネットワークインタフェースに依存しないソフトウェアæƒ
    170 å ± */
     151/* ネットワークインタフェースに依存しないソフトウェア情報 */
    171152
    172153T_IF_SOFTC if_softc = {
    173         {0,},                                           /* ネットワークインタフェースのアドレス       */
    174         0,                                                      /* 送信タイムアウト                     */
    175         &rx62n_softc,                           /* ディバイス依存のソフトウェアæƒ
    176 å ±     */
    177         SEM_IF_RX62N_SBUF_READY,        /* 送信セマフォ                   */
    178         SEM_IF_RX62N_RBUF_READY,        /* 受信セマフォ                   */
     154        {0,},                                           /* ネットワークインタフェースのアドレス   */
     155        0,                                                      /* 送信タイムアウト                     */
     156        &rx62n_softc,                           /* ディバイス依存のソフトウェア情報     */
     157        SEM_IF_RX62N_SBUF_READY,        /* 送信セマフォ                       */
     158        SEM_IF_RX62N_RBUF_READY,        /* 受信セマフォ                       */
    179159
    180160#ifdef SUPPORT_INET6
    181161
    182         IF_MADDR_INIT,                          /* マルチキャストアドレスリスト   */
     162        IF_MADDR_INIT,                          /* マルチキャストアドレスリスト       */
    183163
    184164#endif  /* of #ifdef SUPPORT_INET6 */
     
    186166
    187167/*
    188  *  局所変数
     168 *  局所変数
    189169 */
    190170
     
    199179
    200180/*
    201  *  ds_crc -- イーサネットアドレスの CRC を計算する。
     181 *  ds_crc -- イーサネットアドレスの CRC を計算する。
    202182 */
    203183
     
    227207
    228208/*
    229  *  ds_getmcaf -- マルチキャストアドレスのリストからマルチキャストアドレス
    230  *                フィルタを計算する。
     209 *  ds_getmcaf -- マルチキャストアドレスのリストからマルチキャストアドレス
     210 *                フィルタを計算する。
    231211 */
    232212
     
    246226
    247227/*
    248  * rx62n_setrcr -- 受信構成レジスタ (RCR) を設定する。
     228 * rx62n_setrcr -- 受信構成レジスタ (RCR) を設定する。
    249229 */
    250230
     
    256236
    257237/*
    258  * rx62n_addmulti -- マルチキャストアドレスを追加する。
     238 * rx62n_addmulti -- マルチキャストアドレスを追加する。
    259239 */
    260240
     
    269249
    270250/*
    271  *  rx62n_stop -- ネットワークインタフェースを停止する。
    272  *
    273  *    注意: NIC 割り込み禁止状æ
    274 ‹ã§å‘¼ã³å‡ºã™ã“と。
     251 *  rx62n_stop -- ネットワークインタフェースを停止する。
     252 *
     253 *    注意: NIC 割り込み禁止状態で呼び出すこと。
    275254 */
    276255
     
    278257rx62n_stop (T_RX62N_SOFTC *sc)
    279258{
    280         /* 動作モードクリア */
     259        /* 動作モードクリア */
    281260        sil_wrw_mem(ETHERC_ECMR, 0x00000000);
    282         /* リンク変化割り込み無効 */
     261        /* リンク変化割り込み無効 */
    283262        sil_wrw_mem(ETHERC_ECSIPR, 0x00000000);
    284263}
    285264
    286265/*
    287  *  rx62n_init_sub -- ネットワークインタフェースの初期化
    288  *
    289  *    注意: NIC 割り込み禁止状æ
    290 ‹ã§å‘¼ã³å‡ºã™ã“と。
     266 *  rx62n_init_sub -- ネットワークインタフェースの初期化
     267 *
     268 *    注意: NIC 割り込み禁止状態で呼び出すこと。
    291269 */
    292270
     
    298276        PHY_STATE_T state = PHY_STATE_UNINIT;
    299277
    300         /* MAC部ソフトウエア・リセット */
     278        /* MAC部ソフトウエア・リセット */
    301279        sil_wrw_mem(EDMAC_EDMR, sil_rew_mem(EDMAC_EDMR) | EDMAC_EDMR_SWR_BIT);
    302280
     
    309287                | (uint32_t)mac_addr[5]);
    310288
    311         /* PHYリセット */
     289        /* PHYリセット */
    312290        while ((state = phy_reset(state, 0)) != PHY_STATE_RESET);
    313291        sc->state = state;
     
    316294        sil_wrw_mem(ETHERC_ECSR, 0x00000037);
    317295
    318         /* リンク変化割り込み有効 */
     296        /* リンク変化割り込み有効 */
    319297        sil_wrw_mem(ETHERC_ECSIPR, sil_rew_mem(ETHERC_ECSIPR) | ETHERC_ECSIPR_LCHNGIP);
    320298
     
    322300        sil_wrw_mem(EDMAC_EESR, 0x47FF0F9F);
    323301
    324         /* 送受信割り込み有効 */
     302        /* 送受信割り込み有効 */
    325303        sil_wrw_mem(EDMAC_EESIPR, (EDMAC_EESIPR_TCIP | EDMAC_EESIPR_FRIP | EDMAC_EESIPR_RDEIP | EDMAC_EESIPR_FROFIP));
    326304
    327         /* 受信フレーム長上限(バッファサイズ) */
     305        /* 受信フレーム長上限(バッファサイズ) */
    328306        sil_wrw_mem(ETHERC_RFLR, IF_RX62N_BUF_PAGE_SIZE);
    329307
    330         /* 96ビット時間(初期値) */
     308        /* 96ビット時間(初期値) */
    331309        sil_wrw_mem(ETHERC_IPGR, 0x00000014);
    332310
     
    352330#if defined(TARGET_KERNEL_ASP)
    353331
    354         /* ターゲット依存部の割込み初期化 */
     332        /* ターゲット依存部の割込み初期化 */
    355333        rx62n_inter_init();
    356334
    357335#endif  /* of #if defined(TARGET_KERNEL_ASP) */
    358336
    359 #if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u      /* JSP-1.4.2 以降 */
    360 
    361         /* ターゲット依存部の割込み初期化 */
     337#if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u      /* JSP-1.4.2 以降 */
     338
     339        /* ターゲット依存部の割込み初期化 */
    362340        rx62n_inter_init();
    363341
     
    367345
    368346/*
    369  *  rx62n_set_ecmr -- ECMRレジスタの設定
     347 *  rx62n_set_ecmr -- ECMRレジスタの設定
    370348 */
    371349
     
    382360                ecmr |= ETHERC_ECMR_RTM;
    383361
    384         /* 動作モード設定 */
     362        /* 動作モード設定 */
    385363        sil_wrw_mem(ETHERC_ECMR, ecmr);
    386364}
    387365
    388366/*
    389  * rx62n_reset -- ネットワークインタフェースをリセットする。
     367 * rx62n_reset -- ネットワークインタフェースをリセットする。
    390368 */
    391369
     
    397375#endif
    398376
    399         /* NIC からの割り込みを禁止する。*/
     377        /* NIC からの割り込みを禁止する。*/
    400378#ifdef TARGET_KERNEL_JSP
    401379        ipm = rx62n_dis_inter();
     
    414392        }
    415393
    416         /* 送受信を有効 */
     394        /* 送受信を有効 */
    417395        rx62n_set_ecmr(ic, 1);
    418396
    419         /* NIC からの割り込みを許可する。*/
     397        /* NIC からの割り込みを許可する。*/
    420398#ifdef TARGET_KERNEL_JSP
    421399        rx62n_ena_inter(ipm);
     
    427405
    428406/*
    429  *  get_rx62n_softc -- ネットワークインタフェースのソフトウェアæƒ
    430 å ±ã‚’返す。
     407 *  get_rx62n_softc -- ネットワークインタフェースのソフトウェア情報を返す。
    431408 */
    432409
     
    438415
    439416/*
    440  * rx62n_watchdog -- ネットワークインタフェースのワッチドッグタイムアウト
     417 * rx62n_watchdog -- ネットワークインタフェースのワッチドッグタイムアウト
    441418 */
    442419
     
    448425
    449426/*
    450  * rx62n_probe -- ネットワークインタフェースの検出
     427 * rx62n_probe -- ネットワークインタフェースの検出
    451428 */
    452429
     
    457434#if defined(TARGET_KERNEL_ASP)
    458435
    459         /* ターゲット依存部のバスの初期化 */
     436        /* ターゲット依存部のバスの初期化 */
    460437        rx62n_bus_init();
    461438
    462439#endif  /* of #if defined(TARGET_KERNEL_ASP) */
    463 #if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u      /* JSP-1.4.2 以降 */
    464 
    465         /* ターゲット依存部のバスの初期化 */
     440#if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u      /* JSP-1.4.2 以降 */
     441
     442        /* ターゲット依存部のバスの初期化 */
    466443        rx62n_bus_init();
    467444
     
    472449
    473450/*
    474  * rx62n_init -- ネットワークインタフェースの初期化
     451 * rx62n_init -- ネットワークインタフェースの初期化
    475452 */
    476453
     
    486463        int i;
    487464
    488         /* NIC からの割り込みを禁止する。*/
     465        /* NIC からの割り込みを禁止する。*/
    489466#ifdef TARGET_KERNEL_JSP
    490467        ipm = rx62n_dis_inter();
     
    518495        rdsc->rdle = 1;
    519496
    520         /* rx62n_init 本体を呼び出す。*/
     497        /* rx62n_init 本体を呼び出す。*/
    521498        rx62n_init_sub(ic);
    522499
     
    525502        }
    526503
    527         /* 送受信を有効 */
     504        /* 送受信を有効 */
    528505        rx62n_set_ecmr(ic, 1);
    529506
    530         /* NIC からの割り込みを許可する。*/
     507        /* NIC からの割り込みを許可する。*/
    531508#ifdef TARGET_KERNEL_JSP
    532509        rx62n_ena_inter(ipm);
     
    541518
    542519/*
    543  * rx62n_link -- リンク状æ
    544 ‹ã®å¤‰åŒ–に対する処理
     520 * rx62n_link -- リンク状態の変化に対する処理
    545521 */
    546522bool_t
     
    557533        }
    558534
    559         /* PHYの初期化 */
     535        /* PHYの初期化 */
    560536        sc->state = phy_initialize(sc->state, phy_addr, &mode);
    561537        if(sc->state != PHY_STATE_NEGOTIATED){
     
    563539        }
    564540
    565         /* ECMRレジスタの設定 */
     541        /* ECMRレジスタの設定 */
    566542        rx62n_set_ecmr(ic, mode);
    567543        return true;
     
    569545
    570546/*
    571  * rx62n_read -- フレームの読み込み
     547 * rx62n_read -- フレームの読み込み
    572548 */
    573549
     
    587563        if (sc->link_pre != sc->link_now) {
    588564                sc->link_pre = sc->link_now;
    589                 /* リンク状æ
    590 ‹ã«å¤‰åŒ–あり */
     565                /* リンク状態に変化あり */
    591566                if (sc->link_now) {
    592567                        ether_set_link_up();
     
    615590         *   <----------------- len ---------------->
    616591         *              ^
    617          *              t_net_buf で 4 オクテット境界にアラインされている。
     592         *              t_net_buf で 4 オクテット境界にアラインされている。
    618593         *
    619          *  tcp_input と udp_input では、擬似ヘッダと SDU でチェックサムを
    620          *  計算するが、n が 4 オクテット境界になるように SDU の後ろに 0 を
    621          *  パッディングする。その分を考æ
    622 ®ã—て net_buf を獲得しなければならない。
     594         *  tcp_input と udp_input では、擬似ヘッダと SDU でチェックサムを
     595         *  計算するが、n が 4 オクテット境界になるように SDU の後ろに 0 を
     596         *  パッディングする。その分を考慮して net_buf を獲得しなければならない。
    623597         */
    624598        align = ((((len - sizeof(T_IF_HDR)) + 3) >> 2) << 2) + sizeof(T_IF_HDR);
     
    650624
    651625/*
    652  * rx62n_start -- 送信フレームをバッファリングする。
     626 * rx62n_start -- 送信フレームをバッファリングする。
    653627 */
    654628
     
    701675
    702676/*
    703  *  RX62N Ethernet Controler 送受信割り込みハンドラ
     677 *  RX62N Ethernet Controler 送受信割り込みハンドラ
    704678 */
    705679
     
    717691
    718692        if (ecsr & ETHERC_ECSR_LCHNG) {
    719                 /* ETHERC部割り込み要因クリア */
     693                /* ETHERC部割り込み要因クリア */
    720694                sil_wrw_mem(ETHERC_ECSR, ETHERC_ECSR_LCHNG);
    721695
    722                 /* 受信割り込み処理 */
     696                /* 受信割り込み処理 */
    723697                isig_sem(ic->semid_rxb_ready);
    724698        }
     
    727701
    728702        if (eesr & EDMAC_EESR_FR) {
    729                 /* DMA部割り込み要因クリア */
     703                /* DMA部割り込み要因クリア */
    730704                sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_FR);
    731705
    732                 /* 受信割り込み処理 */
     706                /* 受信割り込み処理 */
    733707                isig_sem(ic->semid_rxb_ready);
    734708        }
    735709        if (eesr & EDMAC_EESR_TC) {
    736                 /* DMA部割り込み要因クリア */
     710                /* DMA部割り込み要因クリア */
    737711                sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_TC);
    738712
    739                 /* 送信割り込み処理 */
     713                /* 送信割り込み処理 */
    740714                isig_sem(ic->semid_txb_ready);
    741715        }
    742716        if (eesr & (EDMAC_EESR_FROF | EDMAC_EESR_RDE)) {
    743                 /* DMA部割り込み要因クリア */
     717                /* DMA部割り込み要因クリア */
    744718                sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_FROF | EDMAC_EESR_RDE);
    745719
    746720                sc->over_flow = true;
    747721
    748                 /* 受信割り込み処理 */
     722                /* 受信割り込み処理 */
    749723                isig_sem(ic->semid_rxb_ready);
    750724        }
     
    759733        sc = ic->sc;
    760734
    761         /* 受信割り込み処理 */
     735        /* 受信割り込み処理 */
    762736        isig_sem(ic->semid_rxb_ready);
    763737}
Note: See TracChangeset for help on using the changeset viewer.