Changeset 107 for uKadecot/trunk/uip/target/if_rx62n/if_rx62n.c
- Timestamp:
- Jun 10, 2015, 8:40:31 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uKadecot/trunk/uip/target/if_rx62n/if_rx62n.c
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 * Copyright (C) 2014 Cores Co., Ltd. Japan 5 5 * 6 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 7 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 8 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 9 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 10 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 11 * XR[hÉÜÜêÄ¢é±ÆD 12 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 13 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 14 gip 15 * Ò}j 16 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 17 * ̳ÛØKèðfÚ·é±ÆD 18 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 19 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 20 * ÆD 21 * (a) Äzzɺ¤hL 22 gipÒ}j 23 AÈÇjÉCãLÌ 24 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 25 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 26 * ñ·é±ÆD 27 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 28 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 29 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 30 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 31 * ÆÓ·é±ÆD 6 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 8 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 9 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 10 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 11 * スコード中に含まれていること. 12 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 13 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 14 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 15 * の無保証規定を掲載すること. 16 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 17 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 18 * と. 19 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 20 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 21 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 22 * 報告すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 27 * 免責すること. 32 28 * 33 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨34 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI35 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF36 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»37 * ÌÓCðíÈ¢D29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 31 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 * の責任を負わない. 38 34 * 39 35 * @(#) $Id$ … … 56 52 57 53 /* 58 * lbg[NC^tF[XÉ˶·é\tgEFAîñ54 * ネットワークインタフェースに依存するソフトウェア情報 59 55 */ 60 56 … … 66 62 67 63 /* 68 * lbg[NC^tF[XÌ\tgEFAîñ69 */ 70 71 /* lbg[NC^tF[XÉ˶·é\tgEFAîñ*/64 * ネットワークインタフェースのソフトウェア情報 65 */ 66 67 /* ネットワークインタフェースに依存するソフトウェア情報 */ 72 68 73 69 static T_RX62N_SOFTC rx62n_softc; … … 88 84 #endif 89 85 90 /* lbg[NC^tF[XÉ˶µÈ¢\tgEFAîñ*/86 /* ネットワークインタフェースに依存しないソフトウェア情報 */ 91 87 92 88 T_IF_SOFTC if_softc = { 93 // {0,}, /* lbg[NC^tF[XÌAhX*/94 // 0, /* M^CAEg*/95 &rx62n_softc, /* fBoCX˶Ì\tgEFAîñ*/89 // {0,}, /* ネットワークインタフェースのアドレス */ 90 // 0, /* 送信タイムアウト */ 91 &rx62n_softc, /* ディバイス依存のソフトウェア情報 */ 96 92 }; 97 93 98 94 /* 99 * ÇÏ95 * 局所変数 100 96 */ 101 97 … … 105 101 106 102 /* 107 * rx62n_stop -- lbg[NC^tF[Xðâ~·éB103 * rx62n_stop -- ネットワークインタフェースを停止する。 108 104 * 109 * Ó: NIC èÝÖ~óÔÅÄÑo·±ÆB105 * 注意: NIC 割り込み禁止状態で呼び出すこと。 110 106 */ 111 107 … … 113 109 rx62n_stop (T_RX62N_SOFTC *sc) 114 110 { 115 /* ®ì[hNA*/111 /* 動作モードクリア */ 116 112 sil_wrw_mem(ETHERC_ECMR, 0x00000000); 117 113 } 118 114 119 115 /* 120 * rx62n_init_sub -- lbg[NC^tF[XÌú»116 * rx62n_init_sub -- ネットワークインタフェースの初期化 121 117 * 122 * Ó: NIC èÝÖ~óÔÅÄÑo·±ÆB118 * 注意: NIC 割り込み禁止状態で呼び出すこと。 123 119 */ 124 120 … … 129 125 PHY_STATE_T state = PHY_STATE_UNINIT; 130 126 131 /* MAC \tgEGAEZbg*/127 /* MAC部ソフトウエア・リセット */ 132 128 sil_wrw_mem(EDMAC_EDMR, sil_rew_mem(EDMAC_EDMR) | EDMAC_EDMR_SWR_BIT); 133 129 134 /* Zbg®¹Ò¿*/130 /* リセット完了待ち */ 135 131 for (i = 0; i < 10000; i++) { 136 132 } … … 142 138 | (uint32_t)mac_addr[5]); 143 139 144 /* PHY Zbg*/140 /* PHYリセット */ 145 141 while((state = phy_reset(state, 0)) != PHY_STATE_RESET); 146 142 ic->sc->state = state; … … 149 145 sil_wrw_mem(ETHERC_ECSR, 0x00000037); 150 146 151 /* NÏ»èÝLø*/147 /* リンク変化割り込み有効 */ 152 148 sil_wrw_mem(ETHERC_ECSIPR, sil_rew_mem(ETHERC_ECSIPR) | ETHERC_ECSIPR_LCHNGIP); 153 149 … … 155 151 sil_wrw_mem(EDMAC_EESR, 0x47FF0F9F); 156 152 157 /* óMèÝLø*/153 /* 送受信割り込み有効 */ 158 154 sil_wrw_mem(EDMAC_EESIPR, (EDMAC_EESIPR_TCIP | EDMAC_EESIPR_FRIP | EDMAC_EESIPR_RDEIP | EDMAC_EESIPR_FROFIP)); 159 155 160 /* óMt[·ãÀiobt@TCYj*/156 /* 受信フレーム長上限(バッファサイズ) */ 161 157 sil_wrw_mem(ETHERC_RFLR, IF_RX62N_BUF_PAGE_SIZE); 162 158 163 /* 96 rbgÔiúlj*/159 /* 96ビット時間(初期値) */ 164 160 sil_wrw_mem(ETHERC_IPGR, 0x00000014); 165 161 … … 180 176 sil_wrw_mem(EDMAC_RMCR, 0x00000001); 181 177 182 /* PHY Ìú»ð£·*/178 /* PHYの初期化を促す */ 183 179 ic->link_pre = true; 184 180 ic->link_now = false; 185 181 186 /* ^[Qbg˶ÌÝú»*/182 /* ターゲット依存部の割込み初期化 */ 187 183 rx62n_inter_init(); 188 184 } 189 185 190 186 /* 191 * rx62n_set_ecmr -- ECMR WX^ÌÝè187 * rx62n_set_ecmr -- ECMRレジスタの設定 192 188 */ 193 189 … … 204 200 ecmr |= ETHERC_ECMR_RTM; 205 201 206 /* ®ì[hÝè*/202 /* 動作モード設定 */ 207 203 sil_wrw_mem(ETHERC_ECMR, ecmr); 208 204 } 209 205 210 206 /* 211 * rx62n_reset -- lbg[NC^tF[XðZbg·éB207 * rx62n_reset -- ネットワークインタフェースをリセットする。 212 208 */ 213 209 … … 215 211 rx62n_reset (T_IF_SOFTC *ic) 216 212 { 217 /* NIC ©çÌèÝðÖ~·éB*/213 /* NIC からの割り込みを禁止する。*/ 218 214 dis_int(INTNO_IF_RX62N_TRX); 219 215 … … 221 217 rx62n_init_sub(ic); 222 218 223 /* NIC ©çÌèÝð·éB*/219 /* NIC からの割り込みを許可する。*/ 224 220 ena_int(INTNO_IF_RX62N_TRX); 225 221 } 226 222 227 223 /* 228 * get_rx62n_softc -- lbg[NC^tF[XÌ\tgEFAîñðÔ·B224 * get_rx62n_softc -- ネットワークインタフェースのソフトウェア情報を返す。 229 225 */ 230 226 … … 236 232 237 233 /* 238 * rx62n_watchdog -- lbg[NC^tF[XÌb`hbO^CAEg234 * rx62n_watchdog -- ネットワークインタフェースのワッチドッグタイムアウト 239 235 */ 240 236 … … 246 242 247 243 /* 248 * rx62n_probe -- lbg[NC^tF[XÌo244 * rx62n_probe -- ネットワークインタフェースの検出 249 245 */ 250 246 … … 252 248 rx62n_probe (T_IF_SOFTC *ic) 253 249 { 254 /* ^[Qbg˶ÌoXÌú»*/250 /* ターゲット依存部のバスの初期化 */ 255 251 rx62n_bus_init(); 256 252 … … 259 255 260 256 /* 261 * rx62n_init -- lbg[NC^tF[XÌú»257 * rx62n_init -- ネットワークインタフェースの初期化 262 258 */ 263 259 … … 270 266 int i; 271 267 272 /* NIC ©çÌèÝðÖ~·éB*/268 /* NIC からの割り込みを禁止する。*/ 273 269 dis_int(INTNO_IF_RX62N_TRX); 274 270 … … 297 293 rdsc->rdle = 1; 298 294 299 /* rx62n_init {ÌðÄÑo·B*/295 /* rx62n_init 本体を呼び出す。*/ 300 296 rx62n_init_sub(ic); 301 297 … … 304 300 } 305 301 306 /* NIC ©çÌèÝð·éB*/302 /* NIC からの割り込みを許可する。*/ 307 303 ena_int(INTNO_IF_RX62N_TRX); 308 304 } 309 305 310 306 /* 311 * rx62n_link -- NóÔÌÏ»Éηé307 * rx62n_link -- リンク状態の変化に対する処理 312 308 */ 313 309 bool_t … … 324 320 } 325 321 326 /* PHY Ìú»*/322 /* PHYの初期化 */ 327 323 sc->state = phy_initialize(sc->state, 0, &mode); 328 324 if(sc->state != PHY_STATE_NEGOTIATED){ … … 330 326 } 331 327 332 /* ECMR WX^ÌÝè*/328 /* ECMRレジスタの設定 */ 333 329 rx62n_set_ecmr(ic, mode); 334 330 return true; … … 336 332 337 333 /* 338 * rx62n_read -- t[ÌÇÝÝ334 * rx62n_read -- フレームの読み込み 339 335 */ 340 336 … … 379 375 380 376 /* 381 * rx62n_start -- Mt[ðobt@O·éB377 * rx62n_start -- 送信フレームをバッファリングする。 382 378 */ 383 379 … … 430 426 431 427 /* 432 * RX62N Ethernet Controler óMèÝnh428 * RX62N Ethernet Controler 送受信割り込みハンドラ 433 429 */ 434 430 … … 449 445 450 446 if (ecsr & ETHERC_ECSR_LCHNG) { 451 /* ETHERC èÝvöNA*/447 /* ETHERC部割り込み要因クリア */ 452 448 sil_wrw_mem(ETHERC_ECSR, ETHERC_ECSR_LCHNG); 453 449 … … 455 451 ic->link_now = (psr & ETHERC_PSR_LMON) != 0; 456 452 457 /* NóÔÉÏ» è*/453 /* リンク状態に変化あり */ 458 454 if (ic->link_pre != ic->link_now) { 459 /* óMèÝ*/455 /* 受信割り込み処理 */ 460 456 acttsk = true; 461 457 } … … 465 461 466 462 if (eesr & EDMAC_EESR_FR) { 467 /* DMA èÝvöNA*/463 /* DMA部割り込み要因クリア */ 468 464 sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_FR); 469 465 470 /* óMèÝ*/466 /* 受信割り込み処理 */ 471 467 acttsk = true; 472 468 ic->rxb_write++; 473 469 } 474 470 if (eesr & EDMAC_EESR_TC) { 475 /* DMA èÝvöNA*/471 /* DMA部割り込み要因クリア */ 476 472 sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_TC); 477 473 478 /* MèÝ*/474 /* 送信割り込み処理 */ 479 475 acttsk = true; 480 476 } 481 477 if (eesr & (EDMAC_EESR_FROF | EDMAC_EESR_RDE)) { 482 /* DMA èÝvöNA*/478 /* DMA部割り込み要因クリア */ 483 479 sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_FROF | EDMAC_EESR_RDE); 484 480 485 481 ic->over_flow = true; 486 482 487 /* óMèÝ*/483 /* 受信割り込み処理 */ 488 484 acttsk = true; 489 485 ic->rxb_write++; -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.