Sorry, you need to enable JavaScript to visit this website.

no PHY setup on Zedboard using petalinux 2014.2

Unsolved
13 posts / 0 new
skozedboard's picture
skozedboard
Junior(0)
no PHY setup on Zedboard using petalinux 2014.2

I have made a simple Zedboard configuration using Vivado 2014.2 and Petalinux 2014.2 under SUSE enterprise. The configuration just has the switches, buttons and LED’s.
After exporting things from Vivado I run through the following

petalinux-create --type project --template <CPU_TYPE> --name <PROJECT_NAME>
cd <directory which contains hardware description file>
petalinux-config --get-hw-description -p <plnx-proj-root>

I use the menu to select SD card booting then run;

petalinux-build

Finally I do;

petalinux-package --boot --fsbl <FSBL image> --fpga <FPGA bitstream> --uboot

After copying the BOOT.bin and image.ub files onto and SD card the board boots up and runs my little test app ok.

I tried ifconfig 192.168.1.3 and that was OK but I get no response from a ping on the Ethernet. Looking at the boot results is appears I have the following error
“Configuring network interfaces... xemacps e000b000.ps7-ethernet: eth0: no PHY setup”

Apparently this means I have no Ethernet driver, so my question is simple, what do I have to change in the build configuration to get this driver built for the Zedboard?

Thanks in advance for your help

hockeyman1972's picture
hockeyman1972
Junior(11)
Device tree issue

This is almost certainly an issue with the devicetree. Tske a look at the bsp package for 2014.2 under the zedboard reference designs for the correct entry.

skozedboard's picture
skozedboard
Junior(0)
Solved

You are correct the system-top.dts under subsystems/linux/configs needs this adding

&ps7_ethernet_0 {
phy-handle = <&phy0>;
mdio {
#address-cells = <1>;
#size-cells = <0>;
phy0: phy@0 {
compatible = "marvell,88e1510";
device_type = "ethernet-phy";
reg = <0>;
} ;
} ;
};

I don’t understand why this is not added automatically as the marvell option in selected in the kernel configuration PHY Device support and infrastructure menu so maybe this is a bug.

Thank you for your help the my Ethernet works fine after I manually add the above and rebuild.

bkamen's picture
bkamen
Junior(0)
I'm running into the same

I'm running into the same problem on the microZed -- which has a Marvell 88e1512.

I've implemented this in either ps.dtsi and system-top.dts (adjusting the "compatible" line accordingly)

Neither location changes anything.

My kernal has all the MDIO options set...

Always the same:

"Configuring network interfaces... xemacps e000b000.ps7-ethernet: eth0: no PHY setup"

uBoot works fine. (I realize that's different)

TroutChaser's picture
TroutChaser
Moderator(18)
I would suggest trying

I would suggest trying PetaLinux 2014.4, which seems to have corrected some ethernet issues.
 
That said, this post might be helpful if you need to stay with PetaLinux 2014;2: http://zedboard.org/content/device-tree-fo-zynq-20144-linux-317
 
-Gary

bkamen's picture
bkamen
Junior(0)
(shaking head)

(shaking head)

I'll try that in the morning.

What a nightmare this project/product has been.

Nothing seems to work 100%.

The ocean of documentation is filled with bugs.

Every next step is hours of fighting a problem that probably shouldn't exist in the first place.

I'll be back to report my results.

-Ben

bkamen's picture
bkamen
Junior(0)
I downloaded but decided to

I downloaded but decided to spool up the BSP for 2014.2 for the microZed020 and realized the Ethernet fixes that go in system-top.dts go OUTSIDE the top set of lines.

I wasn't getting a warning/error -- and that was the why the entry wasn't making it to the .dtb file.

So no need to jump to Vivado/Petalinux 2014.4 just yet.

I'm finding version jumping is a precarious thing.

TroutChaser's picture
TroutChaser
Moderator(18)
Thanks for letting us know

Thanks for letting us know how you resolved the issue.
 
I would still encourage you to move to PetaLinux 2014.4. In long term testing of Ethernet on the MicroZed we, and several customers, have observed occasional errors using PetaLinux 2014.2 that do not appear in the same testing with PetaLinux 2014.4. We don't have a root cause for the errors but have been able to reproduce the results.
 
-Gary

bkamen's picture
bkamen
Junior(0)
And I will eventually...

And I will eventually...

I'd like to get my base image working first.

Now that Ethernet is working (not sure the LED's are correct. Only the YEL LED shows up on a 1Gb connection), I need to get I2C-0 working on the PMOD connector (will post separately - it's not working)

Would you happen to have the datasheet (or can provide guidance) on the 88e1512 used on the uZed-020?

Thanks,

-Ben

bkamen's picture
bkamen
Junior(0)
(SOLVED)

(SOLVED)

As a follow-up on the LEDs, I'm guessing they're ok.

It seems:

GRN = 10Mb/s
YEL/GRN = 100Mb/s
YEL = 1Gb/s

For anyone else who'd like to know.

-Ben

TroutChaser's picture
TroutChaser
Moderator(18)
Here is a forum post on the

Here is a forum post on the issue of MicroZed Ethernet LEDs that might be helpful:
 http://zedboard.org/content/ethernet-leds-constant-and-not-blinking
 
As mentioned in that post the Marvell PHY data sheet is under an NDA (Non Disclosure Agreement). You can work with your local Avnet/Silica FAE to request access to the data sheet from Marvell.
 
-Gary
 
 

bkamen's picture
bkamen
Junior(0)
Don't think I'll need it at

Don't think I'll need it at this point as I ran some tests from my Managed switch and the LEDs seem to be ok.

If I may offer the comment though, as I've been in this situation more than once and it's simply obnoxious for a company to sell development building blocks without all the relevant documentation.

Thanks for your help though. (I've given up trying to get any direction from my FAE.)

-Ben

sylvainhuard's picture
sylvainhuard
Junior(0)
update for 2014.4

I tried the proposed solution of adding in system-top.dts
It turns out ps7_ethernet_0 is not found when building. For 2014.4, there is an alias from ps7_ethernet_0 to gem0 and in the device tree, ps7_ethernet_0 has to be replaced by gem0. Then it works.