完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
driversnetphyrealtek.c里面有RTL8211的驱动,RTL8306的驱动对应改一下就可以兼容了
|
|
|
|
查看了代码,初始化的配置也就这些 /* Support for RTL8211B PHY */ static struct phy_driver RTL8211B_driver = [ .name = "RealTek RTL8211B", .uid = 0x1cc910, //这里的ID是RTL每款芯片特有的吗????RTL8306怎么获得?在手册上只提供了它EEPROM地址 .mask = 0xfffff0, .features =PHY_BASIC_FEATURES , // 原来是 PHY_GBIT_FEATURES, .config = &rtl8211x_config, //这里的配置似乎也没有干啥 .startup = &rtl8211x_startup, .shutdown = &genphy_shutdown, ]; 已经在am335x_evm.h 支持realtek的支持。 目前还是没有能够ping 通,求指导。 |
|
|
|
w13756941107 发表于 2018-6-4 01:52 uid要看RTL8306的ID寄存器,可以在datasheet里查到。 另外这颗PHY是百兆PHY还是千兆PHY |
|
|
|
是100 M的,暂时使用8211默认的配置,但是ping不通。。。 static struct phy_driver RTL8306SD_driver = [ 101 .name = "RealTek RTL8306SD", 102 .uid = 0x1cc852, 103 .mask = 0xfffff0, 104 .features = PHY_BASIC_FEATURES,//PHY_GBIT_FEATURES, 105 .config = &rtl8211x_config, 106 .startup = &rtl8211x_startup, 107 .shutdown = &genphy_shutdown, 108 ]; 不知道还需要怎么修改????环境配置一些关键点。 |
|
|
|
w13756941107 发表于 2018-6-4 02:14 如果是RMII的PHY,U-boot驱动需要修改一些地方,请参考: http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/45981.aspx |
|
|
|
344868615qq 发表于 2018-6-4 02:29 1、是用的是MII。 2、引脚复用情况是如下 static struct module_pin_mux mii1_pin_mux[] = [ [OFFSET(mii1_rxerr), MODE(0) | RXACTIVE], /* MII1_RXERR */ [OFFSET(mii1_txen), MODE(0)], /* MII1_TXEN */ [OFFSET(mii1_rxdv), MODE(0) | RXACTIVE], /* MII1_RXDV */ [OFFSET(mii1_txd3), MODE(0)], /* MII1_TXD3 */ [OFFSET(mii1_txd2), MODE(0)], /* MII1_TXD2 */ [OFFSET(mii1_txd1), MODE(0)], /* MII1_TXD1 */ [OFFSET(mii1_txd0), MODE(0)], /* MII1_TXD0 */ [OFFSET(mii1_txclk), MODE(0) | RXACTIVE], /* MII1_TXCLK */ [OFFSET(mii1_rxclk), MODE(0) | RXACTIVE], /* MII1_RXCLK */ [OFFSET(mii1_rxd3), MODE(0) | RXACTIVE], /* MII1_RXD3 */ [OFFSET(mii1_rxd2), MODE(0) | RXACTIVE], /* MII1_RXD2 */ [OFFSET(mii1_rxd1), MODE(0) | RXACTIVE], /* MII1_RXD1 */ [OFFSET(mii1_rxd0), MODE(0) | RXACTIVE], /* MII1_RXD0 */ [OFFSET(mdio_data), MODE(0) | RXACTIVE | PULLUP_EN], /* MDIO_DATA */ [OFFSET(mdio_clk), MODE(0) | PULLUP_EN], /* MDIO_CLK */ [-1], ]; 3、 我的板子上用的是25M晶振。 4、参考你给的链接里面的 (1)(2)(3)点我都设置了。。 (1)点 writel(MII_MODE_ENABLE, &cdev->miisel); cpsw_slaves[0].phy_if = cpsw_slaves[1].phy_if = PHY_INTERFACE_MODE_MII; (2)、(3)点都在上面的信息中。。 但依然是ping 不通。。难道还要处理RTL8306的一些寄存器没有配置好?? |
|
|
|
w13756941107 发表于 2018-6-4 02:47 我看这个pinmux和beaglebone上的LAN8710是一样的,基本上软件也都改了,在确认两点吧: 1. RTL8306对应MDIO的phyaddr确定是对的,而且要改到第一个结构体的.phy_id中: static struct cpsw_slave_data cpsw_slaves[] = [ [ .slave_reg_ofs = 0x208, .sliver_reg_ofs = 0xd80, .phy_id = 0, ], [ .slave_reg_ofs = 0x308, .sliver_reg_ofs = 0xdc0, .phy_id = 1, ], ]; 2.请硬件工程师检查下硬件电路 |
|
|
|
344868615qq 发表于 2018-6-4 02:53 1、 cpsw_slaves结构里面的数值,我的uboot里面默认就是这个了。 2、用mdio write可以直接配置phy相关的寄存器。 使用默认的状态是ping不通的, 现在想修改一下配置。。但是mdio write 这里命令不会用 mdio write 0 0 0x3100 // 这是提示错误。 3、硬件上怎么该判断是否有问题?? |
|
|
|
w13756941107 发表于 2018-6-4 03:11 1.你确定这个PHY地址已经设置为0了? 2.其实跟踪下代码加些打印就可以确认MDIO读写是否正常,可以跟踪下driversnetcpsw.c中的cpsw_phy_init()。 3。如果软件没有发现问题,要请硬件工程师再检查下PHY部分的电路,有时候一个电阻焊错都会导致网络不能ping通。 |
|
|
|
344868615qq 发表于 2018-6-4 03:16 1、当我使用mdio read 0 0 //这不是说明我的phy add 0;那么mdio write 0 0 0x3100 //这样的格式是对了吗?? 2、 在board.c中网卡初始化的时候,使用phy_write(phydev, 0, MII_BMCR,0x3100);然后在uboot启动后,读取 mdio read 0 0 读出来的值,并不是我写入的。 |
|
|
|
344868615qq 发表于 2018-6-4 03:16 通过使用mdio read 能够正常的读取网卡的ID说明读是正常的。。 现在mdio write 似乎不正常。。这是为什么??这点该怎么验证。。 mdio write XX XX //完成的参数到底什么?? |
|
|
|
344868615qq 发表于 2018-6-4 03:16 现在能ping通,但是打开tftp服务器烧写那是不可以了。。//这又是为什么???? link up on port 0, speed 10, full duplex Using cpsw device host 192.168.1.8 is alive U-Boot# bootp 0x82000000 uImage link up on port 0, speed 10, full duplex BOOTP broadcast 1 BOOTP broadcast 2 BOOTP broadcast 3 BOOTP broadcast 4 BOOTP broadcast 5 BOOTP broadcast 6 BOOTP broadcast 7 BOOTP broadcast 8 BOOTP broadcast 9 BOOTP broadcast 10 |
|
|
|
w13756941107 发表于 2018-6-4 03:55 serverip 设置对了吗? |
|
|
|
U-Boot# echo $serverip 192.168.1.8 serverip设置没问题 |
|
|
|
网络直接连在PC机上的? 这样的话应该是使用固定IP的链接方式,建议你UBOOT下,可以尝试以下命令,看看是否能成功。 |
|
|
|
pc端直接连接板子。 前面ping就返回alive,后面用bootp烧写uImage映像不行。 |
|
|
|
为啥是bootp啊?我给你的那组命令里面只是使用tftp。如果是bootp的话,是需要从一个服务器上获取IP的,所以才会有broadcast。你在PC机上面建立了DHCP服务器了吗? |
|
|
|
Andarm, 我问下,你修改了RTL8306的哪部分配置之后,就可以ping通了? |
|
|
|
1、mux复用 2、MII开启 3、realtek.c 相关id,根据手册上将默认值配入相关寄存器。 //在内核端我也是同样这样修改。 |
|
|
|
只有小组成员才能发言,加入小组>>
309 浏览 1 评论
513 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
754 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
641 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1113 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
226浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
181浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
46浏览 13评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
149浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
158浏览 12评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 09:58 , Processed in 0.961954 second(s), Total 80, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号