0

I am trying to boot a Linux kernel on an A53 cpu (inside a ZU5 from xilinx). I have two hard. The first is a custom PCB with a ZU5. The second is the ZCU102 SDK with the zu9eg.

Here the boot log :

[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] [ 0.000000] Linux version 5.15.19 (build_station) (aarch64-buildroot-linux-gnu-gcc.br_real (B3 [ 0.000000] Machine model: ZynqMP [ 0.000000] earlycon: cdns0 at MMIO 0x00000000ff000000 (options '115200n8') [ 0.000000] printk: bootconsole [cdns0] enabled [ 0.000000] efi: UEFI not found. [ 0.000000] OF: fdt: Invalid device tree blob header [ 0.000000] Zone ranges: [ 0.000000] DMA32 [mem 0x0000000000000000-0x00000000ffffffff] [ 0.000000] Normal [mem 0x0000000100000000-0x000000087fffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x000000007fefffff] [ 0.000000] node 0: [mem 0x0000000800000000-0x000000087fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000087fffffff] [ 0.000000] On node 0, zone Normal: 256 pages in unavailable ranges [ 0.000000] cma: Reserved 256 MiB at 0x000000006fc00000 [ 0.000000] Failed to find device node for boot cpu [ 0.000000] missing boot CPU MPIDR, not enabling secondaries [ 0.000000] percpu: Embedded 17 pages/cpu s32600 r8192 d28840 u69632 [ 0.000000] Detected VIPT I-cache on CPU0 [ 0.000000] CPU features: detected: ARM erratum 845719 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 1033987 [ 0.000000] Kernel command line: earlycon clk_ignore_unused [ 0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear) [ 0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] software IO TLB: mapped [mem 0x000000006bc00000-0x000000006fc00000] (64MB) [ 0.000000] Memory: 3779764K/4193280K available (8448K kernel code, 692K rwdata, 2232K rodata, 1472K) [ 0.000000] rcu: 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=1. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1 [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] random: get_random_bytes called from start_kernel+0x3f0/0x5fc with crng_init=0 [ 0.000000] timer_probe: no matching timers found [ 0.000000] Kernel panic - not syncing: Unable to initialise architected timer. [ 0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.15.19 #7 [ 0.000000] Hardware name: ZynqMP SL300 (DT) [ 0.000000] Call trace: [ 0.000000] dump_backtrace+0x0/0x190 [ 0.000000] show_stack+0x18/0x30 [ 0.000000] dump_stack_lvl+0x7c/0xa0 [ 0.000000] dump_stack+0x18/0x34 [ 0.000000] panic+0x14c/0x2f8 [ 0.000000] time_init+0x30/0x4c [ 0.000000] start_kernel+0x4fc/0x5fc [ 0.000000] __primary_switched+0xa4/0xac [ 0.000000] ---[ end Kernel panic - not syncing: Unable to initialise architected timer. ]--- 

The second hard :

[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] [ 0.000000] Linux version 5.15.19 (build_station) (aarch64-buildroot-linux-gnu-gcc.br_real (Buildroot 2022.11-rc3-13-g43899226b2) 11.3.0, GNU ld (GNU Binutils) 2.38) #2 SMP Fri Dec 2 12:32:23 2 [ 0.000000] Machine model: ZynqMP [ 0.000000] efi: UEFI not found. [ 0.000000] Zone ranges: [ 0.000000] DMA32 [mem 0x0000000000000000-0x00000000ffffffff] [ 0.000000] Normal [mem 0x0000000100000000-0x000000087fffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x000000007fefffff] [ 0.000000] node 0: [mem 0x0000000800000000-0x000000087fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000087fffffff] [ 0.000000] On node 0, zone Normal: 256 pages in unavailable ranges [ 0.000000] cma: Reserved 256 MiB at 0x000000006b800000 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. [ 0.000000] psci: SMC Calling Convention v1.2 [ 0.000000] percpu: Embedded 18 pages/cpu s34456 r8192 d31080 u73728 [ 0.000000] Detected VIPT I-cache on CPU0 [ 0.000000] CPU features: detected: ARM erratum 845719 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 1033987 [ 0.000000] Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait [ 0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear) [ 0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] software IO TLB: mapped [mem 0x000000007bf00000-0x000000007ff00000] (64MB) [ 0.000000] Memory: 3771452K/4193280K available (13952K kernel code, 912K rwdata, 3908K rodata, 2048K init, 336K bss, 159684K reserved, 262144K cma-reserved) [ 0.000000] rcu: 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] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2 [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000 

On the second hard the Linux boots and I managed to use the same device tree. I can see a difference : there is no psci detection with the first hard.

I need to know if it can be an hardware issue.

Kernel command line: earlycon clk_ignore_unused and Machine model: ZynqMP are from the device tree. So the device tree seems to be read ?

Thanks for help

EDIT : More log about the Invalid device tree blob header :

[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] [ 0.000000] Linux version 5.15.19 (test@build-station) (aarch64-buildroot-linux-gnu-gcc.br_real (Buildroot 2022.11-rc3-13-g43899226b2) 11.3.0, GNU ld (GNU Binutils) 2.38) #12 SMP Mon Sep 11 12:45:03 [ 0.000000] OF: fdt: dt_root_size_cells = 2 [ 0.000000] OF: fdt: dt_root_addr_cells = 2 [ 0.000000] OF: fdt: search "chosen", depth: 0, uname: [ 0.000000] OF: fdt: search "chosen", depth: 1, uname: cpus [ 0.000000] OF: fdt: search "chosen", depth: 2, uname: cpu@0 [ 0.000000] OF: fdt: search "chosen", depth: 2, uname: cpu@1 [ 0.000000] OF: fdt: search "chosen", depth: 2, uname: idle-states [ 0.000000] OF: fdt: search "chosen", depth: 3, uname: cpu-sleep-0 [ 0.000000] OF: fdt: search "chosen", depth: 1, uname: cpu-opp-table [ 0.000000] OF: fdt: search "chosen", depth: 2, uname: opp00 [ 0.000000] OF: fdt: search "chosen", depth: 2, uname: opp01 [ 0.000000] OF: fdt: search "chosen", depth: 2, uname: opp02 [ 0.000000] OF: fdt: search "chosen", depth: 2, uname: opp03 [ 0.000000] OF: fdt: search "chosen", depth: 1, uname: zynqmp_ipi [ 0.000000] OF: fdt: search "chosen", depth: 2, uname: mailbox@ff990400 [ 0.000000] OF: fdt: search "chosen", depth: 1, uname: dcc [ 0.000000] OF: fdt: search "chosen", depth: 1, uname: pmu [ 0.000000] OF: fdt: search "chosen", depth: 1, uname: psci [ 0.000000] OF: fdt: search "chosen", depth: 1, uname: firmware [ 0.000000] OF: fdt: search "chosen", depth: 2, uname: zynqmp-firmware [ 0.000000] OF: fdt: search "chosen", depth: 3, uname: pcap [ 0.000000] OF: fdt: search "chosen", depth: 3, uname: zynqmp-power [ 0.000000] OF: fdt: search "chosen", depth: 3, uname: reset-controller [ 0.000000] OF: fdt: search "chosen", depth: 3, uname: pinctrl [ 0.000000] OF: fdt: search "chosen", depth: 3, uname: clock-controller ... [ 0.000000] OF: fdt: search "chosen", depth: 1, uname: aux_ref_clk [ 0.000000] OF: fdt: search "chosen", depth: 1, uname: dp_aclk [ 0.000000] OF: fdt: search "chosen", depth: 1, uname: amba_pl@0 [ 0.000000] OF: fdt: search "chosen", depth: 2, uname: axi_bram_ctrl@a0000000 [ 0.000000] OF: fdt: search "chosen", depth: 2, uname: dma@80000000 [ 0.000000] OF: fdt: search "chosen", depth: 3, uname: dma-channel@80000000 [ 0.000000] OF: fdt: search "chosen", depth: 3, uname: dma-channel@80000030 [ 0.000000] OF: fdt: search "chosen", depth: 2, uname: puls4ic_sl300@80010000 [ 0.000000] OF: fdt: search "chosen", depth: 2, uname: system_management_wiz@80020000 [ 0.000000] OF: fdt: search "chosen", depth: 1, uname: chosen [ 0.000000] OF: fdt: Command line is: earlycon clk_ignore_unused loglevel=8 [ 0.000000] OF: fdt: memory scan node memory, reg size 32, [ 0.000000] OF: fdt: - 0, 7ff00000 [ 0.000000] OF: fdt: - 800000000, 80000000 [ 0.000000] OF: fdt: Looking for usable-memory-range property... [ 0.000000] Machine model: ZynqMP SL300 [ 0.000000] earlycon: cdns0 at MMIO 0x00000000ff000000 (options '115200n8') [ 0.000000] printk: bootconsole [cdns0] enabled [ 0.000000] efi: UEFI not found. [ 0.000000] OF: fdt: -> unflatten_device_tree() [ 0.000000] OF: fdt: Unflattening device tree: [ 0.000000] OF: fdt: magic: 07074021 [ 0.000000] OF: fdt: size: 00006800 [ 0.000000] OF: fdt: version: 00006800 [ 0.000000] OF: fdt: Invalid device tree blob header : -9 

The magic number should be 0xD00DFEED but I have 0x07074021 ? My boot commands from uboot :

fatload mmc 0:1 $kernel_addr_r Image.gz fatload mmc 0:1 $fdt_addr_r system.dtb booti $kernel_addr_r - $fdt_addr_r 

1 Answer 1

0

Solved. It was a RAM configuration issue.

I changed the memory section in device tree to set 2GB (not 4GB) ans it works now. I have 2GB. It was a bad calculation.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.