Re: The state of Xenomai 4 on Xilinx Zynq-7000 (or ARM32 in general)
Jan Kiszka <[email protected]>
| Newsgroups | dev.linux.lists.xenomai |
|---|---|
| Message-ID | <[email protected]> |
On 17.08.26 12:11, Gerte Hoogewerf wrote: > Hi Philippe, > > Thanks for the reply. > > I built and ran the kernel with said options. It's probably not > conclusive, since the tests passed. With these options, the kernel > booted all the way into userland (because CONFIG_EVL=n). > > See output below. > > [ 0.000000] Booting Linux on physical CPU 0x0 > [ 0.000000] Linux version 6.18.29-01153-g1e9f8ec43dcd > (ghoogewerf@NLKRLTF0FQR04) (arm-none-linux-gnueabihf-gcc (LMI3D G++ > 11.4.1-p1) 11.4.1 20240321, GNU ld (LMI3D G++ 11.4.1-p1) 2.40) #4 SMP > PREEMPT EVL Mon Aug 17 11:49:17 CEST 2026 > [ 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: Xilinx Zynq > [ 0.000000] Memory policy: Data cache writealloc > [ 0.000000] cma: Reserved 750 MiB at 0x11000000 > [ 0.000000] Zone ranges: > [ 0.000000] Normal [mem 0x0000000000000000-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] OF: reserved mem: Reserved memory: No reserved-memory > node in the DT > [ 0.000000] percpu: Embedded 12 pages/cpu s19468 r8192 d21492 u49152 > [ 0.000000] Kernel command line: console=ttyPS0,115200 cma=750M > l2x0_write_through=1 > [ 0.000000] Unknown kernel command line parameters > "l2x0_write_through=1", will be passed to user space. > [ 0.000000] printk: log buffer data + meta data: 16384 + 51200 = 67584 bytes > [ 0.000000] Dentry cache hash table entries: 32768 (order: 5, > 131072 bytes, linear) > [ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 > bytes, linear) > [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 262144 > [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off > [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 > [ 0.000000] rcu: Preemptible hierarchical RCU implementation. > [ 0.000000] rcu: RCU event tracing is enabled. > [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay > is 100 jiffies. > [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 > [ 0.000000] slcr mapped to (ptrval) > [ 0.000000] L2C: platform provided aux values match the hardware, > so have no effect. Please remove them. > [ 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 D prefetch enabled, offset 9 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 0x56760001 > [ 0.000000] IRQ pipeline enabled > [ 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.000000] ps_clk frequency not specified, using 33 MHz. > [ 0.000001] sched_clock: 64 bits at 500MHz, resolution 2ns, wraps > every 4398046511103ns > [ 0.000018] clocksource: arm_global_timer: freq: 499999995 Hz, > mask: 0xffffffffffffffff max_cycles: 0xe6a171a037, max_idle_ns: > 881590485102 ns > [ 0.000043] Switching to timer-based delay loop, resolution 2ns > [ 0.000325] Console: colour dummy device 80x30 > [ 0.000351] Calibrating delay loop (skipped), value calculated > using timer frequency.. 999.99 BogoMIPS (lpj=499999) > [ 0.000361] CPU: Testing write buffer coherency: ok > [ 0.000390] CPU0: Spectre v2: using BPIALL workaround > [ 0.000395] pid_max: default: 32768 minimum: 301 > [ 0.000541] Mount-cache hash table entries: 1024 (order: 0, 4096 > bytes, linear) > [ 0.000552] Mountpoint-cache hash table entries: 1024 (order: 0, > 4096 bytes, linear) > [ 0.001231] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 > [ 0.001262] cacheinfo: Unable to detect cache hierarchy for CPU 0 > [ 0.002306] Setting up static identity map for 0x100000 - 0x10003c > [ 0.002473] rcu: Hierarchical SRCU implementation. > [ 0.002478] rcu: Max phase no-delay instances is 400. > [ 0.002999] smp: Bringing up secondary CPUs ... > [ 0.003680] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 > [ 0.003731] CPU1: Spectre v2: using BPIALL workaround > [ 0.003844] smp: Brought up 1 node, 2 CPUs > [ 0.003854] SMP: Total of 2 processors activated (1999.99 BogoMIPS). > [ 0.003862] CPU: All CPU(s) started in SVC mode. > [ 0.004053] Memory: 256456K/1048576K available (6144K kernel code, > 224K rwdata, 1456K rodata, 1024K init, 84K bss, 20992K reserved, > 770048K cma-reserved) > [ 0.004557] devtmpfs: initialized > [ 0.008386] VFP support v0.3: implementor 41 architecture 3 part 30 > variant 9 rev 4 > [ 0.008531] clocksource: jiffies: freq: 0 Hz, mask: 0xffffffff > max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns > [ 0.008552] posixtimers hash table entries: 1024 (order: 1, 8192 > bytes, linear) > [ 0.008608] futex hash table entries: 512 (32768 bytes on 1 NUMA > nodes, total 32 KiB, linear). > [ 0.019015] pinctrl core: initialized pinctrl subsystem > [ 0.019919] NET: Registered PF_NETLINK/PF_ROUTE protocol family > [ 0.021704] DMA: preallocated 256 KiB pool for atomic coherent allocations > [ 0.022681] thermal_sys: Registered thermal governor 'step_wise' > [ 0.024823] /axi/etb@f8801000: Fixed dependency cycle(s) with /replicator > [ 0.024940] /axi/tpiu@f8803000: Fixed dependency cycle(s) with /replicator > [ 0.024967] /axi/funnel@f8804000: Fixed dependency cycle(s) with > /axi/ptm@f889d000 > [ 0.024987] /axi/funnel@f8804000: Fixed dependency cycle(s) with > /axi/ptm@f889c000 > [ 0.025008] /axi/funnel@f8804000: Fixed dependency cycle(s) with /replicator > [ 0.025047] /axi/ptm@f889c000: Fixed dependency cycle(s) with > /axi/funnel@f8804000 > [ 0.025079] /axi/ptm@f889d000: Fixed dependency cycle(s) with > /axi/funnel@f8804000 > [ 0.027727] /replicator: Fixed dependency cycle(s) with /axi/etb@f8801000 > [ 0.027820] /axi/etb@f8801000: Fixed dependency cycle(s) with /replicator > [ 0.028053] /replicator: Fixed dependency cycle(s) with /axi/tpiu@f8803000 > [ 0.028162] /axi/tpiu@f8803000: Fixed dependency cycle(s) with /replicator > [ 0.028391] /replicator: Fixed dependency cycle(s) with /axi/funnel@f8804000 > [ 0.028797] /axi/funnel@f8804000: Fixed dependency cycle(s) with > /axi/ptm@f889d000 > [ 0.028822] /axi/funnel@f8804000: Fixed dependency cycle(s) with > /axi/ptm@f889c000 > [ 0.028842] /axi/funnel@f8804000: Fixed dependency cycle(s) with /replicator > [ 0.029084] /axi/funnel@f8804000: Fixed dependency cycle(s) with > /axi/ptm@f889c000 > [ 0.029196] /axi/ptm@f889c000: Fixed dependency cycle(s) with > /axi/funnel@f8804000 > [ 0.029422] /axi/funnel@f8804000: Fixed dependency cycle(s) with > /axi/ptm@f889d000 > [ 0.029509] /axi/ptm@f889d000: Fixed dependency cycle(s) with > /axi/funnel@f8804000 > [ 0.030334] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 > watchpoint registers. > [ 0.030345] hw-breakpoint: maximum watchpoint size is 4 bytes. > [ 0.030980] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 27, > base_baud = 6249999) is a xuartps > [ 0.031040] printk: legacy console [ttyPS0] enabled > [ 0.656472] pps_core: LinuxPPS API ver. 1 registered > [ 0.661475] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 > Rodolfo Giometti <[email protected]> > [ 0.670642] PTP clock support registered > [ 0.674730] FPGA manager framework > [ 0.678947] vgaarb: loaded > [ 0.681809] clocksource: Switched to clocksource arm_global_timer > [ 0.696109] NET: Registered PF_INET protocol family > [ 0.701211] IP idents hash table entries: 4096 (order: 3, 32768 > bytes, linear) > [ 0.709073] tcp_listen_portaddr_hash hash table entries: 512 > (order: 0, 4096 bytes, linear) > [ 0.717504] Table-perturb hash table entries: 65536 (order: 6, > 262144 bytes, linear) > [ 0.725305] TCP established hash table entries: 2048 (order: 1, > 8192 bytes, linear) > [ 0.733001] TCP bind hash table entries: 2048 (order: 3, 32768 bytes, linear) > [ 0.740209] TCP: Hash tables configured (established 2048 bind 2048) > [ 0.746644] UDP hash table entries: 256 (order: 2, 14336 bytes, linear) > [ 0.753308] UDP-Lite hash table entries: 256 (order: 2, 14336 bytes, linear) > [ 0.760525] NET: Registered PF_UNIX/PF_LOCAL protocol family > [ 0.766234] PCI: CLS 0 bytes, default 64 > [ 0.770437] Trying to unpack rootfs image as initramfs... > [ 0.773208] workingset: timestamp_bits=30 max_order=18 bucket_order=0 > [ 0.782489] squashfs: version 4.0 (2009/01/31) Phillip Lougher > [ 0.790608] Key type cifs.idmap registered > [ 0.794984] io scheduler mq-deadline registered > [ 0.799550] io scheduler kyber registered > [ 0.804360] zynq-pinctrl 700.pinctrl: zynq pinctrl initialized > [ 0.815734] dma-pl330 f8003000.dma-controller: Loaded driver for > PL330 DMAC-241330 > [ 0.823414] dma-pl330 f8003000.dma-controller: > DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16 > [ 0.823926] Freeing initrd memory: 868K > [ 0.844386] brd: module loaded > [ 0.852204] loop: module loaded > [ 1.875058] hwmon hwmon0: temp1_input not attached to any thermal zone > [ 1.891204] macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 > at 0xe000b000 irq 38 (88:20:12:f4:c1:e5) > [ 1.901632] i2c_dev: i2c /dev entries driver > [ 1.906095] cdns-i2c e0004000.i2c: can't get pinctrl, bus recovery > not supported > [ 1.913947] cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 39 > [ 1.920565] clocksource: ttc_clocksource: freq: 81380 Hz, mask: > 0xffff max_cycles: 0xffff, max_idle_ns: 358356783 ns > [ 1.931176] timer #0 at (ptrval), irq=40 > [ 1.935478] armv7-pmu f8891000.pmu: hw perfevents: no > interrupt-affinity property, guessing. > [ 1.944210] hw perfevents: enabled with armv7_cortex_a9 PMU driver, > 7 (8000003f) counters available > [ 1.954162] NET: Registered PF_INET6 protocol family > [ 1.960216] Segment Routing with IPv6 > [ 1.963951] In-situ OAM (IOAM) with IPv6 > [ 1.967951] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver > [ 1.974456] NET: Registered PF_PACKET protocol family > [ 1.979561] Key type dns_resolver registered > [ 1.983957] Registering SWP/SWPB emulation handler > [ 1.995551] Starting IRQ pipeline tests... > [ 1.995564] IRQ pipeline: high-priority torture stage added. > [ 2.005421] irq_pipeline-torture: CPU1 initiates stop_machine() > [ 2.011360] irq_pipeline-torture: CPU0 responds to stop_machine() > [ 2.011375] irq_pipeline-torture: CPU1 calls function on remote(s) > [ 2.023753] irq_pipeline-torture: CPU0 handles remote function call > [ 2.023879] CPU1: proxy tick device registered (499.99MHz) > [ 2.030068] CPU0: proxy tick device registered (499.99MHz) > [ 2.041026] irq_pipeline-torture: CPU1: irq_work handled > [ 2.046338] irq_pipeline-torture: CPU1: in-band->in-band irq_work > trigger works > [ 2.053645] irq_pipeline-torture: CPU1: stage escalation request works > [ 2.053651] irq_pipeline-torture: CPU1: irq_work handled > [ 2.065475] irq_pipeline-torture: CPU1: oob->in-band irq_work trigger works > [ 3.121838] CPU1: proxy tick device unregistered > [ 3.121841] CPU0: proxy tick device unregistered > [ 3.131124] IRQ pipeline: torture stage removed. > [ 3.135746] IRQ pipeline tests OK. > [ 3.143513] clk: Disabling unused clocks > [ 3.152057] Freeing unused kernel image (initmem) memory: 1024K > [ 3.158189] Run /init as init process > > --- > > /bin/sh: can't access tty; job control turned off > / # uname -a > Linux (none) 6.18.29-01153-g1e9f8ec43dcd #4 SMP PREEMPT EVL Mon Aug 17 > 11:49:17 CEST 2026 armv7l armv7l armv7l GNU/Linux > / # zcat /proc/config.gz 2>/dev/null | grep -E "^#? ?CONFIG_(DEBUG_IRQ_PIPELINE| > IRQ_PIPELINE_TORTURE_TEST|DEBUG_DOVETAIL|EVL|SMP)(=| is not set)" > CONFIG_SMP=y > # CONFIG_EVL is not set > CONFIG_DEBUG_IRQ_PIPELINE=y > CONFIG_IRQ_PIPELINE_TORTURE_TEST=y > CONFIG_DEBUG_DOVETAIL=y > / # > > --- > > On Mon, Aug 17, 2026 at 11:13 AM Philippe Gerum <[email protected]> wrote: >> Regarding the issue you are observing, it suspect this is >> Dovetail-related. If so, xenomai 3.3 which is using Dovetail won't boot >> on the Zynq either. > > I can actually confirm that. We had been curious to try running the > Xenomai 3 stack on Dovetail by itself, and made the same observation: > it hangs during boot, and disabling CONFIG_SMP works around it. > > I hope that helps. Is there anything else you'd want me to try? > Regards, > From what you described, it is most likely that some SoC-specific adjustments are wrong or got lost on the transition from i-pipe to dovetail. Already looked for Zynq-specific bits in the last 5.4-ipipe patch? We never had any Zynq board enabled for the Xenomai lava lab, and all the eval boards we had here got dumped while moving 2 years ago. But if someone is willing to set up a lava working with a Zynq board, we can include in future testing at least. Still, it would also need someone to look into regressions, just like now... Jan -- Siemens AG, Foundational Technologies Linux Expert Center