TIDM368 MAC地址如何更新?

来源:互联网 发布:landsat8数据怎么处理 编辑:程序博客网 时间:2024/06/05 19:24


设计目标:
生产上将MAC地址写入EEPROM中,然后在bootup时从EEPROM中读出MAC地址。

分析:
TIDM368 SoC chip,已内嵌Ethernet Media Access Controller (EMAC)。
insmod /opt/ipnc/modules/i2c-emac.ko cmdline="`cat /proc/cmdline`"
这一句是安装网卡驱动,MAC地址来源于cmdline,就是uboot输入的启动参数。TIDM368提供了这个driver,并且不开放给SDK user修改。
cat /proc/cmdline
mem=160M console=ttyS1,115200n8 root=/dev/ram0 rw initrd=0x82000000,16M ip=dhcp eth=00:D0:23:0F:FF:3F
TIDM368 SDK提供了一个i2crw.out工具,逐个字节写入:
# ./i2crw.out -w 0xA8 0x04 11 1
 I2C: 0x04 = 0x11
# ./i2crw.out -w 0xA8 0x05 22 1
 I2C: 0x05 = 0x22
# ./i2crw.out -r 0xA8 0x04 6 1
 I2C: 0x04 = 0x11
 I2C: 0x05 = 0x22
 I2C: 0x06 = 0x33
 I2C: 0x07 = 0x33
 I2C: 0x08 = 0x22
 I2C: 0x09 = 0x11
本打算直接就用这个工具,但print出来的消息不容易处理。于是,直接在code上面修改,然后用
        sprintf(cmd,"ifconfig eth0 hw ether %2x:%2x:%2x:%2x:%2x:%2x"
            ,regValue8[0],regValue8[1],regValue8[2],regValue8[3],regValue8[4],regValue8[5]);
        system(cmd);
进行调用,重配eth0的MAC地址。

原创粉丝点击