当前位置: 技术问答>linux和unix
phy lxt971不能link up
来源: 互联网 发布时间:2016-05-05
本文导语: 9260的板子,phy的芯片用的是lxt971,在uboot下出现如下问题: U-Boot 1.1.5 (Dec 16 2008 - 20:25:55) DRAM: 64 MB MAN_ID: 0x00bf PRO_ID: 0x236d Flash: 8 MB NAND: NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (/狺 掰 掰 ?NAND 64 ...
9260的板子,phy的芯片用的是lxt971,在uboot下出现如下问题:
U-Boot 1.1.5 (Dec 16 2008 - 20:25:55)
DRAM: 64 MB
MAN_ID: 0x00bf
PRO_ID: 0x236d
Flash: 8 MB
NAND: NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (/狺 掰 掰 ?NAND 64
MiB 3,3V 8-bit)
64 MiB
In: serial
Out: serial
Err: serial
PHY Detected (mdio-addr 1, ID 0x0013:0x78e2)
no link
MAC: error during MII initialization
Hit any key to stop autoboot: 0
然后我在uboot下ping ip,就死掉了。
跟踪了以下uboot下lxt972.c文件
static uchar Phy_Init (AT91PS_EMAC p_mac)
{
unsigned int tick = 0;
uchar ret = FALSE;
ret = Phy_GetLinkSpeed (p_mac);
while (!ret) {
/* Try another time */
ret = Phy_GetLinkSpeed (p_mac);//应该是此函式总是返回FALSE
tick++;
if (tick > AT91C_ETH_TIMEOUT)
break;
}
if (ret == FALSE) {
printf("no linknr");
}
return (ret);
}
跟踪Phy_GetLinkSpeed:
static uchar Phy_GetLinkSpeed(AT91PS_EMAC p_mac)
{
unsigned short bmsr, bmcr, lpa, mac_cfg;
unsigned short speed, duplex;
at91_EmacEnableMDIO (p_mac);
at91_EmacReadPhy (p_mac, macb_phy_address, PHY_BMSR, &bmsr);
at91_EmacReadPhy (p_mac, macb_phy_address, PHY_BMSR, &bmsr);
if (!(bmsr & PHY_BMSR_LS)){ //PHY_BMSR_LS:0x04
printf("Phy_GetLinkSpeed %04xn", bmsr);//在此处出现问题返回错误。bmsr值是0x7809
return FALSE;
}
at91_EmacReadPhy (p_mac, macb_phy_address, PHY_BMCR, &bmcr);
at91_EmacReadPhy (p_mac, macb_phy_address, PHY_BMSR, &bmsr);
if (bmcr & PHY_BMCR_AUTON) {
if (!(bmsr & PHY_BMSR_AUTN_COMP))
return FALSE;
。。。。
}
查看datasheet是link statusnk is down.
Phy_GetLinkSpeed之前要设置auto-negotiation,
焊接一块板子是可以的,可以第2块出现了上述问题。请问一下什么原因会造成link down?
pin脚走线在6cm长,我在延时上增加了一些,也没有效果。
请高手指点一下。
U-Boot 1.1.5 (Dec 16 2008 - 20:25:55)
DRAM: 64 MB
MAN_ID: 0x00bf
PRO_ID: 0x236d
Flash: 8 MB
NAND: NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (/狺 掰 掰 ?NAND 64
MiB 3,3V 8-bit)
64 MiB
In: serial
Out: serial
Err: serial
PHY Detected (mdio-addr 1, ID 0x0013:0x78e2)
no link
MAC: error during MII initialization
Hit any key to stop autoboot: 0
然后我在uboot下ping ip,就死掉了。
跟踪了以下uboot下lxt972.c文件
static uchar Phy_Init (AT91PS_EMAC p_mac)
{
unsigned int tick = 0;
uchar ret = FALSE;
ret = Phy_GetLinkSpeed (p_mac);
while (!ret) {
/* Try another time */
ret = Phy_GetLinkSpeed (p_mac);//应该是此函式总是返回FALSE
tick++;
if (tick > AT91C_ETH_TIMEOUT)
break;
}
if (ret == FALSE) {
printf("no linknr");
}
return (ret);
}
跟踪Phy_GetLinkSpeed:
static uchar Phy_GetLinkSpeed(AT91PS_EMAC p_mac)
{
unsigned short bmsr, bmcr, lpa, mac_cfg;
unsigned short speed, duplex;
at91_EmacEnableMDIO (p_mac);
at91_EmacReadPhy (p_mac, macb_phy_address, PHY_BMSR, &bmsr);
at91_EmacReadPhy (p_mac, macb_phy_address, PHY_BMSR, &bmsr);
if (!(bmsr & PHY_BMSR_LS)){ //PHY_BMSR_LS:0x04
printf("Phy_GetLinkSpeed %04xn", bmsr);//在此处出现问题返回错误。bmsr值是0x7809
return FALSE;
}
at91_EmacReadPhy (p_mac, macb_phy_address, PHY_BMCR, &bmcr);
at91_EmacReadPhy (p_mac, macb_phy_address, PHY_BMSR, &bmsr);
if (bmcr & PHY_BMCR_AUTON) {
if (!(bmsr & PHY_BMSR_AUTN_COMP))
return FALSE;
。。。。
}
查看datasheet是link statusnk is down.
Phy_GetLinkSpeed之前要设置auto-negotiation,
焊接一块板子是可以的,可以第2块出现了上述问题。请问一下什么原因会造成link down?
pin脚走线在6cm长,我在延时上增加了一些,也没有效果。
请高手指点一下。
|
肯定transformer的引脚出现的问题
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。