由于公司项目的需要,我们需要在原有的MII的基础上,修改为RMII模式,针对hi3518c平台,我的网卡是LAN8701需要修改的地方有如下几个:

首先我的uboot中env是:

bootargs=mem=64M console=ttyAMA0,115200 root=/dev/mtdblock4 rootfstype=jffs2 mtdparts=hi_sfc:256k(boot)ro,128k(env),128k(config),3072k(kernel),11264k(rootfs)
bootcmd=sf probe 0;sf read 0x82000000 0x80000 0x300000;bootm 0x82000000
bootdelay=1
baudrate=115200
ipaddr=10.10.1.156
netmask=255.255.255.0
bootfile="uImage"
ethaddr=00:12:12:59:26:b5
HWID=8043420002748432
gatewayip=10.10.1.1
serverip=10.10.1.197
stdin=serial
stdout=serial
stderr=serial
verify=n
ver=U-Boot 2010.06NJQY-JOSEPH-IPNC Alter By KongJun  (Oct 09 2014 - 21:54:07)

Environment size: 534/262140 bytes

1、首先是uboot,要切换成RMII模式

需要修改两个地方:

1.1、源码:

1)Uboot:include/configs/hi3518c.h文件

#define    HIETH_MII_RMII_MODE_U          HISFV_RMII_MODE //HISFV_MII_MODE

#define    HIETH_MII_RMII_MODE_D          HISFV_RMII_MODE //HISFV_MII_MODE

1.2、uboot配置表:

配置表格中修改:

200300cc的bit3 为1(原来0):

200f005c为3(原来1):

注:地址为0x200300cc的寄存器需要自己增加寄存器!

配置表下载地址:http://download.csdn.net/detail/skdkjxy/8018935

2、其次是kernel中要切换为RMII模式,这里需要修改后内核配置,如下图:

.config 文件直接修改:

# CONFIG_EEE_SUPPORT is not set

CONFIG_HIETH_MONITOR_TIMER=10
CONFIG_HIETH_HWQ_XMIT_DEPTH=12
CONFIG_HIETH_MDIO_FRQDIV=2
CONFIG_HIETH_MII_RMII_MODE_U=1
CONFIG_HIETH_MII_RMII_MODE_D=1
CONFIG_HIETH_PHYID_U=1
CONFIG_HIETH_PHYID_D=2

# CONFIG_HIETH_DOWNPORT_EN is not set

然后重新编译就可以了,内核修改就到此。

3、最后就是hi3518官方驱动添加时候的修改为RMII模式:

文件为“./load3518:102:    source ./pinmux_hi3518.sh mii i2c > /dev/null”

改为“./load3518:102:    source ./pinmux_hi3518.sh rmii i2c > /dev/null”

然后没有意外的话就可以看到这样ping www.baidu.com 啦!

from:http://blog.csdn.net/skdkjzz/article/details/39931915

嵌入式 hi3518c平台网卡模式MII与RMII模式在Uboot和kernel中切换小结的更多相关文章

  1. 嵌入式 hi3518c下ramdisk文件系统与文件系统烧写以及uboot中change-the-env

    NULL RAM : mkdir ramdisk_test  临时挂在点 dd if=/dev/zero of=123 bs=1k count=10000 建立空硬盘 losetup /dev/loo ...

  2. 嵌入式开发平台-iTOP-4418开发板

    详情转自:http://topeetboard.com S5P4418核心板可以无缝支持核心系统S5P6818,并保持底板设计不变,将兼顾更高端 的应用领域,为项目和产品提供更好的灵活性以及可伸缩性. ...

  3. 深度分析Linux下双网卡绑定七种模式 多网卡的7种bond模式原理

    http://blog.csdn.net/abc_ii/article/details/9991845多网卡的7种bond模式原理 Linux网卡绑定mode共有七种(~) bond0.bond1.b ...

  4. 多网卡的7种bond模式原理

    多网卡的7种bond模式原理 Linux 多网卡绑定 网卡绑定mode共有七种(0~6) bond0.bond1.bond2.bond3.bond4.bond5.bond6 常用的有三种 mode=0 ...

  5. 移植mysql到嵌入式ARM平台

    移植MySQL到嵌入式ARM平台  MySQL没有专门针对ARM的版本,移植到ARM没有官方文档可参考,因此,暂时参考这样一篇文档: http://blog.chinaunix.net/space.p ...

  6. 嵌入式 hi3518c裸板uboot烧写、kernel烧写、fs烧写小结

    1.在uboot中我可以添加自己的命令,添加的方法是找到一个uboot的命令,然后模仿着去增加属于自己的命令代码以及实现函数就可以 2.记住在使用printf进行调试的时候,在遇到指针或者字符串的时候 ...

  7. Linux 多网卡的7种bond模式原理

    Linux 多网卡绑定 网卡绑定mode共有七种(0~6) bond0.bond1.bond2.bond3.bond4.bond5.bond6 常用的有三种 mode=0:平衡负载模式,有自动备援,但 ...

  8. CentOS 6.8下网卡配置、桥接模式和NAT连接模式、VMware虚拟机克隆网卡配置

    模式一:桥接模式: 1. 在VMware中安装好虚拟机后,虚拟机网卡设置:选择桥接模式 2. 查看本机的网络信息: 找到ip.子网掩码.网关.DNS等. 找一个没有使用的ip,例如:192.168.1 ...

  9. 多网卡的7种bond模式原理 For Linux

    多网卡的7种bond模式原理 Linux 多网卡绑定 网卡绑定mode共有七种(0~6) bond0.bond1.bond2.bond3.bond4.bond5.bond6 常用的有三种 mode=0 ...

随机推荐

  1. linux源代码阅读笔记 高速缓冲区管理

    高速缓冲区是文件系统访问块设备中数据的必经要道,为了访问文件系统等块设备上的数据,内核可以每次都访问块设备,进行读写操作. 为了提高系统性能,内核在内存中开辟一个高速数据缓冲区.在Linux内核中,高 ...

  2. [转载]实战Linux下VMware虚拟机根目录空间扩充

    [转载]实战Linux下VMware虚拟机根目录空间扩充 (2011-07-31 21:34:34) 转载▼ 标签: 转载   原文地址:实战Linux下VMware虚拟机根目录空间扩充作者:shar ...

  3. 李洪强iOS开发之keychain的使用

    通常情况下,我们用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码.证书等等,就需要使用更为安全的keychain了.keychain里保存的信息不会因App被删除而丢失,在用 ...

  4. ibatis动态查询

    在复杂查询过程中,我们常常需要根据用户的选择决定查询条件,这里发生变化的并不只是SQL 中的参数,包括Select 语句中所包括的字段和限定条件,都可能发生变化.典型情况,如在一个复杂的组合查询页面, ...

  5. 65. Valid Number

    题目: Validate if a given string is numeric. Some examples:"0" => true" 0.1 " = ...

  6. 人脸识别必读的N篇文章

    一,人脸检测/跟踪 人脸检测/跟踪的目的是在图像/视频中找到各个人脸所在的位置和大小:对于跟踪而言,还需要确定帧间不同人脸间的对应关系. 1, Robust Real-time Object Dete ...

  7. python - PipeMapRed.waitOutputThreads(): subprocess failed with code 1

    hadoop上执行mapreduce streaming python程序报错, 报错详细信息为 python - PipeMapRed.waitOutputThreads(): subprocess ...

  8. 【原创】中文分词系统 ICTCLAS2015 的JAVA封装和多线程执行(附代码)

    本文针对的问题是 ICTCLAS2015 的多线程分词,为了实现多线程做了简单的JAVA封装.如果有需要可以自行进一步封装其它接口. 首先ICTCLAS2015的传送门(http://ictclas. ...

  9. Telerik RadGrid Demo

    List Page Html code: <%@ Page Language="vb" AutoEventWireup="false" CodeBehin ...

  10. 设置UITableView section间距

    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { return 0 ...