Post Go back to editing

Kernel boot failure when adding a new/custom devicetree with petalinux

Category: Software
Product Number: AD9136—FMC—EBZ
Software Version: 2021.2

Sorry, I'm very new to linux.

I am configuring AD9136_FMC_EBZ. The HDL design used is 2021_R2 of ZC706.

Because the project support of AD9136 has not been added in the official linux, but only AD9172.

So I add new device tree according to https://github.com/analogdevicesinc/meta-adi/blob/master/meta-adi-xilinx/README.md web page

I use petalinux to create projects.

But in the end, the SD card booted and reported an error.

I did not make any changes to the generated HDL project, only modified the necessary settings to make the DAC AD9136.

The serial port printout of linux startup is as follows:

U-Boot 2021.01 (Oct 12 2021 - 09:28:42 +0000)

CPU:   Zynq 7z045
Silicon: v3.1
Model: Xilinx Zynq ZC706
DRAM:  ECC disabled 1 GiB
Flash: 0 Bytes
NAND:  0 MiB
MMC:   mmc@e0100000: 0
Loading Environment from FAT... *** Warning - bad CRC, using default environment

In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
Net:
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 7, interface rgmii-id

Warning: ethernet@e000b000 (eth0) using random MAC address - 9a:ff:d2:7d:f1:b1
eth0: ethernet@e000b000
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
2710 bytes read in 15 ms (175.8 KiB/s)
## Executing script at 03000000
Trying to load boot images from mmc0
7736112 bytes read in 507 ms (14.6 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:   0x10000100
     Data Size:    7708200 Bytes = 7.4 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x00200000
     Entry Point:  0x00200000
     Hash algo:    sha256
     Hash value:   01ed10f5b5726070c929618efc0a4ba85116c15a3bb2951ead8add002f7e5ba0
   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:   0x1075a034
     Data Size:    26005 Bytes = 25.4 KiB
     Architecture: ARM
     Hash algo:    sha256
     Hash value:   0b134233c2fd74ed01e6f1ced62b4e4f5cf28b1ceb68a48c918ab7a52f23aa68
   Verifying Hash Integrity ... sha256+ OK
   Booting using the fdt blob at 0x1075a034
   Loading Kernel Image
   Loading Device Tree to 2fff6000, end 2ffff594 ... OK

Starting kernel ...

Booting Linux on physical CPU 0x0
Linux version 5.10.0-xilinx-v2021.2 (oe-user@oe-host) (arm-xilinx-linux-gnueabi-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35.1) #1 SMP PREEMPT Tue Apr 4 07:50:13 UTC 2023
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt: Machine model: Xilinx Zynq ZC706
earlycon: cdns0 at MMIO 0xe0001000 (options '115200n8')
printk: bootconsole [cdns0] enabled
Memory policy: Data cache writealloc
cma: Reserved 128 MiB at 0x38000000
Zone ranges:
  Normal   [mem 0x0000000000000000-0x000000002fffffff]
  HighMem  [mem 0x0000000030000000-0x000000003fffffff]
Movable zone start for each node
Early memory node ranges
  node   0: [mem 0x0000000000000000-0x000000003fffffff]
Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff]
percpu: Embedded 15 pages/cpu s30028 r8192 d23220 u61440
Built 1 zonelists, mobility grouping on.  Total pages: 260416
Kernel command line: console=ttyPS0,115200 earlycon root=/dev/mmcblk0p2 rw rootwait
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
mem auto-init: stack:off, heap alloc:off, heap free:off
Memory: 884972K/1048576K available (11264K kernel code, 826K rwdata, 7668K rodata, 1024K init, 491K bss, 32532K reserved, 131072K cma-reserved, 131072K highmem)
rcu: Preemptible hierarchical RCU implementation.
rcu:    RCU event tracing is enabled.
rcu:    RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
        Trampoline variant of Tasks RCU enabled.
rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
efuse mapped to (ptrval)
slcr mapped to (ptrval)
L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
L2C-310 erratum 769419 enabled
L2C-310 enabling early BRESP for Cortex-A9
L2C-310 full line of zeros enabled for Cortex-A9
L2C-310 ID prefetch enabled, offset 1 lines
L2C-310 dynamic clock gating enabled, standby mode enabled
L2C-310 cache controller enabled, 8 ways, 512 kB
L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
random: get_random_bytes called from start_kernel+0x33c/0x4fc with crng_init=0
zynq_clock_init: clkc starts at (ptrval)
Zynq clock init
sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns
clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af025, max_idle_ns: 440795209040 ns
Switching to timer-based delay loop, resolution 3ns
clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns
timer #0 at (ptrval), irq=25
Console: colour dummy device 80x30
Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333333)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
CPU: Testing write buffer coherency: ok
CPU0: Spectre v2: using BPIALL workaround
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x100000 - 0x100060
rcu: Hierarchical SRCU implementation.
smp: Bringing up secondary CPUs ...
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
CPU1: Spectre v2: using BPIALL workaround
smp: Brought up 1 node, 2 CPUs
SMP: Total of 2 processors activated (1333.33 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
futex hash table entries: 512 (order: 3, 32768 bytes, linear)
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
thermal_sys: Registered thermal governor 'step_wise'
cpuidle: using governor ladder
------------[ cut here ]------------
WARNING: CPU: 0 PID: 1 at drivers/irqchip/irq-gic.c:1073 gic_irq_domain_translate+0x11c/0x124
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.10.0-xilinx-v2021.2 #1
Hardware name: Xilinx Zynq Platform
[<c010da8c>] (unwind_backtrace) from [<c010a178>] (show_stack+0x10/0x14)
[<c010a178>] (show_stack) from [<c0b6d37c>] (dump_stack+0xc0/0xd4)
[<c0b6d37c>] (dump_stack) from [<c0b6ab84>] (__warn+0xb8/0x114)
[<c0b6ab84>] (__warn) from [<c0b6ac5c>] (warn_slowpath_fmt+0x7c/0xac)
[<c0b6ac5c>] (warn_slowpath_fmt) from [<c047081c>] (gic_irq_domain_translate+0x11c/0x124)
[<c047081c>] (gic_irq_domain_translate) from [<c0173fa8>] (irq_create_fwspec_mapping+0x68/0x348)
[<c0173fa8>] (irq_create_fwspec_mapping) from [<c01742dc>] (irq_create_of_mapping+0x54/0x78)
[<c01742dc>] (irq_create_of_mapping) from [<c07bccd4>] (of_irq_get+0x88/0xc0)
[<c07bccd4>] (of_irq_get) from [<c07bcd38>] (of_irq_to_resource+0x2c/0xf0)
[<c07bcd38>] (of_irq_to_resource) from [<c07bce38>] (of_irq_to_resource_table+0x3c/0x54)
[<c07bce38>] (of_irq_to_resource_table) from [<c07b5ed0>] (of_device_alloc+0x100/0x19c)
[<c07b5ed0>] (of_device_alloc) from [<c07b5fb4>] (of_platform_device_create_pdata+0x48/0xc4)
[<c07b5fb4>] (of_platform_device_create_pdata) from [<c07b61dc>] (of_platform_bus_create+0x1a0/0x3a0)
[<c07b61dc>] (of_platform_bus_create) from [<c07b6228>] (of_platform_bus_create+0x1ec/0x3a0)
[<c07b6228>] (of_platform_bus_create) from [<c07b6548>] (of_platform_populate+0x70/0xd4)
[<c07b6548>] (of_platform_populate) from [<c14095f8>] (zynq_init_machine+0x13c/0x14c)
[<c14095f8>] (zynq_init_machine) from [<c14035f4>] (customize_machine+0x20/0x30)
[<c14035f4>] (customize_machine) from [<c0101834>] (do_one_initcall+0x58/0x1d0)
[<c0101834>] (do_one_initcall) from [<c1401074>] (kernel_init_freeable+0x1d8/0x23c)
[<c1401074>] (kernel_init_freeable) from [<c0b7b3dc>] (kernel_init+0x8/0x118)
[<c0b7b3dc>] (kernel_init) from [<c0100148>] (ret_from_fork+0x14/0x2c)
Exception stack(0xc186ffb0 to 0xc186fff8)
ffa0:                                     00000000 00000000 00000000 00000000
ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
---[ end trace 17901026df99053d ]---
------------[ cut here ]------------
WARNING: CPU: 0 PID: 1 at drivers/irqchip/irq-gic.c:1073 gic_irq_domain_translate+0x11c/0x124
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W         5.10.0-xilinx-v2021.2 #1
Hardware name: Xilinx Zynq Platform
[<c010da8c>] (unwind_backtrace) from [<c010a178>] (show_stack+0x10/0x14)
[<c010a178>] (show_stack) from [<c0b6d37c>] (dump_stack+0xc0/0xd4)
[<c0b6d37c>] (dump_stack) from [<c0b6ab84>] (__warn+0xb8/0x114)
[<c0b6ab84>] (__warn) from [<c0b6ac5c>] (warn_slowpath_fmt+0x7c/0xac)
[<c0b6ac5c>] (warn_slowpath_fmt) from [<c047081c>] (gic_irq_domain_translate+0x11c/0x124)
[<c047081c>] (gic_irq_domain_translate) from [<c0470cf8>] (gic_irq_domain_alloc+0x40/0xac)
[<c0470cf8>] (gic_irq_domain_alloc) from [<c0173944>] (__irq_domain_alloc_irqs+0xe0/0x474)
[<c0173944>] (__irq_domain_alloc_irqs) from [<c0174060>] (irq_create_fwspec_mapping+0x120/0x348)
[<c0174060>] (irq_create_fwspec_mapping) from [<c01742dc>] (irq_create_of_mapping+0x54/0x78)
[<c01742dc>] (irq_create_of_mapping) from [<c07bccd4>] (of_irq_get+0x88/0xc0)
[<c07bccd4>] (of_irq_get) from [<c07bcd38>] (of_irq_to_resource+0x2c/0xf0)
[<c07bcd38>] (of_irq_to_resource) from [<c07bce38>] (of_irq_to_resource_table+0x3c/0x54)
[<c07bce38>] (of_irq_to_resource_table) from [<c07b5ed0>] (of_device_alloc+0x100/0x19c)
[<c07b5ed0>] (of_device_alloc) from [<c07b5fb4>] (of_platform_device_create_pdata+0x48/0xc4)
[<c07b5fb4>] (of_platform_device_create_pdata) from [<c07b61dc>] (of_platform_bus_create+0x1a0/0x3a0)
[<c07b61dc>] (of_platform_bus_create) from [<c07b6228>] (of_platform_bus_create+0x1ec/0x3a0)
[<c07b6228>] (of_platform_bus_create) from [<c07b6548>] (of_platform_populate+0x70/0xd4)
[<c07b6548>] (of_platform_populate) from [<c14095f8>] (zynq_init_machine+0x13c/0x14c)
[<c14095f8>] (zynq_init_machine) from [<c14035f4>] (customize_machine+0x20/0x30)
[<c14035f4>] (customize_machine) from [<c0101834>] (do_one_initcall+0x58/0x1d0)
[<c0101834>] (do_one_initcall) from [<c1401074>] (kernel_init_freeable+0x1d8/0x23c)
[<c1401074>] (kernel_init_freeable) from [<c0b7b3dc>] (kernel_init+0x8/0x118)
[<c0b7b3dc>] (kernel_init) from [<c0100148>] (ret_from_fork+0x14/0x2c)
Exception stack(0xc186ffb0 to 0xc186fff8)
ffa0:                                     00000000 00000000 00000000 00000000
ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
---[ end trace 17901026df99053e ]---
------------[ cut here ]------------
WARNING: CPU: 0 PID: 1 at drivers/irqchip/irq-gic.c:1073 gic_irq_domain_translate+0x11c/0x124
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W         5.10.0-xilinx-v2021.2 #1
Hardware name: Xilinx Zynq Platform
[<c010da8c>] (unwind_backtrace) from [<c010a178>] (show_stack+0x10/0x14)
[<c010a178>] (show_stack) from [<c0b6d37c>] (dump_stack+0xc0/0xd4)
[<c0b6d37c>] (dump_stack) from [<c0b6ab84>] (__warn+0xb8/0x114)
[<c0b6ab84>] (__warn) from [<c0b6ac5c>] (warn_slowpath_fmt+0x7c/0xac)
[<c0b6ac5c>] (warn_slowpath_fmt) from [<c047081c>] (gic_irq_domain_translate+0x11c/0x124)
[<c047081c>] (gic_irq_domain_translate) from [<c0173fa8>] (irq_create_fwspec_mapping+0x68/0x348)
[<c0173fa8>] (irq_create_fwspec_mapping) from [<c01742dc>] (irq_create_of_mapping+0x54/0x78)
[<c01742dc>] (irq_create_of_mapping) from [<c07bccd4>] (of_irq_get+0x88/0xc0)
[<c07bccd4>] (of_irq_get) from [<c07bcd38>] (of_irq_to_resource+0x2c/0xf0)
[<c07bcd38>] (of_irq_to_resource) from [<c07bce38>] (of_irq_to_resource_table+0x3c/0x54)
[<c07bce38>] (of_irq_to_resource_table) from [<c07b5ed0>] (of_device_alloc+0x100/0x19c)
[<c07b5ed0>] (of_device_alloc) from [<c07b5fb4>] (of_platform_device_create_pdata+0x48/0xc4)
[<c07b5fb4>] (of_platform_device_create_pdata) from [<c07b61dc>] (of_platform_bus_create+0x1a0/0x3a0)
[<c07b61dc>] (of_platform_bus_create) from [<c07b6228>] (of_platform_bus_create+0x1ec/0x3a0)
[<c07b6228>] (of_platform_bus_create) from [<c07b6548>] (of_platform_populate+0x70/0xd4)
[<c07b6548>] (of_platform_populate) from [<c14095f8>] (zynq_init_machine+0x13c/0x14c)
[<c14095f8>] (zynq_init_machine) from [<c14035f4>] (customize_machine+0x20/0x30)
[<c14035f4>] (customize_machine) from [<c0101834>] (do_one_initcall+0x58/0x1d0)
[<c0101834>] (do_one_initcall) from [<c1401074>] (kernel_init_freeable+0x1d8/0x23c)
[<c1401074>] (kernel_init_freeable) from [<c0b7b3dc>] (kernel_init+0x8/0x118)
[<c0b7b3dc>] (kernel_init) from [<c0100148>] (ret_from_fork+0x14/0x2c)
Exception stack(0xc186ffb0 to 0xc186fff8)
ffa0:                                     00000000 00000000 00000000 00000000
ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
---[ end trace 17901026df99053f ]---
------------[ cut here ]------------
WARNING: CPU: 0 PID: 1 at drivers/irqchip/irq-gic.c:1073 gic_irq_domain_translate+0x11c/0x124
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W         5.10.0-xilinx-v2021.2 #1
Hardware name: Xilinx Zynq Platform
[<c010da8c>] (unwind_backtrace) from [<c010a178>] (show_stack+0x10/0x14)
[<c010a178>] (show_stack) from [<c0b6d37c>] (dump_stack+0xc0/0xd4)
[<c0b6d37c>] (dump_stack) from [<c0b6ab84>] (__warn+0xb8/0x114)
[<c0b6ab84>] (__warn) from [<c0b6ac5c>] (warn_slowpath_fmt+0x7c/0xac)
[<c0b6ac5c>] (warn_slowpath_fmt) from [<c047081c>] (gic_irq_domain_translate+0x11c/0x124)
[<c047081c>] (gic_irq_domain_translate) from [<c0470cf8>] (gic_irq_domain_alloc+0x40/0xac)
[<c0470cf8>] (gic_irq_domain_alloc) from [<c0173944>] (__irq_domain_alloc_irqs+0xe0/0x474)
[<c0173944>] (__irq_domain_alloc_irqs) from [<c0174060>] (irq_create_fwspec_mapping+0x120/0x348)
[<c0174060>] (irq_create_fwspec_mapping) from [<c01742dc>] (irq_create_of_mapping+0x54/0x78)
[<c01742dc>] (irq_create_of_mapping) from [<c07bccd4>] (of_irq_get+0x88/0xc0)
[<c07bccd4>] (of_irq_get) from [<c07bcd38>] (of_irq_to_resource+0x2c/0xf0)
[<c07bcd38>] (of_irq_to_resource) from [<c07bce38>] (of_irq_to_resource_table+0x3c/0x54)
[<c07bce38>] (of_irq_to_resource_table) from [<c07b5ed0>] (of_device_alloc+0x100/0x19c)
[<c07b5ed0>] (of_device_alloc) from [<c07b5fb4>] (of_platform_device_create_pdata+0x48/0xc4)
[<c07b5fb4>] (of_platform_device_create_pdata) from [<c07b61dc>] (of_platform_bus_create+0x1a0/0x3a0)
[<c07b61dc>] (of_platform_bus_create) from [<c07b6228>] (of_platform_bus_create+0x1ec/0x3a0)
[<c07b6228>] (of_platform_bus_create) from [<c07b6548>] (of_platform_populate+0x70/0xd4)
[<c07b6548>] (of_platform_populate) from [<c14095f8>] (zynq_init_machine+0x13c/0x14c)
[<c14095f8>] (zynq_init_machine) from [<c14035f4>] (customize_machine+0x20/0x30)
[<c14035f4>] (customize_machine) from [<c0101834>] (do_one_initcall+0x58/0x1d0)
[<c0101834>] (do_one_initcall) from [<c1401074>] (kernel_init_freeable+0x1d8/0x23c)
[<c1401074>] (kernel_init_freeable) from [<c0b7b3dc>] (kernel_init+0x8/0x118)
[<c0b7b3dc>] (kernel_init) from [<c0100148>] (ret_from_fork+0x14/0x2c)
Exception stack(0xc186ffb0 to 0xc186fff8)
ffa0:                                     00000000 00000000 00000000 00000000
ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
---[ end trace 17901026df990540 ]---
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 4 bytes.
zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0x(ptrval)
e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 33, base_baud = 3125000) is a xuartps
printk: console [ttyPS0] enabled
printk: console [ttyPS0] enabled
printk: bootconsole [cdns0] disabled
printk: bootconsole [cdns0] disabled
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
mc: Linux media interface: v0.10
videodev: Linux video capture interface: v2.00
jesd204: found 0 devices and 0 topologies
FPGA manager framework
Advanced Linux Sound Architecture Driver Initialized.
clocksource: Switched to clocksource arm_global_timer
NET: Registered protocol family 2
tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
TCP: Hash tables configured (established 8192 bind 8192)
UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
workingset: timestamp_bits=14 max_order=18 bucket_order=4
NFS: Registering the id_resolver key type
Key type id_resolver registered
Key type id_legacy registered
nfs4filelayout_init: NFSv4 File Layout Driver Registering...
fuse: init (API version 7.32)
bounce: pool size: 64 pages
io scheduler mq-deadline registered
io scheduler kyber registered
zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
------------[ cut here ]------------
WARNING: CPU: 0 PID: 1 at drivers/irqchip/irq-gic.c:1073 gic_irq_domain_translate+0x11c/0x124
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W         5.10.0-xilinx-v2021.2 #1
Hardware name: Xilinx Zynq Platform
[<c010da8c>] (unwind_backtrace) from [<c010a178>] (show_stack+0x10/0x14)
[<c010a178>] (show_stack) from [<c0b6d37c>] (dump_stack+0xc0/0xd4)
[<c0b6d37c>] (dump_stack) from [<c0b6ab84>] (__warn+0xb8/0x114)
[<c0b6ab84>] (__warn) from [<c0b6ac5c>] (warn_slowpath_fmt+0x7c/0xac)
[<c0b6ac5c>] (warn_slowpath_fmt) from [<c047081c>] (gic_irq_domain_translate+0x11c/0x124)
[<c047081c>] (gic_irq_domain_translate) from [<c0173fa8>] (irq_create_fwspec_mapping+0x68/0x348)
[<c0173fa8>] (irq_create_fwspec_mapping) from [<c01742dc>] (irq_create_of_mapping+0x54/0x78)
[<c01742dc>] (irq_create_of_mapping) from [<c07bccd4>] (of_irq_get+0x88/0xc0)
[<c07bccd4>] (of_irq_get) from [<c054ce20>] (platform_get_irq_optional+0x1c/0x12c)
[<c054ce20>] (platform_get_irq_optional) from [<c054cf7c>] (platform_get_irq+0x10/0x48)
[<c054cf7c>] (platform_get_irq) from [<c04b4364>] (axi_dmac_probe+0x48/0x764)
[<c04b4364>] (axi_dmac_probe) from [<c054c4f4>] (platform_drv_probe+0x48/0x98)
[<c054c4f4>] (platform_drv_probe) from [<c054a3ec>] (really_probe+0xf0/0x4b0)
[<c054a3ec>] (really_probe) from [<c054aaac>] (driver_probe_device+0x5c/0xb4)
[<c054aaac>] (driver_probe_device) from [<c054ad90>] (device_driver_attach+0xa8/0xb0)
[<c054ad90>] (device_driver_attach) from [<c054ae18>] (__driver_attach+0x80/0x110)
[<c054ae18>] (__driver_attach) from [<c05483c8>] (bus_for_each_dev+0x78/0xc0)
[<c05483c8>] (bus_for_each_dev) from [<c054972c>] (bus_add_driver+0xf4/0x1dc)
[<c054972c>] (bus_add_driver) from [<c054b678>] (driver_register+0x88/0x118)
[<c054b678>] (driver_register) from [<c0101834>] (do_one_initcall+0x58/0x1d0)
[<c0101834>] (do_one_initcall) from [<c1401074>] (kernel_init_freeable+0x1d8/0x23c)
[<c1401074>] (kernel_init_freeable) from [<c0b7b3dc>] (kernel_init+0x8/0x118)
[<c0b7b3dc>] (kernel_init) from [<c0100148>] (ret_from_fork+0x14/0x2c)
Exception stack(0xc186ffb0 to 0xc186fff8)
ffa0:                                     00000000 00000000 00000000 00000000
ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
---[ end trace 17901026df990541 ]---
dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
dma-pl330 f8003000.dmac:        DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
brd: module loaded
loop: module loaded
Registered mathworks_ip class
spi-nor spi1.0: found s25fl128s1, expected n25q128a11
random: fast init done
random: crng init done
spi-nor spi1.0: trying to lock already unlocked area
spi-nor spi1.0: s25fl128s1 (32768 Kbytes)
5 fixed-partitions partitions found on MTD device spi1.0
Creating 5 MTD partitions on "spi1.0":
0x000000000000-0x000000500000 : "boot"
0x000000500000-0x000000520000 : "bootenv"
0x000000520000-0x000000540000 : "config"
0x000000540000-0x000000fc0000 : "image"
0x000000fc0000-0x000002000000 : "spare"
MACsec IEEE 802.1AE
libphy: Fixed MDIO Bus: probed
tun: Universal TUN/TAP device driver, 1.6
libphy: MACB_mii_bus: probed
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 36 (9a:ff:d2:7d:f1:b1)
usbcore: registered new interface driver asix
usbcore: registered new interface driver ax88179_178a
usbcore: registered new interface driver cdc_ether
usbcore: registered new interface driver net1080
usbcore: registered new interface driver cdc_subset
usbcore: registered new interface driver zaurus
usbcore: registered new interface driver cdc_ncm
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
usbcore: registered new interface driver uas
usbcore: registered new interface driver usb-storage
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial support registered for generic
usbcore: registered new interface driver ftdi_sio
usbserial: USB Serial support registered for FTDI USB Serial Device
usbcore: registered new interface driver upd78f0730
usbserial: USB Serial support registered for upd78f0730
ULPI transceiver vendor/product ID 0x0424/0x0007
Found SMSC USB3320 ULPI transceiver.
ULPI integrity check: passed.
ci_hdrc ci_hdrc.0: EHCI Host Controller
ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: EHCI Host Controller
usb usb1: Manufacturer: Linux 5.10.0-xilinx-v2021.2 ehci_hcd
usb usb1: SerialNumber: ci_hdrc.0
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
i2c /dev entries driver
si570 1-005d: registered, current frequency 156250000 Hz
i2c i2c-0: Added multiplexed i2c bus 1
adv7511 2-0039: supply avdd not found, using dummy regulator
adv7511 2-0039: supply dvdd not found, using dummy regulator
adv7511 2-0039: supply pvdd not found, using dummy regulator
adv7511 2-0039: supply bgvdd not found, using dummy regulator
adv7511 2-0039: supply dvdd-3v not found, using dummy regulator
i2c i2c-0: Added multiplexed i2c bus 2
at24 3-0054: supply vcc not found, using dummy regulator
at24 3-0054: 1024 byte 24c08 EEPROM, writable, 1 bytes/write
i2c i2c-0: Added multiplexed i2c bus 3
pca953x 4-0021: supply vcc not found, using dummy regulator
pca953x 4-0021: using no AI
i2c i2c-0: Added multiplexed i2c bus 4
rtc-pcf8563 5-0051: low voltage detected, date/time is not reliable.
rtc-pcf8563 5-0051: registered as rtc0
rtc-pcf8563 5-0051: low voltage detected, date/time is not reliable.
rtc-pcf8563 5-0051: hctosys: unable to read the hardware clock
i2c i2c-0: Added multiplexed i2c bus 5
at24 6-0050: supply vcc not found, using dummy regulator
at24 6-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write
i2c i2c-0: Added multiplexed i2c bus 6
i2c i2c-0: Added multiplexed i2c bus 7
i2c i2c-0: Added multiplexed i2c bus 8
pca954x 0-0074: registered 8 multiplexed busses for I2C switch pca9548
usbcore: registered new interface driver uvcvideo
USB Video Class driver (1.1.1)
gspca_main: v2.14.0 registered
cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s
Xilinx Zynq CpuIdle Driver started
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
ledtrig-cpu: registered to indicate activity on CPUs
hid: raw HID events driver (C) Jiri Kosina
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA
ad9517 spi0.0: AD9517 successfully initialized
mmc0: new high speed SDHC card at address aaaa
mmcblk0: mmc0:aaaa SL32G 29.7 GiB
 mmcblk0: p1 p2
8<--- cut here ---
Unhandled fault: imprecise external abort (0x406) at 0x00000000
pgd = 003e5e3c
[00000000] *pgd=00000000
Internal error: : 406 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 1 PID: 1 Comm: swapper/0 Tainted: G        W         5.10.0-xilinx-v2021.2 #1
Hardware name: Xilinx Zynq Platform
PC is at adxcvr_probe+0x34c/0xab0
LR is at __devm_ioremap_resource+0xf4/0x1ac
pc : [<c09544c8>]    lr : [<c043e744>]    psr: 80000013
sp : c186fdb8  ip : 00000000  fp : c137b43c
r10: 00000000  r9 : c194dc00  r8 : c194dc10
r7 : ef6ef754  r6 : 00000000  r5 : c20e4a40  r4 : 00000000
r3 : dec0de1c  r2 : 00000000  r1 : a0000013  r0 : f090c000
Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
usb 1-1: new high-speed USB device number 2 using ci_hdrc
Control: 18c5387d  Table: 0000404a  DAC: 00000051
Process swapper/0 (pid: 1, stack limit = 0x5212a462)
Stack: (0xc186fdb8 to 0xc1870000)
fda0:                                                       00000000 c194dc10
fdc0: ffffffed c02d274c c2154840 00000000 00000000 00000000 c15eba6c c186fdec
fde0: 00000001 c1949840 c194c7e8 c02d3564 00000000 c2154840 c21548f0 c194c7e8
fe00: 00000000 c02d5664 00000000 00000004 c21548f0 c1503ec8 c1313e0c 00000000
fe20: c194dc10 c15bab1c 00000000 c15eba6c c15bab1c 00000000 c137b43c c054c4f4
fe40: c194dc10 00000000 c15eba74 c054a3ec 00000000 c194dc10 c15bab1c c194dc54
fe60: c15bab1c c143c854 c143c834 c15cf000 c137b43c c054aaac c194dc10 00000000
fe80: c194dc54 c054ad90 00000000 c15bab1c c194dc10 c1538e58 c143c854 c054ae18
fea0: 00000000 c15bab1c c054ad98 c05483c8 c186fed0 c18d9f58 c193e3b4 c1503ec8
fec0: c15bab1c c2152480 00000000 c054972c c1303a84 ffffe000 c15bab1c c15bab1c
fee0: 00000000 ffffe000 00000000 c054b678 c15cf000 c1427d30 ffffe000 c0101834
ff00: c18dfd33 00000000 c18dfd32 c013d300 00000000 c129b6d4 0000012c 00000000
ff20: 00000000 c14003e0 00000006 00000006 00000000 c18dfd36 00000000 c1503ec8
ff40: c186ff48 0000012c 00000007 c1503ec8 c15cf000 c1448a08 00000007 c18dfd00
ff60: 0000012c c1401074 00000006 00000006 00000000 c14003e0 00000000 c14003e0
ff80: 00000000 00000000 c0b7b3d4 00000000 00000000 00000000 00000000 00000000
ffa0: 00000000 c0b7b3dc 00000000 c0100148 00000000 00000000 00000000 00000000
ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[<c09544c8>] (adxcvr_probe) from [<c054c4f4>] (platform_drv_probe+0x48/0x98)
[<c054c4f4>] (platform_drv_probe) from [<c054a3ec>] (really_probe+0xf0/0x4b0)
[<c054a3ec>] (really_probe) from [<c054aaac>] (driver_probe_device+0x5c/0xb4)
[<c054aaac>] (driver_probe_device) from [<c054ad90>] (device_driver_attach+0xa8/0xb0)
[<c054ad90>] (device_driver_attach) from [<c054ae18>] (__driver_attach+0x80/0x110)
[<c054ae18>] (__driver_attach) from [<c05483c8>] (bus_for_each_dev+0x78/0xc0)
[<c05483c8>] (bus_for_each_dev) from [<c054972c>] (bus_add_driver+0xf4/0x1dc)
[<c054972c>] (bus_add_driver) from [<c054b678>] (driver_register+0x88/0x118)
[<c054b678>] (driver_register) from [<c0101834>] (do_one_initcall+0x58/0x1d0)
usb 1-1: New USB device found, idVendor=2148, idProduct=7022, bcdDevice= 1.00
[<c0101834>] (do_one_initcall) from [<c1401074>] (kernel_init_freeable+0x1d8/0x23c)
usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[<c1401074>] (kernel_init_freeable) from [<c0b7b3dc>] (kernel_init+0x8/0x118)
[<c0b7b3dc>] (kernel_init) from [<c0100148>] (ret_from_fork+0x14/0x2c)
usb 1-1: Product: USB2.0 HUB
Exception stack(0xc186ffb0 to 0xc186fff8)
ffa0:                                     00000000 00000000 00000000 00000000
ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
hub 1-1:1.0: USB hub found
Code: 8a000024 e5858000 e5903000 f57ff04f (e58530bc)
---[ end trace 17901026df990542 ]---
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
hub 1-1:1.0: 4 ports detected
CPU0: stopping
CPU: 0 PID: 21 Comm: kworker/0:1 Tainted: G      D W         5.10.0-xilinx-v2021.2 #1
Hardware name: Xilinx Zynq Platform
Workqueue: usb_hub_wq hub_event
[<c010da8c>] (unwind_backtrace) from [<c010a178>] (show_stack+0x10/0x14)
[<c010a178>] (show_stack) from [<c0b6d37c>] (dump_stack+0xc0/0xd4)
[<c0b6d37c>] (dump_stack) from [<c010bf58>] (do_handle_IPI+0x120/0x148)
[<c010bf58>] (do_handle_IPI) from [<c010bf98>] (ipi_handler+0x18/0x20)
[<c010bf98>] (ipi_handler) from [<c0171410>] (handle_percpu_devid_irq+0x78/0x150)
[<c0171410>] (handle_percpu_devid_irq) from [<c016b5d0>] (__handle_domain_irq+0x7c/0xd0)
[<c016b5d0>] (__handle_domain_irq) from [<c0470a14>] (gic_handle_irq+0x80/0x94)
[<c0470a14>] (gic_handle_irq) from [<c0100b0c>] (__irq_svc+0x6c/0xa8)
Exception stack(0xc1923968 to 0xc19239b0)
3960:                   00000000 c144f5c0 00000000 2e27a000 00000082 00000000
3980: 00000000 c1922000 c1805600 c19239b8 c1923a50 60000013 0011c4b1 c19239b8
39a0: c01233ec c01012c0 60000113 ffffffff
[<c0100b0c>] (__irq_svc) from [<c01012c0>] (__do_softirq+0x98/0x29c)
[<c01012c0>] (__do_softirq) from [<c01233ec>] (irq_exit+0x74/0xa4)
[<c01233ec>] (irq_exit) from [<c016b5d4>] (__handle_domain_irq+0x80/0xd0)
[<c016b5d4>] (__handle_domain_irq) from [<c0470a14>] (gic_handle_irq+0x80/0x94)
[<c0470a14>] (gic_handle_irq) from [<c0100b0c>] (__irq_svc+0x6c/0xa8)
Exception stack(0xc1923a50 to 0xc1923a98)
3a40:                                     60000093 2e27a000 00000000 c14493d8
3a60: c15d13b8 c1503f68 0000001d c1922000 60000013 c1923ae4 c127ab04 60000013
3a80: 00000000 c1923aa0 c01689c8 c01689cc 60000013 ffffffff
[<c0100b0c>] (__irq_svc) from [<c01689cc>] (vprintk_emit+0x1b8/0x210)
[<c01689cc>] (vprintk_emit) from [<c0b6db74>] (dev_vprintk_emit+0x124/0x148)
[<c0b6db74>] (dev_vprintk_emit) from [<c0b6dbc8>] (dev_printk_emit+0x30/0x5c)
[<c0b6dbc8>] (dev_printk_emit) from [<c0b6dc40>] (__dev_printk+0x4c/0x64)
[<c0b6dc40>] (__dev_printk) from [<c0b6df80>] (_dev_info+0x40/0x6c)
[<c0b6df80>] (_dev_info) from [<c05fe044>] (hub_probe+0x490/0x8bc)
[<c05fe044>] (hub_probe) from [<c0606b80>] (usb_probe_interface+0xcc/0x270)
[<c0606b80>] (usb_probe_interface) from [<c054a3ec>] (really_probe+0xf0/0x4b0)
[<c054a3ec>] (really_probe) from [<c054aaac>] (driver_probe_device+0x5c/0xb4)
[<c054aaac>] (driver_probe_device) from [<c0548494>] (bus_for_each_drv+0x84/0xd0)
[<c0548494>] (bus_for_each_drv) from [<c054a880>] (__device_attach+0xd4/0x18c)
[<c054a880>] (__device_attach) from [<c0549538>] (bus_probe_device+0x84/0x8c)
[<c0549538>] (bus_probe_device) from [<c05451fc>] (device_add+0x318/0x798)
[<c05451fc>] (device_add) from [<c0604eb0>] (usb_set_configuration+0x464/0x838)
[<c0604eb0>] (usb_set_configuration) from [<c0610890>] (usb_generic_driver_probe+0x50/0x8c)
[<c0610890>] (usb_generic_driver_probe) from [<c060630c>] (usb_probe_device+0x30/0xc0)
[<c060630c>] (usb_probe_device) from [<c054a3ec>] (really_probe+0xf0/0x4b0)
[<c054a3ec>] (really_probe) from [<c054aaac>] (driver_probe_device+0x5c/0xb4)
[<c054aaac>] (driver_probe_device) from [<c0548494>] (bus_for_each_drv+0x84/0xd0)
[<c0548494>] (bus_for_each_drv) from [<c054a880>] (__device_attach+0xd4/0x18c)
[<c054a880>] (__device_attach) from [<c0549538>] (bus_probe_device+0x84/0x8c)
[<c0549538>] (bus_probe_device) from [<c05451fc>] (device_add+0x318/0x798)
[<c05451fc>] (device_add) from [<c05fb39c>] (usb_new_device+0x248/0x600)
[<c05fb39c>] (usb_new_device) from [<c05fd0bc>] (hub_event+0xc70/0x15a0)
[<c05fd0bc>] (hub_event) from [<c0137d98>] (process_one_work+0x1c4/0x424)
[<c0137d98>] (process_one_work) from [<c0138054>] (worker_thread+0x5c/0x568)
[<c0138054>] (worker_thread) from [<c013dc9c>] (kthread+0x180/0x184)
[<c013dc9c>] (kthread) from [<c0100148>] (ret_from_fork+0x14/0x2c)
Exception stack(0xc1923fb0 to 0xc1923ff8)
3fa0:                                     00000000 00000000 00000000 00000000
3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
3fe0: 00000000 00000000 00000000 00000000 00000013 00000000
---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]---

Parents
  • Hi,

    Can you share your devicetree and what have you exactly done to add it? All these errors might indicate some devicetree issue and it's hard to identify the issue with the bootlog.

    Also, if you only have to change some properties on the ad9136, you might just need to extend the base dts instead of adding a new one.

    - Nuno Sá 

  • Sorry, I'm not very familiar with linux. I describe as clearly as possible. Below are the changes I made.
    I made the following changes, first HDL project, I modified config.tcl.

     

    set device AD9136
    set mode 11

     Then I make the whole project without any problem. Export the xsa platform file.
    Then I follow the readme of github.com/.../README.md. Compile with petalinux. I added the meta-adi-xilinx and meta-adi-core layers.I added pl-delete-nodes-zynq-zc706-adv7511-ad9136-fmc-ebz.dtsi in /custom/petalinux/petalinux-2021.2/meta-adi/meta-adi-xilinx/recipes-bsp/device-tree/files/ , the content is exactly the same as that of ad9172. And added it to SRC_URI_append_zynq in the device-tree.bbappend file.

    Then I use the command
    echo "KERNEL_DTB=\"${zynq-zc706-adv7511-ad9136-fmc-ebz}\"">> project-spec/meta-user/conf/petalinuxbsp.conf
    But there are some problems. In project-spec/meta-user/conf/petalinuxbsp.conf, KERNEL_DTB = zc706-adv7511-ad9136-fmc-ebz will omit zynq and cause the build to fail.
    So I ended up echo "KERNEL_DTB=\"${zynq-zynq-zc706-adv7511-ad9136-fmc-ebz}\"">> project-spec/meta-user/conf/petalinuxbsp.conf to make it work. Then build without any problem.

    Finally I make BOOT.bin, cd images/linux/ && petalinux-package --boot --fsbl ./zynq_fsbl.elf --fpga ./system.bit --u-boot ./u-boot.elf --force
    Copy all the required files to the SD card. Specifically, there are three files: boot.bin, boot.scr, and image.ub. And extract rootfs.tar.gz to the second partition.
    The dts file is unchanged. I'm missing some experience with device tree usage, is this file "zynq-zc706-adv7511-ad9136-fmc-ebz.dts"? The content is as follows:

    /dts-v1/;
    
    #include "zynq-zc706.dtsi"
    #include "zynq-zc706-adv7511.dtsi"
    
    &i2c_mux {
    	i2c@5 { /* HPC IIC */
    		#address-cells = <1>;
    		#size-cells = <0>;
    		reg = <5>;
    
    		eeprom@50 {
    			compatible = "at24,24c02";
    			reg = <0x50>;
    		};
    	};
    };
    
    #define fmc_spi spi0
    #define pmod_spi spi1
    #define axi_clk clkc 16
    #define fpga_device_clk ad9516 9
    
    #define fmc_gpio_base 86
    #define fmc_gpio gpio0
    
    #include "adi-xilinx-dac-fmc-ebz.dtsi"
    #include "adi-ad9136-fmc-ebz.dtsi"
    


    In addition, I also tried the method here wiki.analog.com/.../zynq to compile the device tree and copy BOOT.BIN devicetree.dtb uImage to the SD card, but the result is also Kernel panic when booting from SD card.
    make zynq-zc706-adv7511-ad9136-fmc-ebz.dtb in the linux folder.

    Since I don't understand device drivers very well, please let me know if I missed anything. Thank you very much for your reply!

  • And what is the content of the pl-delete-nodes file?

    I'll try to build it myself and try to reproduce your issue... It seems you're using the devicetree as-is in our linux which should just work...

    - Nuno Sá

  • Here is the pl-delete-nodes-zynq-zc706-adv7511-ad9136-fmc-ebz.dtsi.

    /delete-node/ &axi_hdmi_clkgen;
    /delete-node/ &axi_hdmi_core;
    /delete-node/ &misc_clk_0;
    /delete-node/ &axi_hdmi_dma;
    /delete-node/ &axi_iic_main;
    /delete-node/ &axi_spdif_tx_core;
    /delete-node/ &misc_clk_1;
    /delete-node/ &axi_sysid_0;
    /delete-node/ &dac_dma;
    /delete-node/ &dac_jesd204_link_tx_axi;
    /delete-node/ &misc_clk_2;
    /delete-node/ &dac_jesd204_transport_dac_tpl_core;
    /delete-node/ &dac_jesd204_xcvr;  

  • Yes, I could reproduce it using a petalinux build. I'm fairly convinced this is not an issue specific to meta-adi but rather some issue in the devicetree or even in some of the kernel drivers used by this design. I'll now manually build things to see if the result is the same (which I expected to be). 

    - Nuno Sá

  • Thank you for your response. Could you please provide an estimate of how long it may take to fix the issue? Alternatively, do you know of any faster alternative solutions that could be used in the meantime?

  • Hi,

    I cannot really estimate. I can already boot the device without any panic but I'm now seeing some issues on the JESD link. That devicetree is very old and is outdated... There's also no faster solution but hopefully I'll get the link working by next week.

    - Nuno Sá

  • Thank you for the update and for working on resolving the issue. I appreciate your efforts in troubleshooting and identifying potential solutions.

  • Hi,

    So I was able to get this working... Please take a look at:

    https://github.com/analogdevicesinc/linux/pull/2185

    It would be nice if you could give this a test before merging it... In order to test the branch in question you should change this line:

    https://github.com/analogdevicesinc/meta-adi/blob/2021_R2/meta-adi-xilinx/recipes-kernel/linux/linux-xlnx_%25.bbappend#L6

    and set KBRANCH = "staging/ad9136-fixes-2021_R2". This should make the build system check out this branch which includes the fixes...

    - Nuno Sá

Reply Children
  • Hi ,

    Thank you for your message and for letting me know about the changes you made in the code. I checked out the GitHub pull request you linked and I'm glad to inform you that I was able to successfully test it out. I can now access Linux and see the iio devices, thanks to your help!

    Your instructions were very clear and easy to follow, and I appreciate your efforts in making this work. Thank you for taking the time to help me with this.

    root@zc706-dac-5th:~# cd /sys/bus/iio/devices/
    root@zc706-dac-5th:/sys/bus/iio/devices# ls
    iio:device0        iio:device1        iio:device2        iio_sysfs_trigger
    root@zc706-dac-5th:/sys/bus/iio/devices# cd iio\:device2
    root@zc706-dac-5th:/sys/bus/iio/devices/iio:device2# ls -l
    total 0
    drwxr-xr-x    2 root     root             0 Mar 13 20:51 buffer
    -r--r--r--    1 root     root          4096 Mar 13 20:51 dev
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 in_temp0_calibbias
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 in_temp0_input
    -r--r--r--    1 root     root          4096 Mar 13 20:51 name
    lrwxrwxrwx    1 root     root             0 Mar 13 20:51 of_node -> ../../../../../firmware/devicetree/base/fpga-axi@0/jesd204-transport-layer@44a04000
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage0_1A_frequency
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage0_1A_phase
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage0_1A_raw
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage0_1A_scale
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage1_1B_frequency
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage1_1B_phase
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage1_1B_raw
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage1_1B_scale
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage2_2A_frequency
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage2_2A_phase
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage2_2A_raw
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage2_2A_scale
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage3_2B_frequency
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage3_2B_phase
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage3_2B_raw
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage3_2B_scale
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_altvoltage_sampling_frequency
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 out_voltage_sampling_frequency
    drwxr-xr-x    2 root     root             0 Mar 13 20:51 power
    drwxr-xr-x    2 root     root             0 Mar 13 20:51 scan_elements
    lrwxrwxrwx    1 root     root             0 Mar 13 20:51 subsystem -> ../../../../../bus/iio
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 sync_start_enable
    -r--r--r--    1 root     root          4096 Mar 13 20:51 sync_start_enable_available
    -rw-r--r--    1 root     root          4096 Mar 13 20:51 uevent
    root@zc706-dac-5th:/sys/bus/iio/devices/iio:device2# cat name
    jesd204-transport-layer
    root@zc706-dac-5th:/sys/bus/iio/devices/iio:device2# cd ..
    root@zc706-dac-5th:/sys/bus/iio/devices#  cd iio\:device2
    root@zc706-dac-5th:/sys/bus/iio/devices/iio:device2# cd ..
    root@zc706-dac-5th:/sys/bus/iio/devices# cd iio\:device1
    root@zc706-dac-5th:/sys/bus/iio/devices/iio:device1# ls
    dev                        out_altvoltage0_frequency  out_altvoltage1_raw        out_altvoltage3_frequency  out_altvoltage4_raw        out_altvoltage6_frequency  out_altvoltage7_raw        out_altvoltage9_frequency  subsystem
    name                       out_altvoltage0_raw        out_altvoltage2_frequency  out_altvoltage3_raw        out_altvoltage5_frequency  out_altvoltage6_raw        out_altvoltage8_frequency  out_altvoltage9_raw        uevent
    of_node                    out_altvoltage1_frequency  out_altvoltage2_raw        out_altvoltage4_frequency  out_altvoltage5_raw        out_altvoltage7_frequency  out_altvoltage8_raw        power
    root@zc706-dac-5th:/sys/bus/iio/devices/iio:device1# cat name
    ad9516-1
    

  • Hi,

    Glad to see this worked out. Note that you should also make sure you can actually send some data :) (and that the JESD insterface is up and running).

    - Nuno Sá

  • Hi Nuno,

    Thank you for your previous response. I apologize for my delayed reply as I was busy writing an article and couldn’t make it to the lab earlier. When I connected the 1.4 GHz clock to AD9516, I encountered some issues with the output waveform. Initially, I tried to control it using the ADI IIO OSC software and set the frequency and other parameters in the DAC DATA MANAGER tab, but no waveform was generated. As I am not familiar with the driver framework, I am not sure how to troubleshoot this issue. I have read some documentation, but it didn’t help.

    https://wiki.analog.com/resources/tools-software/linux-drivers/iio-dds/axi-dac-dds-hdl

    I also checked the jesd_status in the terminal, and it seems to be normal.

    │┌(DEVICES) Found 1 JESD204 Link Layer peripherals────────────────────────────┐│
    ││                                                                            ││
    ││(0): axi-jesd204-tx/44a90000.jesd204-link-layer  [*]                        ││
    │└────────────────────────────────────────────────────────────────────────────┘│
    │┌(STATUS)────────────────────────────────────────────────────────────────────┐│
    ││Link is                      enabled                                        ││
    ││Link Status                  DATA                                           ││
    ││Measured Link Clock (MHz)    87.502                                         ││
    ││Reported Link Clock (MHz)    87.500                                         ││
    ││Measured Device Clock (MHz)  87.503                                         ││
    ││Reported Device Clock (MHz)  87.500                                         ││
    ││Desired Device Clock (MHz)   87.500                                         ││
    ││Lane rate (MHz)              3500.000                                       ││
    ││Lane rate / 40 (MHz)         87.500                                         ││
    ││LMFC rate (MHz)              10.937                                         ││
    ││SYSREF captured              Yes                                            ││
    ││SYSREF alignment error       No                                             ││
    ││SYNC~                        deasserted                                     ││
    │└────────────────────────────────────────────────────────────────────────────┘│
    │                                                                              │
    │You can also use 'q' to quit and 'a' or 'd' to move between devices!          │
    │F1axi-jesd204-tx/44a90000.jesd204-link-layerF9Quit                            │
    └──────────────────────────────────────────────────────────────────────────────┘
    
    Can you please guide me on how to resolve this issue? I suspect that I might have missed some steps in my testing process. Also, I am not sure how to change the sampling rate, input clock size, and JESD204B link parameters. Does this require changing the device tree?Can you please advise?

    Thank you.

  • Hi,

    Sorry for the delay on this thread.

    Nuno is out for a few days. I would need to replicate the issue myself.

    I'm pretty sure it's related to TXEN when you don't see a DAC output, while the link is in DATA.

    We'll get back to you soon.

    -Michael

  • Hi,

    Thank you for your reply. I appreciate your response, and there's no need to rush.

    I want to mention that I have successfully controlled the AD9136 using the Xilinx JESD204B IP core with pure FPGA resources and Verilog language. In my design, I directly assigned txen as 2'b11. It worked but the hardware module implementation was quite rudimentary.

    However, when it comes to the Linux driver, I'm not very familiar with it. If there are any specific instructions or considerations related to the Linux driver that I should be aware of, please let me know.

    Once again, I appreciate your assistance, and I look forward to hearing from you soon.

  • There is one more point I need to add, I have posted it in another post.    Trouble with cf_axi_dds module and modifying JESD204B link parameters   

    I noticed that in the tutorial, the normal startup message for DDS should look like this: cf_axi_dds 79024000.cf-ad9361-dds-core-lpc: Analog Devices CF_AXI_DDS_DDS maste r (8.00.b) at 0x79024000 mapped to 0xf0998000, probed DDS AD9361

    But in my case, it appears as follows: cf_axi_dds 44a04000.jesd204-transport-layer: Analog Devices CF_AXI_DDS_DDS maste r (9.01.b) at 0x44A04000 mapped to 0x(ptrval), probed DDS (null)

    Therefore, I believe this discrepancy might be the cause of the issue.

  • Can you try this change. The GPIO assignments are wrong that's why the TXEN pins are floating.

    diff --git a/arch/arm/boot/dts/zynq-zc706-adv7511-ad9136-fmc-ebz.dts b/arch/arm/boot/dts/zynq-zc706-adv7511-ad9136-fmc-ebz.dts
    index 647c49861e88..5f48edacc166 100644
    --- a/arch/arm/boot/dts/zynq-zc706-adv7511-ad9136-fmc-ebz.dts
    +++ b/arch/arm/boot/dts/zynq-zc706-adv7511-ad9136-fmc-ebz.dts
    @@ -33,7 +33,7 @@ eeprom@50 {
    #define axi_clk clkc 16
    #define fpga_device_clk ad9516 9

    -#define fmc_gpio_base 86
    +#define fmc_gpio_base 75
    #define fmc_gpio gpio0

    #include "adi-xilinx-dac-fmc-ebz.dtsi"

    -Michael

  • ok use this to also fix TXEN_1

    diff --git a/arch/arm/boot/dts/adi-ad9136-fmc-ebz.dtsi b/arch/arm/boot/dts/adi-ad9136-fmc-ebz.dtsi
    
    index 89a193ed44d8..24d72b2bef2c 100644
    
    --- a/arch/arm/boot/dts/adi-ad9136-fmc-ebz.dtsi
    
    +++ b/arch/arm/boot/dts/adi-ad9136-fmc-ebz.dtsi
    
    @@ -75,7 +75,7 @@ dac: dac@1 {
    
     
    
                    spi-max-frequency = <1000000>;
    
     
    
    -               txen-gpios = <&fmc_gpio (fmc_gpio_base + 0) 0>, <&fmc_gpio (fmc_gpio_base + 1) 0>;
    
    +               txen-gpios = <&fmc_gpio (fmc_gpio_base + 0) 0>, <&fmc_gpio (fmc_gpio_base + 3) 0>;
    
     
    
                    clocks = <&jesd204_link>, <&ad9516 1>, <&ad9516 6>;
    
                    clock-names = "jesd_dac_clk", "dac_clk", "dac_sysref";
    
    diff --git a/arch/arm/boot/dts/zynq-zc706-adv7511-ad9136-fmc-ebz.dts b/arch/arm/boot/dts/zynq-zc706-adv7511-ad9136-fmc-ebz.dts
    
    index 647c49861e88..5f48edacc166 100644
    
    --- a/arch/arm/boot/dts/zynq-zc706-adv7511-ad9136-fmc-ebz.dts
    
    +++ b/arch/arm/boot/dts/zynq-zc706-adv7511-ad9136-fmc-ebz.dts
    
    @@ -33,7 +33,7 @@ eeprom@50 {
    
     #define axi_clk clkc 16
    
     #define fpga_device_clk ad9516 9
    
     
    
    -#define fmc_gpio_base 86
    
    +#define fmc_gpio_base 75
    
     #define fmc_gpio gpio0
    
     
    
     #include "adi-xilinx-dac-fmc-ebz.dtsi"
    
    

  • Thank you for your response. Unfortunately, I am unable to perform the testing at the moment. I will conduct the tests in the next couple of days and inform you of the results before the end of this week. I greatly appreciate your assistance and patience. Thank you once again for your support.

  • Hi,

    Thank you for your prompt response and assistance. I greatly appreciate it.

    I wanted to inform you that I have tried the modifications you suggested in the two lines of code, and now I can see waveforms on both channels. However, I'm experiencing periodic loss of synchronization in the JESD status, specifically from DATA to ILAS. This instability in the JESD synchronization results in highly unstable waveforms.

    Additionally, I wanted to confirm the clock signal requirements for the AD9516. Is it correct that the input clock signal should be 1400MHz? I haven't made any other modifications in this regard.

    Once again, thank you for your support, and I look forward to your guidance.