嵌入式 hi3518c平台网卡模式MII与RMII模式在Uboot和kernel中切换小结

由于公司项目的需要,我们需要在原有的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

时间: 2024-08-29 17:08:45

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

linux嵌入式开发平台网卡驱动解决办法

最近用了下树莓派和inter Edison,本来打算使用一下网卡,可是发现树莓派和Edison竟然都编译不了官方的驱动,报错缺少 /kenerl/bulid 目录,查了下资料,原来是这些嵌入式平台都为了节省空间,都没有搭载源码,而在网卡的驱动程序中有需要调用系统的接口,但是没有源码,这些接口也就没有了,编译的时候就找不到接口,so,报错了. 一编译驱动 解决办法有两个: 第一 安装source-devel source-devel也就是源码库,你所用的内核的接口该有的它都有. 1. 首先,查看内

Linux网卡bond的七种模式详解

像Samba.Nfs这种共享文件系统,网络的吞吐量非常大,就造成网卡的压力很大,网卡bond是通过把多个物理网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,具体的功能取决于采用的哪种模式. 一.bond的七种模式介绍:1.mode=0(balance-rr)(平衡抡循环策略)链路负载均衡,增加带宽,支持容错,一条链路故障会自动切换正常链路.交换机需要配置聚合口,思科叫port channel.特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1-.一直循环

双网卡实现双主备模式

双网卡实现双主备模式 实验准备 2个网卡(改为桥接模式) 1.该网卡名称 ? 修改网可激活 ? grub2-mkconfig -o /etc/grub2.cfg ? 重启电脑之后查看,可以看到网络中的接口给成为eth接口 ip a ? 2.创建bond ? nmcli connection add type bond ifname bond0 con-name bond0 mode active-backup ip4 172.20.12.20/16 gw4 172.20.0.1 ? 查看是否成功

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

1.在uboot中我可以添加自己的命令,添加的方法是找到一个uboot的命令,然后模仿着去增加属于自己的命令代码以及实现函数就可以 2.记住在使用printf进行调试的时候,在遇到指针或者字符串的时候最好使用“%x”,以为我不知道指针或者字符串中是否包含不可见字符,如果有不可见字符会导致错误,而且错误不好查找 3.对于uboot中的环境变量,其实是放在uboot里面的,也就是环境变量占用的是uboot的空间,如果不需要去实时修改环境变量的值那么就可以不用env这个分区:但是如果需要修改环境变量,

三星嵌入式开发平台 三星Cortex-A9 4412 POP与SCP对比

iTOP-4412核心板是迅为电子推出的一款高端四核核心板,其中分为POP封装与SCP封装,配备三星Exynos 4412四核处理器,主频为1.4GHz,内置16GB存储空间.该板设计小巧.配备三星自家电源管理芯片,具有9路DC/DC和28路LDO输出电源,在-20℃至70℃范围的高低温运行测试中运行良好,支持MPEG-4/MPEG2.H.264/H263.VC-1.DivX的视频编解码[email protected].这款核心板不仅拥有强大的配置,其进口高质量板对板连接器也使行业应用更加广泛

【玩转微信公众平台之五】 进军开发人员模式!冲啊!

最终要进军高大上的开发人员模式了,想想都有点小激动~~ ----------------点击 功能--高级功能 出现例如以下界面. 先进入编辑模式,将该模式关掉,然后再进入开发人员模式,会出现例如以下界面:.            这时候会提示我们还不是开发人员.接下来点击 成为开发人员 button,会出现接口配置信息: 我们须要在配置信息填入URL和Token.看到这里有些小伙伴可能就懵了.什么是URL和Token?假设你不知道他们是什么.那是正常的!假设随便一个人都知道,那我们这些真正的开

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

http://blog.csdn.net/abc_ii/article/details/9991845 多网卡的7种bond模式原理 Linux网卡绑定mode共有七种(0~6) bond0.bond1.bond2.bond3.bond4.bond5.bond6 常用的有三种 mode=0:平衡负载模式,有自动备援,但需要"Switch"支援及设定. mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援. mode=6:平衡负载模式,有自动备援,不必"Switc

Windows平台视频录制支持视频并列模式录制

自AnyChat r4027版本开始,Windows平台(含Web平台)本地视频录制支持并列模式录制. Windows平台本地视频录制支持单用户录制.合成录制(画中画模式).并列录制,其中:1.单用户录制是指整个录像文件只有一个用户的视频信息:2.合成录制是指整个录像文件包括通话双方的视频信息,其中视频以画面迭加的形式展现:3.并列录制是指整个录像文件包括通话双方的视频信息,其中视频画面以左右对称的形式展现,不会遮挡任何一方的视频区域: 并列录制增加了一个录制标志定义(以Web版本为例): va

多网卡的7种bond模式原理

多网卡的7种bond模式原理 Linux 多网卡绑定 网卡绑定mode共有七种(0~6) bond0.bond1.bond2.bond3.bond4.bond5.bond6 常用的有三种 mode=0:平衡负载模式,有自动备援,但需要"Switch"支援及设定. mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援. mode=6:平衡负载模式,有自动备援,不必"Switch"支援及设定. 需要说明的是如果想做成mode 0的负载均衡,仅仅设置这里op