QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

热搜: eclipse ecos stm32 ecos源码 如何获取ecos ecos源代码 code goAhead redboot
搜索
发新帖

21

主题

3

听众

572

积分

高级工程师

Rank: 4Rank: 4

  • TA的每日心情
    奋斗
    2013-5-3 10:11
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    最后登录
    2014-7-6
    威望
    0
    金钱
    497
    贡献
    0
    注册时间
    2013-3-12
    积分
    572
    帖子
    70
    主题
    21
    精华
    1
    UID
    206
    发表于 2013-4-9 21:19:41 |显示全部楼层
    更多
        各位老大,
           请问如何使MINI2440开发板的Redboot支持修改MAC地址。
    回复

    使用道具 举报

    84

    主题

    15

    听众

    2901

    积分

    超级版主

    Rank: 8Rank: 8Rank: 8Rank: 8

    该用户从未签到

    最后登录
    2015-5-31
    威望
    0
    金钱
    2389
    贡献
    0
    注册时间
    2012-5-1
    积分
    2901
    帖子
    492
    主题
    84
    精华
    4
    UID
    2
    发表于 2013-4-9 22:21:06 |显示全部楼层
    redboot有IP命令支持,你稍微看下代码,是否有相关MAC命令。如果没有,则需要自己加了哦!如果有的话,看是不是哪没配置上!
    依我看,应该是有MAC命令支持的
    回复

    使用道具 举报

    21

    主题

    3

    听众

    572

    积分

    高级工程师

    Rank: 4Rank: 4

  • TA的每日心情
    奋斗
    2013-5-3 10:11
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    最后登录
    2014-7-6
    威望
    0
    金钱
    497
    贡献
    0
    注册时间
    2013-3-12
    积分
    572
    帖子
    70
    主题
    21
    精华
    1
    UID
    206
    发表于 2013-4-9 23:03:22 |显示全部楼层
    reille 发表于 2013-4-9 22:21
    redboot有IP命令支持,你稍微看下代码,是否有相关MAC命令。如果没有,则需要自己加了哦!如果有的话,看是 ...

    你好!
    我看到DM9000的CDI文件是有关于DM9000 EEPROM的配置选项。我将其修改为‘1’后重新编译,结果还是没有出来相关的修改MAC的指令。
        cdl_option CYGSEM_DEVS_ETH_DAVICOM_DM9000_WRITE_EEPROM {
            display "SIOCSIFHWADDR records ESA (MAC address) in EEPROM"
            default_value 1
            description   "
                The ioctl() socket call with operand SIOCSIFHWADDR sets the
                interface hardware address - the MAC address or Ethernet Station
                Address (ESA).  This option causes the new MAC address to be
                written into the EEPROM associated with the interface, so that the
                new MAC address is permanently recorded.  Doing this should be a
                carefully chosen decision, hence this option."
        }
    是不是我还需要怎么去修改下代码。请指点下,谢谢!
    回复

    使用道具 举报

    21

    主题

    3

    听众

    572

    积分

    高级工程师

    Rank: 4Rank: 4

  • TA的每日心情
    奋斗
    2013-5-3 10:11
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    最后登录
    2014-7-6
    威望
    0
    金钱
    497
    贡献
    0
    注册时间
    2013-3-12
    积分
    572
    帖子
    70
    主题
    21
    精华
    1
    UID
    206
    发表于 2013-4-10 09:21:15 |显示全部楼层
    通过修改DM9000驱动代码已经可以改MAC地址了,但希望能更进一步做到通过“fconfig -i”指令来实现MAC地址的修改。
    回复

    使用道具 举报

    84

    主题

    15

    听众

    2901

    积分

    超级版主

    Rank: 8Rank: 8Rank: 8Rank: 8

    该用户从未签到

    最后登录
    2015-5-31
    威望
    0
    金钱
    2389
    贡献
    0
    注册时间
    2012-5-1
    积分
    2901
    帖子
    492
    主题
    84
    精华
    4
    UID
    2
    发表于 2013-4-10 15:24:23 |显示全部楼层
    花了点时间看了一些资料和代码。发现redboot中的MAC地址叫作ESA(Ethernet State Address),如果需要在redboot中启用MAC的设置,需要在网卡的驱动中添加redboot的配置选项定义。

    可以先看一篇我转贴过来的文章:http://www.52ecos.net/forum.php?mod=viewthread&tid=454&page=1&extra=#pid893
    也就是需要使用宏:RedBoot_config_option 定义一个配置选项。

    可以参考一下if_at91.c这个网卡驱动的实现。代码在大约100行开始。
    回复

    使用道具 举报

    21

    主题

    3

    听众

    572

    积分

    高级工程师

    Rank: 4Rank: 4

  • TA的每日心情
    奋斗
    2013-5-3 10:11
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    最后登录
    2014-7-6
    威望
    0
    金钱
    497
    贡献
    0
    注册时间
    2013-3-12
    积分
    572
    帖子
    70
    主题
    21
    精华
    1
    UID
    206
    发表于 2013-4-10 21:11:47 |显示全部楼层
    通过修改配置文件已经可以使用“fconfig -i"来保存MAC地址,但保存的地址没有写入DM9000芯片。
    1. <font size="4">RedBoot> fconfig -l
    2. Run script at boot: false
    3. Use BOOTP for network configuration: true
    4. Default server IP address: 192.168.99.102
    5. Network hardware address [MAC] for eth0: 0xFF:0xFF:0xFF:0xFF:0xFF:0x09
    6. GDB connection port: 9000
    7. Force console for special debug messages: false
    8. Network debug at boot time: false</font>
    复制代码
    但mini2440重启后打印的信息MAC还是为0xff:0xff:0xff:0xff:0xff:0xff
    1. <font size="4">Ethernet eth0: MAC address ff:ff:ff:ff:ff:ff
    2. IP: 192.168.99.104/255.255.255.0, Gateway: 192.168.99.1
    3. Default server: 192.168.99.102

    4. RedBoot(tm) bootstrap and debug environment [NAND]
    5. Non-certified release, version Hailee_V0.1.1 - built 20:53:19, Apr 10 2013

    6. Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
    7. Free Software Foundation, Inc.
    8. RedBoot is free software, covered by the eCos license, derived from the
    9. GNU General Public License. You are welcome to change it and/or distribute
    10. copies of it under certain conditions. Under the license terms, RedBoot's
    11. source code and full license terms must have been made available to you.
    12. Redboot comes with ABSOLUTELY NO WARRANTY.

    13. Platform: MINI2440 system (ARM9)
    14. RAM: 0x30000000-0x33f80000 [0x33fa73e8-0x33f79000 available]
    15. FLASH: 0x80000000-0x83f7ffff, 4064 x 0x4000 blocks</font>
    复制代码
    请高手指点。
    回复

    使用道具 举报

    84

    主题

    15

    听众

    2901

    积分

    超级版主

    Rank: 8Rank: 8Rank: 8Rank: 8

    该用户从未签到

    最后登录
    2015-5-31
    威望
    0
    金钱
    2389
    贡献
    0
    注册时间
    2012-5-1
    积分
    2901
    帖子
    492
    主题
    84
    精华
    4
    UID
    2
    发表于 2013-4-10 22:31:42 |显示全部楼层
    先看下,你在fconfig时,设置的MAC地址有没有保存到存储器中,并且是否与你设置的一致?
    其次,Ethernet eth0: MAC address ff:ff:ff:ff:ff:ff,这个是从哪里读出来的?
    再次,你的网卡驱动初始化的时候有没有读出来,然后配置到网卡上去?
    回复

    使用道具 举报

    21

    主题

    3

    听众

    572

    积分

    高级工程师

    Rank: 4Rank: 4

  • TA的每日心情
    奋斗
    2013-5-3 10:11
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    最后登录
    2014-7-6
    威望
    0
    金钱
    497
    贡献
    0
    注册时间
    2013-3-12
    积分
    572
    帖子
    70
    主题
    21
    精华
    1
    UID
    206
    发表于 2013-4-10 23:22:25 |显示全部楼层
    谢谢reille的回复!
    设置的MAC地址已经保存到存储器中了。通过重启开发板,使用"fconfig -l"指令,可以确认MAC地址已经保存到Flash中了。
    1. <font size="3">RedBoot> fconfig -l
    2. Run script at boot: false
    3. Use BOOTP for network configuration: true
    4. Default server IP address: 192.168.99.102
    5. Network hardware address [MAC] for eth0: 0xFF:0xFF:0xFF:0xFF:0xFF:0x19
    6. GDB connection port: 9000</font><div class="blockcode"><blockquote><font size="3">RedBoot_config_option("Network hardware address [MAC] for eth0",
    7.                       eth0_esa,
    8.                       ALWAYS_ENABLED, true,
    9.                       CONFIG_ESA, dm9000_eth0_priv_data.mac_address
    10.     );</font>
    复制代码

    Force console for special debug messages: false
    Network debug at boot time: false
    RedBoot>

    在开发板启动的过程中会去初始化DM9000,会读取DM9000的EEPROM。根据读芯片上的MAC地址进行打印的信息。所以可以证实,“Fconfig -i”指令没有对DM9000芯片的MAC地址进行设置。

    目前还没摸清楚“RedBoot_config_option”控制指令的工作原理,搞清楚后在相应的位置加上对DM9000 EEPROM的写入功能就可以解决该问题。

    也请高手指点下!
    回复

    使用道具 举报

    84

    主题

    15

    听众

    2901

    积分

    超级版主

    Rank: 8Rank: 8Rank: 8Rank: 8

    该用户从未签到

    最后登录
    2015-5-31
    威望
    0
    金钱
    2389
    贡献
    0
    注册时间
    2012-5-1
    积分
    2901
    帖子
    492
    主题
    84
    精华
    4
    UID
    2
    发表于 2013-4-11 09:25:12 |显示全部楼层
    本帖最后由 reille 于 2013-4-11 09:26 编辑

    我们可以想见的是:“Fconfig -i”指令应该不会去对DM9000芯片的MAC地址进行设置,因为网卡芯片何其多,如果去设置的话,那它的代码设计的就没那么好移植了。

    “RedBoot_config_option”,实质上是在数据段定义了一个数据,通过相关访问形式,其它部分可以取得其值,这个机制跟CYG_HAL_TABLE_ENTRY这个宏的实现机制类似;

    “Fconfig -i”指令设置的MAC地址应该是保存在flash中的吧?我看了下if_at91.c中的实现,其中有一个宏:CYGHWR_DEVS_ETH_ARM_AT91_GET_ESA,这个宏在at9_eth_init()函数中有调用 ,我理解的意思就是:网卡初始化时会去读“Fconfig -i”指令设置的MAC,再往下就是调用at9_set_mac()函数把读到的值设置到网卡芯片中。
    回复

    使用道具 举报

    21

    主题

    3

    听众

    572

    积分

    高级工程师

    Rank: 4Rank: 4

  • TA的每日心情
    奋斗
    2013-5-3 10:11
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    最后登录
    2014-7-6
    威望
    0
    金钱
    497
    贡献
    0
    注册时间
    2013-3-12
    积分
    572
    帖子
    70
    主题
    21
    精华
    1
    UID
    206
    发表于 2013-4-11 09:47:56 |显示全部楼层
    reille 发表于 2013-4-11 09:25
    我们可以想见的是:“Fconfig -i”指令应该不会去对DM9000芯片的MAC地址进行设置,因为网卡芯片何其多,如 ...

    我也是这样想的,正在研究如何在if_dm9000.c是读到Flash中的MAC地址。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员 新浪微博账号登陆

    无觅相关文章插件

    申请友链|手机版|关于本站|站点帮助|eCos技术网 ( 粤ICP备12094833号-1 )   

    GMT+8, 2016-3-29 05:18 , Processed in 0.165235 second(s), 39 queries .

    Powered by Discuz!2.5 X2.5

    © 2001-2012 Comsenz Inc.

    回顶部