嵌入式 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 啦!
---------------------
作者:skdkjzz
來源:CSDN
原文:https://blog.csdn.net/skdkjzz/article/details/39931915
版權宣告:本文為博主原創文章,轉載請附上博文連結!