TI中文支持网
TI专业的中文技术问题搜集分享网站

AM3359的rmii2,uboot下执行dhcp不能获取ip

我用am3359的rmii2接口连接的lan8710a,配置的外置50M的有源晶振,

pinmux的设置

static struct module_pin_mux rmii2_pin_mux[] = {
{OFFSET(gpmc_a11), MODE(3) | RXACTIVE}, /* RMII2_RXD0 */
{OFFSET(gpmc_a10), MODE(3) | RXACTIVE}, /* RMII2_RXD1 */
{OFFSET(gpmc_wpn), MODE(3) | RXACTIVE}, /* RMII2_RXERR */
{OFFSET(gpmc_a0), MODE(3)}, /* RMII2_TXEN */ {OFFSET(gpmc_a5), MODE(3)}, /* RMII2_TXD0 */
{OFFSET(gpmc_a4), MODE(3)}, /* RMII2_TXD1 */
{OFFSET(gpmc_wait0), MODE(3) | RXACTIVE}, /* RMII2_CRS_DV */
{OFFSET(mii_col), MODE(1)}, /* RMII2_REFCLK */
{OFFSET(mdio_data), MODE(0) | RXACTIVE | PULLUP_EN},/* MDIO_DATA */
{OFFSET(mdio_clk), MODE(0) | PULLUP_EN}, /* MDIO_CLK */
{-1},
};

phy上面的决定phy_id的三个引脚全都下拉,phy_id应该是为0,

static struct cpsw_slave_data cpsw_slaves[] = {
{
.slave_reg_ofs = 0x208,
.sliver_reg_ofs = 0xd80,
.phy_id = 1,
},
{
.slave_reg_ofs = 0x308,
.sliver_reg_ofs = 0xdc0,
.phy_id = 0,
},
};

GMII_SEL配置为0x75,在uboot下执行dhcp还总是超时

link up on port 0, speed 100, full duplexBOOTP broadcast 1BOOTP broadcast 2BOOTP broadcast 3BOOTP broadcast 4BOOTP broadcast 5BOOTP broadcast 6BOOTP broadcast 7

这是怎么回事,是我的配置有什么问题吗?rmii2的解法还有什么需要配置的吗

Jian Zhou:

最新的SDK06.00.00中的u-boot,实际上只对port 0做了auto negotiation, 你的port0可以DHCP吗?

kedacom:

回复 Jian Zhou:

你好,Jian Zhou

port0是不是指rmii1接口?目前只是接了rmii2接口。

你的意思是rmii2接口在u-boot中无法做dhcp?

我有一个疑问,系统如何知道是选择rmii1接口工作还是rmii2接口工作?需要什么配置吗?

谢谢

Jian Zhou:

回复 kedacom:

这个port0应该是对应cpsw_slaves结构体数组中的第一个,也就是第一个数组的phy_id应该和板子上的PHY_ADDR对应上。

如果你的PHY_ADDR是0,第一个数组应该是:

 {  .slave_reg_ofs = 0x208,  .sliver_reg_ofs = 0xd80,  .phy_id  = 0, },

我看你设的是1而不是0

kedacom:

回复 Jian Zhou:

嗯 也就是说  如果设置的phy_id对应cpsw_slaves结构体数组中的第一个话 对应的要使用rmii1接口,

对应结构体数组中的第二个的话则使用rmii2接口,是这个意思吧?

如果没有对port1做dhcp的话,在u-boot下改如何测试网络是不是通的?

内核中有没有做?

谢谢

kedacom:

回复 Jian Zhou:

今天改了一下内核,pinmux  phy_id

等系统启动起来,插入网线,会有打印提示

PHY: 0:00 – Link is Up – 100/Full

但是我执行udhcpc,还是没有回应

Sending discover… Sending discover…

…..

我用示波器看了AM3359的RMII2 的发送引脚 发现上面完全没有数据传输,这是什么情况

leo chen:

回复 kedacom:

你的uboot是那个版本的

我在linux下也遇到这样的问题,可能是不同版本的驱动有问题

Jian Zhou:

回复 kedacom:

port0对应的是cpsw_slaves的第一个数组,这个数组的.phy_id属性是是MDIO访问的PHY地址。如果你的RMII2所连接的PHY_addr是0,而cpsw_slaves的第一个数组.phy_id属性也是0,那么port0所对应的应该就是RMII2。

最好先在U-boot下ping通,再调试DHCP和TFTP等命令。

很奇怪你为什么不用RMII1呢?

kedacom:

回复 leo chen:

我用的是最新版的SDK06.00.00里面的uboot-2013.01.01,目前感觉是无处下手,你的问题解决了吗 或者有什么测试方法吗

kedacom:

回复 Jian Zhou:

RMII1的一些引脚被其他功能占用了,所以选了RMII2,

我现在为板子分配了ip并执行了ping命令

U-Boot# setenv ipaddr 192.168.1.124 U-Boot# ping 192.168.1.102 link up on port 0, speed 100, full duplex Using cpsw device ping failed; host 192.168.1.102 is not alive

ip 192.168.1.102是我的主机地址,可就是ping不通

现在该怎么做?

sfc sshw:

回复 kedacom:

跟你遇到了同样的问题,现在同样无解中,关注。我现在强烈怀疑根本有没有人成功的在uboot中使用port1,查了N多资料,还是无果。

赞(0)
未经允许不得转载:TI中文支持网 » AM3359的rmii2,uboot下执行dhcp不能获取ip
分享到: 更多 (0)