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
成功!