Ignore:
Timestamp:
Jul 23, 2017, 2:29:40 PM (7 years ago)
Author:
coas-nagasima
Message:

SVNプロパティを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62n.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    66 *  Copyright (C) 2014-2015 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$
     
    124109
    125110/*
    126  *  ネットワークインタフェースに依存するソフトウェアæƒ
    127 å ±
     111 *  ネットワークインタフェースに依存するソフトウェア情報
    128112 */
    129113
     
    137121
    138122/*
    139  *  ネットワークインタフェースのソフトウェアæƒ
    140 å ±
    141  */
    142 
    143 /* ネットワークインタフェースに依存するソフトウェアæƒ
    144 å ± */
     123 *  ネットワークインタフェースのソフトウェア情報
     124 */
     125
     126/* ネットワークインタフェースに依存するソフトウェア情報 */
    145127
    146128static T_RX62N_SOFTC rx62n_softc;
     
    162144#endif
    163145
    164 /* ネットワークインタフェースに依存しないソフトウェアæƒ
    165 å ± */
     146/* ネットワークインタフェースに依存しないソフトウェア情報 */
    166147
    167148T_IF_SOFTC if_softc = {
    168         {0,},                                           /* ネットワークインタフェースのアドレス       */
    169         0,                                                      /* 送信タイムアウト                     */
    170         &rx62n_softc,                           /* ディバイス依存のソフトウェアæƒ
    171 å ±     */
    172         SEM_IF_RX62N_SBUF_READY,        /* 送信セマフォ                   */
    173         SEM_IF_RX62N_RBUF_READY,        /* 受信セマフォ                   */
     149        {0,},                                           /* ネットワークインタフェースのアドレス   */
     150        0,                                                      /* 送信タイムアウト                     */
     151        &rx62n_softc,                           /* ディバイス依存のソフトウェア情報     */
     152        SEM_IF_RX62N_SBUF_READY,        /* 送信セマフォ                       */
     153        SEM_IF_RX62N_RBUF_READY,        /* 受信セマフォ                       */
    174154
    175155#ifdef SUPPORT_INET6
    176156
    177         IF_MADDR_INIT,                          /* マルチキャストアドレスリスト   */
     157        IF_MADDR_INIT,                          /* マルチキャストアドレスリスト       */
    178158
    179159#endif  /* of #ifdef SUPPORT_INET6 */
     
    181161
    182162/*
    183  *  局所変数
     163 *  局所変数
    184164 */
    185165
     
    194174
    195175/*
    196  *  ds_crc -- イーサネットアドレスの CRC を計算する。
     176 *  ds_crc -- イーサネットアドレスの CRC を計算する。
    197177 */
    198178
     
    222202
    223203/*
    224  *  ds_getmcaf -- マルチキャストアドレスのリストからマルチキャストアドレス
    225  *                フィルタを計算する。
     204 *  ds_getmcaf -- マルチキャストアドレスのリストからマルチキャストアドレス
     205 *                フィルタを計算する。
    226206 */
    227207
     
    241221
    242222/*
    243  * rx62n_setrcr -- 受信構成レジスタ (RCR) を設定する。
     223 * rx62n_setrcr -- 受信構成レジスタ (RCR) を設定する。
    244224 */
    245225
     
    251231
    252232/*
    253  * rx62n_addmulti -- マルチキャストアドレスを追加する。
     233 * rx62n_addmulti -- マルチキャストアドレスを追加する。
    254234 */
    255235
     
    264244
    265245/*
    266  *  rx62n_stop -- ネットワークインタフェースを停止する。
    267  *
    268  *    注意: NIC 割り込み禁止状æ
    269 ‹ã§å‘¼ã³å‡ºã™ã“と。
     246 *  rx62n_stop -- ネットワークインタフェースを停止する。
     247 *
     248 *    注意: NIC 割り込み禁止状態で呼び出すこと。
    270249 */
    271250
     
    273252rx62n_stop (T_RX62N_SOFTC *sc)
    274253{
    275         /* 動作モードクリア */
     254        /* 動作モードクリア */
    276255        sil_wrw_mem(ETHERC_ECMR, 0x00000000);
    277256}
    278257
    279258/*
    280  *  rx62n_init_sub -- ネットワークインタフェースの初期化
    281  *
    282  *    注意: NIC 割り込み禁止状æ
    283 ‹ã§å‘¼ã³å‡ºã™ã“と。
     259 *  rx62n_init_sub -- ネットワークインタフェースの初期化
     260 *
     261 *    注意: NIC 割り込み禁止状態で呼び出すこと。
    284262 */
    285263
     
    289267        enum phy_mode_t mode;
    290268
    291         /* MAC部ソフトウエア・リセット */
     269        /* MAC部ソフトウエア・リセット */
    292270        sil_wrw_mem(EDMAC_EDMR, sil_rew_mem(EDMAC_EDMR) | EDMAC_EDMR_SWR_BIT);
    293271
     
    300278                | (uint32_t)mac_addr[5]);
    301279
    302         /* PHYリセット */
     280        /* PHYリセット */
    303281        phy_reset(0);
    304282
     
    306284        sil_wrw_mem(ETHERC_ECSR, 0x00000037);
    307285
    308         /* リンク変化割り込み有効 */
     286        /* リンク変化割り込み有効 */
    309287        sil_wrw_mem(ETHERC_ECSIPR, sil_rew_mem(ETHERC_ECSIPR) | ETHERC_ECSIPR_LCHNGIP);
    310288
     
    312290        sil_wrw_mem(EDMAC_EESR, 0x47FF0F9F);
    313291
    314         /* 送受信割り込み有効 */
     292        /* 送受信割り込み有効 */
    315293        sil_wrw_mem(EDMAC_EESIPR, (EDMAC_EESIPR_TCIP | EDMAC_EESIPR_FRIP | EDMAC_EESIPR_RDEIP | EDMAC_EESIPR_FROFIP));
    316294
    317         /* 受信フレーム長上限(バッファサイズ) */
     295        /* 受信フレーム長上限(バッファサイズ) */
    318296        sil_wrw_mem(ETHERC_RFLR, IF_RX62N_BUF_PAGE_SIZE);
    319297
    320         /* 96ビット時間(初期値) */
     298        /* 96ビット時間(初期値) */
    321299        sil_wrw_mem(ETHERC_IPGR, 0x00000014);
    322300
     
    337315        sil_wrw_mem(EDMAC_RMCR, 0x00000001);
    338316
    339         /* PHYの初期化 */
     317        /* PHYの初期化 */
    340318        mode = phy_initialize(0);
    341319
    342         /* ECMRレジスタの設定 */
     320        /* ECMRレジスタの設定 */
    343321        rx62n_set_ecmr(ic, mode);
    344322
    345323#if defined(TARGET_KERNEL_ASP)
    346324
    347         /* ターゲット依存部の割込み初期化 */
     325        /* ターゲット依存部の割込み初期化 */
    348326        rx62n_inter_init();
    349327
    350328#endif  /* of #if defined(TARGET_KERNEL_ASP) */
    351329
    352 #if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u      /* JSP-1.4.2 以降 */
    353 
    354         /* ターゲット依存部の割込み初期化 */
     330#if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u      /* JSP-1.4.2 以降 */
     331
     332        /* ターゲット依存部の割込み初期化 */
    355333        rx62n_inter_init();
    356334
     
    360338
    361339/*
    362  *  rx62n_set_ecmr -- ECMRレジスタの設定
     340 *  rx62n_set_ecmr -- ECMRレジスタの設定
    363341 */
    364342
     
    375353                ecmr |= ETHERC_ECMR_RTM;
    376354
    377         /* 動作モード設定 */
     355        /* 動作モード設定 */
    378356        sil_wrw_mem(ETHERC_ECMR, ecmr);
    379357}
    380358
    381359/*
    382  * rx62n_reset -- ネットワークインタフェースをリセットする。
     360 * rx62n_reset -- ネットワークインタフェースをリセットする。
    383361 */
    384362
     
    390368#endif
    391369
    392         /* NIC からの割り込みを禁止する。*/
     370        /* NIC からの割り込みを禁止する。*/
    393371#ifdef TARGET_KERNEL_JSP
    394372        ipm = rx62n_dis_inter();
     
    402380        rx62n_init_sub(ic);
    403381
    404         /* NIC からの割り込みを許可する。*/
     382        /* NIC からの割り込みを許可する。*/
    405383#ifdef TARGET_KERNEL_JSP
    406384        rx62n_ena_inter(ipm);
     
    412390
    413391/*
    414  *  get_rx62n_softc -- ネットワークインタフェースのソフトウェアæƒ
    415 å ±ã‚’返す。
     392 *  get_rx62n_softc -- ネットワークインタフェースのソフトウェア情報を返す。
    416393 */
    417394
     
    423400
    424401/*
    425  * rx62n_watchdog -- ネットワークインタフェースのワッチドッグタイムアウト
     402 * rx62n_watchdog -- ネットワークインタフェースのワッチドッグタイムアウト
    426403 */
    427404
     
    433410
    434411/*
    435  * rx62n_probe -- ネットワークインタフェースの検出
     412 * rx62n_probe -- ネットワークインタフェースの検出
    436413 */
    437414
     
    442419#if defined(TARGET_KERNEL_ASP)
    443420
    444         /* ターゲット依存部のバスの初期化 */
     421        /* ターゲット依存部のバスの初期化 */
    445422        rx62n_bus_init();
    446423
    447424#endif  /* of #if defined(TARGET_KERNEL_ASP) */
    448 #if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u      /* JSP-1.4.2 以降 */
    449 
    450         /* ターゲット依存部のバスの初期化 */
     425#if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u      /* JSP-1.4.2 以降 */
     426
     427        /* ターゲット依存部のバスの初期化 */
    451428        rx62n_bus_init();
    452429
     
    459436
    460437/*
    461  * rx62n_init -- ネットワークインタフェースの初期化
     438 * rx62n_init -- ネットワークインタフェースの初期化
    462439 */
    463440
     
    473450        int i;
    474451
    475         /* NIC からの割り込みを禁止する。*/
     452        /* NIC からの割り込みを禁止する。*/
    476453#ifdef TARGET_KERNEL_JSP
    477454        ipm = rx62n_dis_inter();
     
    505482        rdsc->rdle = 1;
    506483
    507         /* rx62n_init 本体を呼び出す。*/
     484        /* rx62n_init 本体を呼び出す。*/
    508485        rx62n_init_sub(ic);
    509486
     
    512489        }
    513490
    514         /* NIC からの割り込みを許可する。*/
     491        /* NIC からの割り込みを許可する。*/
    515492#ifdef TARGET_KERNEL_JSP
    516493        rx62n_ena_inter(ipm);
     
    522499
    523500/*
    524  * rx62n_read -- フレームの読み込み
     501 * rx62n_read -- フレームの読み込み
    525502 */
    526503
     
    537514        enum phy_mode_t mode;
    538515
    539         /* リンク状æ
    540 ‹ã«å¤‰åŒ–あり */
     516        /* リンク状態に変化あり */
    541517        if (sc->link_pre != sc->link_now) {
    542518                sc->link_pre = sc->link_now;
    543519
    544520                if (!phy_is_link(0)) {
    545                         /* PHYの初期化 */
     521                        /* PHYの初期化 */
    546522                        mode = phy_initialize(0);
    547523
    548                         /* ECMRレジスタの設定 */
     524                        /* ECMRレジスタの設定 */
    549525                        rx62n_set_ecmr(ic, mode);
    550526                }
     
    569545         *   <----------------- len ---------------->
    570546         *              ^
    571          *              t_net_buf で 4 オクテット境界にアラインされている。
     547         *              t_net_buf で 4 オクテット境界にアラインされている。
    572548         *
    573          *  tcp_input と udp_input では、擬似ヘッダと SDU でチェックサムを
    574          *  計算するが、n が 4 オクテット境界になるように SDU の後ろに 0 を
    575          *  パッディングする。その分を考æ
    576 ®ã—て net_buf を獲得しなければならない。
     549         *  tcp_input と udp_input では、擬似ヘッダと SDU でチェックサムを
     550         *  計算するが、n が 4 オクテット境界になるように SDU の後ろに 0 を
     551         *  パッディングする。その分を考慮して net_buf を獲得しなければならない。
    577552         */
    578553        align = ((((len - sizeof(T_IF_HDR)) + 3) >> 2) << 2) + sizeof(T_IF_HDR);
     
    604579
    605580/*
    606  * rx62n_start -- 送信フレームをバッファリングする。
     581 * rx62n_start -- 送信フレームをバッファリングする。
    607582 */
    608583
     
    655630
    656631/*
    657  *  RX62N Ethernet Controler 送受信割り込みハンドラ
     632 *  RX62N Ethernet Controler 送受信割り込みハンドラ
    658633 */
    659634
     
    673648
    674649        if (ecsr & ETHERC_ECSR_LCHNG) {
    675                 /* ETHERC部割り込み要因クリア */
     650                /* ETHERC部割り込み要因クリア */
    676651                sil_wrw_mem(ETHERC_ECSR, ETHERC_ECSR_LCHNG);
    677652
     
    679654                sc->link_now = (psr & ETHERC_PSR_LMON) != 0;
    680655
    681                 /* リンク状æ
    682 ‹ã«å¤‰åŒ–あり */
     656                /* リンク状態に変化あり */
    683657                if (sc->link_pre != sc->link_now) {
    684                         /* 受信割り込み処理 */
     658                        /* 受信割り込み処理 */
    685659                        isig_sem(ic->semid_rxb_ready);
    686660                }
     
    690664
    691665        if (eesr & EDMAC_EESR_FR) {
    692                 /* DMA部割り込み要因クリア */
     666                /* DMA部割り込み要因クリア */
    693667                sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_FR);
    694668
    695                 /* 受信割り込み処理 */
     669                /* 受信割り込み処理 */
    696670                isig_sem(ic->semid_rxb_ready);
    697671        }
    698672        if (eesr & EDMAC_EESR_TC) {
    699                 /* DMA部割り込み要因クリア */
     673                /* DMA部割り込み要因クリア */
    700674                sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_TC);
    701675
    702                 /* 送信割り込み処理 */
     676                /* 送信割り込み処理 */
    703677                isig_sem(ic->semid_txb_ready);
    704678        }
    705679        if (eesr & (EDMAC_EESR_FROF | EDMAC_EESR_RDE)) {
    706                 /* DMA部割り込み要因クリア */
     680                /* DMA部割り込み要因クリア */
    707681                sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_FROF | EDMAC_EESR_RDE);
    708682
    709683                sc->over_flow = true;
    710684
    711                 /* 受信割り込み処理 */
     685                /* 受信割り込み処理 */
    712686                isig_sem(ic->semid_rxb_ready);
    713687        }
Note: See TracChangeset for help on using the changeset viewer.