Using PFE (pfeng driver) without configuring a phy

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Using PFE (pfeng driver) without configuring a phy

Jump to solution
2,195 Views
walt83
Contributor I

Hello,

I have setup ethernet communication with realtek phy RTL9010AA within u-boot. The phy is confgured and ping is working.

In linux the realtek driver does not support RTL9010AA. So I removed the phy from device tree and from linux defconfig. But when linux kernel is booting, pfeng driver again tries to initialize a phy which ends up in Error messages:

...pfe0: could not attach to PHY: -19

...pfe0: Error connecting to the phy: -19

 

How can i prevent pfeng from configuring the phy?

0 Kudos
1 Solution
2,187 Views
bpe
NXP Employee
NXP Employee

If there is no driver for your PHY model, you can try two things:

1. Use a generic PHY driver. This is the preferred solution. It should work
with a PHY that doesn't require a vendor-specific initialization. Make sure
you have CONFIG_PHYLIB kernel option enabled and declare your PHY in the
Device Tree as compatible="ethernet-phy-ieee802.3-c22" or
"ethernet-phy-ieee802.3-c45". This should be enough for the generic PHY
driver defined in phy_device.c to take the ownership. If your PHY implements
the standard management registers set, following this way will allow
Linux to at least read the link status. Details can be found here.

2. Declare a "fixed-link". This will statically set the link as established
at the specified data rate. The actual link status will not be available
to Linux. Details can be found at this link.


Hope this helps,
Platon

 

View solution in original post

0 Kudos
1 Reply
2,188 Views
bpe
NXP Employee
NXP Employee

If there is no driver for your PHY model, you can try two things:

1. Use a generic PHY driver. This is the preferred solution. It should work
with a PHY that doesn't require a vendor-specific initialization. Make sure
you have CONFIG_PHYLIB kernel option enabled and declare your PHY in the
Device Tree as compatible="ethernet-phy-ieee802.3-c22" or
"ethernet-phy-ieee802.3-c45". This should be enough for the generic PHY
driver defined in phy_device.c to take the ownership. If your PHY implements
the standard management registers set, following this way will allow
Linux to at least read the link status. Details can be found here.

2. Declare a "fixed-link". This will statically set the link as established
at the specified data rate. The actual link status will not be available
to Linux. Details can be found at this link.


Hope this helps,
Platon

 

0 Kudos