Ignore:
Timestamp:
Jun 10, 2015, 8:40:31 PM (9 years ago)
Author:
coas-nagasima
Message:

SHIFT_JISのコードにcharsetプロパティを付けた

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uKadecot/trunk/uip/target/if_rx62n/ether_phy.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    77 *
    8  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    9  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    10  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    11  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    12  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    16 ƒƒ“ƒgi—˜—p
    17  *      ŽÒƒ}ƒjƒ
    18 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    19  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    20  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚ƁD
    23  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    24 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    25 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    26  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    27  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    28  *        •ñ‚·‚邱‚ƁD
    29  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 *  @(#) $Id$
     
    9995        switch(state){
    10096        case PHY_STATE_UNINIT:
    101                 /* PHY‚̃ŠƒZƒbƒg */
     97                /* PHYのリセット */
    10298                phy_write_reg(phy_addr, PHY_CONTROL_REGISTER, PHY_CONTROL_RESET);
    10399
    104                 /* 500ms‘Ò‚Â */
    105                 /* tslp_tsk(500); •s—vH */
     100                /* 500ms待つ */
     101                /* tslp_tsk(500); 不要? */
    106102                /* continue; */
    107103        case PHY_STATE_RESETING:
    108                 /* ƒŠƒZƒbƒgŠ®—¹‚ÌŠm”F */
     104                /* リセット完了の確認 */
    109105                if((phy_read_reg(phy_addr, PHY_CONTROL_REGISTER) & PHY_CONTROL_RESET) != 0)
    110106                        return PHY_STATE_RESETING;
     
    130126                if(reset < 2){
    131127#endif
    132                 /* ƒŠƒ“ƒNŠ®—¹‚ÌŠm”F */
     128                /* リンク完了の確認 */
    133129                if(!phy_is_link(phy_addr))
    134130                        return PHY_STATE_RESET;
     
    137133                reset = 0;
    138134#endif
    139                 /* ƒI[ƒgƒlƒSƒVƒG[ƒVƒ‡ƒ“‚Ì‚¨’m‚点‚ð—LŒø‚ɐݒè */
     135                /* オートネゴシエーションのお知らせを有効に設定 */
    140136                phy_write_reg(phy_addr, PHY_AN_ADVERTISEMENT_REGISTER,
    141137                        PHY_AN_AD_100BASE_T4 | PHY_AN_AD_100BASE_TX_FULL_DUPLEX | PHY_AN_AD_100BASE_TX_HALF_DUPLEX
    142138                        | PHY_AN_AD_10BASE_T_FULL_DUPLEX | PHY_AN_AD_10BASE_T_HALF_DUPLEX | PHY_AN_AD_SELECTOR_FIELD);
    143139
    144                 /* ƒI[ƒgƒlƒSƒVƒG[ƒVƒ‡ƒ“‚ð—LŒø‚ɐݒè */
     140                /* オートネゴシエーションを有効に設定 */
    145141                phy_write_reg(phy_addr, PHY_CONTROL_REGISTER, PHY_CONTROL_SPEED_SELECT | PHY_CONTROL_A_N_ENABLE);
    146142
     
    151147                if(reset < 2){
    152148#endif
    153                 /* ƒI[ƒgƒlƒSƒVƒG[ƒVƒ‡ƒ“Š®—¹‚ÌŠm”F */
     149                /* オートネゴシエーション完了の確認 */
    154150                if((phy_read_reg(phy_addr, PHY_STATUS_REGISTER) & PHY_STATUS_A_N_COMPLETE) == 0)
    155151                        return PHY_STATE_LINKED;
     
    174170{
    175171#ifdef __RX
    176         /* ƒŠƒ“ƒN‚ÌŠm”F */
     172        /* リンクの確認 */
    177173        return (phy_read_reg(phy_addr, PHY_STATUS_REGISTER) & PHY_STATUS_LINK_STATUS) != 0;
    178174#else
     
    186182        int i;
    187183
    188         /* PRE F32ŒÂ‚̘A‘±‚µ‚½1b */
     184        /* PRE :32個の連続した1b */
    189185        for (i = 0; i < 32; i++)
    190186                phy_write_bit(true);
    191187
    192         /* ST FƒtƒŒ[ƒ€‚̐擪‚ðŽ¦‚·01b‚̃‰ƒCƒg */
    193         phy_write_bit(false);
    194         phy_write_bit(true);
    195 
    196         /* OP FƒAƒNƒZƒXŽí•Ê‚ðŽ¦‚·ƒR[ƒh‚̃‰ƒCƒg */
    197         phy_write_bit(true);
    198         phy_write_bit(false);
    199 
    200         /* PHYAD FPHY-LSI‚̃AƒhƒŒƒX‚ª1”Ԃ̏ꍇA00001b‚ðƒ‰ƒCƒgiMSB ‚©‚珇ŽŸƒ‰ƒCƒgjB */
     188        /* ST :フレームの先頭を示す01bのライト */
     189        phy_write_bit(false);
     190        phy_write_bit(true);
     191
     192        /* OP :アクセス種別を示すコードのライト */
     193        phy_write_bit(true);
     194        phy_write_bit(false);
     195
     196        /* PHYAD :PHY-LSIのアドレスが1番の場合、00001bをライト(MSB から順次ライト)。 */
    201197        phy_write_bit((phy_addr & 0x10) != 0);
    202198        phy_write_bit((phy_addr & 0x08) != 0);
     
    205201        phy_write_bit((phy_addr & 0x01) != 0);
    206202
    207         /* REGAD FƒŒƒWƒXƒ^ƒAƒhƒŒƒX‚ª1”Ԃ̏ꍇA00001b‚ðƒ‰ƒCƒgiMSB‚©‚珇ŽŸƒ‰ƒCƒgjB */
     203        /* REGAD :レジスタアドレスが1番の場合、00001bをライト(MSBから順次ライト)。 */
    208204        phy_write_bit((reg_addr & 0x10) != 0);
    209205        phy_write_bit((reg_addr & 0x08) != 0);
     
    212208        phy_write_bit((reg_addr & 0x01) != 0);
    213209
    214         /* TA FMII/RMIIƒCƒ“ƒ^ƒtƒF[ƒXã‚Ńf[ƒ^‚Ì‘—MŒ³‚ðØ‚è‘Ö‚¦‚鎞ŠÔ */
    215         /* uƒoƒX‰ð•úviZ0‚Æ•\‹Lj‚ðs‚¤ */
     210        /* TA :MII/RMIIインタフェース上でデータの送信元を切り替える時間 */
     211        /* 「バス解放」(Z0と表記)を行う */
    216212        phy_release_bus();
    217213
    218         /* DATA F16ƒrƒbƒg‚̃f[ƒ^BMSB‚©‚珇ŽŸƒŠ[ƒh */
     214        /* DATA :16ビットのデータ。MSBから順次リード */
    219215        for (bit = 0x8000; bit != 0; bit >>= 1) {
    220216                if(phy_read_bit())
     
    222218        }
    223219
    224         /* IDLE FŽŸ‚ÌMIIŠÇ—ƒtƒH[ƒ}ƒbƒg“ü—Í‚Ü‚Å‚Ì‘Ò‹@ŽžŠÔ */
    225         /* ‚·‚Å‚ÉTAŽž‚ɃoƒX‰ð•úÏ‚Ý‚Å‚ ‚萧Œä•s—v */
     220        /* IDLE :次のMII管理フォーマット入力までの待機時間 */
     221        /* すでにTA時にバス解放済みであり制御不要 */
    226222        phy_release_bus();
    227223
     
    234230        uint16_t bit;
    235231
    236         /* PRE F32ŒÂ‚̘A‘±‚µ‚½1b */
     232        /* PRE :32個の連続した1b */
    237233        for (i = 0; i < 32; i++)
    238234                phy_write_bit(true);
    239235
    240         /* ST FƒtƒŒ[ƒ€‚̐擪‚ðŽ¦‚·01b‚̃‰ƒCƒg */
    241         phy_write_bit(false);
    242         phy_write_bit(true);
    243 
    244         /* OP FƒAƒNƒZƒXŽí•Ê‚ðŽ¦‚·ƒR[ƒh‚̃‰ƒCƒg */
    245         phy_write_bit(false);
    246         phy_write_bit(true);
    247 
    248         /* PHYAD FPHY-LSI‚̃AƒhƒŒƒX‚ª1”Ԃ̏ꍇA00001b‚ðƒ‰ƒCƒgiMSB ‚©‚珇ŽŸƒ‰ƒCƒgjB */
     236        /* ST :フレームの先頭を示す01bのライト */
     237        phy_write_bit(false);
     238        phy_write_bit(true);
     239
     240        /* OP :アクセス種別を示すコードのライト */
     241        phy_write_bit(false);
     242        phy_write_bit(true);
     243
     244        /* PHYAD :PHY-LSIのアドレスが1番の場合、00001bをライト(MSB から順次ライト)。 */
    249245        phy_write_bit((phy_addr & 0x10) != 0);
    250246        phy_write_bit((phy_addr & 0x08) != 0);
     
    253249        phy_write_bit((phy_addr & 0x01) != 0);
    254250
    255         /* REGAD FƒŒƒWƒXƒ^ƒAƒhƒŒƒX‚ª1”Ԃ̏ꍇA00001b‚ðƒ‰ƒCƒgiMSB‚©‚珇ŽŸƒ‰ƒCƒgjB */
     251        /* REGAD :レジスタアドレスが1番の場合、00001bをライト(MSBから順次ライト)。 */
    256252        phy_write_bit((reg_addr & 0x10) != 0);
    257253        phy_write_bit((reg_addr & 0x08) != 0);
     
    260256        phy_write_bit((reg_addr & 0x01) != 0);
    261257
    262         /* TA FMII/RMIIƒCƒ“ƒ^ƒtƒF[ƒXã‚Ńf[ƒ^‚Ì‘—MŒ³‚ðØ‚è‘Ö‚¦‚鎞ŠÔ */
    263         /* 10b‚ðƒ‰ƒCƒg */
    264         phy_write_bit(true);
    265         phy_write_bit(false);
    266 
    267         /* DATA F16ƒrƒbƒg‚̃f[ƒ^BMSB‚©‚珇ŽŸƒ‰ƒCƒg */
     258        /* TA :MII/RMIIインタフェース上でデータの送信元を切り替える時間 */
     259        /* 10bをライト */
     260        phy_write_bit(true);
     261        phy_write_bit(false);
     262
     263        /* DATA :16ビットのデータ。MSBから順次ライト */
    268264        for (bit = 0x8000; bit != 0; bit >>= 1) {
    269265                phy_write_bit((reg_data & bit) != 0);
    270266        }
    271267
    272         /* IDLE FŽŸ‚ÌMIIŠÇ—ƒtƒH[ƒ}ƒbƒg“ü—Í‚Ü‚Å‚Ì‘Ò‹@ŽžŠÔ */
    273         /* u’P“ƃoƒX‰ð•úviX‚Æ•\‹Lj‚ðs‚¤ */
     268        /* IDLE :次のMII管理フォーマット入力までの待機時間 */
     269        /* 「単独バス解放」(Xと表記)を行う */
    274270        phy_single_rel_bus();
    275271}
     
    278274
    279275/*
    280  * 1 ƒrƒbƒgƒf[ƒ^‚̃‰ƒCƒg
     276 * 1 ビットデータのライト
    281277 */
    282278static void phy_write_bit(bool_t bit)
     
    285281        uint32_t data = bit ? ETHERC_PIR_MDO : 0;
    286282
    287         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     283        /* PHY部インタフェースレジスタへのライト */
    288284        sil_wrw_mem(ETHERC_PIR, data | ETHERC_PIR_MMD | 0/*ETHERC_PIR_MDC*/);
    289285
    290286        for(i = ETHERC_PIR_WAIT; i > 0; i--);
    291287
    292         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     288        /* PHY部インタフェースレジスタへのライト */
    293289        sil_wrw_mem(ETHERC_PIR, data | ETHERC_PIR_MMD | ETHERC_PIR_MDC);
    294290
    295291        for(i = 2 * ETHERC_PIR_WAIT; i > 0; i--);
    296292
    297         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     293        /* PHY部インタフェースレジスタへのライト */
    298294        sil_wrw_mem(ETHERC_PIR, data | ETHERC_PIR_MMD | 0/*ETHERC_PIR_MDC*/);
    299295
     
    302298
    303299/*
    304  * ƒoƒX‰ð•ú
     300 * バス解放
    305301 */
    306302static void phy_release_bus()
     
    308304        int i;
    309305
    310         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     306        /* PHY部インタフェースレジスタへのライト */
    311307        sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/);
    312308
    313309        for(i = ETHERC_PIR_WAIT; i > 0; i--);
    314310
    315         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     311        /* PHY部インタフェースレジスタへのライト */
    316312        sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | ETHERC_PIR_MDC);
    317313
    318314        for(i = 2 * ETHERC_PIR_WAIT; i > 0; i--);
    319315
    320         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     316        /* PHY部インタフェースレジスタへのライト */
    321317        sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/);
    322318
     
    325321
    326322/*
    327  * 1 ƒrƒbƒgƒf[ƒ^‚̃Š[ƒh
     323 * 1 ビットデータのリード
    328324 */
    329325static bool_t phy_read_bit()
     
    334330        for(i = ETHERC_PIR_WAIT; i > 0; i--);
    335331
    336         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     332        /* PHY部インタフェースレジスタへのライト */
    337333        sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | ETHERC_PIR_MDC);
    338334
    339335        for(i = ETHERC_PIR_WAIT; i > 0; i--);
    340336
    341         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     337        /* PHY部インタフェースレジスタへのライト */
    342338        bit = (sil_rew_mem(ETHERC_PIR) & ETHERC_PIR_MDI) != 0;
    343339
    344340        for(i = ETHERC_PIR_WAIT; i > 0; i--);
    345341
    346         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     342        /* PHY部インタフェースレジスタへのライト */
    347343        sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/);
    348344
     
    353349
    354350/*
    355  * ’P“ƃoƒX‰ð•ú
     351 * 単独バス解放
    356352 */
    357353static void phy_single_rel_bus()
     
    361357        for(i = ETHERC_PIR_WAIT; i > 0; i--);
    362358
    363         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     359        /* PHY部インタフェースレジスタへのライト */
    364360        sil_wrw_mem(ETHERC_PIR, ETHERC_PIR_MMD | ETHERC_PIR_MDC);
    365361
    366362        for(i = 2 * ETHERC_PIR_WAIT; i > 0; i--);
    367363
    368         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     364        /* PHY部インタフェースレジスタへのライト */
    369365        sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/);
    370366
Note: See TracChangeset for help on using the changeset viewer.