Page MenuHomeFreeBSD

Use 'phy-handle' in FDT to find PHY address

Authored by on Apr 3 2019, 4:07 PM.



Based on @manu's patch.
Since 'phy_id' is no longer dts as per in r337703, update driver to match device tree.

Test Plan

Tested on a beaglebone black

Diff Detail

rS FreeBSD src repository - subversion
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

762 ↗(On Diff #55780)

I don't think this is needed.

762 ↗(On Diff #55780)

I don't think this is needed.

Yea, I think fdt_get_phyaddr should already handle it.

779 ↗(On Diff #55780)

I think I should re-add this check in case a slave isn't found somehow ...

  • Remove extra phy-handlei check and add 'no children' check
763 ↗(On Diff #55783)

This would return ENXIO if the first slave node isn't the one used, I don't know if any boards are like that but if they are they worked before and should after.

763 ↗(On Diff #55783)

You might also want to get phy_id if phy-handle don't exists so people with old DTB could still boot.

763 ↗(On Diff #55783)

Mhm no the old code only check the first slave@ node that matches the full node name based on the port and this is still the case.
A correct way would be to rely on the 'slaves' property which contain the number of slaves used and always parse every slave until this number is reached instead of this but that might be out of the scope of this review.
So just add a fallback to read phy_id if phy-handle doesn't exists and we're good to go for this one.

  • Support old DTBs which still use phy_id
This revision is now accepted and ready to land.Apr 3 2019, 8:31 PM
This revision was automatically updated to reflect the committed changes.