[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAGm1_kurEedQc=5dR-mWPingRZcG9s0y9VDY=UijQC1X9RhJCw@mail.gmail.com>
Date: Wed, 13 Jun 2012 14:28:41 +0200
From: Yegor Yefremov <yegorslists@...glemail.com>
To: netdev <netdev@...r.kernel.org>
Cc: cyril@...com, srk@...com, mugunthanvnm@...com
Subject: am3359 (cpsw): unable to get gigabit link working (PHY: ICPlus IP1001)
I'm using a custom am3359 based board. The first CPSW ports is
connected to ICPlus IP1001 phy via RGMII interface. I have no problem
with 100mbit link, but as soon as I connect my board to a 1Gbit switch
the communication fails. I can see that some data goes on wire, but
switch refuses to forward it. I can't receive anything either. Phy
detects 1Gbit link correctly.
My kernel: https://github.com/koenkooi/linux
I also define phy interface as RGMII:
static struct cpsw_slave_data am33xx_cpsw_slaves[] = {
{
.slave_reg_ofs = 0x208,
.sliver_reg_ofs = 0xd80,
.phy_id = "0:02",
.phy_if = PHY_INTERFACE_MODE_RGMII,
},
{
.slave_reg_ofs = 0x308,
.sliver_reg_ofs = 0xdc0,
.phy_id = "0:01",
},
};
As far as I can see in the mainline cpsw driver
PHY_INTERFACE_MODE_RGMII will be ignored. Why? In the current driver
it sets two bits in mac_control register:
if (phy->interface == PHY_INTERFACE_MODE_RGMII) /* RGMII */
mac_control |= (BIT(15)|BIT(16));
Any idea where should I look to solve the problem?
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists