DESK-XZ7-L-AN-0005: Enabling dual Gigabit Ethernet support on BoraEVB/BoraXEVB

From DAVE Developer's Wiki
Jump to: navigation, search
Info Box


History
Issue Date Notes

2024/05/20

DESK-XZ7-L-1.1.0 release
2025/06/12 DESK-XZ7-L 2.x.x release



Introduction[edit | edit source]

Petalinux 2024.2 allows to support dual Gigabit Ethernet configuration on BoraEVB and BoraXEVB. This application note describes how to implement such configuration, providing a reference design for Vivado 2024.2 and Petalinux configuration instructions.

Block diagram[edit | edit source]

Simplified block diagram of dual Ethernet configuration is shown in the following picture.


An-belk-006-bd.png


First Ethernet port refers to J8 connector of BoraEVB and BoraXEVB carrier board and is based on Zynq's Gigabit Ethernet Controller 0 (Gem0). This controller is mapped at physical address 0xE000B000.

Second Ethernet port refers to J9 connector of BoraEVB and BoraXEVB carrier board and is based on Zynq's Gigabit Ethernet Controller 1 (Gem1). This controller is mapped at physical address 0xE000C000.

The fundamental difference between the two interfaces is the PHY interfacing. In case of Gem0, PHY is mounted on Bora and BoraX SoM and it is interfaced directly to Processor Subsystem (PS) via MIO pads. In case of Gem1 instead, PHY is populated on BoraEVB and BoraXEVB (U9) and it is interfaced to Programmable Logic (PL). Thus it is necessary to enable EMIO routing and to instantiate a GMII to RGMII bridge in PL as per PHY's interface requirement. About MII bus (MDIO, MDC), two different busses are used:

  • Bora PHY is connected to the signals ETH_MDC and ETH_MDIO (available on BoraEVB at JP18.7 and JP18.9 respectively)
    • this MII bus is associated to gem0
  • BoraEVB PHY is connected to PL's IO_L9N_T1_DQS_34 (ETH1_MDC) and IO_L9P_T1_DQS_34 (ETH1_MDIO); these signals are available on BoraEVB at JP18.8 and JP18.10 respectively
    • this MII bus is associated to gem1
    • it is worth to remember that a virtual PHY (whose address is 8) is connected to this bus as well; this PHY is implemented in the GMII/RGMII bridge and it is used to configure the bridge at runtime, depending on operating parameters such as the Ethernet physical link speed.

Vivado design[edit | edit source]

The following picture shows the block diagram of the Vivado project:

An-belk-006-01.png

Bora + BoraEVB[edit | edit source]

On BoraEVB PHY1 is interfaced to Programmable Logic (PL) pads that belong to bank #34.

WARNING: due to a restraint introduced, from Vivado version 2017.1 onwards, the signal ETH1_TXCK can be routed only to a pad that is MRCC or SRCC input. As result from BELK 4.0.0 an hardware rework is needed on the BoraEVB board:

  • Remove R183
  • Remove R232
  • Connect R183.2 with R232.1

This rework prevents the use of the PL SDRAM onboard of the BoraEVB (by default this ram is not mounted).

Here is the pinout assignment for the PHY1 on BoraEVB:

PHY1 Signal BORA SOM Signal
ETH1_TXD0 IO_L24P_T3_34
ETH1_TXD1 IO_L24N_T3_34
ETH1_TXD2 IO_L23P_T3_34
ETH1_TXD3 IO_L23N_T3_34
ETH1_TXCK IO_L20P_T3_34
ETH1_TXCTL IO_L20N_T3_34
ETH1_RXD0 IO_L5N_T0_34
ETH1_RXD1 IO_L5P_T0_34
ETH1_RXD2 IO_L7N_T1_34
ETH1_RXD3 IO_L7P_T1_34
ETH1_RXCK IO_L4N_T0_34 IO_L13P_T1_MRCC_34
ETH1_RXCTL IO_L4P_T0_34
ETH1_MDC IO_L9N_T1_DQS_34
ETH1_MDIO IO_L9P_T1_DQS_34

Since bank #34 is powered at 3.3V (High Range I/O mode), RGMII duty cycle distortion specification is not matched. In case of carrier board designed for production environments, it is recommended to use a lower voltage levels and thus a different PL bank. For more details please see section I/O Standard and Placement of PG160 GMII to RGMII LogiCORE IP Product Guide and this page.

The Vivado project can also be build with the procedure explained here.

Borax + BoraXEVB[edit | edit source]

On BoraXEVB PHY1 is interfaced to Programmable Logic (PL) pads that belong to bank #13.

WARNING: due to a restraint introduced, from Vivado version 2017.1 onwards, the signal ETH1_TXCK can be routed only to a pad that is MRCC or SRCC input. As result from BXELK 2.0.0 an hardware rework is needed on the BoraXEVB board:

  • Remove RP84
  • Remove R232
  • Connect RP84.2 with R232.1

This rework prevents the use of the LVDS connector on BoraXEVB (J26).

Here is the pinout assignment for the PHY1 on BoraXEVB:

PHY1 Signal BORAX SOM Signal
ETH1_TXD0 IO_L19P_T3_13
ETH1_TXD1 IO_L19N_T3_VREF_13
ETH1_TXD2 IO_L20P_T3_13
ETH1_TXD3 IO_L20N_T3_13
ETH1_TXCK IO_L16P_T2_13
ETH1_TXCTL IO_L16N_T2_13
ETH1_RXD0 IO_L17P_T2_13
ETH1_RXD1 IO_L17N_T2_13
ETH1_RXD2 IO_L18P_T2_13
ETH1_RXD3 IO_L18N_T2_13
ETH1_RXCK IO_L15P_T2_DQS_13 IO_L12P_T1_MRCC_13
ETH1_RXCTL IO_L15N_T2_DQS_13
ETH1_MDC IO_L21N_T3_DQS_13
ETH1_MDIO IO_L21P_T3_DQS_13

I/O voltage of bank 13 must be set to 2.5V by configuring JP25 as shown in the following table.

Pins Setting
1-2 closed
3-4 open
5-6 closed
7-8 open
9-10 open
11-12 open

The Vivado project can also be build with the procedure explained here.

Enabling dual Ethernet configuration in Petalinux[edit | edit source]

To use dual Ethernet user needs to get the pre-built binaries:

Alternatively user can built image with dual Ethernet configuration on Petalinux by following this guide and build artifact for config_bora_ETH1 or config_borax_ETH1 configuration files. In this case user need to update project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi file as shown below.

diff --git a/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi b/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi
index f17536c..f94fb97 100644
--- a/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi
+++ b/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi
@@ -4,7 +4,7 @@
 // /include/ "openamp.dtsi"

 //To use eth1 on PL uncomment the following line
-// /include/ "eth1.dtsi"
+/include/ "eth1.dtsi"

 /include/ "bora.dtsi"

(END)


200px-Emblem-important.svg.png

In case of manual build with Petalinux, when user load xsa file, Petalinux make a series of device-tree in components/plnx_workspace/device-tree/device-tree, please check that this file are correct since this can have some error. This is an example

Bootlog for Bora

U-Boot 2024.01-desk-xz7-l-2.0.0 (Jun 10 2025 - 15:58:48 +0000)

CPU:   Zynq 7z020
Silicon: v3.1
Model: Bora
DRAM:  ECC disabled 1 GiB
Core:  28 devices, 18 uclasses, devicetree: board
Flash: 0 Bytes
NAND:  0 MiB
MMC:   mmc@e0100000: 0
Loading Environment from FAT... Unable to read "uboot.env" from mmc0:1...
In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
SF: Detected s25fl256s1 with page size 256 Bytes, erase size 64 KiB, total 32 MiB
SF: Detected s25fl256s1 with page size 256 Bytes, erase size 64 KiB, total 32 MiB
SOM UniqueID not found, using default
SOM UniqueID not found, using default
SOM ConfigID#: 00000001
SOM UniqueID#: ffffffff:ffffffff
CB ConfigID#: 00000001
CB UniqueID#: 3b000043:73db012d
SF: Detected s25fl256s1 with page size 256 Bytes, erase size 64 KiB, total 32 MiB
Warning: MAC addr not found in SPI NOR at block 8
Net:
ZYNQ GEM: e000c000, mdio bus e000c000, phyaddr 6, interface rgmii-id

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

Warning: ethernet@e000b000 (eth0) using random MAC address - 1e:24:29:75:46:31
eth0: ethernet@e000b000, eth1: ethernet@e000c000
Hit ENTER within 2 seconds to stop autoboot
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
3830 bytes read in 14 ms (266.6 KiB/s)
## Executing script at 03000000
Trying to load boot images from mmc0
6251507 bytes read in 358 ms (16.7 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf-system-top.dtb' configuration
   Verifying Hash Integrity ... OK
   Trying 'kernel-1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x100000ec
     Data Size:    6228192 Bytes = 5.9 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x00200000
     Entry Point:  0x00200000
     Hash algo:    sha256
     Hash value:   7449b0f03f22fedb3e928e4fa02b3c8a74d6714780d21cf72b84ba3c052291a7
   Verifying Hash Integrity ... sha256+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf-system-top.dtb' configuration
   Verifying Hash Integrity ... OK
   Trying 'fdt-system-top.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x105f0ad8
     Data Size:    21389 Bytes = 20.9 KiB
     Architecture: ARM
     Hash algo:    sha256
     Hash value:   cc5137f899f81f1cde2b997223f202d0a71a62d3747cd8db5558cdbda97980bc
   Verifying Hash Integrity ... sha256+ OK
   Booting using the fdt blob at 0x105f0ad8
Working FDT set to 105f0ad8
   Loading Kernel Image
   Loading Device Tree to 2fff7000, end 2ffff38c ... OK
Working FDT set to 2fff7000

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.6.40-xilinx-g2b7f6f70a62a (oe-user@oe-host) (arm-xilinx-linux-gnueabi-gcc (GCC) 13.3.0, GNU ld (GNU Binutils) 2.42.0.20240716) #1 SMP PREEMPT Tue Oct 29 11:52:30 UTC 2024
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Bora
[    0.000000] earlycon: cdns0 at MMIO 0xe0001000 (options '115200n8')
[    0.000000] printk: bootconsole [cdns0] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 16 MiB at 0x3f000000 on node -1
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000002fffffff]
[    0.000000]   HighMem  [mem 0x0000000030000000-0x000000003fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000] percpu: Embedded 16 pages/cpu s35988 r8192 d21356 u65536
[    0.000000] Kernel command line: console=ttyPS0,115200 earlycon root=/dev/mmcblk0p2 ro rootwait
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 260608
[    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[    0.000000] Memory: 1008176K/1048576K available (9216K kernel code, 828K rwdata, 2720K rodata, 1024K init, 171K bss, 24016K reserved, 16384K cma-reserved, 245760K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] ftrace: allocating 37947 entries in 112 pages
[    0.000000] ftrace: allocated 112 pages with 3 groups
[    0.000000] trace event string verifier disabled
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000]  Rude variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] efuse mapped to (ptrval)
[    0.000000] slcr mapped to (ptrval)
[    0.000000] GIC physical location is 0xf8f01000
[    0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
[    0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
[    0.000000] L2C-310 erratum 769419 enabled
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[    0.000000] L2C-310 ID prefetch enabled, offset 1 lines
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[    0.000000] L2C-310 cache controller enabled, 8 ways, 512 kB
[    0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] zynq_clock_init: clkc starts at (ptrval)
[    0.000000] Zynq clock init
[    0.000002] sched_clock: 64 bits at 167MHz, resolution 6ns, wraps every 4398046511103ns
[    0.005437] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x26703d7dd8, max_idle_ns: 440795208065 ns
[    0.016500] Switching to timer-based delay loop, resolution 6ns
[    0.022910] Console: colour dummy device 80x30
[    0.026864] Calibrating delay loop (skipped), value calculated using timer frequency.. 333.33 BogoMIPS (lpj=1666666)
[    0.037402] CPU: Testing write buffer coherency: ok
[    0.042232] CPU0: Spectre v2: using BPIALL workaround
[    0.047294] pid_max: default: 32768 minimum: 301
[    0.052062] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.059221] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.067983] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.074044] RCU Tasks: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1.
[    0.079786] RCU Tasks Rude: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1.
[    0.087352] Setting up static identity map for 0x100000 - 0x100060
[    0.093562] rcu: Hierarchical SRCU implementation.
[    0.098085] rcu:     Max phase no-delay instances is 1000.
[    0.104588] smp: Bringing up secondary CPUs ...
[    0.108914] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.108940] CPU1: Spectre v2: using BPIALL workaround
[    0.118733] smp: Brought up 1 node, 2 CPUs
[    0.122671] SMP: Total of 2 processors activated (666.66 BogoMIPS).
[    0.128884] CPU: All CPU(s) started in SVC mode.
[    0.134354] devtmpfs: initialized
[    0.143382] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[    0.145749] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.155328] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.163086] pinctrl core: initialized pinctrl subsystem
[    0.169436] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.175563] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.181685] thermal_sys: Registered thermal governor 'step_wise'
[    0.181784] cpuidle: using governor ladder
[    0.190201] cpuidle: using governor menu
[    0.199431] platform axi: Fixed dependency cycle(s) with /axi/interrupt-controller@f8f01000
[    0.208369] platform replicator: Fixed dependency cycle(s) with /axi/etb@f8801000
[    0.210360] amba f8801000.etb: Fixed dependency cycle(s) with /replicator
[    0.217402] platform replicator: Fixed dependency cycle(s) with /axi/tpiu@f8803000
[    0.224757] amba f8803000.tpiu: Fixed dependency cycle(s) with /replicator
[    0.231828] platform replicator: Fixed dependency cycle(s) with /axi/funnel@f8804000
[    0.239342] amba f8804000.funnel: Fixed dependency cycle(s) with /axi/ptm@f889d000
[    0.246805] amba f8804000.funnel: Fixed dependency cycle(s) with /axi/ptm@f889c000
[    0.254371] amba f8804000.funnel: Fixed dependency cycle(s) with /replicator
[    0.261748] amba f8804000.funnel: Fixed dependency cycle(s) with /axi/ptm@f889c000
[    0.269099] amba f889c000.ptm: Fixed dependency cycle(s) with /axi/funnel@f8804000
[    0.276891] amba f8804000.funnel: Fixed dependency cycle(s) with /axi/ptm@f889d000
[    0.284244] amba f889d000.ptm: Fixed dependency cycle(s) with /axi/funnel@f8804000
[    0.292626] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[    0.299674] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.306822] e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 26, base_baud = 3125000) is a xuartps
[    0.316007] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 27, base_baud = 3125000) is a xuartps
[    0.329305] printk: console [ttyPS0] enabled
[    0.329305] printk: console [ttyPS0] enabled
[    0.333618] printk: bootconsole [cdns0] disabled
[    0.333618] printk: bootconsole [cdns0] disabled
[    0.354271] SCSI subsystem initialized
[    0.358376] usbcore: registered new interface driver usbfs
[    0.363999] usbcore: registered new interface driver hub
[    0.369390] usbcore: registered new device driver usb
[    0.374800] mc: Linux media interface: v0.10
[    0.379146] videodev: Linux video capture interface: v2.00
[    0.384731] pps_core: LinuxPPS API ver. 1 registered
[    0.389697] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.398876] PTP clock support registered
[    0.402881] EDAC MC: Ver: 3.0.0
[    0.406794] FPGA manager framework
[    0.410534] Advanced Linux Sound Architecture Driver Initialized.
[    0.418002] vgaarb: loaded
[    0.421292] clocksource: Switched to clocksource arm_global_timer
[    0.442429] NET: Registered PF_INET protocol family
[    0.447664] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.457500] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.466016] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.473892] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.481728] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
[    0.489240] TCP: Hash tables configured (established 8192 bind 8192)
[    0.495746] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.502418] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.509761] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.516176] RPC: Registered named UNIX socket transport module.
[    0.522103] RPC: Registered udp transport module.
[    0.526837] RPC: Registered tcp transport module.
[    0.531536] RPC: Registered tcp-with-tls transport module.
[    0.536961] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.543466] PCI: CLS 0 bytes, default 64
[    0.547946] armv7-pmu f8891000.pmu: hw perfevents: no interrupt-affinity property, guessing.
[    0.556877] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
[    0.567061] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[    0.574566] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.582056] bounce: pool size: 64 pages
[    0.586008] io scheduler mq-deadline registered
[    0.590538] io scheduler kyber registered
[    0.594630] io scheduler bfq registered
[    0.599700] zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
[    0.610108] dma-pl330 f8003000.dma-controller: Loaded driver for PL330 DMAC-241330
[    0.617729] dma-pl330 f8003000.dma-controller:       DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
[    0.641141] brd: module loaded
[    0.653475] loop: module loaded
[    0.658990] spi-nor spi0.0: found s25fl256s1, expected s25fl128s1
[    0.665395] spi-nor spi0.0: s25fl256s1 (32768 Kbytes)
[    0.670602] 1 fixed-partitions partitions found on MTD device spi0.0
[    0.677022] Creating 1 MTD partitions on "spi0.0":
[    0.681818] 0x000000000000-0x000002000000 : "qspi-boot"
[    0.693069] CAN device driver interface
[    0.812713] macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 42 (1e:24:29:75:46:31)
[    0.942996] macb e000c000.ethernet eth1: Cadence GEM rev 0x00020118 at 0xe000c000 irq 43 (00:50:c2:1e:af:cd)
[    0.953250] e1000e: Intel(R) PRO/1000 Network Driver
[    0.958211] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    0.965245] usbcore: registered new interface driver usb-storage
[    0.972513] ULPI transceiver vendor/product ID 0x0424/0x0006
[    0.978228] Found SMSC USB331x ULPI transceiver.
[    0.982881] ULPI integrity check: passed.
[    0.989878] i2c_dev: i2c /dev entries driver
[    0.994318] cdns-i2c e0004000.i2c: can't get pinctrl, bus recovery not supported
[    1.003438] rtc-ds3232 0-0068: oscillator discontinuity flagged, time unreliable
[    1.011514] hwmon hwmon0: temp1_input not attached to any thermal zone
[    1.018645] rtc-ds3232 0-0068: registered as rtc0
[    1.023699] rtc-ds3232 0-0068: hctosys: unable to read the hardware clock
[    1.030783] cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 45
[    1.040055] cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s
[    1.047682] EDAC MC: ECC not enabled
[    1.052235] cpufreq: cpufreq_online: CPU0: Running at unlisted initial frequency: 666666 KHz, changing to: 666667 KHz
[    1.063202] Xilinx Zynq CpuIdle Driver started
[    1.068271] sdhci: Secure Digital Host Controller Interface driver
[    1.073602] sdhci: Copyright(c) Pierre Ossman
[    1.077976] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.084805] ledtrig-cpu: registered to indicate activity on CPUs
[    1.091610] clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 1075096770 ns
[    1.101019] timer #0 at (ptrval), irq=48
[    1.105453] usbcore: registered new interface driver usbhid
[    1.111073] usbhid: USB HID core driver
[    1.118130] mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA
[    1.119900] fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
[    1.133503] NET: Registered PF_INET6 protocol family
[    1.140579] Segment Routing with IPv6
[    1.144394] In-situ OAM (IOAM) with IPv6
[    1.148447] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.155465] NET: Registered PF_PACKET protocol family
[    1.160524] can: controller area network core
[    1.162174] mmc0: new high speed SDHC card at address aaaa
[    1.165002] NET: Registered PF_CAN protocol family
[    1.171193] mmcblk0: mmc0:aaaa SA16G 14.8 GiB
[    1.175235] can: raw protocol
[    1.182587] can: broadcast manager protocol
[    1.182937]  mmcblk0: p1 p2
[    1.186790] can: netlink gateway - max_hops=1
[    1.194451] Registering SWP/SWPB emulation handler
[    1.237695] of-fpga-region fpga-region: FPGA Region probed
[    1.243980] of_cfs_init
[    1.246562] of_cfs_init: OK
[    1.249742] clk: Disabling unused clocks
[    1.254762] ALSA device list:
[    1.257730]   No soundcards found.
[    1.275090] EXT4-fs (mmcblk0p2): INFO: recovery required on readonly filesystem
[    1.282624] EXT4-fs (mmcblk0p2): write access will be enabled during recovery
[    1.637594] EXT4-fs (mmcblk0p2): orphan cleanup on readonly fs
[    1.652851] EXT4-fs (mmcblk0p2): recovery complete
[    1.660868] EXT4-fs (mmcblk0p2): mounted filesystem a329883e-f38a-4fd5-97bb-37ba3557afab ro with ordered data mode. Quota mode: disabled.
[    1.673357] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    1.681596] devtmpfs: mounted
[    1.693240] Freeing unused kernel image (initmem) memory: 1024K
[    1.699590] Run /sbin/init as init process
INIT: version 3.04 booting
[    2.551046] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
Starting udev
[    2.939775] udevd[84]: starting version 3.2.14
[    3.971337] random: crng init done
[    4.032502] udevd[85]: starting eudev-3.2.14
[    5.783870] EXT4-fs (mmcblk0p2): re-mounted a329883e-f38a-4fd5-97bb-37ba3557afab r/w. Quota mode: disabled.
hwclock: ioctl(RTC_RD_NAME) to /dev/rtc0 to read the time failed: Invalid argument
Fri Mar  9 12:37:30 UTC 2018
INIT: Entering runlevel: 5
Configuring network interfaces... udhcpc: started, v1.36.1
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: no lease, failing
ifup: failed to bring up eth0
Starting system message bus: dbus.
Starting Dropbear SSH server: dropbear.
Starting openvpn:.
Starting rpcbind daemon...done.
Starting atd: OK
egrep: warning: egrep is obsolescent; using grep -E
starting DNS forwarder and DHCP server: dnsmasq... done.
Starting internet superserver: inetd.
Starting ntpd: done
Starting system log daemon...0
Mar  9 12:37:23 bora kernel: L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
Mar  9 12:37:23 bora kernel: L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
Mar  9 12:37:23 bora kernel: armv7-pmu f8891000.pmu: hw perfevents: no interrupt-affinity property, guessing.
Mar  9 12:37:23 bora kernel: spi-nor spi0.0: found s25fl256s1, expected s25fl128s1
Mar  9 12:37:24 bora kernel: rtc-ds3232 0-0068: oscillator discontinuity flagged, time unreliable
Mar  9 12:37:24 bora kernel: rtc-ds3232 0-0068: hctosys: unable to read the hardware clock
Mar  9 12:37:25 bora kernel: FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
Starting internet superserver: xinetd.
Starting Postfix...postfix/postfix-script: starting the Postfix mail system
 Successful
Starting Lighttpd Web Server: lighttpd.
* starting FTP Server: vsftpd... done.
Starting crond: OK
Starting tcf-agent: OK

********************************************************************************************
The PetaLinux source code and images provided/generated are for demonstration purposes only.
Please refer to https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/2741928025/Moving+from+PetaLinux+to+Production+Deployment
for more details.
********************************************************************************************
PetaLinux 2024.2+release-S11061705 bora ttyPS0

bora login: root (automatic login)

root@bora:~#
root@bora:~# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::1c24:29ff:fe75:4631  prefixlen 64  scopeid 0x20<link>
        ether 1e:24:29:75:46:31  txqueuelen 1000  (Ethernet)
        RX packets 217  bytes 12312 (12.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 21  bytes 2002 (1.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 42  base 0xb000

root@bora:~# ifconfig eth1
eth1: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 00:50:c2:1e:af:cd  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 43  base 0xc000

root@bora:~#

Bootlog for BoraX

U-Boot 2024.01-desk-xz7-l-2.0.0 (Jun 10 2025 - 15:58:48 +0000)

CPU:   Zynq 7z030
Silicon: v3.1
Model: Bora
DRAM:  ECC disabled 1 GiB
Core:  28 devices, 18 uclasses, devicetree: board
Flash: 0 Bytes
NAND:  0 MiB
MMC:   mmc@e0100000: 0
Loading Environment from FAT... Unable to read "uboot.env" from mmc0:1...
In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
SOM ConfigID#: 00000006
SOM UniqueID#: 3a12db08:32291263
CB ConfigID#: ffffffff
CB UniqueID#: ffffffff:ffffffff
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
ethaddr#: 00:50:c2:1e:af:ec
Net:
ZYNQ GEM: e000c000, mdio bus e000c000, phyaddr 6, interface rgmii-id

ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 7, interface rgmii-id
eth0: ethernet@e000b000, eth1: ethernet@e000c000
Hit ENTER within 2 seconds to stop autoboot
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
3830 bytes read in 13 ms (287.1 KiB/s)
## Executing script at 03000000
Trying to load boot images from mmc0
6251507 bytes read in 358 ms (16.7 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf-system-top.dtb' configuration
   Verifying Hash Integrity ... OK
   Trying 'kernel-1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x100000ec
     Data Size:    6228192 Bytes = 5.9 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x00200000
     Entry Point:  0x00200000
     Hash algo:    sha256
     Hash value:   7449b0f03f22fedb3e928e4fa02b3c8a74d6714780d21cf72b84ba3c052291a7
   Verifying Hash Integrity ... sha256+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf-system-top.dtb' configuration
   Verifying Hash Integrity ... OK
   Trying 'fdt-system-top.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x105f0ad8
     Data Size:    21389 Bytes = 20.9 KiB
     Architecture: ARM
     Hash algo:    sha256
     Hash value:   cc5137f899f81f1cde2b997223f202d0a71a62d3747cd8db5558cdbda97980bc
   Verifying Hash Integrity ... sha256+ OK
   Booting using the fdt blob at 0x105f0ad8
Working FDT set to 105f0ad8
   Loading Kernel Image
   Loading Device Tree to 2fff7000, end 2ffff38c ... OK
Working FDT set to 2fff7000

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.6.40-xilinx-g2b7f6f70a62a (oe-user@oe-host) (arm-xilinx-linux-gnueabi-gcc (GCC) 13.3.0, GNU ld (GNU Binutils) 2.42.0.20240716) #1 SMP PREEMPT Tue Oct 29 11:52:30 UTC 2024
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Bora
[    0.000000] earlycon: cdns0 at MMIO 0xe0001000 (options '115200n8')
[    0.000000] printk: bootconsole [cdns0] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 16 MiB at 0x3f000000 on node -1
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000002fffffff]
[    0.000000]   HighMem  [mem 0x0000000030000000-0x000000003fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000] percpu: Embedded 16 pages/cpu s35988 r8192 d21356 u65536
[    0.000000] Kernel command line: console=ttyPS0,115200 earlycon root=/dev/mmcblk0p2 ro rootwait
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 260608
[    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[    0.000000] Memory: 1008176K/1048576K available (9216K kernel code, 828K rwdata, 2720K rodata, 1024K init, 171K bss, 24016K reserved, 16384K cma-reserved, 245760K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] ftrace: allocating 37947 entries in 112 pages
[    0.000000] ftrace: allocated 112 pages with 3 groups
[    0.000000] trace event string verifier disabled
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000]  Rude variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] efuse mapped to (ptrval)
[    0.000000] slcr mapped to (ptrval)
[    0.000000] GIC physical location is 0xf8f01000
[    0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
[    0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
[    0.000000] L2C-310 erratum 769419 enabled
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[    0.000000] L2C-310 ID prefetch enabled, offset 1 lines
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[    0.000000] L2C-310 cache controller enabled, 8 ways, 512 kB
[    0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] zynq_clock_init: clkc starts at (ptrval)
[    0.000000] Zynq clock init
[    0.000001] sched_clock: 64 bits at 167MHz, resolution 6ns, wraps every 4398046511103ns
[    0.005438] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x26703d7dd8, max_idle_ns: 440795208065 ns
[    0.016501] Switching to timer-based delay loop, resolution 6ns
[    0.022909] Console: colour dummy device 80x30
[    0.026865] Calibrating delay loop (skipped), value calculated using timer frequency.. 333.33 BogoMIPS (lpj=1666666)
[    0.037402] CPU: Testing write buffer coherency: ok
[    0.042233] CPU0: Spectre v2: using BPIALL workaround
[    0.047296] pid_max: default: 32768 minimum: 301
[    0.052063] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.059222] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.067994] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.074047] RCU Tasks: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1.
[    0.079791] RCU Tasks Rude: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1.
[    0.087353] Setting up static identity map for 0x100000 - 0x100060
[    0.093562] rcu: Hierarchical SRCU implementation.
[    0.098087] rcu:     Max phase no-delay instances is 1000.
[    0.104589] smp: Bringing up secondary CPUs ...
[    0.108912] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.108939] CPU1: Spectre v2: using BPIALL workaround
[    0.118737] smp: Brought up 1 node, 2 CPUs
[    0.122672] SMP: Total of 2 processors activated (666.66 BogoMIPS).
[    0.128885] CPU: All CPU(s) started in SVC mode.
[    0.134354] devtmpfs: initialized
[    0.143395] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[    0.145755] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.155341] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.163094] pinctrl core: initialized pinctrl subsystem
[    0.169415] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.175546] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.181700] thermal_sys: Registered thermal governor 'step_wise'
[    0.181797] cpuidle: using governor ladder
[    0.190210] cpuidle: using governor menu
[    0.199450] platform axi: Fixed dependency cycle(s) with /axi/interrupt-controller@f8f01000
[    0.208378] platform replicator: Fixed dependency cycle(s) with /axi/etb@f8801000
[    0.210369] amba f8801000.etb: Fixed dependency cycle(s) with /replicator
[    0.217415] platform replicator: Fixed dependency cycle(s) with /axi/tpiu@f8803000
[    0.224765] amba f8803000.tpiu: Fixed dependency cycle(s) with /replicator
[    0.231839] platform replicator: Fixed dependency cycle(s) with /axi/funnel@f8804000
[    0.239352] amba f8804000.funnel: Fixed dependency cycle(s) with /axi/ptm@f889d000
[    0.246814] amba f8804000.funnel: Fixed dependency cycle(s) with /axi/ptm@f889c000
[    0.254379] amba f8804000.funnel: Fixed dependency cycle(s) with /replicator
[    0.261758] amba f8804000.funnel: Fixed dependency cycle(s) with /axi/ptm@f889c000
[    0.269108] amba f889c000.ptm: Fixed dependency cycle(s) with /axi/funnel@f8804000
[    0.276900] amba f8804000.funnel: Fixed dependency cycle(s) with /axi/ptm@f889d000
[    0.284253] amba f889d000.ptm: Fixed dependency cycle(s) with /axi/funnel@f8804000
[    0.292636] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[    0.299684] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.306834] e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 26, base_baud = 3125000) is a xuartps
[    0.316018] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 27, base_baud = 3125000) is a xuartps
[    0.329314] printk: console [ttyPS0] enabled
[    0.329314] printk: console [ttyPS0] enabled
[    0.333627] printk: bootconsole [cdns0] disabled
[    0.333627] printk: bootconsole [cdns0] disabled
[    0.354260] SCSI subsystem initialized
[    0.358369] usbcore: registered new interface driver usbfs
[    0.363988] usbcore: registered new interface driver hub
[    0.369375] usbcore: registered new device driver usb
[    0.374797] mc: Linux media interface: v0.10
[    0.379069] videodev: Linux video capture interface: v2.00
[    0.384656] pps_core: LinuxPPS API ver. 1 registered
[    0.389619] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.398790] PTP clock support registered
[    0.402795] EDAC MC: Ver: 3.0.0
[    0.406711] FPGA manager framework
[    0.410449] Advanced Linux Sound Architecture Driver Initialized.
[    0.417919] vgaarb: loaded
[    0.421198] clocksource: Switched to clocksource arm_global_timer
[    0.442283] NET: Registered PF_INET protocol family
[    0.447511] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.457344] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.465860] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.473723] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.481556] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
[    0.489067] TCP: Hash tables configured (established 8192 bind 8192)
[    0.495575] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.502258] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.509601] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.516007] RPC: Registered named UNIX socket transport module.
[    0.521930] RPC: Registered udp transport module.
[    0.526664] RPC: Registered tcp transport module.
[    0.531364] RPC: Registered tcp-with-tls transport module.
[    0.536866] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.543336] PCI: CLS 0 bytes, default 64
[    0.547806] armv7-pmu f8891000.pmu: hw perfevents: no interrupt-affinity property, guessing.
[    0.556721] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
[    0.566916] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[    0.574425] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.581908] bounce: pool size: 64 pages
[    0.585861] io scheduler mq-deadline registered
[    0.590391] io scheduler kyber registered
[    0.594483] io scheduler bfq registered
[    0.599548] zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
[    0.609960] dma-pl330 f8003000.dma-controller: Loaded driver for PL330 DMAC-241330
[    0.617582] dma-pl330 f8003000.dma-controller:       DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
[    0.640997] brd: module loaded
[    0.653360] loop: module loaded
[    0.659045] spi-nor spi0.0: s25fl128s1 (16384 Kbytes)
[    0.664326] 1 fixed-partitions partitions found on MTD device spi0.0
[    0.670688] Creating 1 MTD partitions on "spi0.0":
[    0.675519] 0x000000000000-0x000002000000 : "qspi-boot"
[    0.680746] mtd: partition "qspi-boot" extends beyond the end of device "spi0.0" -- size truncated to 0x1000000
[    0.696829] CAN device driver interface
[    0.822709] macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 42 (00:50:c2:1e:af:ec)
[    0.952996] macb e000c000.ethernet eth1: Cadence GEM rev 0x00020118 at 0xe000c000 irq 43 (00:50:c2:1e:af:cd)
[    0.963242] e1000e: Intel(R) PRO/1000 Network Driver
[    0.968203] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    0.975244] usbcore: registered new interface driver usb-storage
[    0.982513] ULPI transceiver vendor/product ID 0x0424/0x0006
[    0.988238] Found SMSC USB331x ULPI transceiver.
[    0.992890] ULPI integrity check: passed.
[    0.997950] ci_hdrc ci_hdrc.0: EHCI Host Controller
[    1.000023] i2c_dev: i2c /dev entries driver
[    1.002919] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
[    1.007255] cdns-i2c e0004000.i2c: can't get pinctrl, bus recovery not supported
[    1.023360] rtc-ds3232 0-0068: oscillator discontinuity flagged, time unreliable
[    1.031429] hwmon hwmon0: temp1_input not attached to any thermal zone
[    1.039723] rtc-ds3232 0-0068: registered as rtc0
[    1.042588] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
[    1.050098] rtc-ds3232 0-0068: setting system clock to 2025-06-12T18:20:01 UTC (1749752401)
[    1.050166] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.06
[    1.058733] cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 45
[    1.066786] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.066802] usb usb1: Product: EHCI Host Controller
[    1.084882] usb usb1: Manufacturer: Linux 6.6.40-xilinx-g2b7f6f70a62a ehci_hcd
[    1.092128] usb usb1: SerialNumber: ci_hdrc.0
[    1.097485] hub 1-0:1.0: USB hub found
[    1.098053] cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s
[    1.101311] hub 1-0:1.0: 1 port detected
[    1.108941] EDAC MC: ECC not enabled
[    1.117002] cpufreq: cpufreq_online: CPU0: Running at unlisted initial frequency: 666666 KHz, changing to: 666667 KHz
[    1.128006] Xilinx Zynq CpuIdle Driver started
[    1.133850] sdhci: Secure Digital Host Controller Interface driver
[    1.140051] sdhci: Copyright(c) Pierre Ossman
[    1.144545] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.151343] ledtrig-cpu: registered to indicate activity on CPUs
[    1.158972] clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 1075096770 ns
[    1.168454] timer #0 at (ptrval), irq=48
[    1.173501] usbcore: registered new interface driver usbhid
[    1.179094] usbhid: USB HID core driver
[    1.185350] mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA
[    1.195877] fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
[    1.204162] NET: Registered PF_INET6 protocol family
[    1.211094] Segment Routing with IPv6
[    1.214945] In-situ OAM (IOAM) with IPv6
[    1.218989] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.225968] NET: Registered PF_PACKET protocol family
[    1.229176] mmc0: new high speed SDHC card at address aaaa
[    1.231028] can: controller area network core
[    1.237396] mmcblk0: mmc0:aaaa SA16G 14.8 GiB
[    1.240980] NET: Registered PF_CAN protocol family
[    1.249460]  mmcblk0: p1 p2
[    1.250088] can: raw protocol
[    1.255866] can: broadcast manager protocol
[    1.260063] can: netlink gateway - max_hops=1
[    1.264950] Registering SWP/SWPB emulation handler
[    1.307980] of-fpga-region fpga-region: FPGA Region probed
[    1.314301] of_cfs_init
[    1.316883] of_cfs_init: OK
[    1.320049] clk: Disabling unused clocks
[    1.325125] ALSA device list:
[    1.328098]   No soundcards found.
[    1.346349] EXT4-fs (mmcblk0p2): INFO: recovery required on readonly filesystem
[    1.353886] EXT4-fs (mmcblk0p2): write access will be enabled during recovery
[    1.618327] EXT4-fs (mmcblk0p2): orphan cleanup on readonly fs
[    1.629163] EXT4-fs (mmcblk0p2): recovery complete
[    1.641631] EXT4-fs (mmcblk0p2): mounted filesystem b2caed79-741a-40e4-a495-b7c42f60f5a3 ro with ordered data mode. Quota mode: disabled.
[    1.654113] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    1.662848] devtmpfs: mounted
[    1.674451] Freeing unused kernel image (initmem) memory: 1024K
[    1.680815] Run /sbin/init as init process
INIT: [    1.801307] usb 1-1: new high-speed USB device number 2 using ci_hdrc
version 3.04 booting
[    2.023182] usb 1-1: New USB device found, idVendor=0781, idProduct=5591, bcdDevice= 1.00
[    2.031464] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.038677] usb 1-1: Product:  SanDisk 3.2Gen1
[    2.043187] usb 1-1: Manufacturer:  USB
[    2.047026] usb 1-1: SerialNumber: 0101b0d08c0c4c5aedf60dcd648c6bd12d3533c7649286ed559cb5bc722519b8af3b000000000000000000002c6b065a008c180091558107a1aa3e26
[    2.062243] usb-storage 1-1:1.0: USB Mass Storage device detected
[    2.071727] scsi host0: usb-storage 1-1:1.0
[    2.603066] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
Starting udev
[    2.980408] udevd[86]: starting version 3.2.14
[    3.061459] usb 1-1: Get one byte OTG status failed
[    3.143232] scsi 0:0:0:0: Direct-Access      USB      SanDisk 3.2Gen1 1.00 PQ: 0 ANSI: 6
[    3.152568] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    3.166712] sd 0:0:0:0: [sda] 240353280 512-byte logical blocks: (123 GB/115 GiB)
[    3.174953] sd 0:0:0:0: [sda] Write Protect is off
[    3.180454] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[    3.196975]  sda: sda1
[    3.199790] sd 0:0:0:0: [sda] Attached SCSI removable disk
[    4.271228] random: crng init done
[    4.325617] udevd[87]: starting eudev-3.2.14
[    6.436475] FAT-fs (sda1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[    7.184079] EXT4-fs (mmcblk0p2): re-mounted b2caed79-741a-40e4-a495-b7c42f60f5a3 r/w. Quota mode: disabled.
INIT: Entering runlevel: 5
Configuring network interfaces... udhcpc: started, v1.36.1
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: no lease, failing
ifup: failed to bring up eth0
Starting system message bus: dbus.
Starting Dropbear SSH server: dropbear.
Starting openvpn:.
Starting rpcbind daemon...done.
Starting atd: OK
egrep: warning: egrep is obsolescent; using grep -E
starting DNS forwarder and DHCP server: dnsmasq... done.
Starting internet superserver: inetd.
Starting ntpd: done
Starting system log daemon...0
Jun 12 18:19:59 borax kernel: L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
Jun 12 18:19:59 borax kernel: L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
Jun 12 18:19:59 borax kernel: armv7-pmu f8891000.pmu: hw perfevents: no interrupt-affinity property, guessing.
Jun 12 18:19:59 borax kernel: mtd: partition "qspi-boot" extends beyond the end of device "spi0.0" -- size truncated to 0x1000000
Jun 12 18:20:00 borax kernel: rtc-ds3232 0-0068: oscillator discontinuity flagged, time unreliable
Jun 12 18:20:01 borax kernel: FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
Jun 12 18:20:02 borax kernel: usb 1-1: Get one byte OTG status failed
Jun 12 18:20:05 borax kernel: FAT-fs (sda1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
Starting internet superserver: xinetd.
Starting Postfix...postfix/postfix-script: starting the Postfix mail system
 Successful
Starting Lighttpd Web Server: lighttpd.
* starting FTP Server: vsftpd... done.
Starting crond: OK
Starting tcf-agent: OK

********************************************************************************************
The PetaLinux source code and images provided/generated are for demonstration purposes only.
Please refer to https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/2741928025/Moving+from+PetaLinux+to+Production+Deployment
for more details.
********************************************************************************************
PetaLinux 2024.2+release-S11061705 borax ttyPS0

borax login: root (automatic login)

root@borax:~# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::250:c2ff:fe1e:afec  prefixlen 64  scopeid 0x20<link>
        ether 00:50:c2:1e:af:ec  txqueuelen 1000  (Ethernet)
        RX packets 305  bytes 17340 (16.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 21  bytes 2002 (1.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 42  base 0xb000

root@borax:~# ifconfig eth1
eth1: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 00:50:c2:1e:af:cd  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 43  base 0xc000

root@borax:~#

Performance tests[edit | edit source]

To test the performances of the second Ethernet interface iperf3 based tests have been executed.

After boot your board, user need to update network configuration file, for more info see dedicate page, below there is an example

root@bora:~# cat /etc/network/interfaces
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
 address 192.168.0.89
 netmask 255.255.255.0
 gateway 192.168.0.1

auto eth1
iface eth1 inet static
 address 192.168.11.89
 netmask 255.255.255.0
 gateway 192.168.11.1
root@bora:~#
root@bora:~#

On the linux host machine user need to apply a new ethernet connection with correct subnet, for example sudo ifconfig ethX:0 192.168.11.99 and perform iperf3 application in server mode:

bash# iperf3 -s

Here are the results of the test on the two Ethernet interfaces:

root@bora:~# iperf3 -c 192.168.0.99 -f m -V
iperf 3.16
Linux bora 6.6.40-xilinx-g2b7f6f70a62a #1 SMP PREEMPT Tue Oct 29 11:52:30 UTC 2024 armv7l
Control connection MSS 1448
Time: Fri, 09 Mar 2018 12:41:19 GMT
Connecting to host 192.168.0.99, port 5201
      Cookie: gisqks6eqj3zifjbrs7ufnthc2rzayfmspcl
      TCP MSS: 1448 (default)
[  5] local 192.168.0.89 port 40976 connected to 192.168.0.99 port 5201
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test, tos 0
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  65.1 MBytes   546 Mbits/sec    0    194 KBytes
[  5]   1.00-2.00   sec  70.2 MBytes   589 Mbits/sec    0    211 KBytes
[  5]   2.00-3.00   sec  49.1 MBytes   412 Mbits/sec    0    221 KBytes
[  5]   3.00-4.00   sec  72.9 MBytes   612 Mbits/sec    0    221 KBytes
[  5]   4.00-5.00   sec  52.5 MBytes   440 Mbits/sec    0    221 KBytes
[  5]   5.00-6.00   sec  68.0 MBytes   571 Mbits/sec    0    221 KBytes
[  5]   6.00-7.00   sec  64.5 MBytes   541 Mbits/sec    0    221 KBytes
[  5]   7.00-8.00   sec  61.9 MBytes   519 Mbits/sec    0    221 KBytes
[  5]   8.00-9.04   sec  0.00 Bytes  0.00 Mbits/sec    0    221 KBytes
[  5]   9.04-10.01  sec  59.1 MBytes   512 Mbits/sec    0    659 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.01  sec   752 MBytes   631 Mbits/sec    0             sender
[  5]   0.00-10.05  sec   752 MBytes   628 Mbits/sec                  receiver
CPU Utilization: local/sender 100.1% (0.8%u/99.3%s), remote/receiver 0.0% (0.0%u/0.0%s)
snd_tcp_congestion cubic
rcv_tcp_congestion cubic

iperf Done.
root@bora:~#
root@bora:~# iperf3 -c 192.168.11.99 -f m -V
iperf 3.16
Linux bora 6.6.40-xilinx-g2b7f6f70a62a #1 SMP PREEMPT Tue Oct 29 11:52:30 UTC 2024 armv7l
Control connection MSS 1448
Time: Fri, 09 Mar 2018 12:42:59 GMT
Connecting to host 192.168.11.99, port 5201
      Cookie: z67ayjsrmhor6ixys76c5q2tievrs2mmytyg
      TCP MSS: 1448 (default)
[  5] local 192.168.11.89 port 60218 connected to 192.168.11.99 port 5201
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test, tos 0
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  64.5 MBytes   540 Mbits/sec    0    399 KBytes
[  5]   1.00-2.00   sec  65.8 MBytes   552 Mbits/sec    0    399 KBytes
[  5]   2.00-3.00   sec  66.9 MBytes   561 Mbits/sec    0    399 KBytes
[  5]   3.00-4.00   sec  12.9 MBytes   108 Mbits/sec    0    399 KBytes
[  5]   4.00-5.00   sec  64.4 MBytes   540 Mbits/sec    0    399 KBytes
[  5]   5.00-6.00   sec  24.1 MBytes   202 Mbits/sec    0    399 KBytes
[  5]   6.00-7.11   sec  0.00 Bytes  0.00 Mbits/sec    0    399 KBytes
[  5]   7.11-10.23  sec  0.00 Bytes  0.00 Mbits/sec    0    399 KBytes
[  5]  10.23-11.62  sec  0.00 Bytes  0.00 Mbits/sec    0    399 KBytes
[  5]  11.62-13.36  sec   640 KBytes  3.01 Mbits/sec    0    399 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-13.36  sec   976 MBytes   613 Mbits/sec    0             sender
[  5]   0.00-13.40  sec   976 MBytes   611 Mbits/sec                  receiver
CPU Utilization: local/sender 101.5% (0.3%u/101.2%s), remote/receiver 36.7% (2.1%u/34.6%s)
snd_tcp_congestion cubic
rcv_tcp_congestion cubic

iperf Done.
root@bora:~#