cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
lancec
Observer
Observer
619 Views
Registered: ‎10-28-2013

ETH1 on EMIO with GMII_TO_RGMII not working

Jump to solution

I am having trouble getting ETH1 on EMIO with gmii_to_rgmii working on 2020.1. I am using the Trenz TE0720_1QF module with the Trenz TE0706-03 carrier board.I started with the Trenz 2016.2 reference project. ETH1 works in this 2016.2 project. After upgrading the project to 2020.1 ETH1 no longer works and on boot up  I see the following (Petalinux 2020.1):

xgmiitorgmii e000c000.ethernet-ffffffff:08: Couldn't find phydev
Marvell 88E1510 e000c000.ethernet-ffffffff:01: attached PHY driver [Marvell 88E1510] (mii_bus:phy_addr=e000c000.ethernet-ffffffff:01, irq=POLL)
macb e000c000.ethernet eth1: Cadence GEM rev 0x00020118 at 0xe000c000 irq 30 (00:0a:35:00:1e

 

ETH1 is down by default. If I bring it up and set a static IP address as this post mentions it still doesn't work.I have found that I can use the 2016.2 BOOT.bin with image.ub from 2016.2 and 2020.1 and ETH1 works. Using a 2020.1 BOOT.bin with a image.ub from 2016.2 or 2020.1 doesn't work.

I did ask Trenz for help but they were only able to test different combos of 2016.2 with 2019.2 and saw that only the 2016.2 BOOT.bin allowed ETH1 to work and said "it looks like problems is related to the mii to rgmii, or linux use something which is not longer supported by this mii to rgmii IP".

Any ideas on getting ETH1 on EMIO with gmii_to_rgmii working?

0 Kudos
1 Solution

Accepted Solutions
lancec
Observer
Observer
400 Views
Registered: ‎10-28-2013

I've been staring at the terminal for too long now. Several days ago when I was playing with building the BOOT.bin I thought I saw that "petalinux-package --boot --u-boot" was including the the system.bit file so I had dropped "--fpga <file>".  It actually was system.dtb. Adding "--fpga <path>" coupled that with the fact that I needed clean out my Petalinux project and then load my new xsa, my FSBL issue is now solved.  Now ETH1 does work with my BOOT.bin generated with Petalinux.

View solution in original post

0 Kudos
11 Replies
stephenm
Moderator
Moderator
561 Views
Registered: ‎09-12-2007

Can you share the devicetree node here

0 Kudos
lancec
Observer
Observer
535 Views
Registered: ‎10-28-2013
&gem1 {
	phy-handle = <&phy1>;
	phy-mode = "rgmii-id";
	status = "okay";
	xlnx,ptp-enet-clock = <0x69f6bcb>;
	ps7_ethernet_1_mdio: mdio {
		#address-cells = <1>;
		#size-cells = <0>;
	    phy1: phy@1 {
            reg = <1>;
        };
		gmii_to_rgmii: gmii_to_rgmii@8 {
			compatible = "xlnx,gmii-to-rgmii-1.0";
			phy-handle = <&phy1>;
			reg = <8>;
		};
	};
};
0 Kudos
shabbirk
Moderator
Moderator
507 Views
Registered: ‎12-04-2016

Hi @lancec 

You might have to take care of the correct device tree entries. Here is the link that might help in getting the gmii2rgmii up and running with the similar PHY

https://www.hackster.io/news/hello-petalinux-on-the-snickerdoodle-black-with-pismasher-baseboard-b30fe2cc9f83

 

Regards

Shabbir

0 Kudos
lancec
Observer
Observer
496 Views
Registered: ‎10-28-2013

Figured it out. This is the first time I've used Petalinux, but it appears Petalinux builds a generic FSBL instead of one based on my xsa file. Building the FSBL in Vitis fixed the issue.

Is there a way to make Petalinux build a proper FSBL, based on the xsa?

0 Kudos
stephenm
Moderator
Moderator
488 Views
Registered: ‎09-12-2007

Petalinux should use the XSA provided via petalinux-config --get-hw-descipription

Can you have a look in the work folder in the tmp dir. You should see the psu_init.c/h files here. 

0 Kudos
lancec
Observer
Observer
482 Views
Registered: ‎10-28-2013

In build/tmp/work I see zynq_generic-xilinx-linux-gnueabi/fsbl/2020.1+gitAUTOINC+6cbb920f4d/temp/ with a log of log.* and run.* files.

I see ps7_init*.c/h files in these folders:

  • project-spec/hw-description
  • components/plnx_workspace/device-tree/device-tree
  • components/yocto/layers/meta-linux/meta-xilinx-bsp/recipes-bsp/platform-init/picozed-zynq7
0 Kudos
stephenm
Moderator
Moderator
474 Views
Registered: ‎09-12-2007

Yes, the ps7_init in the device-tree folder would suffice. 

This should be the same as if you used the xsa in Vitis to create the fsbl. 

 

0 Kudos
lancec
Observer
Observer
456 Views
Registered: ‎10-28-2013

They are different and have different copyright years. I just built my Vivado project again and ran "petalinux-config --get-hw-descipription" and "petalinux-build" but the ps7 files weren't touched in the device-tree folder.

0 Kudos
stephenm
Moderator
Moderator
451 Views
Registered: ‎09-12-2007

Can you try petalinux-build -x mrproper, petalinux-config --hw-description=<path to xsa>. Then petalinux-build -c device-tree

This should update the files. 

0 Kudos
lancec
Observer
Observer
447 Views
Registered: ‎10-28-2013

That updates the ps7 files to match the xsa. However the BOOT.bin (petalinux-package --boot --u-boot) doesn't allow ETH1 to work.

0 Kudos
lancec
Observer
Observer
401 Views
Registered: ‎10-28-2013

I've been staring at the terminal for too long now. Several days ago when I was playing with building the BOOT.bin I thought I saw that "petalinux-package --boot --u-boot" was including the the system.bit file so I had dropped "--fpga <file>".  It actually was system.dtb. Adding "--fpga <path>" coupled that with the fact that I needed clean out my Petalinux project and then load my new xsa, my FSBL issue is now solved.  Now ETH1 does work with my BOOT.bin generated with Petalinux.

View solution in original post

0 Kudos