1.燒寫
其中部分文件我已經修改過,下面全面描述修改的過程。
2.修改頭文件配置
1)修改配置文件hi3519v101.h
2)修改內容爲:
3)修改原因:
在\u-boot-2010.06\drivers\net\higmacv300中看到網卡的設備信息爲:
a.設置PHY的工作模式
struct higmac_board_info
enum if_mode phy_intf;
enum if_mode
因爲RTL8201最大支持百兆,因此選擇interface_mode_rmii;也就是枚舉的第二個元素,下標爲1;
#define CONFIG_HIGMAC_PHY1_INTERFACE_MODE 1
b.設置PHY的地址
這個地址是和PHY的硬件配置是一致的。我們來看下:
因此PHY地址爲0x1,也就是1;
#define CONFIG_HIGMAC_PHY1_ADDR 1
3.修改配置excell表
hisilicon\hi3519v101\hi3519v101\osdrv\tools\pc\uboot_tools\Hi3519V101-DMEB-uboot-DDR3_1866M_32bit_1GB-A7_792M-A17_930M-BUS_200M.xls
a.首先要知道,一般uboot默認是千兆網卡RGMII,同時支持RMII。那麼如何將RGMII改成RMII模式,需要對硬件接線圖有個瞭解:
我們可以明顯看出:數據線個數不一樣,時鐘不一樣。先不管數據線,RGMII的MAC和PHY的時鐘收發有兩個TXCLK和RXCLK,而RMII的時鐘MAC和PHY是共用的。這是個配置的點!
b.我們在數據手冊中搜索下RMII,找個關於RMII的寄存器:
這個我們不管。
一般來說,我們在頭文件中定義了RMII模式,這裏不需要再設置了,我們先不管,如果有錯我們再來改。
這裏我們沒有修改什麼!
c.管腳複用,我們找到管腳分佈表,打開,在《3.管腳複用寄存器模塊》查找RMII的內容
E:\嵌入式軟件及資料\Hisilicon\Hi3519v101\Hi3519V101R001C02SPC030\Hi3519V101R001C02SPC030\00.hardware\chip\document_cn
這裏既是我們需要設置的RMII_CLK。數據線是共用的,PHY會自動識別是幾根線並使用,如果用不到就不管。
那我們再回到配置表中:修改reg80的寄存器的值爲3:
至此我們的修改全部完成。我們點擊按鈕生成配置reg bin文件:
4.編譯----》拷貝-----》生成uboot.bin文件
make ARCH=arm CROSS_COMPILE=arm-hisiv600-linux- hi3519v101 _config
make ARCH=arm CROSS_COMPILE=arm-hisiv600-linux-
將生成的 u-boot.bin 複製到 osdrv/tools/pc_tools/uboot_tools/ 目錄
./mkboot.sh reg_info.bin uboot.bin
將生成可用的 uboot.bin 鏡像文件
5.再次燒錄與ping
成功!