Roger wrote:
PHYs may come up isolated. Make sure we can send data to them. This code
section needs a clean-up, but I prefer to merge this fix in isolation.
What was the phyid value for the isolated PHYs?
I know that PHYs go into isolate mode if the startup id is wired to 0,
but I haven't figured out what's necessary to initialize them: Just
clear the isolate bit or is it necessary to set the id to a nonzero value.
--
Manfred
[ BCCed reporter in case he wants to weigh in on the issue ]
On Sun, 08 Aug 2004 21:53:57 +0200, Manfred Spraul wrote:
Roger wrote:
quoted
PHYs may come up isolated. Make sure we can send data to them. This code
section needs a clean-up, but I prefer to merge this fix in isolation.
What was the phyid value for the isolated PHYs?
I suspect it was 0, because another suggestion in the same message was to
start scanning at 0 rather than 1 (obsolete with current via-rhine code).
I know that PHYs go into isolate mode if the startup id is wired to 0,
Wouldn't that be s/go/can go/ ?
but I haven't figured out what's necessary to initialize them: Just
clear the isolate bit or is it necessary to set the id to a nonzero value.
The proposed fix apparently worked for the PHY in question (LSI Logic
80225).
Roger
Roger Luethi wrote:
quoted
I know that PHYs go into isolate mode if the startup id is wired to 0,
Wouldn't that be s/go/can go/ ?
I don't have the MII standard, my knowledge is from the DP83840A specs:
The pin description contains a section about the phy ids:
During power up five pins are latched to determine the initial phy address.
Then the following sentence in bold: "An address selection of all zeros
(00000) will result in a PHY isolation condition".
I've reread the DP specs and I now think that your current patch is
sufficient:
The isolate state is independant from the phy address - a non-zero phy
can be in isolate mode and the phy zero can be non-isolated. The phy id
just sets the power-up value of the isolate bit: 0 means start isolated,
non-zero means start non-isolated.
If this is really true then handling phy 0 is trivial:
First scan 1-31. If nothing found: try 0. If a phy is found: clear the
isolate bit and then use phy 0.
--
Manfred
On Sun, 08 Aug 2004 23:04:06 +0200, Manfred Spraul wrote:
Roger Luethi wrote:
quoted
quoted
I know that PHYs go into isolate mode if the startup id is wired to 0,
Wouldn't that be s/go/can go/ ?
I don't have the MII standard, my knowledge is from the DP83840A specs:
The pin description contains a section about the phy ids:
During power up five pins are latched to determine the initial phy address.
Then the following sentence in bold: "An address selection of all zeros
(00000) will result in a PHY isolation condition".
I suppose all PHYs do that. Even if they don't, though, I should be
safe as long as I de-isolate unconditionally (instead of testing for
phy_id==0).
I've reread the DP specs and I now think that your current patch is
sufficient:
The isolate state is independant from the phy address - a non-zero phy
can be in isolate mode and the phy zero can be non-isolated. The phy id
Stands to reason. A PHY that can't get out of isolation wouldn't be
very useful.
If this is really true then handling phy 0 is trivial:
First scan 1-31. If nothing found: try 0. If a phy is found: clear the
isolate bit and then use phy 0.
Makes sense. The Rhine is actually pretty neat in that regard, I've
been able to drop the PHY scanning entirely.
Roger