1. 程式人生 > >嵌入式 hi3518c平臺網絡卡模式MII與RMII模式在Uboot和kernel中切換小結

嵌入式 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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!