News:

Attention: For security reasons,please choose a user name *different* from your login name.
Also make sure to choose a secure password and change it regularly.

Main Menu

TE0720 custom carrier / 2nd Ethernet (TE0706 based)

Started by bigguiness, February 09, 2023, 05:02:25 PM

Previous topic - Next topic

bigguiness

I have had great success with my custom carrier board for the TE0720.

Now I'm trying to implement the 2nd Ethernet port, based on the TE0706 design. I have a couple questions.

This is what I have done so far to add the 2nd Ethernet.
1) Enabled the Zynq Ethernet 1 and MDIO, both on EMIO
2) Enabled the Zynq FCLK_CLK1 @ 200 MHz (FCLK_CLK0 @ 100 MHz is used for some other AXI peripherals in the design)
3) Added the Gmii to Rgmii IP to the design
4) Connected the Gmii to Rgmii MDIO_GEM, GMI, tx_reset, rx_reset, and clkin as in the reference design
5) Connected the Gmii to Rgmii MDIO_PHY and RGMII to the external pins
6) Connected the Zynq ENET1_EXT_INTN to the external pin
7) Added a Constant IP and connected it to the extern ETH_CONFIG pin

I don't need the Labtools Frequency Counter or VIO (I think) so I connected the Gmii to Rmii status outputs to a Concat IP and fed the output back to an AXI_GPIO in my design. This will, hopefully, allow me to readback the status as GPIO inputs bits.

Questions:

What is the Constant IP for ETH_CONFIG supposed to be set as? What does this do?

How should I handle the ETH_RST signal to the 2nd PHY? In the reference design it is driven by a Utility Vector Logic that is connected to the Processor System Reset peripheral_aresetn[0:0] and the VIO probe_out[0:0].

Do I need to do anything with the 125MHz clock coming from the PHY? I think this is the gmii_clk_0 signal in the reference design. In that design it's only used by the Labtools Frequency Counter.

I'm sure I am missing something else, especially how to get it all working correctly in Petalinux. Any pointers?

Thanks!

bigguiness

Oh, I just noticed this on https://wiki.trenz-electronic.de/display/PD/TE0720+ETH0706

The _i_eth1.xdc constraints shows all the Bank 34 pins going to the external PHY are set to IOSTANDARD LVCMOS33. The schematic for the TE0706 says "B34 -> 1.8V" and that is how the JB2 pins 2 and 4 are connected.

Regards

bigguiness

I have done my best guess to hook up the 2nd Ethernet of the Zynq in my Vivado block diagram.

I think the ETH_CONFIG pin sets the PHY address. I have it connected to a Constant '1'.

I'm still not quite sure what to do with the ETH_RST signal. For now I have it coming from a Utility Vector Logic that is an AND of the Proessor System Reset periperal_aresetn[0:0] signal and a Constant '1'. If a way to manually reset the PHY is necessary, I would like to add a bit to my AXI_GPIO outputs but I'm not sure how to do that.

It doesn't look like I need to do anything with the 125MHz clock signal coming from the PHY.

The design does the Synthesis, Implementation, and Generate Bitstream successfully.

I then updated Petalinux with the new hardware design (petalinux-config -- get-hw-description ../).

I added the &gem1 device tree information to my system-user.dtsi.

Then I rebuilt Petalinux and tried booting my system.

The 2nd Ethernet port is not found during the boot. I checked /proc/device-tree and found the 2nd Ethernet node but the status is 'disabled'. The 1st Ethernet node is 'okay':
root@s6:~# cat /proc/device-tree/amba/ethernet\@e000b000/status
okay
root@s6:~# cat /proc/device-tree/amba/ethernet\@e000c000/status
disabled
root@s6:~#


So... I then checked the automatically generated pcw.dtsi and it only has &gem0 information:
&gem0 {
phy-mode = "rgmii-id";
status = "okay";
xlnx,ptp-enet-clock = <0x69f6bcb>;
};


What am I missing to get the @gem1 information added?

What else could I be missing?

Thanks

bigguiness

I just tried adding the &gem0 information from pcw.dtsi to my @gem1 information in system-user.dtsi.

That did cause a change in U-Boot but now the system hangs for a long time (a bit over 3 minutes) then finally continues booting.

Before adding the new info to @gem1:

--------------------------------------------------------------------------------
Xilinx First Stage Boot Loader (TE modified)
Release 2020.2  Feb  6 2023-19:23:27

Device IDCODE: 23727093
Device Name: 7z020 (7)
Device Revision: 2
--------------------------------------------------------------------------------
TE0720 TE_FsblHookBeforeHandoff_Custom

SoM: TE0720-03-1C  F SC REV:05
MAC: D8 80 39 DE 31 20

--------------------------------------------------------------------------------


U-Boot 2020.01 (Feb 10 2023 - 16:50:12 +0000)

CPU:   Zynq 7z020
Silicon: v3.1
DRAM:  ECC disabled 1 GiB
Flash: 0 Bytes
NAND:  0 MiB
MMC:   mmc@e0100000: 0, mmc@e0101000: 1
In:    serial@e0000000
Out:   serial@e0000000
Err:   serial@e0000000
Net:   
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 0, interface rgmii-id

Warning: ethernet@e000b000 using MAC address from DT
eth0: ethernet@e000b000
U-BOOT for petalinux
importing env from FSBL shared area at 0xFFFFFC00
Found valid magic
## Info: input data size = 27 = 0x1B

Hit any key to stop autoboot:  0
switch to partitions #0, OK

# Boot continues with no issues

# this is the boot info about the found Ethernet
libphy: MACB_mii_bus: probed
Marvell 88E1510 e000b000.ethernet-ffffffff:00: attached PHY driver [Marvell 88E1510] (mii_bus:phy_addr=e000b000.ethernet-ffffffff:00, irq=POLL)
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 30 (d8:80:39:de:31:20)


After adding the info:

--------------------------------------------------------------------------------
Xilinx First Stage Boot Loader (TE modified)
Release 2020.2  Feb  6 2023-19:23:27

Device IDCODE: 23727093
Device Name: 7z020 (7)
Device Revision: 2
--------------------------------------------------------------------------------
TE0720 TE_FsblHookBeforeHandoff_Custom

SoM: TE0720-03-1C  F SC REV:05
MAC: D8 80 39 DE 31 20

--------------------------------------------------------------------------------


U-Boot 2020.01 (Feb 10 2023 - 16:50:12 +0000)

CPU:   Zynq 7z020
Silicon: v3.1
DRAM:  ECC disabled 1 GiB
Flash: 0 Bytes
NAND:  0 MiB
MMC:   mmc@e0100000: 0, mmc@e0101000: 1
In:    serial@e0000000
Out:   serial@e0000000
Err:   serial@e0000000
Net:   
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 0, interface rgmii-id

Warning: ethernet@e000b000 using MAC address from DT
eth0: ethernet@e000b000
ZYNQ GEM: e000c000, mdio bus e000c000, phyaddr 1, interface rgmii-id

# The long delay happens here, then the boot continues with no issues

Could not get PHY for eth1: addr 1

U-BOOT for petalinux
importing env from FSBL shared area at 0xFFFFFC00
Found valid magic
## Info: input data size = 27 = 0x1B

# this is the boot info about the found Ethernet
libphy: MACB_mii_bus: probed
Marvell 88E1510 e000b000.ethernet-ffffffff:00: attached PHY driver [Marvell 88E1510] (mii_bus:phy_addr=e000b000.ethernet-ffffffff:00, irq=POLL)
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 30 (d8:80:39:de:31:20)
libphy: MACB_mii_bus: probed
Generic PHY e000c000.ethernet-ffffffff:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=e000c000.ethernet-ffffffff:01, irq=POLL)
macb e000c000.ethernet eth1: Cadence GEM rev 0x00020118 at 0xe000c000 irq 31 (00:0a:35:00:db:b2)


When it's finally booted it _looks_ like the 2nd Ethernet port is working:

root@s6:~# ifconfig
can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
          UP RUNNING NOARP  MTU:16  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:21

eth0      Link encap:Ethernet  HWaddr D8:80:39:DE:31:20 
          inet addr:10.168.0.97  Bcast:10.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::da80:39ff:fede:3120/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1782 (1.7 KiB)  TX bytes:2993 (2.9 KiB)
          Interrupt:30 Base address:0xb000

eth1      Link encap:Ethernet  HWaddr 00:0A:35:00:DB:B2 
          inet addr:192.168.42.100  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:31 Base address:0xc000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)



But, I need setup my network in order to actually test it.

This _might_ work but the long 3+ minute delay when booting is a real issue. What am I missing?

Thanks

bigguiness

Nope.. The 2nd Ethernet port is not working.

I changed the network configuration so that eth0 and eth1 are both dhcp. eth0 gets a lease but eth1 does not (both connected to the same network).

Ugh....

JH

try out prebuilt binaries, this should works.
Demo design was 19.2 and works only with 19.2 version. On other versions, it can happens that you need other changes, so also documentation is different....
Device tree on 19.2 was: https://wiki.trenz-electronic.de/display/PD/TE0720+ETH0706#TE0720ETH0706-DeviceTree
but at the end all belongs together ... PS Configuration on your design (and in your case also PL, because you use second eth over PL) (and corresponding XSA export), FSBL and your petalinux setup.....

Xilinx petalinux flow mostly configure 1 eth correctly but has problems in case more than one is used....best way for user is to create 2 independ designs where only one eth is enabled, an when these both designs works, create new project and combine....and read of documentation and source code to finde why it works or not. There are also sometimes tutorials available which helps(other users on other boards)....
br
John

bigguiness

Hi John,

The prebuilt binaries appear to work. There are a couple oddities during the boot that I am not sure are normal:


--------------------------------------------------------------------------------
Xilinx First Stage Boot Loader (TE modified)
Release 2019.2  Dec  2 2020-17:22:21

Device IDCODE: 23727093
Device Name: 7z020 (7)
Device Revision: 2
--------------------------------------------------------------------------------
TE0720 TE_FsblHookBeforeHandoff_Custom

SoM: TE0720-03-1C  F SC REV:05
MAC: D8 80 39 DE 31 20

--------------------------------------------------------------------------------


U-Boot 2019.01 (Dec 02 2020 - 10:21:16 +0000) Xilinx Zynq ZC702

CPU:   Zynq 7z020
Silicon: v3.1
DRAM:  ECC disabled 1 GiB
MMC:   mmc@e0100000: 0, mmc@e0101000: 1
In:    serial@e0000000
Out:   serial@e0000000
Err:   serial@e0000000
Net:   ZYNQ GEM: e000b000, phyaddr 0, interface rgmii-id
eth0: ethernet@e000b000ZYNQ GEM: e000c000, phyaddr 1, interface gmii

Warning: ethernet@e000c000 (eth1) using random MAC address - e6:e8:72:73:ae:7e
, eth1: ethernet@e000c000
U-BOOT for petalinux

# looks like this U-Boot finds eth1 OK

...
Starting kernel ...

Booting Linux on physical CPU 0x0
Linux version 4.19.0-xilinx-v2019.2 (oe-user@oe-host) (gcc version 8.2.0 (GCC)) #1 SMP PREEMPT Wed Dec 2 10:20:14 UTC 2020
...
libphy: MACB_mii_bus: probed
[Firmware Warn]: /amba/ethernet@e000b000/mdio/phy@0: Whitelisted compatible string. Please remove
Marvell 88E1510 e000b000.ethernet-ffffffff:00: attached PHY driver [Marvell 88E1510] (mii_bus:phy_addr=e000b000.ethernet-ffffffff:00, irq=POLL)
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 30 (d8:80:39:de:31:20)
libphy: MACB_mii_bus: probed
xgmiitorgmii e000c000.ethernet-ffffffff:08: Couldn't find phydev
[Firmware Warn]: /amba/ethernet@e000c000/mdio/phy@1: Whitelisted compatible string. Please remove
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 31 (e6:e8:72:73:ae:7e)

# the kernel boot finds both Ethernet devices

...
Configuring packages on first boot....
(This may take several minutes. Please do not power off the machine.)
Running postinst /etc/rpm-postinsts/100-sysvinit-inittab...
update-rc.d: /etc/init.d/run-postinsts exists during rc.d purge (continuing)
Removing any system startup links for run-postinsts ...
  /etc/rcS.d/S99run-postinsts
INIT: Entering runlevel: 5
Configuring network interfaces... IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
udhcpc: started, v1.29.2
udhcpc: sending discover
udhcpc: sending discover
macb e000b000.ethernet eth0: link up (1000/Full)
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
udhcpc: sending select for 10.168.0.97
udhcpc: lease of 10.168.0.97 obtained, lease time 86400
/etc/udhcpc.d/50default: Adding DNS 192.168.0.123
/etc/udhcpc.d/50default: Adding DNS 192.168.0.119
/etc/udhcpc.d/50default: Adding DNS 8.8.8.8
IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
udhcpc: started, v1.29.2
udhcpc: sending discover
udhcpc: sending discover
macb e000c000.ethernet eth1: unable to generate target frequency: 125000000 Hz
macb e000c000.ethernet eth1: link up (1000/Full)
IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
udhcpc: sending discover
udhcpc: sending select for 10.168.0.93
udhcpc: lease of 10.168.0.93 obtained, lease time 86400
RTNETLINK answers: File exists
/etc/udhcpc.d/50default: Adding DNS 192.168.0.123
/etc/udhcpc.d/50default: Adding DNS 192.168.0.119
/etc/udhcpc.d/50default: Adding DNS 8.8.8.8
done.

# I'm not sure if the "e000c000.ethernet eth1: unable to generate target frequency: 125000000 Hz" above is normal or a problem

...
PetaLinux 2019.2 petalinux /dev/ttyPS0

petalinux login: root
Password:
root@petalinux:~# ifconfig
eth0      Link encap:Ethernet  HWaddr D8:80:39:DE:31:20 
          inet addr:10.168.0.97  Bcast:10.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::da80:39ff:fede:3120/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2718 (2.6 KiB)  TX bytes:3826 (3.7 KiB)
          Interrupt:30 Base address:0xb000

eth1      Link encap:Ethernet  HWaddr E6:E8:72:73:AE:7E 
          inet addr:10.168.0.93  Bcast:10.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::e4e8:72ff:fe73:ae7e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:19 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3556 (3.4 KiB)  TX bytes:1454 (1.4 KiB)
          Interrupt:31 Base address:0xc000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

# looks like both ports are running


I am able to ssh to port ports from my host system. So it looks like my carrier board hardware is working.

The only _real_ difference I am seeing in the U-Boot startup of this and my setup is:


# U-Boot 2019.01
Net:   ZYNQ GEM: e000b000, phyaddr 0, interface rgmii-id
eth0: ethernet@e000b000ZYNQ GEM: e000c000, phyaddr 1, interface gmii

# U-Boot 2020.01
Net:   
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 0, interface rgmii-id

Warning: ethernet@e000b000 using MAC address from DT
eth0: ethernet@e000b000
ZYNQ GEM: e000c000, mdio bus e000c000, phyaddr 1, interface rgmii-id


In 2019.01, the 2nd phy interface is gmii. But my 2020.01 has it as rgmii-id.

I'll try to work out where that is done and see if it has any effect.

Regards

bigguiness

Well, changing the phy type to gmii didn't change anything. I still get the 3+ minute delay in U-Boot before the "Could not get PHY for eth1: addr 1" message.

ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 0, interface rgmii-id

Warning: ethernet@e000b000 using MAC address from DT
eth0: ethernet@e000b000
ZYNQ GEM: e000c000, mdio bus e000c000, phyaddr 1, interface gmii
Could not get PHY for eth1: addr 1

U-BOOT for petalinux


During the kernel boot I also noticed that the wrong phy driver is used for the 2nd port:

libphy: MACB_mii_bus: probed
Marvell 88E1510 e000b000.ethernet-ffffffff:00: attached PHY driver [Marvell 88E1510] (mii_bus:phy_addr=e000b000.ethernet-ffffffff:00, irq=POLL)
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 30 (d8:80:39:de:31:20)
libphy: MACB_mii_bus: probed
Generic PHY e000c000.ethernet-ffffffff:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=e000c000.ethernet-ffffffff:01, irq=POLL)
macb e000c000.ethernet eth1: Cadence GEM rev 0x00020118 at 0xe000c000 irq 31 (00:0a:35:00:db:b2)


I tried adding 'compatible = "marvel,88e1510";' to the device tree phy1 node but that just causes a warning during the boot:

libphy: MACB_mii_bus: probed
[Firmware Warn]: /amba/ethernet@e000c000/mdio/phy@1: Whitelisted compatible string. Please remove
Generic PHY e000c000.ethernet-ffffffff:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=e000c000.ethernet-ffffffff:01, irq=POLL)
macb e000c000.ethernet eth1: Cadence GEM rev 0x00020118 at 0xe000c000 irq 31 (00:0a:35:00:db:b2)


So now I'm stuck...

  • the carrier board electrical design works with the prebuilt binaries
  • the prebuilt 2019.01 binaries work
  • My 2020.02 design does not work

Like I said, I don't have the LabTools or VIO blocks from the reference design in my block diagram. As far as I can tell, those blocks are not needed they are just for testing various things from the Vivado dashboard.

Attached is the relevant part of my block diagram. Does anyone see any issues?

Thanks

bigguiness

I think I was working with an older Vivado hardware description. So I redid the Synthesis / Implementation / Generate Bitstream and exported the Hardware.

I then updated the petalinux config and tried to rebuild:

$ petalinux-config --get-hw-description ../
$ petalinux-build


Now the build fails when trying to build the device tree (it worked before the hardware update).

The relevant build errors are:

Subprocess output:
${PWD}/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/uboot-device-tree/xilinx+gitAUTOINC+bc84458333-r0/build/uboot-device-tree/zynq-7000.dtsi:299.27-308.5: ERROR (phandle_references): /amba/ethernet@e000c000: Reference to non-existent node or label "phy1"

  also defined at ${PWD}/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/uboot-device-tree/xilinx+gitAUTOINC+bc84458333-r0/build/uboot-device-tree/pcw.dtsi:23.7-37.3
${PWD}/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/uboot-device-tree/xilinx+gitAUTOINC+bc84458333-r0/build/uboot-device-tree/pcw.dtsi:31.38-35.5: ERROR (phandle_references): /amba/ethernet@e000c000/mdio/gmii_to_rgmii_0@8: Reference to non-existent node or label "phy1"


So I started looking at the stuff in '${PWD}/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/uboot-device-tree/xilinx+gitAUTOINC+bc84458333-r0/build/uboot-device-tree' and found that the 'u-boot.dts' file is not including the 'system-user.dtsi' file. The system-user.dtsi file is where the phy1 node is defined.

The pcw.dtsi file in the build directory is different from what it was before updating the hardware. It now has this node which was not there before the update:

&gem1 {
phy-handle = <&phy1>;
phy-mode = "gmii";
status = "okay";
xlnx,ptp-enet-clock = <0x69f6bcb>;
ps7_ethernet_1_mdio: mdio {
#address-cells = <1>;
#size-cells = <0>;
gmii_to_rgmii_0: gmii_to_rgmii_0@8 {
compatible = "xlnx,gmii-to-rgmii-1.0";
phy-handle = <&phy1>;
reg = <8>;
};
};
};


Before the update I had this node fully defined in the system-user.dtsi file because it was missing in the pcw.dtsi. I have removed most of the information from my system-user.dtsi and now just have this to match the reference design:

/* ETH PHY from TE0706*/
&gem1 {
  //  local-mac-address = [00 0a 35 00 db b2];
    phy-handle = <&phy1>;
    mdio {
        #address-cells = <1>;
        #size-cells = <0>;
        phy1: phy@1 {
            compatible = "marvell,88e1510";
            device_type = "ethernet-phy";
            reg = <1>;
            //marvell,reg-init = <0x3 0x10 0x0000 0x0501 0x3 0x11 0x0000 0x4415>;
            marvell,reg-init = <0x12 0x14 0x0200>;
        };
    };
};


There is what appears to be the fully generated device tree output in ${PWD}/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/uboot-device-tree/xilinx+gitAUTOINC+bc84458333-r0/build/u-boot-dts.pp. That files appears to include the following device tree pieces:


${PWD}/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/uboot-device-tree/xilinx+gitAUTOINC+bc84458333-r0/build/uboot-device-tree/u-boot.dts
${PWD}/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/uboot-device-tree/xilinx+gitAUTOINC+bc84458333-r0/build/uboot-device-tree/zynq-7000.dtsi
${PWD}/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/uboot-device-tree/xilinx+gitAUTOINC+bc84458333-r0/build/uboot-device-tree/pl.dtsi
${PWD}/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/uboot-device-tree/xilinx+gitAUTOINC+bc84458333-r0/build/uboot-device-tree/pcw.dtsi


It looks like everything was included except the system-user.dtsi stuff.

Any idea how to fix this? How do I get the u-boot.dts to include the system-user.dtsi file?

Thanks

bigguiness

Ugh... I don't think I'll ever "get" Petalinux....

I copied my system-user.dtsi to the build directory and hacked the u-boot.dts file to include it. That made the petalinux-build succeed.

Weirdly, after the build was finished that build directory was gone.

I copied the build to the SD card and tried booting it. It worked!

-------------------------------------------------------------------------------
Xilinx First Stage Boot Loader (TE modified)
Release 2020.2  Feb 13 2023-17:21:10

Device IDCODE: 23727093
Device Name: 7z020 (7)
Device Revision: 2
--------------------------------------------------------------------------------
TE0720 TE_FsblHookBeforeHandoff_Custom

SoM: TE0720-03-1C  F SC REV:05
MAC: D8 80 39 DE 31 20

--------------------------------------------------------------------------------


U-Boot 2020.01 (Feb 13 2023 - 18:37:01 +0000)

CPU:   Zynq 7z020
Silicon: v3.1
DRAM:  ECC disabled 1 GiB
Flash: 0 Bytes
NAND:  0 MiB
MMC:   mmc@e0100000: 0, mmc@e0101000: 1
In:    serial@e0000000
Out:   serial@e0000000
Err:   serial@e0000000
Net:   
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 0, interface rgmii-id

Warning: ethernet@e000b000 using MAC address from DT
eth0: ethernet@e000b000
ZYNQ GEM: e000c000, mdio bus e000c000, phyaddr 1, interface gmii

Warning: ethernet@e000c000 using MAC address from DT
, eth1: ethernet@e000c000
U-BOOT for petalinux

...
libphy: MACB_mii_bus: probed
Marvell 88E1510 e000b000.ethernet-ffffffff:00: attached PHY driver [Marvell 88E1510] (mii_bus:phy_addr=e000b000.ethernet-ffffffff:00, irq=POLL)
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 30 (d8:80:39:de:31:20)
libphy: MACB_mii_bus: probed
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 31 (00:0a:35:00:db:b2)
...
PetaLinux 2020.2 s6 ttyPS0

s6 login: root
Password:
root@s6:~# ifconfig
can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
          UP RUNNING NOARP  MTU:16  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:21

eth0      Link encap:Ethernet  HWaddr D8:80:39:DE:31:20 
          inet addr:10.168.0.97  Bcast:10.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::da80:39ff:fede:3120/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2650 (2.5 KiB)  TX bytes:2612 (2.5 KiB)
          Interrupt:30 Base address:0xb000

eth1      Link encap:Ethernet  HWaddr 00:0A:35:00:DB:B2 
          inet addr:10.168.0.93  Bcast:10.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20a:35ff:fe00:dbb2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:13 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2230 (2.1 KiB)  TX bytes:1306 (1.2 KiB)
          Interrupt:31 Base address:0xc000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


I can ssh to both the 1st and 2nd ports from my host system!

Great! But... Ugh...