This project utilizes AXI 10G/25G Ethernet Subsystem configured for 10GBASE-R. This has been routed to the SFP cage on SFP2 for use on a ZCU102 board. System is configured to use the ZCU102 si570 at 156.25MHz.
eth0
is configured as GEM3 routed via RGMII to the on-board PHY.eth1
is configured as 10G/25G Ethernet Subsystem routed to SFP2.
- ZCU102
- SFP supporting 10GBASE-R
- 10G capable link partner
Enter the Scripts
directory. From the command line run the following:
vivado -mode batch -source *top.tcl
The Vivado project will be built in the Hardware
directory.
There is currently no baremetal SDK support for the 10G/25G IP.
Enter the Software/PetaLinux/
directory. From the command line run the following:
petalinux-config --get-hw-description ../../Hardware/pre-built/ --silentconfig
followed by:
petalinux-build
The PetaLinux project will be rebuilt using the configurations in the PetaLinux directory. To reduce repo size, the project is shipped pre-configured, but un-built.
Once the build is complete, the built images can be found in the PetaLinux/images/linux/
directory. To package these images for SD boot, run the following from the PetaLinux
directory:
petalinux-package --boot --fsbl images/linux/zynqmp_fsbl.elf --fpga images/linux/*.bit --pmufw images/linux/pmufw.elf --u-boot --force
Once packaged, the BOOT.bin
and image.ub
files (in the PetaLinux/images/linux
directory) can be copied to an SD card, and used to boot.
NOTE: U-Boot validation for 1G interface only - 10G drivers currently only exist for Kernel.
ZynqMP> dhcp
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
DHCP client bound to address 123.234.10.31 (1047 ms)
ZynqMP> ping 123.234.10.1
Using ethernet@ff0e0000 device
host 123.234.10.1 is alive
ZynqMP>
NOTE: The interfaces are assigned as follows:
eth0
-> 1Geth1
-> 10G
root@plnx:~# ifconfig
eth0 Link encap:Ethernet HWaddr DE:AD:BE:EF:00:00
inet addr:123.234.10.18 Bcast:123.234.10.255 Mask:255.255.255.0
inet6 addr: fe80::dcad:beff:feef:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:53 errors:0 dropped:0 overruns:0 frame:0
TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4485 (4.3 KiB) TX bytes:24804 (24.2 KiB)
Interrupt:30
eth1 Link encap:Ethernet HWaddr DE:AD:BE:EF:00:01
inet addr:123.234.10.19 Bcast:123.234.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:129 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:16124 (15.7 KiB) TX bytes:2728 (2.6 KiB)
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)
root@plnx:~# ping -I eth0 123.234.10.1 -c 9
PING 123.234.10.1 (123.234.10.1): 56 data bytes
64 bytes from 123.234.10.1: seq=0 ttl=64 time=0.252 ms
64 bytes from 123.234.10.1: seq=1 ttl=64 time=0.177 ms
64 bytes from 123.234.10.1: seq=2 ttl=64 time=0.157 ms
64 bytes from 123.234.10.1: seq=3 ttl=64 time=0.171 ms
64 bytes from 123.234.10.1: seq=4 ttl=64 time=0.166 ms
64 bytes from 123.234.10.1: seq=5 ttl=64 time=0.154 ms
64 bytes from 123.234.10.1: seq=6 ttl=64 time=0.164 ms
64 bytes from 123.234.10.1: seq=7 ttl=64 time=0.163 ms
64 bytes from 123.234.10.1: seq=8 ttl=64 time=0.176 ms
--- 123.234.10.1 ping statistics ---
9 packets transmitted, 9 packets received, 0% packet loss
round-trip min/avg/max = 0.154/0.175/0.252 ms
root@plnx:~# ping -I eth1 123.234.10.1 -c 9
PING 123.234.10.1 (123.234.10.1): 56 data bytes
64 bytes from 123.234.10.1: seq=0 ttl=64 time=0.208 ms
64 bytes from 123.234.10.1: seq=1 ttl=64 time=0.183 ms
64 bytes from 123.234.10.1: seq=2 ttl=64 time=0.155 ms
64 bytes from 123.234.10.1: seq=3 ttl=64 time=0.088 ms
64 bytes from 123.234.10.1: seq=4 ttl=64 time=0.148 ms
64 bytes from 123.234.10.1: seq=5 ttl=64 time=0.149 ms
64 bytes from 123.234.10.1: seq=6 ttl=64 time=0.180 ms
64 bytes from 123.234.10.1: seq=7 ttl=64 time=0.177 ms
64 bytes from 123.234.10.1: seq=8 ttl=64 time=0.195 ms
--- 123.234.10.1 ping statistics ---
9 packets transmitted, 9 packets received, 0% packet loss
round-trip min/avg/max = 0.088/0.164/0.208 ms
root@plnx:~#
NOTE: These are rough performance numbers - your actual performance may vary based on a variety of factors such as network topology and kernel load.
These performance numbers reflect an MTU of 9000.
root@plnx:~# iperf3 -c 123.234.10.1
Connecting to host 123.234.10.1, port 5201
[ 5] local 123.234.10.19 port 32924 connected to 123.234.10.1 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 374 MBytes 3.14 Gbits/sec 0 376 KBytes
[ 5] 1.00-2.00 sec 375 MBytes 3.14 Gbits/sec 0 376 KBytes
[ 5] 2.00-3.00 sec 374 MBytes 3.13 Gbits/sec 0 376 KBytes
[ 5] 3.00-4.00 sec 374 MBytes 3.14 Gbits/sec 0 376 KBytes
[ 5] 4.00-5.00 sec 374 MBytes 3.13 Gbits/sec 0 376 KBytes
[ 5] 5.00-6.00 sec 376 MBytes 3.15 Gbits/sec 0 393 KBytes
[ 5] 6.00-7.00 sec 374 MBytes 3.14 Gbits/sec 0 393 KBytes
[ 5] 7.00-8.00 sec 374 MBytes 3.14 Gbits/sec 0 393 KBytes
[ 5] 8.00-9.00 sec 374 MBytes 3.13 Gbits/sec 0 393 KBytes
[ 5] 9.00-10.00 sec 374 MBytes 3.13 Gbits/sec 1 393 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 3.65 GBytes 3.14 Gbits/sec 1 sender
[ 5] 0.00-10.00 sec 3.65 GBytes 3.14 Gbits/sec receiver
iperf Done.
root@plnx:~#