From: John Rama <john.rama01@gmail.com>
To: netdev@vger.kernel.org
Subject: dsa: how to set external PHY address of slave MDIO bus
Date: Thu, 20 Dec 2018 20:26:56 -0500 [thread overview]
Message-ID: <5C1C4160.5080404@gmail.com> (raw)
Hi, Guys,
I have one question. I'm working following configuration, and implementing a device driver.
Basically, port 1-7 is working fine. I'm now having problem on port8.
- System
- i.MX6 and Marvel 88q5050 Switch(PHY addr is 0x10)
- port1-5 has integrated PHY
- port7 is connected to Marvel 88e1510 PHY(PHY addr is 0x1)
- port8 is connected to Marvel 88e1510 PHY(PHY addr is 0x0),
but it's the slave of MDIO bus whose master is the switch.
0x10
+------------+ +-----------------+
| | | Marvel 88q5050 |
| | RGMII | port1 |
| IMX6 +---------+ port6 |
| | | port2 |
| | MDIO | |
| +-+-------+ port3 |
| | | | |
+------------+ | | port4 |
| | |
+-+-+ | port5 | +---+
| |SGMII| |RGMII| |
|PHY|-----| port7 port8 +-----+PHY+
| | | |MDIO | |
+---+ | +-----+ |
Marvel 88e1510 +-----------------+ +---+
0x1 Marvel 88e1510
0x0
- Question
In the system above, how should we tell DSA driver the PHY address of the PHY which is connected to port8 ?
It seems to me that port number of ethernet switch and the PHY address of the port should be the same,
and there is no way to tell this info to DSA driver, correct ?
The reason why I think so is based on the code below from linux-next.
# net/dsa/slave.c
dsa_slave_phy_setup() {
....
/* We could not connect to a designated PHY, so use the switch internal
* MDIO bus instead
*/
if (!slave_dev->phydev) {
ret = dsa_slave_phy_connect(slave_dev, dp->index);
....
}
}
static int dsa_slave_phy_connect(struct net_device *slave_dev, int addr)
{
....
slave_dev->phydev = mdiobus_get_phy(ds->slave_mii_bus, addr);
....
}
As shown above, dsa_slave_phy_connect() is called by assigning "dp->index" to "addr".
I think "dp->index" implies the port number of the switch, while "addr" implies the PHY address of the PHY
which connected to the MDIO bus from switch.
Before implementing the solution, I want to confirm if my understanding is correct or not.
Thanks a lot for your help !!
John
next reply other threads:[~2018-12-21 1:26 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-21 1:26 John Rama [this message]
2018-12-21 9:56 ` dsa: how to set external PHY address of slave MDIO bus Andrew Lunn
2018-12-21 23:23 ` John Rama
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5C1C4160.5080404@gmail.com \
--to=john.rama01@gmail.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).