Post Go back to editing

Double AD9144-FMC-EBZ configuration : SPI error

Category: Software
Product Number: ZCU102+AD9144-FMC-EBZ
Software Version: 2021.2

Hi!

So I got our ZCU102+AD9144-FMC-EBZ to work in JESD mode0, meta-adi linux.

I am now doubling this configuration - so we can put two AD9144 on the two FMC connectors.

Not in FSM for now, since the sync between the cards is less critical for us (for now).

So I doubled the HDL in the TCL files, and the constraints, and connected the second spi to HPC1.

However, even though the linux is compiling, the second card doesn't come up.

These seem to be the most important error lines in the boot log:

[    6.549029] ad9517 spi2.0: Failed getting REFIN clock (-517) 

[    6.554921] ad9144: probe of spi2.1 failed with error -16 

But I don't know what can be the issue.

1. Do you have any suggestions please?

2. I understand from reading through the forum that -517 and -16 are error numbers? Is there a list of errors I can find more information about errors from?

Here are my dts files:

// SPDX-License-Identifier: GPL-2.0
/*
 * AD9144-FMC-EBZ on Xilinx ZynqMP ZCU102 Rev 1.0
 *
 * JESD Link Mode 0 Example: M4, L8, S1, F1,  NP'16, Interpolation: 2
 *
 * https://wiki.analog.com/resources/eval/user-guides/ad-dac-fmc-ebz
 *
 * hdl_project: <dac_fmc_ebz/zcu102>
 * ADI_DAC_DEVICE: <AD9144>
 * ADI_DAC_MODE: <00>
 * board_revision: <B>
 *
 * Copyright (C) 2020 Analog Devices Inc.
 */

#include "zynqmp-zcu102-rev1.0.dts"
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/jesd204/adxcvr.h>

&i2c1 {
	i2c-mux@75 {
		i2c@0 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;
			
			eeprom@50 {
				compatible = "at24,24c02";
				reg = <0x50>;
			};

		};
	};
};

/ {
	fpga_axi: fpga-axi@0 {
		interrupt-parent = <&gic>;
		compatible = "simple-bus";
		#address-cells = <0x1>;
		#size-cells = <0x1>;
		ranges = <0 0 0 0xffffffff>;

		// HPC0
		tx_dma_0: tx-dmac@9c420000 {
			#dma-cells = <1>;
			compatible = "adi,axi-dmac-1.00.a";
			reg = <0x9c420000 0x10000>;
			interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&zynqmp_clk 71>;

			adi,channels {
				#size-cells = <0>;
				#address-cells = <1>;

				dma-channel@0 {
					reg = <0>;
					adi,source-bus-width = <128>;
					adi,source-bus-type = <0>;
					adi,destination-bus-width = <256>;
					adi,destination-bus-type = <1>;
					adi,cyclic;
				};
			};
		};

		axi_ad9144_core_0: axi-ad9144-hpc@84a04000 {
			compatible = "adi,axi-ad9144-1.0";
			reg = <0x84a04000 0x10000>;
			dmas = <&tx_dma_0 0>;
			dma-names = "tx";
			spibus-connected = <&dac0_ad9144_0>;
			adi,axi-pl-fifo-enable;
		};

		axi_ad9144_jesd_0: axi-jesd204-tx@84a90000 {
			compatible = "adi,axi-jesd204-tx-1.0";
			reg = <0x84a90000 0x4000>;

			interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;

			clocks = <&zynqmp_clk 71>, <&axi_ad9144_adxcvr_0 1>, <&axi_ad9144_adxcvr_0 0>;
			clock-names = "s_axi_aclk", "device_clk", "lane_clk";

			adi,octets-per-frame = <1>;
			adi,frames-per-multiframe = <32>;
			adi,converter-resolution = <16>;
			adi,bits-per-sample = <16>;
			adi,converters-per-device = <4>;

			#clock-cells = <0>;
			clock-output-names = "jesd_dac_lane_clk";
		};

		axi_ad9144_adxcvr_0: axi-adxcvr-tx@84a60000 {
			compatible = "adi,axi-adxcvr-1.0";
			reg = <0x84a60000 0x1000>;

			clocks = <&clk_ad9516_0 9>;
			clock-names = "conv";

			adi,sys-clk-select = <XCVR_QPLL>;
			adi,out-clk-select = <XCVR_REFCLK>;
			adi,use-lpm-enable;

			#clock-cells = <1>;
			clock-output-names = "dac_gt_clk", "tx_out_clk";
		};

		// HPC1
		tx_dma_1: tx-dmac@9c430000 {
			#dma-cells = <1>;
			compatible = "adi,axi-dmac-1.00.a";
			reg = <0x9c430000 0x10000>;
			interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&zynqmp_clk 71>;

			adi,channels {
				#size-cells = <0>;
				#address-cells = <1>;

				dma-channel@0 {
					reg = <0>;
					adi,source-bus-width = <128>;
					adi,source-bus-type = <0>;
					adi,destination-bus-width = <256>;
					adi,destination-bus-type = <1>;
					adi,cyclic;
				};
			};
		};

		axi_ad9144_core_1: axi-ad9144-hpc@84a06000 {
			compatible = "adi,axi-ad9144-1.0";
			reg = <0x84a06000 0x10000>;
			dmas = <&tx_dma_1 0>;
			dma-names = "tx";
			spibus-connected = <&dac0_ad9144_1>;
			adi,axi-pl-fifo-enable;
		};

		axi_ad9144_jesd_1: axi-jesd204-tx@84a94000 {
			compatible = "adi,axi-jesd204-tx-1.0";
			reg = <0x84a94000 0x4000>;

			interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;

			clocks = <&zynqmp_clk 71>, <&axi_ad9144_adxcvr_1 1>, <&axi_ad9144_adxcvr_1 0>;
			clock-names = "s_axi_aclk", "device_clk", "lane_clk";

			adi,octets-per-frame = <1>;
			adi,frames-per-multiframe = <32>;
			adi,converter-resolution = <16>;
			adi,bits-per-sample = <16>;
			adi,converters-per-device = <4>;

			#clock-cells = <0>;
			clock-output-names = "jesd_dac_lane_clk";
		};

		axi_ad9144_adxcvr_1: axi-adxcvr-tx@84a70000 {
			compatible = "adi,axi-adxcvr-1.0";
			reg = <0x84a70000 0x1000>;

			clocks = <&clk_ad9516_1 9>;
			clock-names = "conv";

			adi,sys-clk-select = <XCVR_QPLL>;
			adi,out-clk-select = <XCVR_REFCLK>;
			adi,use-lpm-enable;

			#clock-cells = <1>;
			clock-output-names = "dac_gt_clk", "tx_out_clk";
		};

		axi_sysid_0: axi-sysid-0@85000000 {
			compatible = "adi,axi-sysid-1.00.a";
			reg = <0x85000000 0x10000>;
		};
	};
};

&spi0 {
	status = "okay";
};

&spi1 {
	status = "okay";
};

#define fmc_spi_0 spi0
#define fmc_spi_1 spi1

#include "adi-ad9144-fmc-ebz-mode0-double.dtsi"

&dac0_ad9144_0 {
	txen-gpios = <&gpio 99 0>,<&gpio 102 0>;
};

&dac0_ad9144_1 {
	txen-gpios = <&gpio 99 0>,<&gpio 102 0>;
};

and the dtsi called:

// SPDX-License-Identifier: GPL-2.0
/*
 * dts file for AD9144-FMC-EBZ on Xilinx ZynqMP ZCU102 Rev 1.0
 *
 * Copyright (C) 2018-2019 Analog Devices Inc.
 */

/ {
	clocks {
		ad9516_clkin_0: clock@0 {
			compatible = "fixed-clock";

			clock-frequency = <2000000000>;
			clock-output-names = "clkin";
			#clock-cells = <0>;
		};
		ad9516_clkin_1: clock@1 {
			compatible = "fixed-clock";

			clock-frequency = <2000000000>;
			clock-output-names = "clkin";
			#clock-cells = <0>;
		};
	};
};


&fmc_spi_0 {
	clk_ad9516_0: ad9516@0 {
		compatible = "adi,ad9516-1";
		reg = <0>;

		spi-max-frequency = <10000000>;

		firmware = "ad9144_fmc_ebz_ad9516.stp";

		clocks = <&ad9516_clkin_0>, <&ad9516_clkin_0>;
		clock-names = "refclk", "clkin";

		clock-output-names = "out0", "out1", "out2", "out3", "out4", "out5", "out6", "out7";
		#clock-cells = <1>;
	};

	dac0_ad9144_0: ad9144@1 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "adi,ad9144";
		reg = <1>;
		spi-max-frequency = <1000000>;
		clocks = <&axi_ad9144_jesd_0>, <&clk_ad9516_0 1>, <&clk_ad9516_0 6>;
		clock-names = "jesd_dac_clk", "dac_clk", "dac_sysref";

		adi,jesd-link-mode = <0>;
		adi,spi-4wire;

		adi,interpolation = <2>;

	};
};

&fmc_spi_1 {
	clk_ad9516_1: ad9516@0 {
		compatible = "adi,ad9516-1";
		reg = <0>;

		spi-max-frequency = <10000000>;

		firmware = "ad9144_fmc_ebz_ad9516.stp";

		clocks = <&ad9516_clkin_1>, <&ad9516_clkin_1>;
		clock-names = "refclk", "clkin";

		clock-output-names = "out0", "out1", "out2", "out3", "out4", "out5", "out6", "out7";
		#clock-cells = <1>;
	};

	dac0_ad9144_1: ad9144@1 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "adi,ad9144";
		reg = <1>;
		spi-max-frequency = <1000000>;
		clocks = <&axi_ad9144_jesd_1>, <&clk_ad9516_1 1>, <&clk_ad9516_1 6>;
		clock-names = "jesd_dac_clk", "dac_clk", "dac_sysref";

		adi,jesd-link-mode = <0>;
		adi,spi-4wire;

		adi,interpolation = <2>;

	};
};

And the whole boot-log:

Xilinx Zynq MP First Stage Boot Loader 

Release 2021.2   Oct 13 2021  -  07:15:53 

NOTICE:  BL31: v2.4(release):xlnx_rebase_v2.4_2021.1_update1-23-g9188496b9 

NOTICE:  BL31: Built : 07:41:24, Oct 13 2021 

 

 

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

 

CPU:   ZynqMP 

Silicon: v3 

Model: ZynqMP ZCU102 Rev1.0 

Board: Xilinx ZynqMP 

DRAM:  4 GiB 

PMUFW:  v1.1 

Xilinx I2C Legacy format at nvmem0:request  

 Board name:    zcu102 

 Board rev:     1.0 

 Board SN:      1030078502308-83420 

 Ethernet mac:  00:0a:35:07:ea:b3 

EL Level:       EL2 

Chip ID:        zu9eg 

NAND:  0 MiB 

MMC:   mmc@ff170000: 0 

Loading Environment from FAT... *** Warning - bad CRC, using default environment 

 

In:    serial 

Out:   serial 

Err:   serial 

Bootmode: LVL_SHFT_SD_MODE1 

Reset reason:   EXTERNAL 

Net: 

ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 12, interface rgmii-id 

eth0: ethernet@ff0e0000 

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 13 ms (203.1 KiB/s) 

## Executing script at 20000000 

Trying to load boot images from mmc0 

30280960 bytes read in 2004 ms (14.4 MiB/s) 

## Loading kernel from FIT Image at 10000000 ... 

   Using 'conf-system-top.dtb' configuration 

   Trying 'kernel-1' kernel subimage 

     Description:  Linux kernel 

     Created:      2023-10-10  13:10:16 UTC 

     Type:         Kernel Image 

     Compression:  gzip compressed 

     Data Start:   0x10000104 

     Data Size:    11218521 Bytes = 10.7 MiB 

     Architecture: AArch64 

     OS:           Linux 

     Load Address: 0x00200000 

     Entry Point:  0x00200000 

     Hash algo:    sha256 

     Hash value:   ebc4c9cb248dbcad627c2888206c8c46745799a21e45d48e37ffe6576e218d77 

   Verifying Hash Integrity ... sha256+ OK 

## Loading ramdisk from FIT Image at 10000000 ... 

   Using 'conf-system-top.dtb' configuration 

   Trying 'ramdisk-1' ramdisk subimage 

     Description:  petalinux-image-minimal 

     Created:      2023-10-10  13:10:16 UTC 

     Type:         RAMDisk Image 

     Compression:  uncompressed 

     Data Start:   0x10ac1c80 

     Data Size:    19000071 Bytes = 18.1 MiB 

     Architecture: AArch64 

     OS:           Linux 

     Load Address: unavailable 

     Entry Point:  unavailable 

     Hash algo:    sha256 

     Hash value:   81da6ced00d6948e67b3d8925191ebe04cec27daf8e645b61b94aac3f5d81da9 

   Verifying Hash Integrity ... sha256+ OK 

## Loading fdt from FIT Image at 10000000 ... 

   Using 'conf-system-top.dtb' configuration 

   Trying 'fdt-system-top.dtb' fdt subimage 

     Description:  Flattened Device Tree blob 

     Created:      2023-10-10  13:10:16 UTC 

     Type:         Flat Device Tree 

     Compression:  uncompressed 

     Data Start:   0x10ab3070 

     Data Size:    60221 Bytes = 58.8 KiB 

     Architecture: AArch64 

     Hash algo:    sha256 

     Hash value:   ea8a32caa094441cadd010b1c6bfa567e32dca05e8e08fd947cf84a3c24e891e 

   Verifying Hash Integrity ... sha256+ OK 

   Booting using the fdt blob at 0x10ab3070 

   Uncompressing Kernel Image 

   Loading Ramdisk to 7cbee000, end 7de0cb07 ... OK 

   Loading Device Tree to 000000007cbdc000, end 000000007cbedb3c ... OK 

 

Starting kernel ... 

 

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] 

[    0.000000] Linux version 5.10.0-xilinx-v2021.2 (oe-user@oe-host) (aarch64-xilinx-linux-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35.1) #1 SMP Tue Oct 10 13:10:16 UTC 2023 

[    0.000000] Machine model: ZynqMP ZCU102 Rev1.0 

[    0.000000] earlycon: cdns0 at MMIO 0x00000000ff000000 (options '115200n8') 

[    0.000000] printk: bootconsole [cdns0] enabled 

[    0.000000] efi: UEFI not found. 

[    0.000000] cma: Reserved 256 MiB at 0x000000006c800000 

[    0.000000] Zone ranges: 

[    0.000000]   DMA      [mem 0x0000000000000000-0x000000003fffffff] 

[    0.000000]   DMA32    [mem 0x0000000040000000-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-0x000000007fffffff] 

[    0.000000]   node   0: [mem 0x0000000800000000-0x000000087fffffff] 

[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000087fffffff] 

[    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 22 pages/cpu s50968 r8192 d30952 u90112 

[    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: 1032192 

[    0.000000] Kernel command line:  earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/ram0 rw 

[    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 0x000000003bfff000-0x000000003ffff000] (64MB) 

[    0.000000] Memory: 3733660K/4194304K available (16064K kernel code, 1728K rwdata, 12220K rodata, 2624K init, 660K bss, 198500K 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=8 to nr_cpu_ids=4. 

[    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=4 

[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 

[    0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000 

[    0.000000] GIC: Using split EOI/Deactivate mode 

[    0.000000] random: get_random_bytes called from start_kernel+0x31c/0x524 with crng_init=0 

[    0.000000] arch_timer: cp15 timer(s) running at 100.00MHz (phys). 

[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x171024e7e0, max_idle_ns: 440795205315 ns 

[    0.000003] sched_clock: 56 bits at 100MHz, resolution 10ns, wraps every 4398046511100ns 

[    0.008483] Console: colour dummy device 80x25 

[    0.012486] Calibrating delay loop (skipped), value calculated using timer frequency.. 200.00 BogoMIPS (lpj=400000) 

[    0.022841] pid_max: default: 32768 minimum: 301 

[    0.027597] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear) 

[    0.034789] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear) 

[    0.043619] rcu: Hierarchical SRCU implementation. 

[    0.047579] EFI services will not be available. 

[    0.051963] smp: Bringing up secondary CPUs ... 

[    0.056706] Detected VIPT I-cache on CPU1 

[    0.056749] CPU1: Booted secondary processor 0x0000000001 [0x410fd034] 

[    0.057147] Detected VIPT I-cache on CPU2 

[    0.057171] CPU2: Booted secondary processor 0x0000000002 [0x410fd034] 

[    0.057557] Detected VIPT I-cache on CPU3 

[    0.057580] CPU3: Booted secondary processor 0x0000000003 [0x410fd034] 

[    0.057628] smp: Brought up 1 node, 4 CPUs 

[    0.091781] SMP: Total of 4 processors activated. 

[    0.096453] CPU features: detected: 32-bit EL0 Support 

[    0.101557] CPU features: detected: CRC32 instructions 

[    0.106693] CPU: All CPU(s) started at EL2 

[    0.110736] alternatives: patching kernel code 

[    0.116259] devtmpfs: initialized 

[    0.124952] Registered cp15_barrier emulation handler 

[    0.125002] Registered setend emulation handler 

[    0.128987] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns 

[    0.138566] futex hash table entries: 1024 (order: 4, 65536 bytes, linear) 

[    0.151953] pinctrl core: initialized pinctrl subsystem 

[    0.152647] NET: Registered protocol family 16 

[    0.157039] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations 

[    0.163029] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations 

[    0.170753] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations 

[    0.178569] audit: initializing netlink subsys (disabled) 

[    0.184038] audit: type=2000 audit(0.116:1): state=initialized audit_enabled=0 res=1 

[    0.191612] cpuidle: using governor menu 

[    0.195561] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. 

[    0.202290] ASID allocator initialised with 65536 entries 

[    0.229661] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages 

[    0.230714] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages 

[    0.237383] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages 

[    0.244040] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages 

[    1.309844] DRBG: Continuing without Jitter RNG 

[    1.387501] raid6: neonx8   gen()  2147 MB/s 

[    1.455558] raid6: neonx8   xor()  1597 MB/s 

[    1.523631] raid6: neonx4   gen()  2190 MB/s 

[    1.591690] raid6: neonx4   xor()  1565 MB/s 

[    1.659765] raid6: neonx2   gen()  2076 MB/s 

[    1.727813] raid6: neonx2   xor()  1437 MB/s 

[    1.795895] raid6: neonx1   gen()  1774 MB/s 

[    1.863942] raid6: neonx1   xor()  1219 MB/s 

[    1.932013] raid6: int64x8  gen()  1437 MB/s 

[    2.000072] raid6: int64x8  xor()   771 MB/s 

[    2.068153] raid6: int64x4  gen()  1602 MB/s 

[    2.136204] raid6: int64x4  xor()   814 MB/s 

[    2.204285] raid6: int64x2  gen()  1397 MB/s 

[    2.272346] raid6: int64x2  xor()   749 MB/s 

[    2.340422] raid6: int64x1  gen()  1033 MB/s 

[    2.408485] raid6: int64x1  xor()   517 MB/s 

[    2.408522] raid6: using algorithm neonx4 gen() 2190 MB/s 

[    2.412481] raid6: .... xor() 1565 MB/s, rmw enabled 

[    2.417411] raid6: using neon recovery algorithm 

[    2.422462] iommu: Default domain type: Translated 

[    2.427061] SCSI subsystem initialized 

[    2.430710] usbcore: registered new interface driver usbfs 

[    2.436035] usbcore: registered new interface driver hub 

[    2.441316] usbcore: registered new device driver usb 

[    2.446443] mc: Linux media interface: v0.10 

[    2.450559] videodev: Linux video capture interface: v2.00 

[    2.456051] EDAC MC: Ver: 3.0.0 

[    2.459515] zynqmp-ipi-mbox mailbox@ff990400: Registered ZynqMP IPI mbox with TX/RX channels. 

[    2.467947] jesd204: found 0 devices and 0 topologies 

[    2.472632] FPGA manager framework 

[    2.476105] Advanced Linux Sound Architecture Driver Initialized. 

[    2.482418] Bluetooth: Core ver 2.22 

[    2.485586] NET: Registered protocol family 31 

[    2.489986] Bluetooth: HCI device and connection manager initialized 

[    2.496302] Bluetooth: HCI socket layer initialized 

[    2.501144] Bluetooth: L2CAP socket layer initialized 

[    2.506168] Bluetooth: SCO socket layer initialized 

[    2.511334] clocksource: Switched to clocksource arch_sys_counter 

[    2.517202] VFS: Disk quotas dquot_6.6.0 

[    2.521002] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) 

[    2.531953] NET: Registered protocol family 2 

[    2.532460] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear) 

[    2.540635] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear) 

[    2.548662] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear) 

[    2.556121] TCP: Hash tables configured (established 32768 bind 32768) 

[    2.562284] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear) 

[    2.568951] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear) 

[    2.576119] NET: Registered protocol family 1 

[    2.580593] RPC: Registered named UNIX socket transport module. 

[    2.586186] RPC: Registered udp transport module. 

[    2.590848] RPC: Registered tcp transport module. 

[    2.595517] RPC: Registered tcp NFSv4.1 backchannel transport module. 

[    2.602527] PCI: CLS 0 bytes, default 64 

[    2.605909] Trying to unpack rootfs image as initramfs... 

[    3.493832] Freeing initrd memory: 18552K 

[    3.494358] hw perfevents: no interrupt-affinity property for /pmu, guessing. 

[    3.499498] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available 

[    3.507933] Initialise system trusted keyrings 

[    3.511562] workingset: timestamp_bits=46 max_order=20 bucket_order=0 

[    3.518516] NFS: Registering the id_resolver key type 

[    3.522843] Key type id_resolver registered 

[    3.526983] Key type id_legacy registered 

[    3.530979] nfs4filelayout_init: NFSv4 File Layout Driver Registering... 

[    3.537636] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc. 

[    3.544831] fuse: init (API version 7.32) 

[    3.583842] NET: Registered protocol family 38 

[    3.583887] xor: measuring software checksum speed 

[    3.591571]    8regs           :  2363 MB/sec 

[    3.595235]    32regs          :  2799 MB/sec 

[    3.600186]    arm64_neon      :  2380 MB/sec 

[    3.600372] xor: using function: 32regs (2799 MB/sec) 

[    3.605398] Key type asymmetric registered 

[    3.609460] Asymmetric key parser 'x509' registered 

[    3.614322] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248) 

[    3.621657] io scheduler mq-deadline registered 

[    3.626153] io scheduler kyber registered 

[    3.656832] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled 

[    3.661495] cacheinfo: Unable to detect cache hierarchy for CPU 0 

[    3.668143] brd: module loaded 

[    3.672642] loop: module loaded 

[    3.672969] Registered mathworks_ip class 

[    3.676344] libphy: Fixed MDIO Bus: probed 

[    3.679230] tun: Universal TUN/TAP device driver, 1.6 

[    3.683314] CAN device driver interface 

[    3.687859] usbcore: registered new interface driver asix 

[    3.692427] usbcore: registered new interface driver ax88179_178a 

[    3.698464] usbcore: registered new interface driver cdc_ether 

[    3.704258] usbcore: registered new interface driver net1080 

[    3.709893] usbcore: registered new interface driver cdc_subset 

[    3.715761] usbcore: registered new interface driver zaurus 

[    3.721310] usbcore: registered new interface driver cdc_ncm 

[    3.727730] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver 

[    3.733390] ehci-pci: EHCI PCI platform driver 

[    3.738204] usbcore: registered new interface driver uas 

[    3.743112] usbcore: registered new interface driver usb-storage 

[    3.749099] usbcore: registered new interface driver usbserial_generic 

[    3.755547] usbserial: USB Serial support registered for generic 

[    3.761522] usbcore: registered new interface driver ftdi_sio 

[    3.767224] usbserial: USB Serial support registered for FTDI USB Serial Device 

[    3.774497] usbcore: registered new interface driver upd78f0730 

[    3.780370] usbserial: USB Serial support registered for upd78f0730 

[    3.788060] rtc_zynqmp ffa60000.rtc: registered as rtc0 

[    3.791795] rtc_zynqmp ffa60000.rtc: setting system clock to 2018-12-28T16:36:15 UTC (1546014975) 

[    3.800661] i2c /dev entries driver 

[    3.805972] usbcore: registered new interface driver uvcvideo 

[    3.809769] USB Video Class driver (1.1.1) 

[    3.815362] Bluetooth: HCI UART driver ver 2.3 

[    3.818241] Bluetooth: HCI UART protocol H4 registered 

[    3.823350] Bluetooth: HCI UART protocol BCSP registered 

[    3.828640] Bluetooth: HCI UART protocol LL registered 

[    3.833728] Bluetooth: HCI UART protocol ATH3K registered 

[    3.839104] Bluetooth: HCI UART protocol Three-wire (H5) registered 

[    3.845358] Bluetooth: HCI UART protocol Intel registered 

[    3.850695] Bluetooth: HCI UART protocol QCA registered 

[    3.855898] usbcore: registered new interface driver bcm203x 

[    3.861521] usbcore: registered new interface driver bpa10x 

[    3.867053] usbcore: registered new interface driver bfusb 

[    3.872507] usbcore: registered new interface driver btusb 

[    3.877967] usbcore: registered new interface driver ath3k 

[    3.883450] EDAC MC: ECC not enabled 

[    3.887073] EDAC DEVICE0: Giving out device to module zynqmp-ocm-edac controller zynqmp_ocm: DEV ff960000.memory-controller (INTERRUPT) 

[    3.899401] sdhci: Secure Digital Host Controller Interface driver 

[    3.905177] sdhci: Copyright(c) Pierre Ossman 

[    3.909503] sdhci-pltfm: SDHCI platform and OF driver helper 

[    3.915564] ledtrig-cpu: registered to indicate activity on CPUs 

[    3.921111] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping .... 

[    3.927536] zynqmp_firmware_probe Platform Management API v1.1 

[    3.933294] zynqmp_firmware_probe Trustzone version v1.0 

[    3.970065] zynqmp-pinctrl firmware:zynqmp-firmware:pinctrl: zynqmp pinctrl initialized 

[    4.016378] zynqmp-aes firmware:zynqmp-firmware:zynqmp-aes: will run requests pump with realtime priority 

[    4.032196] zynqmp-aes firmware:zynqmp-firmware:zynqmp-aes: ERROR: Unknown error 

[    4.033963] alg: aead: xilinx-zynqmp-aes-gcm encryption failed on test vector 8; expected_error=0, actual_error=-64, cfg="in-place" 

[    4.046102] alg: No test for xilinx-keccak-384 (zynqmp-keccak-384) 

[    4.052063] alg: No test for xilinx-zynqmp-rsa (zynqmp-rsa) 

[    4.057565] usbcore: registered new interface driver usbhid 

[    4.062931] usbhid: USB HID core driver 

[    4.074168] axi_sysid 85000000.axi-sysid-0: AXI System ID core version (1.01.a) found 

[    4.076533] axi_sysid 85000000.axi-sysid-0: [dac_fmc_ebz] [AD9144 - 00] on [zcu102] git branch <> git <0> dirty [2023-11-19 17:14:03] UTC 

[    4.089184] fpga_manager fpga0: Xilinx ZynqMP FPGA Manager registered 

[    4.095567] usbcore: registered new interface driver snd-usb-audio 

[    4.103052] pktgen: Packet Generator for packet performance testing. Version: 2.75 

[    4.109319] Initializing XFRM netlink socket 

[    4.113014] NET: Registered protocol family 10 

[    4.117778] Segment Routing with IPv6 

[    4.121143] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver 

[    4.127220] NET: Registered protocol family 17 

[    4.131293] NET: Registered protocol family 15 

[    4.135772] can: controller area network core 

[    4.140049] NET: Registered protocol family 29 

[    4.144435] can: raw protocol 

[    4.147374] can: broadcast manager protocol 

[    4.151525] can: netlink gateway - max_hops=1 

[    4.155937] Bluetooth: RFCOMM TTY layer initialized 

[    4.160699] Bluetooth: RFCOMM socket layer initialized 

[    4.165807] Bluetooth: RFCOMM ver 1.11 

[    4.169517] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 

[    4.174789] Bluetooth: BNEP filters: protocol multicast 

[    4.179982] Bluetooth: BNEP socket layer initialized 

[    4.184909] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 

[    4.190794] Bluetooth: HIDP socket layer initialized 

[    4.195864] 9pnet: Installing 9P2000 support 

[    4.199987] NET: Registered protocol family 36 

[    4.204396] Key type dns_resolver registered 

[    4.208799] registered taskstats version 1 

[    4.212684] Loading compiled-in X.509 certificates 

[    4.217826] Btrfs loaded, crc32c=crc32c-generic 

[    4.231106] ff000000.serial: ttyPS0 at MMIO 0xff000000 (irq = 49, base_baud = 6249999) is a xuartps 

[    4.240126] printk: console [ttyPS0] enabled 

[    4.240126] printk: console [ttyPS0] enabled 

[    4.244422] printk: bootconsole [cdns0] disabled 

[    4.244422] printk: bootconsole [cdns0] disabled 

[    4.254080] ff010000.serial: ttyPS1 at MMIO 0xff010000 (irq = 50, base_baud = 6249999) is a xuartps 

[    4.267283] of-fpga-region fpga-full: FPGA Region probed 

[    4.274289] nwl-pcie fd0e0000.pcie: host bridge /axi/pcie@fd0e0000 ranges: 

[    4.281189] nwl-pcie fd0e0000.pcie:      MEM 0x00e0000000..0x00efffffff -> 0x00e0000000 

[    4.289200] nwl-pcie fd0e0000.pcie:      MEM 0x0600000000..0x07ffffffff -> 0x0600000000 

[    4.297272] nwl-pcie fd0e0000.pcie: Link is DOWN 

[    4.302043] nwl-pcie fd0e0000.pcie: PCI host bridge to bus 0000:00 

[    4.308220] pci_bus 0000:00: root bus resource [bus 00-ff] 

[    4.313701] pci_bus 0000:00: root bus resource [mem 0xe0000000-0xefffffff] 

[    4.320571] pci_bus 0000:00: root bus resource [mem 0x600000000-0x7ffffffff pref] 

[    4.328076] pci 0000:00:00.0: [10ee:d021] type 01 class 0x060400 

[    4.334133] pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot 

[    4.344587] pci 0000:00:00.0: PCI bridge to [bus 01-0c] 

[    4.350591] xilinx-zynqmp-dma fd500000.dma: ZynqMP DMA driver Probe success 

[    4.357773] xilinx-zynqmp-dma fd510000.dma: ZynqMP DMA driver Probe success 

[    4.364945] xilinx-zynqmp-dma fd520000.dma: ZynqMP DMA driver Probe success 

[    4.372122] xilinx-zynqmp-dma fd530000.dma: ZynqMP DMA driver Probe success 

[    4.379294] xilinx-zynqmp-dma fd540000.dma: ZynqMP DMA driver Probe success 

[    4.386467] xilinx-zynqmp-dma fd550000.dma: ZynqMP DMA driver Probe success 

[    4.393639] xilinx-zynqmp-dma fd560000.dma: ZynqMP DMA driver Probe success 

[    4.400824] xilinx-zynqmp-dma fd570000.dma: ZynqMP DMA driver Probe success 

[    4.408232] xilinx-zynqmp-dpdma fd4c0000.dma-controller: Xilinx DPDMA engine is probed 

[    4.416797] ahci-ceva fd0c0000.ahci: supply ahci not found, using dummy regulator 

[    4.424349] ahci-ceva fd0c0000.ahci: supply phy not found, using dummy regulator 

[    4.437236] ad9517 spi1.0: AD9517 successfully initialized 

[    4.468788] ad9517 spi2.0: Failed getting REFIN clock (-517) 

[    4.500322] spi-nor spi0.0: SPI-NOR-UniqueID e00d0e0017faff0900fc436c66b8 

[    4.507115] spi-nor spi0.0: found mt25qu512a, expected m25p80 

[    4.513412] spi-nor spi0.0: trying to lock already unlocked area 

[    4.519430] spi-nor spi0.0: mt25qu512a (131072 Kbytes) 

[    4.524591] 4 fixed-partitions partitions found on MTD device spi0.0 

[    4.530934] Creating 4 MTD partitions on "spi0.0": 

[    4.535718] 0x000000000000-0x000000100000 : "qspi-fsbl-uboot" 

[    4.542357] 0x000000100000-0x000000600000 : "qspi-linux" 

[    4.548357] 0x000000600000-0x000000620000 : "qspi-device-tree" 

[    4.554887] 0x000000620000-0x000000c00000 : "qspi-rootfs" 

[    4.563509] macb ff0e0000.ethernet: Not enabling partial store and forward 

[    4.571049] libphy: MACB_mii_bus: probed 

[    4.578740] macb ff0e0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0e0000 irq 30 (00:0a:35:07:ea:b3) 

[    4.589058] xilinx-axipmon ffa00000.perf-monitor: Probed Xilinx APM 

[    4.595655] xilinx-axipmon fd0b0000.perf-monitor: Probed Xilinx APM 

[    4.602194] xilinx-axipmon fd490000.perf-monitor: Probed Xilinx APM 

[    4.608736] xilinx-axipmon ffa10000.perf-monitor: Probed Xilinx APM 

[    4.618187] pca953x 0-0020: supply vcc not found, using dummy regulator 

[    4.624879] pca953x 0-0020: using no AI 

[    4.629347] gpio-322 (sel0): hogged as output/low 

[    4.634245] gpio-323 (sel1): hogged as output/high 

[    4.639227] gpio-324 (sel2): hogged as output/high 

[    4.644214] gpio-325 (sel3): hogged as output/high 

[    4.649410] pca953x 0-0021: supply vcc not found, using dummy regulator 

[    4.656083] pca953x 0-0021: using no AI 

[    4.661849] ina2xx 2-0040: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.668878] ina2xx 2-0041: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.675915] ina2xx 2-0042: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.682947] ina2xx 2-0043: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.689976] ina2xx 2-0044: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.697001] ina2xx 2-0045: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.704034] ina2xx 2-0046: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.711067] ina2xx 2-0047: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.718162] ina2xx 2-004a: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.725190] ina2xx 2-004b: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.731596] i2c i2c-0: Added multiplexed i2c bus 2 

[    4.737190] ina2xx 3-0040: power monitor ina226 (Rshunt = 2000 uOhm) 

[    4.744212] ina2xx 3-0041: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.751246] ina2xx 3-0042: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.758277] ina2xx 3-0043: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.765312] ina2xx 3-0044: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.772339] ina2xx 3-0045: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.779116] random: fast init done 

[    4.782786] ina2xx 3-0046: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.789812] ina2xx 3-0047: power monitor ina226 (Rshunt = 5000 uOhm) 

[    4.796216] i2c i2c-0: Added multiplexed i2c bus 3 

[    4.851828] i2c i2c-0: Added multiplexed i2c bus 4 

[    4.856780] i2c i2c-0: Added multiplexed i2c bus 5 

[    4.861571] pca954x 0-0075: registered 4 multiplexed busses for I2C mux pca9544 

[    4.868920] cdns-i2c ff020000.i2c: 400 kHz mmio ff020000 irq 32 

[    4.876706] at24 6-0054: supply vcc not found, using dummy regulator 

[    4.883608] at24 6-0054: 1024 byte 24c08 EEPROM, writable, 1 bytes/write 

[    4.890361] i2c i2c-1: Added multiplexed i2c bus 6 

[    4.896643] si5341 7-0036: Chip: 5341 Grade: 1 Rev: 3 

[    4.934180] i2c i2c-1: Added multiplexed i2c bus 7 

[    4.941978] si570 8-005d: registered, current frequency 300000000 Hz 

[    4.948386] i2c i2c-1: Added multiplexed i2c bus 8 

[    4.968135] si570 9-005d: registered, current frequency 148500000 Hz 

[    4.974538] i2c i2c-1: Added multiplexed i2c bus 9 

[    4.979601] si5324 10-0069: si5328 probed 

[    5.047699] si5324 10-0069: si5328 probe successful 

[    5.052624] i2c i2c-1: Added multiplexed i2c bus 10 

[    5.057656] i2c i2c-1: Added multiplexed i2c bus 11 

[    5.062689] i2c i2c-1: Added multiplexed i2c bus 12 

[    5.067715] i2c i2c-1: Added multiplexed i2c bus 13 

[    5.072589] pca954x 1-0074: registered 8 multiplexed busses for I2C switch pca9548 

[    5.080720] at24 14-0050: supply vcc not found, using dummy regulator 

[    5.087539] at24 14-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write 

[    5.094285] i2c i2c-1: Added multiplexed i2c bus 14 

[    5.099335] i2c i2c-1: Added multiplexed i2c bus 15 

[    5.104376] i2c i2c-1: Added multiplexed i2c bus 16 

[    5.109417] i2c i2c-1: Added multiplexed i2c bus 17 

[    5.114462] i2c i2c-1: Added multiplexed i2c bus 18 

[    5.119501] i2c i2c-1: Added multiplexed i2c bus 19 

[    5.124546] i2c i2c-1: Added multiplexed i2c bus 20 

[    5.129606] i2c i2c-1: Added multiplexed i2c bus 21 

[    5.134485] pca954x 1-0075: registered 8 multiplexed busses for I2C switch pca9548 

[    5.142096] cdns-i2c ff030000.i2c: 400 kHz mmio ff030000 irq 33 

[    5.151970] cdns-wdt fd4d0000.watchdog: Xilinx Watchdog Timer with timeout 60s 

[    5.161651] axi_adxcvr 84a60000.axi-adxcvr-tx: AXI-ADXCVR-TX (17.05.a) using QPLL on GTH4 at 0x84A60000. Number of lanes: 8. 

[    5.173754] axi-jesd204-tx 84a90000.axi-jesd204-tx: AXI-JESD204-TX (1.06.a) at 0x84A90000. Encoder 8b10b, width 4/4, lanes 8. 

[    5.186549] zynqmp-display fd4a0000.display: vtc bridge property not present 

[    5.192212] mmc0: SDHCI controller on ff170000.mmc [ff170000.mmc] using ADMA 64-bit 

[    5.196215] xilinx-dp-snd-codec fd4a0000.display:zynqmp_dp_snd_codec0: Failed to get required clock freq 

[    5.210734] xilinx-dp-snd-codec: probe of fd4a0000.display:zynqmp_dp_snd_codec0 failed with error -22 

[    5.220270] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm0: Xilinx DisplayPort Sound PCM probed 

[    5.228433] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm1: Xilinx DisplayPort Sound PCM probed 

[    5.236651] OF: graph: no port node found in /axi/display@fd4a0000 

[    5.243196] xlnx-drm xlnx-drm.0: bound fd4a0000.display (ops 0xffffffc011090608) 

[    5.289763] mmc0: new high speed SDHC card at address aaaa 

[    5.295657] mmcblk0: mmc0:aaaa SC32G 29.7 GiB 

[    5.304098]  mmcblk0: p1 p2 

[    6.327373] zynqmp-display fd4a0000.display: [drm] Cannot find any crtc or sizes 

[    6.335003] [drm] Initialized xlnx 1.0.0 20130509 for fd4a0000.display on minor 0 

[    6.342496] zynqmp-display fd4a0000.display: ZynqMP DisplayPort Subsystem driver probed 

[    6.350890] ahci-ceva fd0c0000.ahci: supply ahci not found, using dummy regulator 

[    6.358444] ahci-ceva fd0c0000.ahci: supply phy not found, using dummy regulator 

[    6.365905] ahci-ceva fd0c0000.ahci: supply target not found, using dummy regulator 

[    6.373738] ahci-ceva fd0c0000.ahci: AHCI 0001.0301 32 slots 2 ports 6 Gbps 0x3 impl platform mode 

[    6.382694] ahci-ceva fd0c0000.ahci: flags: 64bit ncq sntf pm clo only pmp fbs pio slum part ccc sds apst 

[    6.393396] scsi host0: ahci-ceva 

[    6.397000] scsi host1: ahci-ceva 

[    6.400439] ata1: SATA max UDMA/133 mmio [mem 0xfd0c0000-0xfd0c1fff] port 0x100 irq 45 

[    6.408350] ata2: SATA max UDMA/133 mmio [mem 0xfd0c0000-0xfd0c1fff] port 0x180 irq 45 

[    6.515085] ad9144 spi1.1: DAC-1 calibration failed (0x53) 

[    6.523109] ad9144 spi1.1: Link0 code grp sync: ff 

[    6.527892] ad9144 spi1.1: Link0 frame sync stat: ff 

[    6.532846] ad9144 spi1.1: Link0 good checksum stat: ff 

[    6.538064] ad9144 spi1.1: Link0 init lane_sync stat: ff 

[    6.543368] ad9144 spi1.1: Link0 8 lanes @ 10000000 kBps 

[    6.549029] ad9517 spi2.0: Failed getting REFIN clock (-517) 

[    6.554921] ad9144: probe of spi2.1 failed with error -16 

[    6.565927] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller 

[    6.571436] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1 

[    6.579187] xhci-hcd xhci-hcd.1.auto: hcc params 0x0238f625 hci version 0x100 quirks 0x0000000002010810 

[    6.588608] xhci-hcd xhci-hcd.1.auto: irq 57, io mem 0xfe200000 

[    6.594732] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10 

[    6.602997] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 

[    6.610211] usb usb1: Product: xHCI Host Controller 

[    6.615079] usb usb1: Manufacturer: Linux 5.10.0-xilinx-v2021.2 xhci-hcd 

[    6.621771] usb usb1: SerialNumber: xhci-hcd.1.auto 

[    6.626960] hub 1-0:1.0: USB hub found 

[    6.630725] hub 1-0:1.0: 1 port detected 

[    6.634848] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller 

[    6.640337] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2 

[    6.647997] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed 

[    6.654641] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10 

[    6.662905] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 

[    6.670120] usb usb2: Product: xHCI Host Controller 

[    6.674988] usb usb2: Manufacturer: Linux 5.10.0-xilinx-v2021.2 xhci-hcd 

[    6.681682] usb usb2: SerialNumber: xhci-hcd.1.auto 

[    6.686801] hub 2-0:1.0: USB hub found 

[    6.690563] hub 2-0:1.0: 1 port detected 

[    6.715772] cf_axi_dds 84a04000.axi-ad9144-hpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.01.b) at 0x84A04000 mapped to 0x(____ptrval____), probed DDS (null) 

[    6.729545] ata1: SATA link down (SStatus 0 SControl 330) 

[    6.731099] ad9517 spi2.0: Failed getting REFIN clock (-517) 

[    6.735082] ata2: SATA link down (SStatus 0 SControl 330) 

[    6.745275] ad9517 spi2.0: Failed getting REFIN clock (-517) 

[    6.757760] input: gpio-keys as /devices/platform/gpio-keys/input/input0 

[    6.764808] of_cfs_init 

[    6.767263] of_cfs_init: OK 

[    6.770230] cfg80211: Loading compiled-in X.509 certificates for regulatory database 

[    6.779667] ad9517 spi2.0: Failed getting REFIN clock (-517) 

[    6.916795] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' 

[    6.923340] clk: Not disabling unused clocks 

[    6.927871] ALSA device list: 

[    6.930825]   No soundcards found. 

[    6.934519] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 

[    6.943130] cfg80211: failed to load regulatory.db 

[    6.948694] Freeing unused kernel memory: 2624K 

[    6.979374] Run /init as init process 

INIT: version 2.97 booting 

Starting udev 

[    7.085384] udevd[160]: starting version 3.2.9 

[    7.090223] random: udevd: uninitialized urandom read (16 bytes read) 

[    7.096715] random: udevd: uninitialized urandom read (16 bytes read) 

[    7.103175] random: udevd: uninitialized urandom read (16 bytes read) 

[    7.114235] udevd[161]: starting eudev-3.2.9 

[    7.439395] zynqmp-display fd4a0000.display: [drm] Cannot find any crtc or sizes 

[    7.590042] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) 

[    7.590419] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. 

bootlogd: /dev/ttyPS0Configuring packages on first boot.... 

 (This may take several minutes. Please do not power off the machine.) 

Running postinst /etc/rpm-postinsts/100-sysvinit-inittab... 

update-rc.d: /etc/init.d/run-postinsts exists during rc.d purge (continuing) 

INIT: Entering runlevel: 5 

Configuring network interfaces... [    7.965241] macb ff0e0000.ethernet eth0: PHY [ff0e0000.ethernet-ffffffff:0c] driver [TI DP83867] (irq=POLL) 

[    7.974986] macb ff0e0000.ethernet eth0: configuring for phy/rgmii-id link mode 

udhcpc: started, v1.32.0 

udhcpc: sending discover 

udhcpc: sending discover 

[   12.073014] macb ff0e0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control tx 

[   12.080607] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready 

udhcpc: sending discover 

udhcpc: no lease, forking to background 

done. 

Starting system message bus: dbus. 

Starting haveged: haveged: command socket is listening at fd 3 

haveged: haveged starting up 

 

 

Starting Dropbear SSH server: Waiting for kernel randomness to be initialised... 

haveged: haveged: ver: 1.9.13; arch: generic; vend: ; build: (gcc 10.2.0 CTV); collect: 128K 

 

haveged: haveged: cpu: (VC); data: 16K (D); inst: 16K (D); idx: 11/40; sz: 15456/64452 

 

haveged: haveged: tot tests(BA8): A:1/1 B:1/1 continuous tests(B):  last entropy estimate 7.99792 

 

haveged: haveged: fills: 0, generated: 0 

 

[   18.580647] random: crng init done 

[   18.584077] random: 7 urandom warning(s) missed due to ratelimiting 

 

Public key portion is: 

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCh+QZdKw7RuFFRjYZbFTsGa819sV/D80xFHeTs1X9zPpWsCDiHFXB85VfZEz0L6bFeBufpFmvWq+N4FX+71paZJNKjs2qQif2C02kieWEqXJbevL5ojcxZEI4qjA/tm7mDV3zSVUst7rPo55lwBNuRDu4YdTrjQWLi7CoFNBIiJ7VN5acjri2dKsgKXIgV1vreKQyiV57ZjzpQ10KuOpNv6L7pus9KIIQy5r6Fm9wjy31H0BfiDsYxfopBa7i1SSS6zay/j/JRrOqFazkTioLYWrPkIvKxWqxwsLX0UG9PXtSMsbZ90feKHz2ofBWesUhwzhERihDk2ffDF0hjOY8x root@molecular-duck-22 

Fingerprint: sha1!! 84:72:e6:37:b2:5f:a4:a4:b9:5c:d4:a7:b9:f9:79:f7:76:ce:89:2a 

dropbear. 

Starting Fancontrol Daemon: fancontrold 

Starting IIO Daemon: iiod 

Starting internet superserver: inetd. 

Starting syslogd/klogd: done 

Starting tcf-agent: OK 

 

root@molecular-duck-22:~# 

Any help would be appreciated, thanks a lot in advance! Slight smile

Eliana

  • Hi,

    From kernel errno.h:

    #define EBUSY                   16           /* Device or resource busy */

    #define EPROBE_DEFER 517         /* Driver requests probe retry */

     

    The problem is likely that your second fixed-clock doesn’t probe and returns error.

    That’s why your other drivers also return with error.

     

    Can you check:

    root@analog:~# cat /sys/kernel/debug/devices_deferred 

     

    root@analog:~# cat /sys/kernel/debug/clk/clk_summary

     

    The issue is likely that both register the same output name.

    	clocks {
    		ad9516_clkin_0: clock@0 {
    			compatible = "fixed-clock";
    
    			clock-frequency = <2000000000>;
    			clock-output-names = "clkin";
    			#clock-cells = <0>;
    		};
    		ad9516_clkin_1: clock@1 {
    			compatible = "fixed-clock";
    
    			clock-frequency = <2000000000>;
    			clock-output-names = "clkin";
    			#clock-cells = <0>;
    		};
    	};

    clock-output-names = "clkin";

     

    These need to be unique!

    You may likely run into a similar issue with your ad9517 clock output names...

    -Michael

  • Hi Michael,

    Thank you for the answer!

    These are the results from the commands:

    devices_deferred:

    root@molecular-duck-22:~# cat /sys/kernel/debug/devices_deferred
    84a06000.axi-ad9144-hpc
    84a70000.axi-adxcvr-tx
    84a94000.axi-jesd204-tx
    fd4a0000.display:zynqmp_dp_snd_card
    spi2.0
    ina226-u76
    ina226-u77
    ina226-u78
    ina226-u87
    ina226-u85
    ina226-u86
    ina226-u93
    ina226-u88
    ina226-u15
    ina226-u92
    ina226-u79
    ina226-u81
    ina226-u80
    ina226-u84
    ina226-u16
    ina226-u65
    ina226-u74
    ina226-u75
    

    clk_summary:

    root@molecular-duck-22:~# cat /sys/kernel/debug/clk/clk_summary
                                     enable  prepare  protect                                duty
       clock                          count    count    count        rate   accuracy phase  cycle  nshot
    ----------------------------------------------------------------------------------------------------
     clkin2_0                             0        0        0           0          0     0  50000        0
     clkin1_0                             0        0        0           0          0     0  50000        0
     si570_mgt                            0        0        0   148499999          0     0  50000        0
     si570_user                           0        0        0   299999997          0     0  50000        0
     clkin                                5        5        1  2000000000          0     0  50000        0
        spi1.0-div4                       1        1        1   250000000          0     0  50000        0
           out9                           2        2        1   250000000          0     0  50000        0
              tx_out_clk                  0        0        0   250000000          0     0  50000        0
              dac_gt_clk                  1        1        1    10000000          0     0  50000        0
                 jesd_dac_lane_clk        1        1        0    10000000          0     0  50000        0
           out8                           0        0        0   250000000          0     0  50000        0
        spi1.0-div3                       1        1        0    31250000          0     0  50000        0
           out7                           0        0        0    31250000          0     0  50000        0
           out6                           1        1        0    31250000          0     0  50000        0
        spi1.0-div2                       0        0        0  2000000000          0     0  50000        0
           out5                           0        0        0  2000000000          0     0  50000        0
           out4                           0        0        0  2000000000          0     0  50000        0
        spi1.0-div1                       0        0        0    83333333          0     0  50000        0
           out3                           0        0        0    83333333          0     0  50000        0
           out2                           0        0        0    83333333          0     0  50000        0
        spi1.0-div0                       1        1        0  2000000000          0     0  50000        0
           out1                           2        2        0  2000000000          0     0  50000        0
           out0                           0        0        0  2000000000          0     0  50000        0
     refhdmi                              1        1        0   114285000          0     0  50000        0
        xtal_0                            0        0        0   114285000          0     0  50000        0
           pll_0                          0        0        0 40731174000000          0     0  50000        0
              clk1_0                      0        0        0    27000000          0     0  50000        0
              clk0_0                      0        0        0    27000000          0     0  50000        0
     ref48M                               2        2        0    48000000          0     0  50000        0
        si5341                            3        3        0    14000000          0     0  50000        0
           clock-generator.N4             0        0        0           0          0     0  50000        0
           clock-generator.N3             0        0        0           0          0     0  50000        0
           clock-generator.N2             1        1        0   104000000          0     0  50000        0
              clock-generator.2           1        2        0    26000000          0     0  50000        0
           clock-generator.N1             1        2        0   594000000          0     0  50000        0
              clock-generator.7           0        1        0    74250000          0     0  50000        0
              clock-generator.0           1        2        0    27000000          0     0  50000        0
           clock-generator.N0             2        5        0  1000000000          0     0  50000        0
              clock-generator.9           0        1        0    33333333          0     0  50000        0
              clock-generator.8           0        0        0           0          0     0  50000        0
              clock-generator.6           0        1        0   125000000          0     0  50000        0
              clock-generator.5           1        2        0   100000000          0     0  50000        0
              clock-generator.4           0        1        0   100000000          0     0  50000        0
              clock-generator.3           1        2        0   125000000          0     0  50000        0
              clock-generator.1           0        0        0           0          0     0  50000        0
     dp_aclk                              1        1        0   100000000        100     0  50000        0
     aux_ref_clk                          0        0        0    27000000          0     0  50000        0
     gt_crx_ref_clk                       0        0        0   108000000          0     0  50000        0
     pss_alt_ref_clk                      0        0        0           0          0     0  50000        0
     video_clk                            0        0        0    27000000          0     0  50000        0
     pss_ref_clk                          2        2        2    33333333          0     0  50000        0
        vpll_post_src                     0        0        0    33333333          0     0  50000        0
        vpll_pre_src                      0        0        0    33333333          0     0  50000        0
           vpll_int                       0        0        0  2999999970          0     0  50000        0
              vpll_half                   0        0        0  1499999985          0     0  50000        0
                 vpll_int_mux             0        0        0  1499999985          0     0  50000        0
                    vpll                  0        0        0  1499999985          0     0  50000        0
                       dp_video_ref_mux       0        0        0  1499999985          0     0  50000        0
                          dp_video_ref_div1       0        0        0   299999997          0     0  50000        0
                             dp_video_ref_div2       0        0        0   299999997          0     0  50000        0
                                dp_video_ref       0        0        0   299999997          0     0  50000        0
                       vpll_to_lpd        0        0        0   499999995          0     0  50000        0
        dpll_post_src                     0        0        0    33333333          0     0  50000        0
        dpll_pre_src                      0        0        0    33333333          0     0  50000        0
           dpll_int                       0        0        0  2099999979          0     0  50000        0
              dpll_half                   0        0        0  1049999989          0     0  50000        0
                 dpll_int_mux             0        0        0  1049999989          0     0  50000        0
                    dpll                  0        0        0  1049999989          0     0  50000        0
                       dpll_to_lpd        0        0        0   524999995          0     0  50000        0
        apll_post_src                     0        0        0    33333333          0     0  50000        0
        apll_pre_src                      1        1        1    33333333          0     0  50000        0
           apll_int                       1        1        1  2399999976          0     0  50000        0
              apll_half                   1        1        1  1199999988          0     0  50000        0
                 apll_int_mux             1        1        1  1199999988          0     0  50000        0
                    apll                  1        1        1  1199999988          0     0  50000        0
                       dpdma_ref_mux       1        1        1  1199999988          0     0  50000        0
                          dpdma_ref_div1       1        1        1   599999994          0     0  50000        0
                             dpdma_ref       1        1        1   599999994          0     0  50000        0
                       gdma_ref_mux       0        0        0  1199999988          0     0  50000        0
                          gdma_ref_div1       0        0        0   599999994          0     0  50000        0
                             gdma_ref       0        0        0   599999994          0     0  50000        0
                       acpu_mux           0        0        0  1199999988          0     0  50000        0
                          acpu            0        0        0  1199999988          0     0  50000        0
        rpll_post_src                     0        0        0    33333333          0     0  50000        0
        rpll_pre_src                      0        0        0    33333333          0     0  50000        0
           rpll_int                       0        0        0  2399999976          0     0  50000        0
              rpll_half                   0        0        0  1199999988          0     0  50000        0
                 rpll_int_mux             0        0        0  1199999988          0     0  50000        0
                    rpll                  0        0        0  1199999988          0     0  50000        0
                       spi1_ref_mux       0        0        0  1199999988          0     0  50000        0
                          spi1_ref_div1       0        0        0    99999999          0     0  50000        0
                             spi1_ref_div2       0        0        0    99999999          0     0  50000        0
                                spi1_ref       0        0        0    99999999          0     0  50000        0
                       spi0_ref_mux       0        0        0  1199999988          0     0  50000        0
                          spi0_ref_div1       0        0        0    99999999          0     0  50000        0
                             spi0_ref_div2       0        0        0    99999999          0     0  50000        0
                                spi0_ref       0        0        0    99999999          0     0  50000        0
                       rpll_to_fpd        0        0        0    22641510          0     0  50000        0
                          dp_stc_ref_mux       0        0        0    22641510          0     0  50000        0
                             dp_stc_ref_div1       0        0        0     1509434          0     0  50000        0
                                dp_stc_ref_div2       0        0        0     1509434          0     0  50000        0
                                   dp_stc_ref       0        0        0     1509434          0     0  50000        0
                          dp_audio_ref_mux       0        0        0    22641510          0     0  50000        0
                             dp_audio_ref_div1       0        0        0    22641510          0     0  50000        0
                                dp_audio_ref_div2       0        0        0    22641510          0     0  50000        0
                                   dp_audio_ref       0        0        0    22641510          0     0  50000        0
        iopll_post_src                    0        0        0    33333333          0     0  50000        0
        iopll_pre_src                     1        1        1    33333333          0     0  50000        0
           iopll_int                      1        1        1  2999999970          0     0  50000        0
              iopll_half                  1        1        1  1499999985          0     0  50000        0
                 iopll_int_mux            1        1        1  1499999985          0     0  50000        0
                    iopll                15       17       11  1499999985          0     0  50000        0
                       gem3_ref_ung_mux       1        1        0  1499999985          0     0  50000        0
                          gem3_ref_ung_div1       1        1        0  1499999985          0     0  50000        0
                             gem3_ref_ung       1        1        0   124999999          0     0  50000        0
                                gem3_ref       2        2        0   124999999          0     0  50000        0
                                   gem3_tx       1        1        0   124999999          0     0  50000        0
                       gem2_ref_ung_mux       0        0        0  1499999985          0     0  50000        0
                          gem2_ref_ung_div1       0        0        0    62500000          0     0  50000        0
                             gem2_ref_ung       0        0        0    62500000          0     0  50000        0
                                gem2_ref       0        0        0    62500000          0     0  50000        0
                                   gem2_tx       0        0        0    62500000          0     0  50000        0
                       gem1_ref_ung_mux       0        0        0  1499999985          0     0  50000        0
                          gem1_ref_ung_div1       0        0        0    62500000          0     0  50000        0
                             gem1_ref_ung       0        0        0    62500000          0     0  50000        0
                                gem1_ref       0        0        0    62500000          0     0  50000        0
                                   gem1_tx       0        0        0    62500000          0     0  50000        0
                       gem0_ref_ung_mux       0        0        0  1499999985          0     0  50000        0
                          gem0_ref_ung_div1       0        0        0    62500000          0     0  50000        0
                             gem0_ref_ung       0        0        0    62500000          0     0  50000        0
                                gem0_ref       0        0        0    62500000          0     0  50000        0
                                   gem0_tx       0        0        0    62500000          0     0  50000        0
                       pl3_ref_mux        1        1        0  1499999985          0     0  50000        0
                          pl3_ref_div1       1        1        0    46875000          0     0  50000        0
                             pl3_ref_div2       1        1        0     9375000          0     0  50000        0
                                pl3_ref       1        1        0     9375000          0     0  50000        0
                       pl2_ref_mux        1        1        0  1499999985          0     0  50000        0
                          pl2_ref_div1       1        1        0   499999995          0     0  50000        0
                             pl2_ref_div2       1        1        0   499999995          0     0  50000        0
                                pl2_ref       1        1        0   499999995          0     0  50000        0
                       pl1_ref_mux        1        1        0  1499999985          0     0  50000        0
                          pl1_ref_div1       1        1        0   249999998          0     0  50000        0
                             pl1_ref_div2       1        1        0   249999998          0     0  50000        0
                                pl1_ref       1        1        0   249999998          0     0  50000        0
                       pl0_ref_mux        1        1        0  1499999985          0     0  50000        0
                          pl0_ref_div1       1        1        0    99999999          0     0  50000        0
                             pl0_ref_div2       1        1        0    99999999          0     0  50000        0
                                pl0_ref       4        4        0    99999999          0     0  50000        0
                       ams_ref_mux        1        1        1  1499999985          0     0  50000        0
                          ams_ref_div1       1        1        1    50000000          0     0  50000        0
                             ams_ref_div2       1        1        1    50000000          0     0  50000        0
                                ams_ref       1        1        1    50000000          0     0  50000        0
                       adma_ref_mux       0        0        0  1499999985          0     0  50000        0
                          adma_ref_div1       0        0        0   499999995          0     0  50000        0
                             adma_ref       0        0        0   499999995          0     0  50000        0
                       can1_ref_mux       0        0        0  1499999985          0     0  50000        0
                          can1_ref_div1       0        0        0    99999999          0     0  50000        0
                             can1_ref_div2       0        0        0    99999999          0     0  50000        0
                                can1_ref       0        0        0    99999999          0     0  50000        0
                                   can1       0        0        0    99999999          0     0  50000        0
                       can0_ref_mux       0        0        0  1499999985          0     0  50000        0
                          can0_ref_div1       0        0        0    46875000          0     0  50000        0
                             can0_ref_div2       0        0        0    46875000          0     0  50000        0
                                can0_ref       0        0        0    46875000          0     0  50000        0
                                   can0       0        0        0    46875000          0     0  50000        0
                       i2c1_ref_mux       1        1        1  1499999985          0     0  50000        0
                          i2c1_ref_div1       1        1        1    99999999          0     0  50000        0
                             i2c1_ref_div2       1        1        1    99999999          0     0  50000        0
                                i2c1_ref       1        1        1    99999999          0     0  50000        0
                       i2c0_ref_mux       0        1        1  1499999985          0     0  50000        0
                          i2c0_ref_div1       0        1        1    99999999          0     0  50000        0
                             i2c0_ref_div2       0        1        1    99999999          0     0  50000        0
                                i2c0_ref       0        1        1    99999999          0     0  50000        0
                       nand_ref_mux       0        0        0  1499999985          0     0  50000        0
                          nand_ref_div1       0        0        0    46875000          0     0  50000        0
                             nand_ref_div2       0        0        0     9375000          0     0  50000        0
                                nand_ref       0        0        0     9375000          0     0  50000        0
                       uart1_ref_mux       0        1        1  1499999985          0     0  50000        0
                          uart1_ref_div1       0        1        1    99999999          0     0  50000        0
                             uart1_ref_div2       0        1        1    99999999          0     0  50000        0
                                uart1_ref       0        1        1    99999999          0     0  50000        0
                       uart0_ref_mux       1        1        1  1499999985          0     0  50000        0
                          uart0_ref_div1       1        1        1    99999999          0     0  50000        0
                             uart0_ref_div2       1        1        1    99999999          0     0  50000        0
                                uart0_ref       1        1        1    99999999          0     0  50000        0
                       sdio1_ref_mux       1        1        1  1499999985          0     0  50000        0
                          sdio1_ref_div1       1        1        1   187499999          0     0  50000        0
                             sdio1_ref_div2       1        1        1   187499999          0     0  50000        0
                                sdio1_ref       1        1        1   187499999          0     0  50000        0
                                   clk_in_sd1       0        0        0    50000000          0     0  50000        0
                                   clk_out_sd1       0        0        0    50000000          0     0  50000        0
                       sdio0_ref_mux       0        0        0  1499999985          0     0  50000        0
                          sdio0_ref_div1       0        0        0    99999999          0     0  50000        0
                             sdio0_ref_div2       0        0        0    99999999          0     0  50000        0
                                sdio0_ref       0        0        0    99999999          0     0  50000        0
                       qspi_ref_mux       1        1        1  1499999985          0     0  50000        0
                          qspi_ref_div1       1        1        1   124999999          0     0  50000        0
                             qspi_ref_div2       1        1        1   124999999          0     0  50000        0
                                qspi_ref       2        1        1   124999999          0     0  50000        0
                       gem_tsu_ref_mux       1        1        1  1499999985          0     0  50000        0
                          gem_tsu_ref_div1       1        1        1   249999998          0     0  50000        0
                             gem_tsu_ref_div2       1        1        1   249999998          0     0  50000        0
                                gem_tsu_ref       1        1        1   249999998          0     0  50000        0
                                   gem_tsu       1        1        0   249999998          0     0  50000        0
                       usb3_dual_ref_mux       1        1        1  1499999985          0     0  50000        0
                          usb3_dual_ref_div1       1        1        1    60000000          0     0  50000        0
                             usb3_dual_ref_div2       1        1        1    20000000          0     0  50000        0
                                usb3_dual_ref       1        1        1    20000000          0     0  50000        0
                       usb1_bus_ref_mux       0        0        0  1499999985          0     0  50000        0
                          usb1_bus_ref_div1       0        0        0   124999999          0     0  50000        0
                             usb1_bus_ref_div2       0        0        0   124999999          0     0  50000        0
                                usb1_bus_ref       0        0        0   124999999          0     0  50000        0
                       usb0_bus_ref_mux       1        1        1  1499999985          0     0  50000        0
                          usb0_bus_ref_div1       1        1        1   249999998          0     0  50000        0
                             usb0_bus_ref_div2       1        1        1   249999998          0     0  50000        0
                                usb0_bus_ref       1        1        1   249999998          0     0  50000        0
                       lpd_lsbus_mux       1        1        0  1499999985          0     0  50000        0
                          lpd_lsbus_div1       1        1        0    99999999          0     0  50000        0
                             lpd_lsbus       8        8        0    99999999          0     0  50000        0
                                lpd_wdt       0        0        0    99999999          0     0  50000        0
                       iopll_to_fpd       3        3        2   499999995          0     0  50000        0
                          topsw_lsbus_mux       1        1        0   499999995          0     0  50000        0
                             topsw_lsbus_div1       1        1        0    99999999          0     0  50000        0
                                topsw_lsbus       3        3        0    99999999          0     0  50000        0
                                   fpd_wdt       1        1        0    99999999          0     0  50000        0
                          gpu_ref_mux       0        0        0   499999995          0     0  50000        0
                             gpu_ref_div1       0        0        0   499999995          0     0  50000        0
                                gpu_ref       0        0        0   499999995          0     0  50000        0
                                   gpu_pp1_ref       0        0        0   499999995          0     0  50000        0
                                   gpu_pp0_ref       0        0        0   499999995          0     0  50000        0
                          pcie_ref_mux       1        1        1   499999995          0     0  50000        0
                             pcie_ref_div1       1        1        1   249999998          0     0  50000        0
                                pcie_ref       1        1        1   249999998          0     0  50000        0
                          sata_ref_mux       1        1        1   499999995          0     0  50000        0
                             sata_ref_div1       1        1        1   249999998          0     0  50000        0
                                sata_ref       1        1        1   249999998          0     0  50000        0
     can1_mio                             0        0        0           0          0     0  50000        0
     can0_mio                             0        0        0           0          0     0  50000        0
     gem3_rx                              1        1        0           0          0     0  50000        0
     gem2_rx                              0        0        0           0          0     0  50000        0
     gem1_rx                              0        0        0           0          0     0  50000        0
     gem0_rx                              0        0        0           0          0     0  50000        0
    root@molecular-duck-22:~#
    

    I will change the clock names- but the reason I didn't change them until now was because of this post:

    you said there not to change the clock names so the driver can recognize them?

    So:

    1. I should change only "clock-output" names, and not "clock-names". Is this correct?

    2. ALL the "clock-output" names? also in:

    &fmc_spi_0 {
    	clk_ad9516_0: ad9516@0 {
    		compatible = "adi,ad9516-1";
    		reg = <0>;
    
    		spi-max-frequency = <10000000>;
    
    		firmware = "ad9144_fmc_ebz_ad9516.stp";
    
    		clocks = <&ad9516_clkin_0>, <&ad9516_clkin_0>;
    		clock-names = "refclk", "clkin";
    
    		clock-output-names = "out0", "out1", "out2", "out3", "out4", "out5", "out6", "out7";
    		#clock-cells 

    for example?

    3. 

    You may likely run into a similar issue with your ad9517 clock output names...

    I don't think I should have a ad9517 clock? the AD9144-FMC-EBZ has a ad9156 clock.

    my boot log indeed had:

    [    6.549029] ad9517 spi2.0: Failed getting REFIN clock

    But I don't know why it is there.. any ideas?

    Thanks a lot again for all your help!

    Eliana

  • you said there not to change the clock names so the driver can recognize them?

    Yes - don't change clock-names, as the driver uses them to look up the clock in the clock array property.

    I should change only "clock-output" names, and not "clock-names". Is this correct?

    Yes

    On the second clock chip use:

    clock-output-names = "out0_2", "out1_2", ...

    -Michael

  • Hi!

    Thanks for the answer-

    I changed all clock-output-names to unique names,

    And now it indeed recognizes the clock- but the spi still fails:

     

    [    4.440948] ad9517 spi1.0: AD9517 successfully initialized
    [    4.477265] ad9517: probe of spi2.0 failed with error -17
    [    4.508588] spi-nor spi0.0: SPI-NOR-UniqueID e00d0e0017faff0900fc436c66b8
    [    4.515376] spi-nor spi0.0: found mt25qu512a, expected m25p80
    [    4.521749] spi-nor spi0.0: trying to lock already unlocked area
    [    4.527758] spi-nor spi0.0: mt25qu512a (131072 Kbytes)
    [    4.532921] 4 fixed-partitions partitions found on MTD device spi0.0
    [    4.539265] Creating 4 MTD partitions on "spi0.0":
    

    Do you have any other ideas?

    Also, where can I find the errno,h file?

    This is the full boot log:

    Xilinx Zynq MP First Stage Boot Loader
    Release 2021.2   Oct 13 2021  -  07:15:53
    NOTICE:  BL31: v2.4(release):xlnx_rebase_v2.4_2021.1_update1-23-g9188496b9
    NOTICE:  BL31: Built : 07:41:24, Oct 13 2021
    
    
    U-Boot 2021.01 (Oct 12 2021 - 09:28:42 +0000)
    
    CPU:   ZynqMP
    Silicon: v3
    Model: ZynqMP ZCU102 Rev1.0
    Board: Xilinx ZynqMP
    DRAM:  4 GiB
    PMUFW:  v1.1
    Xilinx I2C Legacy format at nvmem0:
     Board name:    zcu102
     Board rev:     1.0
     Board SN:      1030078502308-83420
     Ethernet mac:  00:0a:35:07:ea:b3
    EL Level:       EL2
    Chip ID:        zu9eg
    NAND:  0 MiB
    MMC:   mmc@ff170000: 0
    Loading Environment from FAT... *** Warning - bad CRC, using default environment
    
    In:    serial
    Out:   serial
    Err:   serial
    Bootmode: LVL_SHFT_SD_MODE1
    Reset reason:   EXTERNAL
    Net:
    ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 12, interface rgmii-id
    eth0: ethernet@ff0e0000
    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 13 ms (203.1 KiB/s)
    ## Executing script at 20000000
    Trying to load boot images from mmc0
    30281032 bytes read in 2005 ms (14.4 MiB/s)
    ## Loading kernel from FIT Image at 10000000 ...
       Using 'conf-system-top.dtb' configuration
       Trying 'kernel-1' kernel subimage
         Description:  Linux kernel
         Created:      2023-10-10  13:10:16 UTC
         Type:         Kernel Image
         Compression:  gzip compressed
         Data Start:   0x10000104
         Data Size:    11218521 Bytes = 10.7 MiB
         Architecture: AArch64
         OS:           Linux
         Load Address: 0x00200000
         Entry Point:  0x00200000
         Hash algo:    sha256
         Hash value:   e82287a8a4e0489439a572dec2c5745f7381b91b241729d10b45f1ab64954f17
       Verifying Hash Integrity ... sha256+ OK
    ## Loading ramdisk from FIT Image at 10000000 ...
       Using 'conf-system-top.dtb' configuration
       Trying 'ramdisk-1' ramdisk subimage
         Description:  petalinux-image-minimal
         Created:      2023-10-10  13:10:16 UTC
         Type:         RAMDisk Image
         Compression:  uncompressed
         Data Start:   0x10ac1c94
         Data Size:    19000124 Bytes = 18.1 MiB
         Architecture: AArch64
         OS:           Linux
         Load Address: unavailable
         Entry Point:  unavailable
         Hash algo:    sha256
         Hash value:   5b4adef72dcd53635f6eee3201a66eff9149c82dbb64337a300e0c153368b3c3
       Verifying Hash Integrity ... sha256+ OK
    ## Loading fdt from FIT Image at 10000000 ...
       Using 'conf-system-top.dtb' configuration
       Trying 'fdt-system-top.dtb' fdt subimage
         Description:  Flattened Device Tree blob
         Created:      2023-10-10  13:10:16 UTC
         Type:         Flat Device Tree
         Compression:  uncompressed
         Data Start:   0x10ab3070
         Data Size:    60241 Bytes = 58.8 KiB
         Architecture: AArch64
         Hash algo:    sha256
         Hash value:   41cc147ab824b172dfa57c3f407dd11a2af53bd424db9440248f53448d4e663d
       Verifying Hash Integrity ... sha256+ OK
       Booting using the fdt blob at 0x10ab3070
       Uncompressing Kernel Image
       Loading Ramdisk to 7cbee000, end 7de0cb3c ... OK
       Loading Device Tree to 000000007cbdc000, end 000000007cbedb50 ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 5.10.0-xilinx-v2021.2 (oe-user@oe-host) (aarch64-xilinx-linux-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35.1) #1 SMP Tue Oct 10 13:10:16 UTC 2023
    [    0.000000] Machine model: ZynqMP ZCU102 Rev1.0
    [    0.000000] earlycon: cdns0 at MMIO 0x00000000ff000000 (options '115200n8')
    [    0.000000] printk: bootconsole [cdns0] enabled
    [    0.000000] efi: UEFI not found.
    [    0.000000] cma: Reserved 256 MiB at 0x000000006c800000
    [    0.000000] Zone ranges:
    [    0.000000]   DMA      [mem 0x0000000000000000-0x000000003fffffff]
    [    0.000000]   DMA32    [mem 0x0000000040000000-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-0x000000007fffffff]
    [    0.000000]   node   0: [mem 0x0000000800000000-0x000000087fffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000087fffffff]
    [    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 22 pages/cpu s50968 r8192 d30952 u90112
    [    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: 1032192
    [    0.000000] Kernel command line:  earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/ram0 rw
    [    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 0x000000003bfff000-0x000000003ffff000] (64MB)
    [    0.000000] Memory: 3733660K/4194304K available (16064K kernel code, 1728K rwdata, 12220K rodata, 2624K init, 660K bss, 198500K 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=8 to nr_cpu_ids=4.
    [    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=4
    [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
    [    0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000
    [    0.000000] GIC: Using split EOI/Deactivate mode
    [    0.000000] random: get_random_bytes called from start_kernel+0x31c/0x524 with crng_init=0
    [    0.000000] arch_timer: cp15 timer(s) running at 100.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x171024e7e0, max_idle_ns: 440795205315 ns
    [    0.000004] sched_clock: 56 bits at 100MHz, resolution 10ns, wraps every 4398046511100ns
    [    0.008501] Console: colour dummy device 80x25
    [    0.012485] Calibrating delay loop (skipped), value calculated using timer frequency.. 200.00 BogoMIPS (lpj=400000)
    [    0.022841] pid_max: default: 32768 minimum: 301
    [    0.027601] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.034789] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.043616] rcu: Hierarchical SRCU implementation.
    [    0.047593] EFI services will not be available.
    [    0.051962] smp: Bringing up secondary CPUs ...
    [    0.056701] Detected VIPT I-cache on CPU1
    [    0.056743] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [    0.057142] Detected VIPT I-cache on CPU2
    [    0.057166] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
    [    0.057549] Detected VIPT I-cache on CPU3
    [    0.057572] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
    [    0.057620] smp: Brought up 1 node, 4 CPUs
    [    0.091780] SMP: Total of 4 processors activated.
    [    0.096453] CPU features: detected: 32-bit EL0 Support
    [    0.101556] CPU features: detected: CRC32 instructions
    [    0.106693] CPU: All CPU(s) started at EL2
    [    0.110736] alternatives: patching kernel code
    [    0.116260] devtmpfs: initialized
    [    0.124953] Registered cp15_barrier emulation handler
    [    0.125003] Registered setend emulation handler
    [    0.128985] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.138567] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
    [    0.151966] pinctrl core: initialized pinctrl subsystem
    [    0.152664] NET: Registered protocol family 16
    [    0.157059] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
    [    0.163048] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.170770] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.178586] audit: initializing netlink subsys (disabled)
    [    0.184056] audit: type=2000 audit(0.116:1): state=initialized audit_enabled=0 res=1
    [    0.191630] cpuidle: using governor menu
    [    0.195580] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.202307] ASID allocator initialised with 65536 entries
    [    0.229742] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.230801] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.237472] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.244136] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
    [    1.309883] DRBG: Continuing without Jitter RNG
    [    1.387597] raid6: neonx8   gen()  2144 MB/s
    [    1.455650] raid6: neonx8   xor()  1598 MB/s
    [    1.523713] raid6: neonx4   gen()  2185 MB/s
    [    1.591776] raid6: neonx4   xor()  1567 MB/s
    [    1.659849] raid6: neonx2   gen()  2076 MB/s
    [    1.727904] raid6: neonx2   xor()  1435 MB/s
    [    1.795978] raid6: neonx1   gen()  1774 MB/s
    [    1.864028] raid6: neonx1   xor()  1219 MB/s
    [    1.932091] raid6: int64x8  gen()  1437 MB/s
    [    2.000155] raid6: int64x8  xor()   771 MB/s
    [    2.068225] raid6: int64x4  gen()  1601 MB/s
    [    2.136290] raid6: int64x4  xor()   816 MB/s
    [    2.204358] raid6: int64x2  gen()  1397 MB/s
    [    2.272417] raid6: int64x2  xor()   750 MB/s
    [    2.340501] raid6: int64x1  gen()  1033 MB/s
    [    2.408566] raid6: int64x1  xor()   517 MB/s
    [    2.408603] raid6: using algorithm neonx4 gen() 2185 MB/s
    [    2.412558] raid6: .... xor() 1567 MB/s, rmw enabled
    [    2.417489] raid6: using neon recovery algorithm
    [    2.422553] iommu: Default domain type: Translated
    [    2.427137] SCSI subsystem initialized
    [    2.430788] usbcore: registered new interface driver usbfs
    [    2.436116] usbcore: registered new interface driver hub
    [    2.441390] usbcore: registered new device driver usb
    [    2.446527] mc: Linux media interface: v0.10
    [    2.450636] videodev: Linux video capture interface: v2.00
    [    2.456130] EDAC MC: Ver: 3.0.0
    [    2.459569] zynqmp-ipi-mbox mailbox@ff990400: Registered ZynqMP IPI mbox with TX/RX channels.
    [    2.468027] jesd204: found 0 devices and 0 topologies
    [    2.472709] FPGA manager framework
    [    2.476187] Advanced Linux Sound Architecture Driver Initialized.
    [    2.482497] Bluetooth: Core ver 2.22
    [    2.485662] NET: Registered protocol family 31
    [    2.490065] Bluetooth: HCI device and connection manager initialized
    [    2.496381] Bluetooth: HCI socket layer initialized
    [    2.501223] Bluetooth: L2CAP socket layer initialized
    [    2.506246] Bluetooth: SCO socket layer initialized
    [    2.511414] clocksource: Switched to clocksource arch_sys_counter
    [    2.517289] VFS: Disk quotas dquot_6.6.0
    [    2.521075] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    2.532050] NET: Registered protocol family 2
    [    2.532555] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
    [    2.540711] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
    [    2.548738] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
    [    2.556198] TCP: Hash tables configured (established 32768 bind 32768)
    [    2.562360] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
    [    2.569023] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
    [    2.576199] NET: Registered protocol family 1
    [    2.580683] RPC: Registered named UNIX socket transport module.
    [    2.586262] RPC: Registered udp transport module.
    [    2.590923] RPC: Registered tcp transport module.
    [    2.595599] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    2.602600] PCI: CLS 0 bytes, default 64
    [    2.606001] Trying to unpack rootfs image as initramfs...
    [    3.495372] Freeing initrd memory: 18552K
    [    3.495836] hw perfevents: no interrupt-affinity property for /pmu, guessing.
    [    3.501027] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
    [    3.509510] Initialise system trusted keyrings
    [    3.513121] workingset: timestamp_bits=46 max_order=20 bucket_order=0
    [    3.520073] NFS: Registering the id_resolver key type
    [    3.524385] Key type id_resolver registered
    [    3.528545] Key type id_legacy registered
    [    3.532521] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    3.539178] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
    [    3.546365] fuse: init (API version 7.32)
    [    3.586001] NET: Registered protocol family 38
    [    3.586045] xor: measuring software checksum speed
    [    3.593735]    8regs           :  2363 MB/sec
    [    3.597402]    32regs          :  2799 MB/sec
    [    3.602344]    arm64_neon      :  2380 MB/sec
    [    3.602535] xor: using function: 32regs (2799 MB/sec)
    [    3.607561] Key type asymmetric registered
    [    3.611622] Asymmetric key parser 'x509' registered
    [    3.616485] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
    [    3.623820] io scheduler mq-deadline registered
    [    3.628316] io scheduler kyber registered
    [    3.659112] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
    [    3.664244] cacheinfo: Unable to detect cache hierarchy for CPU 0
    [    3.670421] brd: module loaded
    [    3.674917] loop: module loaded
    [    3.675236] Registered mathworks_ip class
    [    3.678670] libphy: Fixed MDIO Bus: probed
    [    3.681508] tun: Universal TUN/TAP device driver, 1.6
    [    3.685566] CAN device driver interface
    [    3.690205] usbcore: registered new interface driver asix
    [    3.694702] usbcore: registered new interface driver ax88179_178a
    [    3.700732] usbcore: registered new interface driver cdc_ether
    [    3.706524] usbcore: registered new interface driver net1080
    [    3.712145] usbcore: registered new interface driver cdc_subset
    [    3.718029] usbcore: registered new interface driver zaurus
    [    3.723575] usbcore: registered new interface driver cdc_ncm
    [    3.730062] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    [    3.735656] ehci-pci: EHCI PCI platform driver
    [    3.740507] usbcore: registered new interface driver uas
    [    3.745379] usbcore: registered new interface driver usb-storage
    [    3.751365] usbcore: registered new interface driver usbserial_generic
    [    3.757817] usbserial: USB Serial support registered for generic
    [    3.763787] usbcore: registered new interface driver ftdi_sio
    [    3.769493] usbserial: USB Serial support registered for FTDI USB Serial Device
    [    3.776761] usbcore: registered new interface driver upd78f0730
    [    3.782636] usbserial: USB Serial support registered for upd78f0730
    [    3.790426] rtc_zynqmp ffa60000.rtc: registered as rtc0
    [    3.794062] rtc_zynqmp ffa60000.rtc: setting system clock to 2018-12-29T10:47:39 UTC (1546080459)
    [    3.802925] i2c /dev entries driver
    [    3.808329] usbcore: registered new interface driver uvcvideo
    [    3.812036] USB Video Class driver (1.1.1)
    [    3.817633] Bluetooth: HCI UART driver ver 2.3
    [    3.820520] Bluetooth: HCI UART protocol H4 registered
    [    3.825617] Bluetooth: HCI UART protocol BCSP registered
    [    3.830907] Bluetooth: HCI UART protocol LL registered
    [    3.835996] Bluetooth: HCI UART protocol ATH3K registered
    [    3.841371] Bluetooth: HCI UART protocol Three-wire (H5) registered
    [    3.847624] Bluetooth: HCI UART protocol Intel registered
    [    3.852963] Bluetooth: HCI UART protocol QCA registered
    [    3.858162] usbcore: registered new interface driver bcm203x
    [    3.863783] usbcore: registered new interface driver bpa10x
    [    3.869323] usbcore: registered new interface driver bfusb
    [    3.874772] usbcore: registered new interface driver btusb
    [    3.880230] usbcore: registered new interface driver ath3k
    [    3.885721] EDAC MC: ECC not enabled
    [    3.889350] EDAC DEVICE0: Giving out device to module zynqmp-ocm-edac controller zynqmp_ocm: DEV ff960000.memory-controller (INTERRUPT)
    [    3.901688] sdhci: Secure Digital Host Controller Interface driver
    [    3.907450] sdhci: Copyright(c) Pierre Ossman
    [    3.911770] sdhci-pltfm: SDHCI platform and OF driver helper
    [    3.917854] ledtrig-cpu: registered to indicate activity on CPUs
    [    3.923373] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
    [    3.929802] zynqmp_firmware_probe Platform Management API v1.1
    [    3.935560] zynqmp_firmware_probe Trustzone version v1.0
    [    3.972541] zynqmp-pinctrl firmware:zynqmp-firmware:pinctrl: zynqmp pinctrl initialized
    [    4.019108] zynqmp-aes firmware:zynqmp-firmware:zynqmp-aes: will run requests pump with realtime priority
    [    4.034966] zynqmp-aes firmware:zynqmp-firmware:zynqmp-aes: ERROR: Unknown error
    [    4.036740] alg: aead: xilinx-zynqmp-aes-gcm encryption failed on test vector 8; expected_error=0, actual_error=-64, cfg="in-place"
    [    4.048872] alg: No test for xilinx-keccak-384 (zynqmp-keccak-384)
    [    4.054846] alg: No test for xilinx-zynqmp-rsa (zynqmp-rsa)
    [    4.060328] usbcore: registered new interface driver usbhid
    [    4.065698] usbhid: USB HID core driver
    [    4.077188] axi_sysid 85000000.axi-sysid-0: AXI System ID core version (1.01.a) found
    [    4.079548] axi_sysid 85000000.axi-sysid-0: [dac_fmc_ebz] [AD9144 - 00] on [zcu102] git branch <> git <0> dirty [2023-11-19 17:14:03] UTC
    [    4.092204] fpga_manager fpga0: Xilinx ZynqMP FPGA Manager registered
    [    4.098584] usbcore: registered new interface driver snd-usb-audio
    [    4.106113] pktgen: Packet Generator for packet performance testing. Version: 2.75
    [    4.112325] Initializing XFRM netlink socket
    [    4.116033] NET: Registered protocol family 10
    [    4.120809] Segment Routing with IPv6
    [    4.124165] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [    4.130233] NET: Registered protocol family 17
    [    4.134313] NET: Registered protocol family 15
    [    4.138784] can: controller area network core
    [    4.143061] NET: Registered protocol family 29
    [    4.147455] can: raw protocol
    [    4.150383] can: broadcast manager protocol
    [    4.154545] can: netlink gateway - max_hops=1
    [    4.158941] Bluetooth: RFCOMM TTY layer initialized
    [    4.163719] Bluetooth: RFCOMM socket layer initialized
    [    4.168826] Bluetooth: RFCOMM ver 1.11
    [    4.172542] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [    4.177808] Bluetooth: BNEP filters: protocol multicast
    [    4.183001] Bluetooth: BNEP socket layer initialized
    [    4.187929] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
    [    4.193813] Bluetooth: HIDP socket layer initialized
    [    4.198877] 9pnet: Installing 9P2000 support
    [    4.203006] NET: Registered protocol family 36
    [    4.207411] Key type dns_resolver registered
    [    4.211817] registered taskstats version 1
    [    4.215703] Loading compiled-in X.509 certificates
    [    4.220825] Btrfs loaded, crc32c=crc32c-generic
    [    4.234138] ff000000.serial: ttyPS0 at MMIO 0xff000000 (irq = 49, base_baud = 6249999) is a xuartps
    [    4.243162] printk: console [ttyPS0] enabled
    [    4.243162] printk: console [ttyPS0] enabled
    [    4.247463] printk: bootconsole [cdns0] disabled
    [    4.247463] printk: bootconsole [cdns0] disabled
    [    4.257131] ff010000.serial: ttyPS1 at MMIO 0xff010000 (irq = 50, base_baud = 6249999) is a xuartps
    [    4.270318] of-fpga-region fpga-full: FPGA Region probed
    [    4.277346] nwl-pcie fd0e0000.pcie: host bridge /axi/pcie@fd0e0000 ranges:
    [    4.284241] nwl-pcie fd0e0000.pcie:      MEM 0x00e0000000..0x00efffffff -> 0x00e0000000
    [    4.292252] nwl-pcie fd0e0000.pcie:      MEM 0x0600000000..0x07ffffffff -> 0x0600000000
    [    4.300327] nwl-pcie fd0e0000.pcie: Link is DOWN
    [    4.305092] nwl-pcie fd0e0000.pcie: PCI host bridge to bus 0000:00
    [    4.311273] pci_bus 0000:00: root bus resource [bus 00-ff]
    [    4.316754] pci_bus 0000:00: root bus resource [mem 0xe0000000-0xefffffff]
    [    4.323624] pci_bus 0000:00: root bus resource [mem 0x600000000-0x7ffffffff pref]
    [    4.331130] pci 0000:00:00.0: [10ee:d021] type 01 class 0x060400
    [    4.337194] pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot
    [    4.348093] pci 0000:00:00.0: PCI bridge to [bus 01-0c]
    [    4.354105] xilinx-zynqmp-dma fd500000.dma: ZynqMP DMA driver Probe success
    [    4.361286] xilinx-zynqmp-dma fd510000.dma: ZynqMP DMA driver Probe success
    [    4.368462] xilinx-zynqmp-dma fd520000.dma: ZynqMP DMA driver Probe success
    [    4.375643] xilinx-zynqmp-dma fd530000.dma: ZynqMP DMA driver Probe success
    [    4.382819] xilinx-zynqmp-dma fd540000.dma: ZynqMP DMA driver Probe success
    [    4.389993] xilinx-zynqmp-dma fd550000.dma: ZynqMP DMA driver Probe success
    [    4.397171] xilinx-zynqmp-dma fd560000.dma: ZynqMP DMA driver Probe success
    [    4.404344] xilinx-zynqmp-dma fd570000.dma: ZynqMP DMA driver Probe success
    [    4.411755] xilinx-zynqmp-dpdma fd4c0000.dma-controller: Xilinx DPDMA engine is probed
    [    4.420337] ahci-ceva fd0c0000.ahci: supply ahci not found, using dummy regulator
    [    4.427895] ahci-ceva fd0c0000.ahci: supply phy not found, using dummy regulator
    [    4.440948] ad9517 spi1.0: AD9517 successfully initialized
    [    4.477265] ad9517: probe of spi2.0 failed with error -17
    [    4.508588] spi-nor spi0.0: SPI-NOR-UniqueID e00d0e0017faff0900fc436c66b8
    [    4.515376] spi-nor spi0.0: found mt25qu512a, expected m25p80
    [    4.521749] spi-nor spi0.0: trying to lock already unlocked area
    [    4.527758] spi-nor spi0.0: mt25qu512a (131072 Kbytes)
    [    4.532921] 4 fixed-partitions partitions found on MTD device spi0.0
    [    4.539265] Creating 4 MTD partitions on "spi0.0":
    [    4.544048] 0x000000000000-0x000000100000 : "qspi-fsbl-uboot"
    [    4.550608] 0x000000100000-0x000000600000 : "qspi-linux"
    [    4.556574] 0x000000600000-0x000000620000 : "qspi-device-tree"
    [    4.563064] 0x000000620000-0x000000c00000 : "qspi-rootfs"
    [    4.571733] macb ff0e0000.ethernet: Not enabling partial store and forward
    [    4.579279] libphy: MACB_mii_bus: probed
    [    4.586940] macb ff0e0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0e0000 irq 30 (00:0a:35:07:ea:b3)
    [    4.597276] xilinx-axipmon ffa00000.perf-monitor: Probed Xilinx APM
    [    4.603877] xilinx-axipmon fd0b0000.perf-monitor: Probed Xilinx APM
    [    4.610417] xilinx-axipmon fd490000.perf-monitor: Probed Xilinx APM
    [    4.616975] xilinx-axipmon ffa10000.perf-monitor: Probed Xilinx APM
    [    4.626452] pca953x 0-0020: supply vcc not found, using dummy regulator
    [    4.633133] pca953x 0-0020: using no AI
    [    4.637621] gpio-322 (sel0): hogged as output/low
    [    4.642523] gpio-323 (sel1): hogged as output/high
    [    4.647511] gpio-324 (sel2): hogged as output/high
    [    4.652505] gpio-325 (sel3): hogged as output/high
    [    4.657692] pca953x 0-0021: supply vcc not found, using dummy regulator
    [    4.664364] pca953x 0-0021: using no AI
    [    4.670157] ina2xx 2-0040: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.677199] ina2xx 2-0041: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.684257] ina2xx 2-0042: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.691291] ina2xx 2-0043: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.698334] ina2xx 2-0044: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.705370] ina2xx 2-0045: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.712139] random: fast init done
    [    4.715740] ina2xx 2-0046: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.722830] ina2xx 2-0047: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.729870] ina2xx 2-004a: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.736904] ina2xx 2-004b: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.743312] i2c i2c-0: Added multiplexed i2c bus 2
    [    4.748912] ina2xx 3-0040: power monitor ina226 (Rshunt = 2000 uOhm)
    [    4.755969] ina2xx 3-0041: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.763008] ina2xx 3-0042: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.770048] ina2xx 3-0043: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.777084] ina2xx 3-0044: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.784130] ina2xx 3-0045: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.791178] ina2xx 3-0046: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.798218] ina2xx 3-0047: power monitor ina226 (Rshunt = 5000 uOhm)
    [    4.804624] i2c i2c-0: Added multiplexed i2c bus 3
    [    4.860936] i2c i2c-0: Added multiplexed i2c bus 4
    [    4.865877] i2c i2c-0: Added multiplexed i2c bus 5
    [    4.870665] pca954x 0-0075: registered 4 multiplexed busses for I2C mux pca9544
    [    4.878015] cdns-i2c ff020000.i2c: 400 kHz mmio ff020000 irq 32
    [    4.885816] at24 6-0054: supply vcc not found, using dummy regulator
    [    4.892713] at24 6-0054: 1024 byte 24c08 EEPROM, writable, 1 bytes/write
    [    4.899463] i2c i2c-1: Added multiplexed i2c bus 6
    [    4.905759] si5341 7-0036: Chip: 5341 Grade: 1 Rev: 3
    [    4.943671] i2c i2c-1: Added multiplexed i2c bus 7
    [    4.951368] si570 8-005d: registered, current frequency 300000000 Hz
    [    4.957774] i2c i2c-1: Added multiplexed i2c bus 8
    [    4.977582] si570 9-005d: registered, current frequency 148500000 Hz
    [    4.983989] i2c i2c-1: Added multiplexed i2c bus 9
    [    4.989038] si5324 10-0069: si5328 probed
    [    5.055868] si5324 10-0069: si5328 probe successful
    [    5.060801] i2c i2c-1: Added multiplexed i2c bus 10
    [    5.065830] i2c i2c-1: Added multiplexed i2c bus 11
    [    5.070875] i2c i2c-1: Added multiplexed i2c bus 12
    [    5.075908] i2c i2c-1: Added multiplexed i2c bus 13
    [    5.080789] pca954x 1-0074: registered 8 multiplexed busses for I2C switch pca9548
    [    5.088930] at24 14-0050: supply vcc not found, using dummy regulator
    [    5.095757] at24 14-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write
    [    5.102503] i2c i2c-1: Added multiplexed i2c bus 14
    [    5.107549] i2c i2c-1: Added multiplexed i2c bus 15
    [    5.112600] i2c i2c-1: Added multiplexed i2c bus 16
    [    5.117638] i2c i2c-1: Added multiplexed i2c bus 17
    [    5.122682] i2c i2c-1: Added multiplexed i2c bus 18
    [    5.127723] i2c i2c-1: Added multiplexed i2c bus 19
    [    5.132764] i2c i2c-1: Added multiplexed i2c bus 20
    [    5.137806] i2c i2c-1: Added multiplexed i2c bus 21
    [    5.142685] pca954x 1-0075: registered 8 multiplexed busses for I2C switch pca9548
    [    5.150298] cdns-i2c ff030000.i2c: 400 kHz mmio ff030000 irq 33
    [    5.160508] cdns-wdt fd4d0000.watchdog: Xilinx Watchdog Timer with timeout 60s
    [    5.170280] axi_adxcvr 84a60000.axi-adxcvr-tx: AXI-ADXCVR-TX (17.05.a) using QPLL on GTH4 at 0x84A60000. Number of lanes: 8.
    [    5.182423] axi-jesd204-tx 84a90000.axi-jesd204-tx: AXI-JESD204-TX (1.06.a) at 0x84A90000. Encoder 8b10b, width 4/4, lanes 8.
    [    5.195232] zynqmp-display fd4a0000.display: vtc bridge property not present
    [    5.202664] mmc0: SDHCI controller on ff170000.mmc [ff170000.mmc] using ADMA 64-bit
    [    5.204915] xilinx-dp-snd-codec fd4a0000.display:zynqmp_dp_snd_codec0: Failed to get required clock freq
    [    5.219808] xilinx-dp-snd-codec: probe of fd4a0000.display:zynqmp_dp_snd_codec0 failed with error -22
    [    5.229362] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm0: Xilinx DisplayPort Sound PCM probed
    [    5.237542] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm1: Xilinx DisplayPort Sound PCM probed
    [    5.245781] OF: graph: no port node found in /axi/display@fd4a0000
    [    5.250277] mmc0: new high speed SDHC card at address aaaa
    [    5.252291] xlnx-drm xlnx-drm.0: bound fd4a0000.display (ops 0xffffffc011090608)
    [    5.257793] mmcblk0: mmc0:aaaa SC32G 29.7 GiB
    [    5.273229]  mmcblk0: p1 p2
    [    6.343435] zynqmp-display fd4a0000.display: [drm] Cannot find any crtc or sizes
    [    6.351077] [drm] Initialized xlnx 1.0.0 20130509 for fd4a0000.display on minor 0
    [    6.358572] zynqmp-display fd4a0000.display: ZynqMP DisplayPort Subsystem driver probed
    [    6.366973] ahci-ceva fd0c0000.ahci: supply ahci not found, using dummy regulator
    [    6.374522] ahci-ceva fd0c0000.ahci: supply phy not found, using dummy regulator
    [    6.381978] ahci-ceva fd0c0000.ahci: supply target not found, using dummy regulator
    [    6.399872] ahci-ceva fd0c0000.ahci: AHCI 0001.0301 32 slots 2 ports 6 Gbps 0x3 impl platform mode
    [    6.408829] ahci-ceva fd0c0000.ahci: flags: 64bit ncq sntf pm clo only pmp fbs pio slum part ccc sds apst
    [    6.419539] scsi host0: ahci-ceva
    [    6.423131] scsi host1: ahci-ceva
    [    6.426579] ata1: SATA max UDMA/133 mmio [mem 0xfd0c0000-0xfd0c1fff] port 0x100 irq 45
    [    6.434493] ata2: SATA max UDMA/133 mmio [mem 0xfd0c0000-0xfd0c1fff] port 0x180 irq 45
    [    6.538176] ad9144 spi1.1: DAC-1 calibration failed (0x53)
    [    6.546299] ad9144 spi1.1: Link0 code grp sync: ff
    [    6.551083] ad9144 spi1.1: Link0 frame sync stat: ff
    [    6.556036] ad9144 spi1.1: Link0 good checksum stat: ff
    [    6.561252] ad9144 spi1.1: Link0 init lane_sync stat: ff
    [    6.566560] ad9144 spi1.1: Link0 8 lanes @ 10000000 kBps
    [    6.572095] ad9144: probe of spi2.1 failed with error -16
    [    6.583087] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
    [    6.588589] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
    [    6.596352] xhci-hcd xhci-hcd.1.auto: hcc params 0x0238f625 hci version 0x100 quirks 0x0000000002010810
    [    6.605776] xhci-hcd xhci-hcd.1.auto: irq 57, io mem 0xfe200000
    [    6.611926] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
    [    6.620186] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    6.627407] usb usb1: Product: xHCI Host Controller
    [    6.632281] usb usb1: Manufacturer: Linux 5.10.0-xilinx-v2021.2 xhci-hcd
    [    6.638972] usb usb1: SerialNumber: xhci-hcd.1.auto
    [    6.644156] hub 1-0:1.0: USB hub found
    [    6.647929] hub 1-0:1.0: 1 port detected
    [    6.652059] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
    [    6.657551] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2
    [    6.665209] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
    [    6.671838] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10
    [    6.680093] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    6.687303] usb usb2: Product: xHCI Host Controller
    [    6.692175] usb usb2: Manufacturer: Linux 5.10.0-xilinx-v2021.2 xhci-hcd
    [    6.698866] usb usb2: SerialNumber: xhci-hcd.1.auto
    [    6.703989] hub 2-0:1.0: USB hub found
    [    6.707758] hub 2-0:1.0: 1 port detected
    [    6.735860] cf_axi_dds 84a04000.axi-ad9144-hpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.01.b) at 0x84A04000 mapped to 0x(____ptrval____), probed DDS (null)
    [    6.757624] ata1: SATA link down (SStatus 0 SControl 330)
    [    6.761460] input: gpio-keys as /devices/platform/gpio-keys/input/input0
    [    6.763050] ata2: SATA link down (SStatus 0 SControl 330)
    [    6.770210] of_cfs_init
    [    6.777556] of_cfs_init: OK
    [    6.780527] cfg80211: Loading compiled-in X.509 certificates for regulatory database
    [    6.920876] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
    [    6.927419] clk: Not disabling unused clocks
    [    6.931951] ALSA device list:
    [    6.934903]   No soundcards found.
    [    6.938650] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
    [    6.947262] cfg80211: failed to load regulatory.db
    [    6.952829] Freeing unused kernel memory: 2624K
    [    6.983457] Run /init as init process
    INIT: version 2.97 booting
    Starting udev
    [    7.089323] udevd[159]: starting version 3.2.9
    [    7.094149] random: udevd: uninitialized urandom read (16 bytes read)
    [    7.100646] random: udevd: uninitialized urandom read (16 bytes read)
    [    7.107106] random: udevd: uninitialized urandom read (16 bytes read)
    [    7.118158] udevd[160]: starting eudev-3.2.9
    [    7.459480] zynqmp-display fd4a0000.display: [drm] Cannot find any crtc or sizes
    [    7.533937] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
    [    7.571267] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    bootlogd: /dev/ttyPS0Configuring packages on first boot....
     (This may take several minutes. Please do not power off the machine.)
    Running postinst /etc/rpm-postinsts/100-sysvinit-inittab...
    update-rc.d: /etc/init.d/run-postinsts exists during rc.d purge (continuing)
    INIT: Entering runlevel: 5
    Configuring network interfaces... [    7.932334] macb ff0e0000.ethernet eth0: PHY [ff0e0000.ethernet-ffffffff:0c] driver [TI DP83867] (irq=POLL)
    [    7.942076] macb ff0e0000.ethernet eth0: configuring for phy/rgmii-id link mode
    udhcpc: started, v1.32.0
    udhcpc: sending discover
    udhcpc: sending discover
    [   12.025087] macb ff0e0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control tx
    [   12.032683] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    udhcpc: sending discover
    udhcpc: no lease, forking to background
    done.
    Starting system message bus: dbus.
    Starting haveged: haveged: command socket is listening at fd 3
    haveged: haveged starting up
    
    
    Starting Dropbear SSH server: Waiting for kernel randomness to be initialised...
    haveged: haveged: ver: 1.9.13; arch: generic; vend: ; build: (gcc 10.2.0 CTV); collect: 128K
    
    haveged: haveged: cpu: (VC); data: 16K (D); inst: 16K (D); idx: 11/40; sz: 15456/64452
    
    haveged: haveged: tot tests(BA8): A:1/1 B:1/1 continuous tests(B):  last entropy estimate 7.99792
    
    haveged: haveged: fills: 0, generated: 0
    
    [   16.983672] random: crng init done
    [   16.987070] random: 7 urandom warning(s) missed due to ratelimiting
    
    Public key portion is:
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCC4xcLqIvSOXL6B2MaypgAHOFmUIPPHEYDDYT/W69zKxjutzNpH9wdHWQ20TFMQWtUsr+5lgC3S6ZKz59c8iHCmnu9iS4ZYDNH2lZ4XRI7JFYJybWQf5C/yO04Lw4MjfllNJPkG4wxA/Zeh9J9tttP1uqOJDqxa3eIvtbIcSt0ZQTDaAcaH1oJbOYvbnmhKQlbFlNM3+RUmYtMPvcZAuHcG7ZlGaPmpfX4qssARcH1CbrAq2qV9VhEZSLis/hKiKBPUsnUaT1uZEydPa7BIgPWU+QTultPGqcEesTN7PwGW1IGWWuKYbzzpf1997YtN4YcYMPXUPDypTHRi8YeRWof root@molecular-duck-double
    Fingerprint: sha1!! 0d:6d:a6:79:c6:9c:3e:fa:71:9b:fa:3c:b8:67:4a:9b:0c:d6:a8:be
    dropbear.
    Starting Fancontrol Daemon: fancontrold
    Starting IIO Daemon: iiod
    Starting internet superserver: inetd.
    Starting syslogd/klogd: done
    Starting tcf-agent: OK
    
    

    devices deffered:

    root@molecular-duck-double:~# cat /sys/kernel/debug/devices_deferred
    84a06000.axi-ad9144-hpc
    84a70000.axi-adxcvr-tx
    84a94000.axi-jesd204-tx
    fd4a0000.display:zynqmp_dp_snd_card
    ina226-u76
    ina226-u77
    ina226-u78
    ina226-u87
    ina226-u85
    ina226-u86
    ina226-u93
    ina226-u88
    ina226-u15
    ina226-u92
    ina226-u79
    ina226-u81
    ina226-u80
    ina226-u84
    ina226-u16
    ina226-u65
    ina226-u74
    ina226-u75
    

    and clock summary:

    root@molecular-duck-double:~# cat /sys/kernel/debug/clk/clk_summary
                                     enable  prepare  protect                                                                duty
       clock                          count    count    count        rate   accuracy                                 phase  cycle  nshot
    --------------------------------------------------------------------------------                                --------------------
     clkin2_0                             0        0        0           0          0                                     0  50000        0
     clkin1_0                             0        0        0           0          0                                     0  50000        0
     si570_mgt                            0        0        0   148499999          0                                     0  50000        0
     si570_user                           0        0        0   299999997          0                                     0  50000        0
     clkin_1                              2        2        0  2000000000          0                                     0  50000        0
     clkin_0                              5        5        1  2000000000          0                                     0  50000        0
        spi1.0-div4                       1        1        1   250000000          0                                     0  50000        0
           out9                           2        2        1   250000000          0                                     0  50000        0
              tx_out_clk                  0        0        0   250000000          0                                     0  50000        0
              dac_gt_clk                  1        1        1    10000000          0                                     0  50000        0
                 jesd_dac_lane_clk        1        1        0    10000000          0                                     0  50000        0
           out8                           0        0        0   250000000          0                                     0  50000        0
        spi1.0-div3                       1        1        0    31250000          0                                     0  50000        0
           out7                           0        0        0    31250000          0                                     0  50000        0
           out6                           1        1        0    31250000          0                                     0  50000        0
        spi1.0-div2                       0        0        0  2000000000          0                                     0  50000        0
           out5                           0        0        0  2000000000          0                                     0  50000        0
           out4                           0        0        0  2000000000          0                                     0  50000        0
        spi1.0-div1                       0        0        0    83333333          0                                     0  50000        0
           out3                           0        0        0    83333333          0                                     0  50000        0
           out2                           0        0        0    83333333          0                                     0  50000        0
        spi1.0-div0                       1        1        0  2000000000          0                                     0  50000        0
           out1                           2        2        0  2000000000          0                                     0  50000        0
           out0                           0        0        0  2000000000          0                                     0  50000        0
     refhdmi                              1        1        0   114285000          0                                     0  50000        0
        xtal_0                            0        0        0   114285000          0                                     0  50000        0
           pll_0                          0        0        0 40731174000000                                          0     0  50000        0
              clk1_0                      0        0        0    27000000          0                                     0  50000        0
              clk0_0                      0        0        0    27000000          0                                     0  50000        0
     ref48M                               2        2        0    48000000          0                                     0  50000        0
        si5341                            3        3        0    14000000          0                                     0  50000        0
           clock-generator.N4             0        0        0           0          0                                     0  50000        0
           clock-generator.N3             0        0        0           0          0                                     0  50000        0
           clock-generator.N2             1        1        0   104000000          0                                     0  50000        0
              clock-generator.2           1        2        0    26000000          0                                     0  50000        0
           clock-generator.N1             1        2        0   594000000          0                                     0  50000        0
              clock-generator.7           0        1        0    74250000          0                                     0  50000        0
              clock-generator.0           1        2        0    27000000          0                                     0  50000        0
           clock-generator.N0             2        5        0  1000000000          0                                     0  50000        0
              clock-generator.9           0        1        0    33333333          0                                     0  50000        0
              clock-generator.8           0        0        0           0          0                                     0  50000        0
              clock-generator.6           0        1        0   125000000          0                                     0  50000        0
              clock-generator.5           1        2        0   100000000          0                                     0  50000        0
              clock-generator.4           0        1        0   100000000          0                                     0  50000        0
              clock-generator.3           1        2        0   125000000          0                                     0  50000        0
              clock-generator.1           0        0        0           0          0                                     0  50000        0
     dp_aclk                              1        1        0   100000000        100                                     0  50000        0
     aux_ref_clk                          0        0        0    27000000          0                                     0  50000        0
     gt_crx_ref_clk                       0        0        0   108000000          0                                     0  50000        0
     pss_alt_ref_clk                      0        0        0           0          0                                     0  50000        0
     video_clk                            0        0        0    27000000          0                                     0  50000        0
     pss_ref_clk                          2        2        2    33333333          0                                     0  50000        0
        vpll_post_src                     0        0        0    33333333          0                                     0  50000        0
        vpll_pre_src                      0        0        0    33333333          0                                     0  50000        0
           vpll_int                       0        0        0  2999999970          0                                     0  50000        0
              vpll_half                   0        0        0  1499999985          0                                     0  50000        0
                 vpll_int_mux             0        0        0  1499999985          0                                     0  50000        0
                    vpll                  0        0        0  1499999985          0                                     0  50000        0
                       dp_video_ref_mux       0        0        0  1499999985                                          0     0  50000        0
                          dp_video_ref_div1       0        0        0   299999997                                          0     0  50000        0
                             dp_video_ref_div2       0        0        0   299999997                                          0     0  50000        0
                                dp_video_ref       0        0        0   299999997                                          0     0  50000        0
                       vpll_to_lpd        0        0        0   499999995          0                                     0  50000        0
        dpll_post_src                     0        0        0    33333333          0                                     0  50000        0
        dpll_pre_src                      0        0        0    33333333          0                                     0  50000        0
           dpll_int                       0        0        0  2099999979          0                                     0  50000        0
              dpll_half                   0        0        0  1049999989          0                                     0  50000        0
                 dpll_int_mux             0        0        0  1049999989          0                                     0  50000        0
                    dpll                  0        0        0  1049999989          0                                     0  50000        0
                       dpll_to_lpd        0        0        0   524999995          0                                     0  50000        0
        apll_post_src                     0        0        0    33333333          0                                     0  50000        0
        apll_pre_src                      1        1        1    33333333          0                                     0  50000        0
           apll_int                       1        1        1  2399999976          0                                     0  50000        0
              apll_half                   1        1        1  1199999988          0                                     0  50000        0
                 apll_int_mux             1        1        1  1199999988          0                                     0  50000        0
                    apll                  1        1        1  1199999988          0                                     0  50000        0
                       dpdma_ref_mux       1        1        1  1199999988                                          0     0  50000        0
                          dpdma_ref_div1       1        1        1   599999994                                          0     0  50000        0
                             dpdma_ref       1        1        1   599999994                                          0     0  50000        0
                       gdma_ref_mux       0        0        0  1199999988          0                                     0  50000        0
                          gdma_ref_div1       0        0        0   599999994                                          0     0  50000        0
                             gdma_ref       0        0        0   599999994                                          0     0  50000        0
                       acpu_mux           0        0        0  1199999988          0                                     0  50000        0
                          acpu            0        0        0  1199999988          0                                     0  50000        0
        rpll_post_src                     0        0        0    33333333          0                                     0  50000        0
        rpll_pre_src                      0        0        0    33333333          0                                     0  50000        0
           rpll_int                       0        0        0  2399999976          0                                     0  50000        0
              rpll_half                   0        0        0  1199999988          0                                     0  50000        0
                 rpll_int_mux             0        0        0  1199999988          0                                     0  50000        0
                    rpll                  0        0        0  1199999988          0                                     0  50000        0
                       spi1_ref_mux       0        0        0  1199999988          0                                     0  50000        0
                          spi1_ref_div1       0        0        0    99999999                                          0     0  50000        0
                             spi1_ref_div2       0        0        0    99999999                                          0     0  50000        0
                                spi1_ref       0        0        0    99999999                                          0     0  50000        0
                       spi0_ref_mux       0        0        0  1199999988          0                                     0  50000        0
                          spi0_ref_div1       0        0        0    99999999                                          0     0  50000        0
                             spi0_ref_div2       0        0        0    99999999                                          0     0  50000        0
                                spi0_ref       0        0        0    99999999                                          0     0  50000        0
                       rpll_to_fpd        0        0        0    22641510          0                                     0  50000        0
                          dp_stc_ref_mux       0        0        0    22641510                                          0     0  50000        0
                             dp_stc_ref_div1       0        0        0     1509434                                          0     0  50000        0
                                dp_stc_ref_div2       0        0        0     150943                                4          0     0  50000        0
                                   dp_stc_ref       0        0        0     1509434                                          0     0  50000        0
                          dp_audio_ref_mux       0        0        0    22641510                                          0     0  50000        0
                             dp_audio_ref_div1       0        0        0    22641510                                          0     0  50000        0
                                dp_audio_ref_div2       0        0        0    22641                                510          0     0  50000        0
                                   dp_audio_ref       0        0        0    2264151                                0          0     0  50000        0
        iopll_post_src                    0        0        0    33333333          0                                     0  50000        0
        iopll_pre_src                     1        1        1    33333333          0                                     0  50000        0
           iopll_int                      1        1        1  2999999970          0                                     0  50000        0
              iopll_half                  1        1        1  1499999985          0                                     0  50000        0
                 iopll_int_mux            1        1        1  1499999985          0                                     0  50000        0
                    iopll                15       17       11  1499999985          0                                     0  50000        0
                       gem3_ref_ung_mux       1        1        0  1499999985                                          0     0  50000        0
                          gem3_ref_ung_div1       1        1        0  1499999985                                          0     0  50000        0
                             gem3_ref_ung       1        1        0   124999999                                          0     0  50000        0
                                gem3_ref       2        2        0   124999999                                          0     0  50000        0
                                   gem3_tx       1        1        0   124999999                                          0     0  50000        0
                       gem2_ref_ung_mux       0        0        0  1499999985                                          0     0  50000        0
                          gem2_ref_ung_div1       0        0        0    62500000                                          0     0  50000        0
                             gem2_ref_ung       0        0        0    62500000                                          0     0  50000        0
                                gem2_ref       0        0        0    62500000                                          0     0  50000        0
                                   gem2_tx       0        0        0    62500000                                          0     0  50000        0
                       gem1_ref_ung_mux       0        0        0  1499999985                                          0     0  50000        0
                          gem1_ref_ung_div1       0        0        0    62500000                                          0     0  50000        0
                             gem1_ref_ung       0        0        0    62500000                                          0     0  50000        0
                                gem1_ref       0        0        0    62500000                                          0     0  50000        0
                                   gem1_tx       0        0        0    62500000                                          0     0  50000        0
                       gem0_ref_ung_mux       0        0        0  1499999985                                          0     0  50000        0
                          gem0_ref_ung_div1       0        0        0    62500000                                          0     0  50000        0
                             gem0_ref_ung       0        0        0    62500000                                          0     0  50000        0
                                gem0_ref       0        0        0    62500000                                          0     0  50000        0
                                   gem0_tx       0        0        0    62500000                                          0     0  50000        0
                       pl3_ref_mux        1        1        0  1499999985          0                                     0  50000        0
                          pl3_ref_div1       1        1        0    46875000                                          0     0  50000        0
                             pl3_ref_div2       1        1        0     9375000                                          0     0  50000        0
                                pl3_ref       1        1        0     9375000                                          0     0  50000        0
                       pl2_ref_mux        1        1        0  1499999985          0                                     0  50000        0
                          pl2_ref_div1       1        1        0   499999995                                          0     0  50000        0
                             pl2_ref_div2       1        1        0   499999995                                          0     0  50000        0
                                pl2_ref       1        1        0   499999995                                          0     0  50000        0
                       pl1_ref_mux        1        1        0  1499999985          0                                     0  50000        0
                          pl1_ref_div1       1        1        0   249999998                                          0     0  50000        0
                             pl1_ref_div2       1        1        0   249999998                                          0     0  50000        0
                                pl1_ref       1        1        0   249999998                                          0     0  50000        0
                       pl0_ref_mux        1        1        0  1499999985          0                                     0  50000        0
                          pl0_ref_div1       1        1        0    99999999                                          0     0  50000        0
                             pl0_ref_div2       1        1        0    99999999                                          0     0  50000        0
                                pl0_ref       4        4        0    99999999                                          0     0  50000        0
                       ams_ref_mux        1        1        1  1499999985          0                                     0  50000        0
                          ams_ref_div1       1        1        1    50000000                                          0     0  50000        0
                             ams_ref_div2       1        1        1    50000000                                          0     0  50000        0
                                ams_ref       1        1        1    50000000                                          0     0  50000        0
                       adma_ref_mux       0        0        0  1499999985          0                                     0  50000        0
                          adma_ref_div1       0        0        0   499999995                                          0     0  50000        0
                             adma_ref       0        0        0   499999995                                          0     0  50000        0
                       can1_ref_mux       0        0        0  1499999985          0                                     0  50000        0
                          can1_ref_div1       0        0        0    99999999                                          0     0  50000        0
                             can1_ref_div2       0        0        0    99999999                                          0     0  50000        0
                                can1_ref       0        0        0    99999999                                          0     0  50000        0
                                   can1       0        0        0    99999999                                          0     0  50000        0
                       can0_ref_mux       0        0        0  1499999985          0                                     0  50000        0
                          can0_ref_div1       0        0        0    46875000                                          0     0  50000        0
                             can0_ref_div2       0        0        0    46875000                                          0     0  50000        0
                                can0_ref       0        0        0    46875000                                          0     0  50000        0
                                   can0       0        0        0    46875000                                          0     0  50000        0
                       i2c1_ref_mux       1        1        1  1499999985          0                                     0  50000        0
                          i2c1_ref_div1       1        1        1    99999999                                          0     0  50000        0
                             i2c1_ref_div2       1        1        1    99999999                                          0     0  50000        0
                                i2c1_ref       1        1        1    99999999                                          0     0  50000        0
                       i2c0_ref_mux       0        1        1  1499999985          0                                     0  50000        0
                          i2c0_ref_div1       0        1        1    99999999                                          0     0  50000        0
                             i2c0_ref_div2       0        1        1    99999999                                          0     0  50000        0
                                i2c0_ref       0        1        1    99999999                                          0     0  50000        0
                       nand_ref_mux       0        0        0  1499999985          0                                     0  50000        0
                          nand_ref_div1       0        0        0    46875000                                          0     0  50000        0
                             nand_ref_div2       0        0        0     9375000                                          0     0  50000        0
                                nand_ref       0        0        0     9375000                                          0     0  50000        0
                       uart1_ref_mux       0        1        1  1499999985                                          0     0  50000        0
                          uart1_ref_div1       0        1        1    99999999                                          0     0  50000        0
                             uart1_ref_div2       0        1        1    99999999                                          0     0  50000        0
                                uart1_ref       0        1        1    99999999                                          0     0  50000        0
                       uart0_ref_mux       1        1        1  1499999985                                          0     0  50000        0
                          uart0_ref_div1       1        1        1    99999999                                          0     0  50000        0
                             uart0_ref_div2       1        1        1    99999999                                          0     0  50000        0
                                uart0_ref       1        1        1    99999999                                          0     0  50000        0
                       sdio1_ref_mux       1        1        1  1499999985                                          0     0  50000        0
                          sdio1_ref_div1       1        1        1   187499999                                          0     0  50000        0
                             sdio1_ref_div2       1        1        1   187499999                                          0     0  50000        0
                                sdio1_ref       1        1        1   187499999                                          0     0  50000        0
                                   clk_in_sd1       0        0        0    50000000                                          0     0  50000        0
                                   clk_out_sd1       0        0        0    50000000                                          0     0  50000        0
                       sdio0_ref_mux       0        0        0  1499999985                                          0     0  50000        0
                          sdio0_ref_div1       0        0        0    99999999                                          0     0  50000        0
                             sdio0_ref_div2       0        0        0    99999999                                          0     0  50000        0
                                sdio0_ref       0        0        0    99999999                                          0     0  50000        0
                       qspi_ref_mux       1        1        1  1499999985          0                                     0  50000        0
                          qspi_ref_div1       1        1        1   124999999                                          0     0  50000        0
                             qspi_ref_div2       1        1        1   124999999          0     0  50000        0
                                qspi_ref       2        1        1   124999999          0     0  50000        0
                       gem_tsu_ref_mux       1        1        1  1499999985          0     0  50000        0
                          gem_tsu_ref_div1       1        1        1   249999998          0     0  50000        0
                             gem_tsu_ref_div2       1        1        1   249999998          0     0  50000        0
                                gem_tsu_ref       1        1        1   249999998          0     0  50000        0
                                   gem_tsu       1        1        0   249999998          0     0  50000        0
                       usb3_dual_ref_mux       1        1        1  1499999985          0     0  50000        0
                          usb3_dual_ref_div1       1        1        1    60000000          0     0  50000        0
                             usb3_dual_ref_div2       1        1        1    20000000          0     0  50000        0
                                usb3_dual_ref       1        1        1    20000000          0     0  50000        0
                       usb1_bus_ref_mux       0        0        0  1499999985          0     0  50000        0
                          usb1_bus_ref_div1       0        0        0   124999999          0     0  50000        0
                             usb1_bus_ref_div2       0        0        0   124999999          0     0  50000        0
                                usb1_bus_ref       0        0        0   124999999          0     0  50000        0
                       usb0_bus_ref_mux       1        1        1  1499999985          0     0  50000        0
                          usb0_bus_ref_div1       1        1        1   249999998          0     0  50000        0
                             usb0_bus_ref_div2       1        1        1   249999998          0     0  50000        0
                                usb0_bus_ref       1        1        1   249999998          0     0  50000        0
                       lpd_lsbus_mux       1        1        0  1499999985          0     0  50000        0
                          lpd_lsbus_div1       1        1        0    99999999          0     0  50000        0
                             lpd_lsbus       8        8        0    99999999          0     0  50000        0
                                lpd_wdt       0        0        0    99999999          0     0  50000        0
                       iopll_to_fpd       3        3        2   499999995          0     0  50000        0
                          topsw_lsbus_mux       1        1        0   499999995          0     0  50000        0
                             topsw_lsbus_div1       1        1        0    99999999          0     0  50000        0
                                topsw_lsbus       3        3        0    99999999          0     0  50000        0
                                   fpd_wdt       1        1        0    99999999          0     0  50000        0
                          gpu_ref_mux       0        0        0   499999995          0     0  50000        0
                             gpu_ref_div1       0        0        0   499999995          0     0  50000        0
                                gpu_ref       0        0        0   499999995          0     0  50000        0
                                   gpu_pp1_ref       0        0        0   499999995          0     0  50000        0
                                   gpu_pp0_ref       0        0        0   499999995          0     0  50000        0
                          pcie_ref_mux       1        1        1   499999995          0     0  50000        0
                             pcie_ref_div1       1        1        1   249999998          0     0  50000        0
                                pcie_ref       1        1        1   249999998          0     0  50000        0
                          sata_ref_mux       1        1        1   499999995          0     0  50000        0
                             sata_ref_div1       1        1        1   249999998          0     0  50000        0
                                sata_ref       1        1        1   249999998          0     0  50000        0
     can1_mio                             0        0        0           0          0     0  50000        0
     can0_mio                             0        0        0           0          0     0  50000        0
     gem3_rx                              1        1        0           0          0     0  50000        0
     gem2_rx                              0        0        0           0          0     0  50000        0
     gem1_rx                              0        0        0           0          0     0  50000        0
     gem0_rx                              0        0        0           0          0     0  50000        0
    root@molecular-duck-double:~#
    

    Thanks! Slight smile

  • Also, where can I find the errno,h file?

    https://github.com/torvalds/linux/blob/master/include/uapi/asm-generic/errno-base.h

    #define EEXIST 17 /* File exists */

    Something spi2.0 likes to create already exists.

    Can you share your modified dts again?

    -Michael

  • github.com/.../quote]

    Thank you!!!

    these are the dts files:

    // SPDX-License-Identifier: GPL-2.0
    /*
     * AD9144-FMC-EBZ on Xilinx ZynqMP ZCU102 Rev 1.0
     *
     * JESD Link Mode 0 Example: M4, L8, S1, F1,  NP'16, Interpolation: 2
     *
     * https://wiki.analog.com/resources/eval/user-guides/ad-dac-fmc-ebz
     *
     * hdl_project: <dac_fmc_ebz/zcu102>
     * ADI_DAC_DEVICE: <AD9144>
     * ADI_DAC_MODE: <00>
     * board_revision: <B>
     *
     * Copyright (C) 2020 Analog Devices Inc.
     */
    
    #include "zynqmp-zcu102-rev1.0.dts"
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/jesd204/adxcvr.h>
    
    &i2c1 {
    	i2c-mux@75 {
    		i2c@0 {
    			#address-cells = <1>;
    			#size-cells = <0>;
    			reg = <0>;
    			
    			eeprom@50 {
    				compatible = "at24,24c02";
    				reg = <0x50>;
    			};
    
    		};
    	};
    };
    
    / {
    	fpga_axi: fpga-axi@0 {
    		interrupt-parent = <&gic>;
    		compatible = "simple-bus";
    		#address-cells = <0x1>;
    		#size-cells = <0x1>;
    		ranges = <0 0 0 0xffffffff>;
    
    		// HPC0
    		tx_dma_0: tx-dmac@9c420000 {
    			#dma-cells = <1>;
    			compatible = "adi,axi-dmac-1.00.a";
    			reg = <0x9c420000 0x10000>;
    			interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&zynqmp_clk 71>;
    
    			adi,channels {
    				#size-cells = <0>;
    				#address-cells = <1>;
    
    				dma-channel@0 {
    					reg = <0>;
    					adi,source-bus-width = <128>;
    					adi,source-bus-type = <0>;
    					adi,destination-bus-width = <256>;
    					adi,destination-bus-type = <1>;
    					adi,cyclic;
    				};
    			};
    		};
    
    		axi_ad9144_core_0: axi-ad9144-hpc@84a04000 {
    			compatible = "adi,axi-ad9144-1.0";
    			reg = <0x84a04000 0x10000>;
    			dmas = <&tx_dma_0 0>;
    			dma-names = "tx";
    			spibus-connected = <&dac0_ad9144_0>;
    			adi,axi-pl-fifo-enable;
    		};
    
    		axi_ad9144_jesd_0: axi-jesd204-tx@84a90000 {
    			compatible = "adi,axi-jesd204-tx-1.0";
    			reg = <0x84a90000 0x4000>;
    
    			interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
    
    			clocks = <&zynqmp_clk 71>, <&axi_ad9144_adxcvr_0 1>, <&axi_ad9144_adxcvr_0 0>;
    			clock-names = "s_axi_aclk", "device_clk", "lane_clk";
    
    			adi,octets-per-frame = <1>;
    			adi,frames-per-multiframe = <32>;
    			adi,converter-resolution = <16>;
    			adi,bits-per-sample = <16>;
    			adi,converters-per-device = <4>;
    
    			#clock-cells = <0>;
    			clock-output-names = "jesd_dac_lane_clk";
    		};
    
    		axi_ad9144_adxcvr_0: axi-adxcvr-tx@84a60000 {
    			compatible = "adi,axi-adxcvr-1.0";
    			reg = <0x84a60000 0x1000>;
    
    			clocks = <&clk_ad9516_0 9>;
    			clock-names = "conv";
    
    			adi,sys-clk-select = <XCVR_QPLL>;
    			adi,out-clk-select = <XCVR_REFCLK>;
    			adi,use-lpm-enable;
    
    			#clock-cells = <1>;
    			clock-output-names = "dac_gt_clk", "tx_out_clk";
    		};
    
    		// HPC1
    		tx_dma_1: tx-dmac@9c430000 {
    			#dma-cells = <1>;
    			compatible = "adi,axi-dmac-1.00.a";
    			reg = <0x9c430000 0x10000>;
    			interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&zynqmp_clk 71>;
    
    			adi,channels {
    				#size-cells = <0>;
    				#address-cells = <1>;
    
    				dma-channel@0 {
    					reg = <0>;
    					adi,source-bus-width = <128>;
    					adi,source-bus-type = <0>;
    					adi,destination-bus-width = <256>;
    					adi,destination-bus-type = <1>;
    					adi,cyclic;
    				};
    			};
    		};
    
    		axi_ad9144_core_1: axi-ad9144-hpc@84a06000 {
    			compatible = "adi,axi-ad9144-1.0";
    			reg = <0x84a06000 0x10000>;
    			dmas = <&tx_dma_1 0>;
    			dma-names = "tx";
    			spibus-connected = <&dac0_ad9144_1>;
    			adi,axi-pl-fifo-enable;
    		};
    
    		axi_ad9144_jesd_1: axi-jesd204-tx@84a94000 {
    			compatible = "adi,axi-jesd204-tx-1.0";
    			reg = <0x84a94000 0x4000>;
    
    			interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
    
    			clocks = <&zynqmp_clk 71>, <&axi_ad9144_adxcvr_1 1>, <&axi_ad9144_adxcvr_1 0>;
    			clock-names = "s_axi_aclk", "device_clk", "lane_clk";
    
    			adi,octets-per-frame = <1>;
    			adi,frames-per-multiframe = <32>;
    			adi,converter-resolution = <16>;
    			adi,bits-per-sample = <16>;
    			adi,converters-per-device = <4>;
    
    			#clock-cells = <0>;
    			clock-output-names = "jesd_dac_lane_clk_1";
    		};
    
    		axi_ad9144_adxcvr_1: axi-adxcvr-tx@84a70000 {
    			compatible = "adi,axi-adxcvr-1.0";
    			reg = <0x84a70000 0x1000>;
    
    			clocks = <&clk_ad9516_1 9>;
    			clock-names = "conv";
    
    			adi,sys-clk-select = <XCVR_QPLL>;
    			adi,out-clk-select = <XCVR_REFCLK>;
    			adi,use-lpm-enable;
    
    			#clock-cells = <1>;
    			clock-output-names = "dac_gt_clk_1", "tx_out_clk_1";
    		};
    
    		axi_sysid_0: axi-sysid-0@85000000 {
    			compatible = "adi,axi-sysid-1.00.a";
    			reg = <0x85000000 0x10000>;
    		};
    	};
    };
    
    &spi0 {
    	status = "okay";
    };
    
    &spi1 {
    	status = "okay";
    };
    
    #define fmc_spi_0 spi0
    #define fmc_spi_1 spi1
    
    #include "adi-ad9144-fmc-ebz-mode0-double.dtsi"
    
    &dac0_ad9144_0 {
    	txen-gpios = <&gpio 99 0>,<&gpio 102 0>;
    };
    
    &dac0_ad9144_1 {
    	txen-gpios = <&gpio 99 0>,<&gpio 102 0>;
    };
    

    and it calls this dtsi:

    // SPDX-License-Identifier: GPL-2.0
    /*
     * dts file for AD9144-FMC-EBZ on Xilinx ZynqMP ZCU102 Rev 1.0
     *
     * Copyright (C) 2018-2019 Analog Devices Inc.
     */
    
    / {
    	clocks {
    		ad9516_clkin_0: clock@0 {
    			compatible = "fixed-clock";
    
    			clock-frequency = <2000000000>;
    			clock-output-names = "clkin_0";
    			#clock-cells = <0>;
    		};
    		ad9516_clkin_1: clock@1 {
    			compatible = "fixed-clock";
    
    			clock-frequency = <2000000000>;
    			clock-output-names = "clkin_1";
    			#clock-cells = <0>;
    		};
    	};
    };
    
    
    &fmc_spi_0 {
    	clk_ad9516_0: ad9516@0 {
    		compatible = "adi,ad9516-1";
    		reg = <0>;
    
    		spi-max-frequency = <10000000>;
    
    		firmware = "ad9144_fmc_ebz_ad9516.stp";
    
    		clocks = <&ad9516_clkin_0>, <&ad9516_clkin_0>;
    		clock-names = "refclk", "clkin";
    
    		clock-output-names = "out0", "out1", "out2", "out3", "out4", "out5", "out6", "out7";
    		#clock-cells = <1>;
    	};
    
    	dac0_ad9144_0: ad9144@1 {
    		#address-cells = <1>;
    		#size-cells = <0>;
    		compatible = "adi,ad9144";
    		reg = <1>;
    		spi-max-frequency = <1000000>;
    		clocks = <&axi_ad9144_jesd_0>, <&clk_ad9516_0 1>, <&clk_ad9516_0 6>;
    		clock-names = "jesd_dac_clk", "dac_clk", "dac_sysref";
    
    		adi,jesd-link-mode = <0>;
    		adi,spi-4wire;
    
    		adi,interpolation = <2>;
    
    	};
    };
    
    &fmc_spi_1 {
    	clk_ad9516_1: ad9516@0 {
    		compatible = "adi,ad9516-1";
    		reg = <0>;
    
    		spi-max-frequency = <10000000>;
    
    		firmware = "ad9144_fmc_ebz_ad9516.stp";
    
    		clocks = <&ad9516_clkin_1>, <&ad9516_clkin_1>;
    		clock-names = "refclk", "clkin";
    
    		clock-output-names = "out0_2", "out1_2", "out2_2", "out3_2", "out4_2", "out5_2", "out6_2", "out7_2";
    		#clock-cells = <1>;
    	};
    
    	dac0_ad9144_1: ad9144@1 {
    		#address-cells = <1>;
    		#size-cells = <0>;
    		compatible = "adi,ad9144";
    		reg = <1>;
    		spi-max-frequency = <1000000>;
    		clocks = <&axi_ad9144_jesd_1>, <&clk_ad9516_1 1>, <&clk_ad9516_1 6>;
    		clock-names = "jesd_dac_clk", "dac_clk", "dac_sysref";
    
    		adi,jesd-link-mode = <0>;
    		adi,spi-4wire;
    
    		adi,interpolation = <2>;
    
    	};
    };
    
    

    Thanks!! Slight smile

  • Hmm this looks good.

    I think you need to debug this.

    https://github.com/analogdevicesinc/linux/blob/master/drivers/iio/frequency/ad9517.c#L1079

    After each function call in the probe function place a:

    pr_err("%s:%d\n", __func__, __LINE__);

    Rebuild your kernel and start.

    You will find the function which returns 17.

    BTW - further down you will also run into this.

    A gpio can only be owned by one device.

    So you need separate controls...

    &dac0_ad9144_0 {
    txen-gpios = <&gpio 99 0>,<&gpio 102 0>;
    };

    &dac0_ad9144_1 {
    txen-gpios = <&gpio 99 0>,<&gpio 102 0>;
    };

    -Michael

  • Hi Michael,

    Thank you for your answer!

    A gpio can only be owned by one device.

    So you need separate controls...

    I separated the controls, thanks! That give me another idea-

    In system_top.v, spi1 (the second one) was used by the PMOD:

    assign pmod_spi_csn = spi1_csn[0];

    I commented out all the PMOD parts in system_top.v and in the constraints file, to use spi1 for the second AD9144,

    but I didn't see any linux-related PMOD stuff.

    Maybe that is what is causing the "file exists" bug? Do you know if really the PMOD is called in the linux?

    This is the edited system_top.v:

    // ***************************************************************************
    // ***************************************************************************
    // Copyright 2014 - 2017 (c) Analog Devices, Inc. All rights reserved.
    //
    // In this HDL repository, there are many different and unique modules, consisting
    // of various HDL (Verilog or VHDL) components. The individual modules are
    // developed independently, and may be accompanied by separate and unique license
    // terms.
    //
    // The user should read each of these license terms, and understand the
    // freedoms and responsibilities that he or she has by using this source/core.
    //
    // This core is distributed in the hope that it will be useful, but WITHOUT ANY
    // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    // A PARTICULAR PURPOSE.
    //
    // Redistribution and use of source or resulting binaries, with or without modification
    // of this file, are permitted under one of the following two license terms:
    //
    //   1. The GNU General Public License version 2 as published by the
    //      Free Software Foundation, which can be found in the top level directory
    //      of this repository (LICENSE_GPL2), and also online at:
    //      <https://www.gnu.org/licenses/old-licenses/gpl-2.0.html>
    //
    // OR
    //
    //   2. An ADI specific BSD license, which can be found in the top level directory
    //      of this repository (LICENSE_ADIBSD), and also on-line at:
    //      https://github.com/analogdevicesinc/hdl/blob/master/LICENSE_ADIBSD
    //      This will allow to generate bit files and not release the source code,
    //      as long as it attaches to an ADI device.
    //
    // ***************************************************************************
    // ***************************************************************************
    
    `timescale 1ns/100ps
    
    /*
    Interface to FMC connector overview - HPC0
    
    system_top    FMC_EBZ         FMC                            FPGA
                  -------------|--------------------------------|-------------------------------------
    NC            BR40_EXT_N      B21  FMC_HPC0_GBTCLK1_M2C_C_N  L7     MGTREFCLK0N_228_L7
    NC            BR40_EXT_P      B20  FMC_HPC0_GBTCLK1_M2C_C_P  L8     MGTREFCLK0P_228_L8
    tx_ref_clk_n  BR40_N          D05  FMC_HPC0_GBTCLK0_M2C_C_N  G7     MGTREFCLK0N_229_G7
    tx_ref_clk_p  BR40_P          D04  FMC_HPC0_GBTCLK0_M2C_C_P  G8     MGTREFCLK0P_229_G8
    spi_csn_dac   FMC_CS1         H11  FMC_HPC0_LA04_N           AA1    IO_L21N_T3L_N5_AD8N_66_AA1
    spi_csn_clk   FMC_CS2         D11  FMC_HPC0_LA05_P           AB3    IO_L20P_T3L_N2_AD1P_66_AB3
    spi_miso      FMC_MISO        H10  FMC_HPC0_LA04_P           AA2    IO_L21P_T3L_N4_AD8P_66_AA2
    spi_mosi      FMC_MOSI        G10  FMC_HPC0_LA03_N           Y1     IO_L22N_T3U_N7_DBC_AD0N_66_Y1
    spi_clk       FMC_SCK         G09  FMC_HPC0_LA03_P           Y2     IO_L22P_T3U_N6_DBC_AD0P_66_Y2
    spi_en        FMC_SPI_EN      D12  FMC_HPC0_LA05_N           AC3    IO_L20N_T3L_N3_AD1N_66_AC3
    
    pe_ctrl       FMC_PE_CTRL     H13  FMC_HPC0_LA07_P           U5     IO_L18P_T2U_N10_AD2P_66_U5
    txen[0]       FMC_TXEN_0      C10  FMC_HPC0_LA06_P           AC2    IO_L19P_T3L_N0_DBC_AD9P_66_AC2
    txen[1]       FMC_TXEN_1      C11  FMC_HPC0_LA06_N           AC1    IO_L19N_T3L_N1_DBC_AD9N_66_AC1
    
    tx_data_p[0]  SERDIN0_N       A38  FMC_HPC0_DP5_C2M_P        P6     MGTHTXP1_228_P6
    tx_data_n[0]  SERDIN0_P       A39  FMC_HPC0_DP5_C2M_N        P5     MGTHTXN1_228_P5
    tx_data_p[1]  SERDIN1_N       B36  FMC_HPC0_DP6_C2M_P        R4     MGTHTXP0_228_R4
    tx_data_n[1]  SERDIN1_P       B37  FMC_HPC0_DP6_C2M_N        R3     MGTHTXN0_228_R3
    tx_data_p[2]  SERDIN2_N       A34  FMC_HPC0_DP4_C2M_P        M6     MGTHTXP3_228_M6
    tx_data_n[2]  SERDIN2_P       A35  FMC_HPC0_DP4_C2M_N        M5     MGTHTXN3_228_M5
    tx_data_p[3]  SERDIN3_N       B32  FMC_HPC0_DP7_C2M_P        N4     MGTHTXP2_228_N4
    tx_data_n[3]  SERDIN3_P       B33  FMC_HPC0_DP7_C2M_N        N3     MGTHTXN2_228_N3
    tx_data_p[4]  SERDIN4_P       A30  FMC_HPC0_DP3_C2M_P        K6     MGTHTXP0_229_K6
    tx_data_n[4]  SERDIN4_N       A31  FMC_HPC0_DP3_C2M_N        K5     MGTHTXN0_229_K5
    tx_data_p[5]  SERDIN5_P       A26  FMC_HPC0_DP2_C2M_P        F6     MGTHTXP3_229_F6
    tx_data_n[5]  SERDIN5_N       A27  FMC_HPC0_DP2_C2M_N        F5     MGTHTXN3_229_F5
    tx_data_p[6]  SERDIN6_P       A22  FMC_HPC0_DP1_C2M_P        H6     MGTHTXP1_229_H6
    tx_data_n[6]  SERDIN6_N       A23  FMC_HPC0_DP1_C2M_N        H5     MGTHTXN1_229_H5
    tx_data_p[7]  SERDIN7_P       C02  FMC_HPC0_DP0_C2M_P        G4     MGTHTXP2_229_G4
    tx_data_n[7]  SERDIN7_N       C03  FMC_HPC0_DP0_C2M_N        G3     MGTHTXN2_229_G3
    tx_sync_p[0]  SYNC0_P         D08  FMC_HPC0_LA01_CC_P        AB4    IO_L16P_T2U_N6_QBC_AD3P_66_AB4
    tx_sync_n[0]  SYNC0_N         D09  FMC_HPC0_LA01_CC_N        AC4    IO_L16N_T2U_N7_QBC_AD3N_66_AC4
    NC            SYNC1_N         H08  FMC_HPC0_LA02_N           V1     IO_L23N_T3U_N9_66_V1
    NC            SYNC1_P         H07  FMC_HPC0_LA02_P           V2     IO_L23P_T3U_N8_66_V2
    tx_sysref_n   SYSREF2_N       G07  FMC_HPC0_LA00_CC_N        Y3     IO_L13N_T2L_N1_GC_QBC_66_Y3
    tx_sysref_p   SYSREF2_P       G06  FMC_HPC0_LA00_CC_P        Y4     IO_L13P_T2L_N0_GC_QBC_66_Y4
    */
    
    module system_top #(
      parameter NUM_LINKS = 2,
      parameter DEVICE_CODE = 0
    ) (
      input   [12:0]  gpio_bd_i,
      output  [ 7:0]  gpio_bd_o,
    
    // HPC0
    
      input           tx_ref_clk_p,
      input           tx_ref_clk_n,
      input           tx_sysref_p,
      input           tx_sysref_n,
      input   [ 1:0]  tx_sync_p,
      input   [ 1:0]  tx_sync_n,
      output  [ 7:0]  tx_data_p,
      output  [ 7:0]  tx_data_n,
    
      output          spi_csn_dac,
      output          spi_csn_clk,
      output          spi_csn_clk2,
      input           spi_miso,
      output          spi_mosi,
      output          spi_clk,
      output          spi_en,
    
      inout   [ 4:0]  dac_ctrl,
    
      // HPC1
    
      input           tx1_ref_clk_p,
      input           tx1_ref_clk_n,
      input           tx1_sysref_p,
      input           tx1_sysref_n,
      input   [ 1:0]  tx_sync_p_1,
      input   [ 1:0]  tx_sync_n_1,
      output  [ 7:0]  tx_data_p_1,
      output  [ 7:0]  tx_data_n_1,
    
      output          spi_csn_dac_1,
      output          spi_csn_clk_1,
      output          spi_csn_clk2_1,
      input           spi_miso_1,
      output          spi_mosi_1,
      output          spi_clk_1,
      output          spi_en_1
    
    
      //pmod
    
      // output          pmod_spi_clk,
      // output          pmod_spi_csn,
      // output          pmod_spi_mosi,
      // input           pmod_spi_miso,
      // inout   [ 3:0]  pmod_gpio
    );
    
      // internal signals
    
      wire    [94:0]  gpio_i;
      wire    [94:0]  gpio_o;
      wire    [94:0]  gpio_t;
     
      //HPC0
      wire    [ 2:0]  spi0_csn;
      wire    [ 2:0]  spi1_csn;
      wire            tx_ref_clk;
      wire            tx_sysref;
      wire    [ 1:0]  tx_sync;
      //HPC1
    
      wire            tx1_ref_clk;
      wire            tx1_sysref;
      wire    [ 1:0]  tx_sync_1;
      wire            tx_sysref_loc;
    
      // spi
    
      // spi_en is active ...
      //   ... high for AD9135-FMC-EBZ, AD9136-FMC-EBZ, AD9144-FMC-EBZ,
      //   ... low for AD9171-FMC-EBZ, AD9172-FMC-EBZ, AD9173-FMC-EBZ
      // If you are planning to build a bitstream for just one of those boards you
      // can hardwire the logic level here.
      //
      assign spi_en = (DEVICE_CODE <= 2);
      assign spi_en_1 = (DEVICE_CODE <= 2);
    
      //HPC0
      //                                        9135/9144/9172    916(1,2,3,4)
      assign spi_csn_dac  = spi0_csn[1];
      assign spi_csn_clk  = spi0_csn[0];    //   HMC7044          AD9508
      assign spi_csn_clk2 = spi0_csn[2];    //   NC               ADF4355
    
      //HPC1
      //                                        9135/9144/9172    916(1,2,3,4)
      assign spi_csn_dac_1  = spi1_csn[1];
      assign spi_csn_clk_1  = spi1_csn[0];    //   HMC7044          AD9508
      assign spi_csn_clk2_1 = spi1_csn[2];    //   NC               ADF4355
    
      /* JESD204 clocks and control signals */
      // HPC0
      IBUFDS_GTE4 i_ibufds_tx_ref_clk (
        .CEB (1'd0),
        .I (tx_ref_clk_p),
        .IB (tx_ref_clk_n),
        .O (tx_ref_clk),
        .ODIV2 ());
    
      IBUFDS i_ibufds_tx_sysref (
        .I (tx_sysref_p),
        .IB (tx_sysref_n),
        .O (tx_sysref));
    
      IBUFDS i_ibufds_tx_sync_0 (
        .I (tx_sync_p[0]),
        .IB (tx_sync_n[0]),
        .O (tx_sync[0]));
    
      IBUFDS i_ibufds_tx_sync_1 (
        .I (tx_sync_p[1]),
        .IB (tx_sync_n[1]),
        .O (tx_sync[1]));
    
        // HPC1
      IBUFDS_GTE4 i_ibufds_tx_ref_clk_1 (
        .CEB (1'd0),
        .I (tx1_ref_clk_p),
        .IB (tx1_ref_clk_n),
        .O (tx1_ref_clk),
        .ODIV2 ());
    
      IBUFDS i_ibufds_tx1_sysref (
        .I (tx1_sysref_p),
        .IB (tx1_sysref_n),
        .O (tx1_sysref));
    
      IBUFDS i_ibufds_tx_sync_1_0 (
        .I (tx_sync_p_1[0]),
        .IB (tx_sync_n_1[0]),
        .O (tx_sync_1[0]));
    
      IBUFDS i_ibufds_tx_sync_1_1 (
        .I (tx_sync_p_1[1]),
        .IB (tx_sync_n_1[1]),
        .O (tx_sync_1[1]));
    
      /* FMC GPIOs */
      ad_iobuf #(
        .DATA_WIDTH(5)
      ) i_iobuf (
        .dio_t (gpio_t[21+:5]),
        .dio_i (gpio_o[21+:5]),
        .dio_o (gpio_i[21+:5]),
        .dio_p ({
          dac_ctrl           /* 25 - 21 */
        }));
    
    
      /* 
      * Control signals in my setup (AD9144):
      *
      * dac_ctrl  FMC   9144 like    
      *        0  H13   FMC_TXEN_0 HPC0  
      *        1  H14   FMC_TXEN_0 HPC1           
      *        2  H13   FMC_TXEN_1 HPC0            
      *        3  H14   FMC_TXEN_1 HPC1 
      *        4  ?              
      */
    
    
      assign dac_fifo_bypass = gpio_o[40];
    
      // /* PMOD GPIOs 48-51 */
      // ad_iobuf #(
      //   .DATA_WIDTH(4)
      // ) i_iobuf_pmod (
      //   .dio_t (gpio_t[48+:4]),
      //   .dio_i (gpio_o[48+:4]),
      //   .dio_o (gpio_i[48+:4]),
      //   .dio_p (pmod_gpio));
    
      // // /* PMOD SPI */
      // assign pmod_spi_csn = spi1_csn[0];
    
      /* Board GPIOS. Buttons, LEDs, etc... */
      assign gpio_i[20: 8] = gpio_bd_i;
      assign gpio_bd_o = gpio_o[7:0];
    
      assign gpio_i[94:52] = gpio_o[94:52];
      assign gpio_i[47:32] = gpio_o[47:32];
      assign gpio_i[31:26] = gpio_o[31:26];
      assign gpio_i[ 7: 0] = gpio_o[7:0];
    
      system_wrapper i_system_wrapper (
        .gpio_i (gpio_i),
        .gpio_o (gpio_o),
        .dac_fifo_bypass(dac_fifo_bypass),
        // HPC0
        .spi0_csn (spi0_csn),
        .spi0_miso (spi_miso),
        .spi0_mosi (spi_mosi),
        .spi0_sclk (spi_clk),
        .spi1_csn (spi1_csn),
        .spi1_miso (spi_miso_1),
        .spi1_mosi (spi_mosi_1),
        .spi1_sclk (spi_clk_1),
        .tx_data_0_n (tx_data_n[0]),
        .tx_data_0_p (tx_data_p[0]),
        .tx_data_1_n (tx_data_n[1]),
        .tx_data_1_p (tx_data_p[1]),
        .tx_data_2_n (tx_data_n[2]),
        .tx_data_2_p (tx_data_p[2]),
        .tx_data_3_n (tx_data_n[3]),
        .tx_data_3_p (tx_data_p[3]),
        .tx_data_4_n (tx_data_n[4]),
        .tx_data_4_p (tx_data_p[4]),
        .tx_data_5_n (tx_data_n[5]),
        .tx_data_5_p (tx_data_p[5]),
        .tx_data_6_n (tx_data_n[6]),
        .tx_data_6_p (tx_data_p[6]),
        .tx_data_7_n (tx_data_n[7]),
        .tx_data_7_p (tx_data_p[7]),
        .tx_ref_clk_0 (tx_ref_clk),
        .tx_ref_clk_4 (tx_ref_clk),
        .tx_sync_0 (tx_sync[NUM_LINKS-1:0]),
        .tx_sysref_0 (tx_sysref),
        
         // HPC1
      
        .tx_data_1_0_n (tx_data_n_1[0]),
        .tx_data_1_0_p (tx_data_p_1[0]),
        .tx_data_1_1_n (tx_data_n_1[1]),
        .tx_data_1_1_p (tx_data_p_1[1]),
        .tx_data_1_2_n (tx_data_n_1[2]),
        .tx_data_1_2_p (tx_data_p_1[2]),
        .tx_data_1_3_n (tx_data_n_1[3]),
        .tx_data_1_3_p (tx_data_p_1[3]),
        .tx_data_1_4_n (tx_data_n_1[4]),
        .tx_data_1_4_p (tx_data_p_1[4]),
        .tx_data_1_5_n (tx_data_n_1[5]),
        .tx_data_1_5_p (tx_data_p_1[5]),
        .tx_data_1_6_n (tx_data_n_1[6]),
        .tx_data_1_6_p (tx_data_p_1[6]),
        .tx_data_1_7_n (tx_data_n_1[7]),
        .tx_data_1_7_p (tx_data_p_1[7]),
        .tx1_ref_clk_0 (tx1_ref_clk),
        .tx1_ref_clk_4 (tx1_ref_clk),
        .tx_sync_1_0 (tx_sync_1[NUM_LINKS-1:0]),
        .tx_sysref_1_0 (tx1_sysref)
        
        );
    
      // AD9161/2/4-FMC-EBZ works only in single link,
      // The FMC connector instead of SYNC1 has SYSREF connected to it
      assign tx_sysref_loc = (DEVICE_CODE == 3) ? tx_sync[1] : tx_sysref;
    
    endmodule
    

    Also, I tried to figure out how to use your suggested debug method:

    After each function call in the probe function place a:

    pr_err("%s:%d\n", __func__, __LINE__);

    Rebuild your kernel and start.

    But couldn't figure out where to make the changes- the ad9517.c file appears in the project folder only after petalinux-build, and when I tried editing it after the first build and rebuild, nothing seems to happen.

    Can you please explain how to change it?

    Thanks! Slight smile

    Eliana

  • Hi,

    Maybe that is what is causing the "file exists" bug? Do you know if really the PMOD is called in the linux?

    Not sure I understand - but I don't think this is causing the error. 

    and rebuild, nothing seems to happen.

    Honestly I wouldn't use Petalinux to just build a kernel.

    I guess it's not rebuilding the kernel. Please see here:

    https://support.xilinx.com/s/question/0D52E00006iHq24SAC/quickest-way-to-rebuild-kernel-with-petalinux?language=en_US

    -Michael

  • Hi,

    Thanks for the direction- it worked with some modifications, using the command:

    Petalinux-devtool modify linux-xlnx 

    Then I changed the ad9517.c to:

    // SPDX-License-Identifier: GPL-2.0-only
    /*
     * Analog Devices AD9517 and similar clock generators with integrated VCO
     *
     * Copyright 2013-2020 Analog Devices Inc.
     */
    
    #include <linux/module.h>
    #include <linux/device.h>
    #include <linux/kernel.h>
    #include <linux/slab.h>
    #include <linux/spi/spi.h>
    #include <linux/err.h>
    #include <linux/delay.h>
    #include <linux/firmware.h>
    #include <linux/of.h>
    #include <linux/mutex.h>
    
    #include <linux/gpio/consumer.h>
    
    #include <linux/clk.h>
    #include <linux/clk-provider.h>
    
    #include <linux/iio/iio.h>
    
    #define FIRMWARE	"ad9517.stp"
    
    #define AD9517_READ			(1 << 15)
    #define AD9517_WRITE			(0 << 15)
    #define AD9517_CNT(x)			(((x) - 1) << 13)
    #define AD9517_ADDR(x)			((x) & 0xFFF)
    
    /*
    * AD9517-X Registers
    */
    #define AD9517_SERCONF			0x00
    #define AD9517_PARTID			0x03
    #define AD9517_RB_CTL			0x04
    #define AD9517_PFD_CP			0x10
    #define AD9517_RCNT_L			0x11
    #define AD9517_RCNT_H			0x12
    #define AD9517_ACNT			0x13
    #define AD9517_BCNT_L			0x14
    #define AD9517_BCNT_H			0x15
    #define AD9517_PLL1			0x16
    #define AD9517_PLL2			0x17
    #define AD9517_PLL3			0x18
    #define AD9517_PLL4			0x19
    #define AD9517_PLL5			0x1A
    #define AD9517_PLL6			0x1B
    #define AD9517_PLL7			0x1C
    #define AD9517_PLL8			0x1D
    #define AD9517_PLL9			0x1E
    #define AD9517_PLL_RB			0x1F
    
    /* LVDS/CMOS delay registers */
    #define AD9517_OUT_DELAY_BP(x)		(0xA0 + (x) * 3)
    #define AD9517_OUT_DELAY_FS(x)		(0xA1 + (x) * 3)
    #define AD9517_OUT_DELAY_FR(x)		(0xA2 + (x) * 3)
    
    #define AD9517_OUT_LVPECL(x)		(0xF0 + (x))
    
    #define AD9517_OUT_CMOS(x)		(0x140 + (x))
    
    /* LVPECL Channel Dividers */
    #define AD9517_PECLDIV_1(x)		(0x190 + (x) * 3)
    #define AD9517_PECLDIV_2(x)		(0x191 + (x) * 3)
    #define AD9517_PECLDIV_3(x)		(0x192 + (x) * 3)
    
    /* LVDS/CMOS Channel Dividers */
    #define AD9517_CMOSDIV_1(x)		(0x199 + (x) * 5)
    #define AD9517_CMOSDIV_1_PHO(x)		(0x19A + (x) * 5)
    #define AD9517_CMOSDIV_2(x)		(0x19B + (x) * 5)
    #define AD9517_CMOSDIV_BYPASS(x)	(0x19C + (x) * 5)
    #define AD9517_CMOSDIV_DCCOFF(x)	(0x19D + (x) * 5)
    
    /* VCO Divider and CLK Input */
    #define AD9517_VCO_DIVIDER		0x1E0
    #define AD9517_INPUT_CLKS		0x1E1
    #define AD9517_POWDOWN_SYNC		0x230
    
    /* Update All Registers */
    #define AD9517_TRANSFER			0x232
    
    #define AD9517_PLL3_VCO_CAL		BIT(0)
    #define AD9517_TRANSFER_NOW		BIT(0)
    #define AD9517_PLL1_BCNT_BP		BIT(3)
    #define AD9517_VCO_DIVIDER_BP		BIT(0)
    #define AD9517_VCO_DIVIDER_SEL		BIT(1)
    #define AD9517_PECLDIV_VCO_SEL		BIT(1)
    #define AD9517_PECLDIV_3_BP		BIT(7)
    #define AD9517_CMOSDIV_BYPASS_2		BIT(5)
    #define AD9517_CMOSDIV_BYPASS_1		BIT(4)
    #define AD9517_SOFT_RESET		0x24
    #define AD9517_SDO_ACTIVE		0x81
    #define AD9517_LONG_INSTR		0x18
    
    #define MAX_NUM_DIVIDERS		5
    #define MAX_NUM_OUTPUTS			10
    
    /*
     * The address field of the channel is used to identify the output type
     * (LVDS/CMOS or LVPECL) and the offset in the register map. The offset is
     * storeed in the lowerd 8 bits and the type in bit 9.
     */
    #define AD9517_ADDRESS_CHAN_TYPE_LVPECL	0x100
    
    #define AD9517_ADDRESS_LVPECL(x)	(AD9517_ADDRESS_CHAN_TYPE_LVPECL | (x))
    #define AD9517_ADDRESS_CMOS(x)		(x)
    
    #define AD9517_ADDRESS_INDEX(x)		((x) & 0xff)
    
    /* Two channels share one divider */
    #define AD9517_ADDRESS_DIVIDER_INDEX(x)	(AD9517_ADDRESS_INDEX(x) / 2)
    
    struct ad9517_clk_div {
    	struct ad9517_state *st;
    	unsigned int address;
    
    	struct clk_hw hw;
    };
    
    struct ad9517_outputs {
    	struct ad9517_state *st;
    	struct clk_hw hw;
    	const char *parent_name;
    	unsigned int address;
    };
    
    struct ad9517_state {
    	struct spi_device *spi;
    	unsigned char regs[AD9517_TRANSFER+1];
    
    	struct ad9517_clk_div clk_divs[MAX_NUM_DIVIDERS];
    
    	struct ad9517_outputs output[MAX_NUM_OUTPUTS];
    	struct clk *clks[MAX_NUM_OUTPUTS];
    	struct clk_onecell_data clk_data;
    
    	unsigned long refin_freq;
    	unsigned long clkin_freq;
    	unsigned long div0123_freq;
    	unsigned long vco_divin_freq;
    
    	struct gpio_desc *gpio_reset;
    	struct gpio_desc *gpio_sync;
    
    	struct mutex lock;
    };
    
    /* Registers not listed are implicitly initialized to 0x00 */
    static const unsigned char ad9517_default_regs[AD9517_TRANSFER+1] = {
    	[AD9517_PFD_CP] = 0x7d,
    	[AD9517_RCNT_L] = 0x01,
    	[AD9517_BCNT_L] = 0x03,
    	[AD9517_PLL1] = 0x06,
    	[AD9517_PLL3] = 0x06,
    	[AD9517_OUT_DELAY_BP(0)] = 0x01,
    	[AD9517_OUT_DELAY_BP(1)] = 0x01,
    	[AD9517_OUT_DELAY_BP(2)] = 0x01,
    	[AD9517_OUT_DELAY_BP(3)] = 0x01,
    	[AD9517_OUT_LVPECL(0)] = 0x0a,
    	[AD9517_OUT_LVPECL(1)] = 0x0a,
    	[AD9517_OUT_LVPECL(2)] = 0x0a,
    	[AD9517_OUT_LVPECL(3)] = 0x0a,
    	[AD9517_OUT_LVPECL(4)] = 0x0a,
    	[AD9517_OUT_LVPECL(5)] = 0x0a,
    	[AD9517_OUT_CMOS(0)] = 0x43,
    	[AD9517_OUT_CMOS(1)] = 0x43,
    	[AD9517_OUT_CMOS(2)] = 0x43,
    	[AD9517_OUT_CMOS(3)] = 0x43,
    	[AD9517_PECLDIV_2(0)] = 0x80,
    	[AD9517_PECLDIV_2(1)] = 0x80,
    	[AD9517_PECLDIV_2(2)] = 0x80,
    	[AD9517_CMOSDIV_1(0)] = 0x22,
    	[AD9517_CMOSDIV_2(0)] = 0x11,
    	[AD9517_CMOSDIV_1(1)] = 0x22,
    	[AD9517_CMOSDIV_2(1)] = 0x11,
    	[AD9517_VCO_DIVIDER] = 0x02,
    };
    
    #define IS_FD				BIT(7)
    #define AD9517_PLL1_PRESCALER_MASK	0x7
    static const unsigned char to_prescaler[] = {
    	1 | IS_FD,
    	2 | IS_FD,
    	2,
    	4,
    	8,
    	16,
    	32,
    	3 | IS_FD,
    };
    
    #define to_ad9517_clk_output(_hw) container_of(_hw, struct ad9517_outputs, hw)
    
    static inline struct ad9517_clk_div *clk_to_ad9517_clk_div(struct clk_hw *hw)
    {
    	return container_of(hw, struct ad9517_clk_div, hw);
    }
    
    static int ad9517_read(struct spi_device *spi, unsigned reg)
    {
    	unsigned char buf[3];
    	int ret;
    	u16 cmd;
    
    	cmd = AD9517_READ | AD9517_CNT(1) | AD9517_ADDR(reg);
    	buf[0] = cmd >> 8;
    	buf[1] = cmd & 0xFF;
    
    	ret = spi_write_then_read(spi, &buf[0], 2, &buf[2], 1);
    	if (ret < 0)
    		return ret;
    
    	return buf[2];
    }
    
    static int ad9517_write(struct spi_device *spi,
    			 unsigned reg, unsigned val)
    {
    	unsigned char buf[3];
    	u16 cmd;
    
    	cmd = AD9517_WRITE | AD9517_CNT(1) | AD9517_ADDR(reg);
    	buf[0] = cmd >> 8;
    	buf[1] = cmd & 0xFF;
    	buf[2] = val;
    
    	return spi_write(spi, buf, ARRAY_SIZE(buf));
    }
    
    static int ad9517_parse_firmware(struct ad9517_state *st,
    				 const char *data, unsigned size)
    {
    	unsigned addr, val1, val2;
    	char *line;
    	int ret;
    
    	line = kmalloc(size + 1, GFP_KERNEL);
    	if (!line)
    		return -ENOMEM;
    	memcpy(line, data, size);
    	line[size] = '\0';
    	while (line) {
    		ret = sscanf(line, "\"%x\",\"%x\",\"%x\"", &addr, &val1, &val2);
    		if (ret == 3) {
    			if (addr > AD9517_TRANSFER) {
    				kfree(line);
    				return -EINVAL;
    			}
    			st->regs[addr] = val2 & 0xFF;
    		}
    		line = strchr(line, '\n');
    		if (line != NULL)
    		    line++;
    	}
    	kfree(line);
    
    	return 0;
    }
    
    static int ad9517_calc_divider_hi_lo(unsigned ratio, unsigned *hi, unsigned *lo)
    {
    
    	if (ratio < 2 || ratio > 32)
    		return -EINVAL;
    
    	*hi = ratio / 2 - 1;
    	*lo = *hi + (ratio % 2);
    
    	return 0;
    }
    
    static void ad9517_calc_d12_dividers(unsigned int vco, unsigned int out,
    				     unsigned int *d1_val,
    				     unsigned int *d2_val)
    {
    	unsigned d1, d2, _d2 = 0, _d1 = 0, ratio;
    	unsigned err, min = UINT_MAX;
    
    	ratio = DIV_ROUND_CLOSEST(vco, out);
    	ratio = clamp_t(unsigned, ratio, 1, 32 * 32);
    
    	if (ratio == 1) {
    		*d1_val = 1;
    		*d2_val = 1; /* Bypass */
    		return;
    	}
    
    	if (ratio <= 32) {
    		*d1_val = ratio;
    		*d2_val = 1; /* Bypass */
    		return;
    	}
    
    	for (d1 = 1; d1 <= 32; d1++) {
    		d2 = DIV_ROUND_CLOSEST(ratio, d1);
    
    		if (d2 > 32 || !d2)
    			continue;
    
    		err = abs(out - vco / (d1 * d2));
    		if (err < min) {
    			_d1 = d1;
    			_d2 = d2;
    			min = err;
    		}
    
    		if (err == 0)
    			break;
    	}
    
    	*d2_val = min(_d2, _d1);
    	*d1_val = max(_d2, _d1);
    }
    
    static int ad9517_lvdscmos_set_frequency(struct ad9517_state *st,
    					 unsigned int addr,
    					 unsigned int val)
    {
    	unsigned reg_bypass, reg_div1, reg_div2;
    	unsigned d1, d2, hi, lo;
    	unsigned int reg_index;
    	int ret;
    
    	reg_index = AD9517_ADDRESS_DIVIDER_INDEX(addr);
    
    	reg_bypass = AD9517_CMOSDIV_BYPASS(reg_index);
    	reg_div1 = AD9517_CMOSDIV_1(reg_index);
    	reg_div2 = AD9517_CMOSDIV_2(reg_index);
    
    	ad9517_calc_d12_dividers(st->div0123_freq, val, &d1, &d2);
    
    	if (d1 == 1)
    		st->regs[reg_bypass] |= AD9517_CMOSDIV_BYPASS_1;
    	else
    		st->regs[reg_bypass] &= ~AD9517_CMOSDIV_BYPASS_1;
    
    	if (d2 == 1)
    		st->regs[reg_bypass] |= AD9517_CMOSDIV_BYPASS_2;
    	else
    		st->regs[reg_bypass] &= ~AD9517_CMOSDIV_BYPASS_2;
    
    	ret = ad9517_write(st->spi, reg_bypass, st->regs[reg_bypass]);
    	if (ret < 0)
    		return ret;
    
    	ret = ad9517_calc_divider_hi_lo(d1, &hi, &lo);
    	if (ret >= 0) {
    		st->regs[reg_div1] = (hi << 4) | (lo & 0xF);
    		ret = ad9517_write(st->spi, reg_div1, st->regs[reg_div1]);
    		if (ret < 0)
    			return ret;
    	}
    
    	ret = ad9517_calc_divider_hi_lo(d2, &hi, &lo);
    	if (ret >= 0) {
    		st->regs[reg_div2] = (hi << 4) | (lo & 0xF);
    		ret = ad9517_write(st->spi, reg_div2, st->regs[reg_div2]);
    		if (ret < 0)
    			return ret;
    	}
    
    	return 0;
    }
    
    static int ad9517_lvpecl_set_frequency(struct ad9517_state *st,
    				       unsigned int addr,
    				       unsigned int val)
    {
    	unsigned reg_bypass, reg_div1, reg_bypass2;
    	unsigned d1, hi, lo;
    	unsigned int reg_index;
    	int ret;
    
    	reg_index = AD9517_ADDRESS_DIVIDER_INDEX(addr);
    
    	reg_bypass = AD9517_PECLDIV_3(reg_index);
    	reg_div1 = AD9517_PECLDIV_1(reg_index);
    	reg_bypass2 = AD9517_PECLDIV_2(reg_index);
    
    	if (val > st->div0123_freq) {
    		st->regs[reg_bypass] |= AD9517_PECLDIV_VCO_SEL;
    		return ad9517_write(st->spi, reg_bypass, st->regs[reg_bypass]);
    	} else {
    		st->regs[reg_bypass] &= ~AD9517_PECLDIV_VCO_SEL;
    		ret = ad9517_write(st->spi, reg_bypass, st->regs[reg_bypass]);
    		if (ret < 0)
    			return ret;
    	}
    
    	d1 = DIV_ROUND_CLOSEST(st->div0123_freq, val);
    	d1 = clamp_t(unsigned, d1, 1, 32);
    
    	if (d1 == 1) {
    		st->regs[reg_bypass2] |= AD9517_PECLDIV_3_BP;
    	} else {
    		st->regs[reg_bypass2] &= ~AD9517_PECLDIV_3_BP;
    	}
    
    	ret = ad9517_write(st->spi, reg_bypass2, st->regs[reg_bypass2]);
    	if (ret < 0)
    		return ret;
    
    	ret = ad9517_calc_divider_hi_lo(d1, &hi, &lo);
    	if (ret >= 0) {
    		st->regs[reg_div1] = (hi << 4) | (lo & 0xF);
    		ret = ad9517_write(st->spi, reg_div1, st->regs[reg_div1]);
    		if (ret < 0)
    			return ret;
    	}
    
    	return 0;
    }
    
    static int ad9517_set_frequency(struct ad9517_state *st, unsigned int address,
    				unsigned int rate)
    {
    	int ret;
    
    	mutex_lock(&st->lock);
    	if (address & AD9517_ADDRESS_CHAN_TYPE_LVPECL)
    		ret = ad9517_lvpecl_set_frequency(st, address, rate);
    	else
    		ret = ad9517_lvdscmos_set_frequency(st, address, rate);
    
    	if (ret < 0)
    		goto out_unlock;
    
    	ret = ad9517_write(st->spi, AD9517_TRANSFER, AD9517_TRANSFER_NOW);
    
    out_unlock:
    	mutex_unlock(&st->lock);
    
    	return ret;
    }
    
    static unsigned long ad9517_get_frequency(struct ad9517_state *st,
    					  unsigned int address)
    {
    	unsigned int reg_index;
    	unsigned long rate;
    	unsigned d1, d2;
    
    	reg_index = AD9517_ADDRESS_DIVIDER_INDEX(address);
    
    	mutex_lock(&st->lock);
    	if (address & AD9517_ADDRESS_CHAN_TYPE_LVPECL) {
    		unsigned int div1, div2, div3;
    
    		div1 = st->regs[AD9517_PECLDIV_1(reg_index)];
    		div2 = st->regs[AD9517_PECLDIV_2(reg_index)];
    		div3 = st->regs[AD9517_PECLDIV_3(reg_index)];
    
    		if (div3 & AD9517_PECLDIV_VCO_SEL) {
    			rate = st->vco_divin_freq;
    		} else {
    			if (div2 & AD9517_PECLDIV_3_BP)
    				d1 = 1;
    			else
    				d1 = (div1 & 0xF) + (div1 >> 4) + 2;
    
    			rate = st->div0123_freq / d1;
    		}
    	} else {
    		unsigned int bypass, div1, div2;
    
    		bypass = st->regs[AD9517_CMOSDIV_BYPASS(reg_index)];
    		div1 = st->regs[AD9517_CMOSDIV_1(reg_index)];
    		div2 = st->regs[AD9517_CMOSDIV_2(reg_index)];
    
    		if (bypass & AD9517_CMOSDIV_BYPASS_1)
    			d1 = 1;
    		else
    			d1 = (div1 & 0xF) + (div1 >> 4) + 2;
    
    		if (bypass & AD9517_CMOSDIV_BYPASS_2)
    			d2 = 1;
    		else
    			d2 = (div2 & 0xF) + (div2 >> 4) + 2;
    
    		rate = st->div0123_freq / (d1 * d2);
    	}
    	mutex_unlock(&st->lock);
    
    	return rate;
    }
    
    static int ad9517_out_enable(struct ad9517_state *st, unsigned int address,
    			     unsigned int val)
    {
    	unsigned int mask, reg;
    	int ret;
    
    	if (address & AD9517_ADDRESS_CHAN_TYPE_LVPECL) {
    		reg = AD9517_OUT_LVPECL(AD9517_ADDRESS_INDEX(address));
    		mask = 3;
    	} else {
    		reg = AD9517_OUT_CMOS(AD9517_ADDRESS_INDEX(address));
    		mask = 1;
    	}
    
    	mutex_lock(&st->lock);
    	if (val)
    		st->regs[reg] &= ~mask;
    	else
    		st->regs[reg] |= mask;
    
    	ret = ad9517_write(st->spi, reg, st->regs[reg]);
    	if (ret < 0)
    		goto out_unlock;
    
    	ret = ad9517_write(st->spi, AD9517_TRANSFER, AD9517_TRANSFER_NOW);
    
    out_unlock:
    	mutex_unlock(&st->lock);
    
    	return ret;
    }
    
    static bool ad9517_is_enabled(struct ad9517_state *st, unsigned int address)
    {
    	unsigned int mask, reg;
    
    	if (address & AD9517_ADDRESS_CHAN_TYPE_LVPECL) {
    		reg = AD9517_OUT_LVPECL(AD9517_ADDRESS_INDEX(address));
    		mask = 3;
    	} else {
    		reg = AD9517_OUT_CMOS(AD9517_ADDRESS_INDEX(address));
    		mask = 1;
    	}
    
    	return (st->regs[reg] & mask) == 0;
    }
    
    static const char *ad9517_get_parent_name(struct ad9517_state *st,
    	const char *name)
    {
    	int i;
    
    	i = of_property_match_string(st->spi->dev.of_node, "clock-names", name);
    	if (i < 0)
    		return ERR_PTR(i);
    
    	return of_clk_get_parent_name(st->spi->dev.of_node, i);
    }
    
    static int ad9517_setup(struct ad9517_state *st, unsigned int num_outputs)
    {
    	struct spi_device *spi = st->spi;
    	int ret, reg;
    	unsigned cal_delay_ms;
    	unsigned long pll_a_cnt, pll_b_cnt, pll_r_cnt, prescaler;
    	unsigned long vco_freq;
    	unsigned long vco_divin_freq;
    	unsigned long div0123_freq;
    	bool uses_vco = false;
    	bool uses_clkin = false;
    	const char *div0123_parent_name;
    	const char *vco_divin_parent_name;
    	const char *parent_name;
    	unsigned int reg_index;
    	unsigned int div3;
    	unsigned int i;
    
    	gpiod_set_value(st->gpio_sync, 1);
    
    	/* Setup PLL */
    	for (reg = AD9517_PFD_CP; reg <= AD9517_PLL8; reg++) {
    		ret = ad9517_write(spi, reg, st->regs[reg]);
    		if (ret < 0)
    			return ret;
    	}
    
    	/* Setup fine delay adjust OUT4..OUT7 */
    	for (reg = AD9517_OUT_DELAY_BP(0); reg <= AD9517_OUT_DELAY_FR(3); reg++) {
    		ret = ad9517_write(spi, reg, st->regs[reg]);
    		if (ret < 0)
    			return ret;
    	}
    
    	/* Setup LVPECL outputs OUT0..OUT3 */
    	for (reg = AD9517_OUT_LVPECL(0); reg <= AD9517_OUT_LVPECL(3); reg++) {
    		ret = ad9517_write(spi, reg, st->regs[reg]);
    		if (ret < 0)
    			return ret;
    	}
    
    	/* Setup LVDS/CMOS outputs OUT4..OUT7 */
    	for (reg = AD9517_OUT_CMOS(0); reg <= AD9517_OUT_CMOS(3); reg++) {
    		ret = ad9517_write(spi, reg, st->regs[reg]);
    		if (ret < 0)
    			return ret;
    	}
    
    	/* Setup PECL Channel Dividers */
    	for (reg = AD9517_PECLDIV_1(0); reg <= AD9517_PECLDIV_3(2); reg++) {
    		ret = ad9517_write(spi, reg, st->regs[reg]);
    		if (ret < 0)
    			return ret;
    	}
    
    	/* Setup LVDS/CMOS Channel Dividers */
    	for (reg = AD9517_CMOSDIV_1(0); reg <= AD9517_CMOSDIV_DCCOFF(1); reg++) {
    		ret = ad9517_write(spi, reg, st->regs[reg]);
    		if (ret < 0)
    			return ret;
    	}
    
    	/* Setup VCO Divier and CLK Input */
    	ret = ad9517_write(spi, AD9517_VCO_DIVIDER,
    			   st->regs[AD9517_VCO_DIVIDER]);
    	if (ret < 0)
    		return ret;
    
    	ret = ad9517_write(spi, AD9517_INPUT_CLKS, st->regs[AD9517_INPUT_CLKS]);
    	if (ret < 0)
    		return ret;
    
    	/* Setup System */
    	ret = ad9517_write(spi, AD9517_POWDOWN_SYNC,
    			   st->regs[AD9517_POWDOWN_SYNC]);
    	if (ret < 0)
    		return ret;
    
    	ret = ad9517_write(spi, AD9517_PLL3,
    			   st->regs[AD9517_PLL3] & ~AD9517_PLL3_VCO_CAL);
    	if (ret < 0)
    		return ret;
    
    	/* Update all registers */
    	ret = ad9517_write(spi, AD9517_TRANSFER, AD9517_TRANSFER_NOW);
    	if (ret < 0)
    		return ret;
    
    	/* Calibrate VCO */
    	ret = ad9517_write(spi, AD9517_PLL3,
    			   st->regs[AD9517_PLL3] | AD9517_PLL3_VCO_CAL);
    	if (ret < 0)
    		return ret;
    
    	/* Update all registers */
    	ret = ad9517_write(spi, AD9517_TRANSFER, AD9517_TRANSFER_NOW);
    	if (ret < 0)
    		return ret;
    
    	/* Get PLL settings */
    	pll_r_cnt = st->regs[AD9517_RCNT_H] << 8 | st->regs[AD9517_RCNT_L];
    	pll_a_cnt = st->regs[AD9517_ACNT];
    	pll_b_cnt = st->regs[AD9517_BCNT_H] << 8 | st->regs[AD9517_BCNT_L];
    
    	if (st->regs[AD9517_PLL1] & AD9517_PLL1_BCNT_BP)
    		pll_b_cnt = 1;
    
    	prescaler = to_prescaler[st->regs[AD9517_PLL1] &
    		    AD9517_PLL1_PRESCALER_MASK];
    
    	if (prescaler & IS_FD)
    		pll_a_cnt = 0;
    
    	prescaler &= ~IS_FD;
    
    	if (st->regs[AD9517_INPUT_CLKS] & AD9517_VCO_DIVIDER_SEL)
    		uses_vco = true;
    	else
    		uses_clkin = true;
    
    	if (st->regs[AD9517_INPUT_CLKS] & AD9517_VCO_DIVIDER_BP)
    		uses_clkin = true;
    
    	if (uses_vco) {
    		if (st->refin_freq == 0) {
    			dev_err(&st->spi->dev, "Invalid or missing REFIN clock\n");
    			return -EINVAL;
    		}
    
    		vco_freq = (st->refin_freq / pll_r_cnt * (prescaler  *
    				pll_b_cnt + pll_a_cnt));
    
    		/* tcal = 4400 * Rdiv * cal_div / Refin */
    		cal_delay_ms = (4400 * pll_r_cnt *
    			(2 << ((st->regs[AD9517_PLL3] >> 1) & 0x3))) /
    			(st->refin_freq / 1000);
    
    		msleep(cal_delay_ms);
    	}
    
    	if (uses_clkin) {
    		if (st->clkin_freq == 0) {
    			dev_err(&st->spi->dev, "Invalid or missing CLKIN clock\n");
    			return -EINVAL;
    		}
    	}
    
    	/* Internal clock distribution */
    	if (uses_vco) {
    		vco_divin_freq = vco_freq;
    		vco_divin_parent_name = ad9517_get_parent_name(st, "refclk");
    	} else {
    		vco_divin_freq = st->clkin_freq;
    		vco_divin_parent_name = ad9517_get_parent_name(st, "clkin");
    	}
    
    	if (IS_ERR(vco_divin_parent_name))
    		return PTR_ERR(vco_divin_parent_name);
    
    	if (st->regs[AD9517_INPUT_CLKS] & AD9517_VCO_DIVIDER_BP) {
    		div0123_freq = st->clkin_freq;
    		div0123_parent_name = ad9517_get_parent_name(st, "clkin");
    		if (IS_ERR(div0123_parent_name))
    			return PTR_ERR(div0123_parent_name);
    	} else {
    		div0123_freq = vco_divin_freq /
    			((st->regs[AD9517_VCO_DIVIDER] & 0x7) + 2);
    		div0123_parent_name = vco_divin_parent_name;
    	}
    
    	/* CMOS/LVDS outputs */
    	for (i = 0; i < num_outputs; i += 2) {
    		reg_index = AD9517_ADDRESS_DIVIDER_INDEX(st->output[i].address);
    		div3 = st->regs[AD9517_PECLDIV_3(reg_index)];
    
    		/* LVPECL have an additional MUX infront of the divider */
    		if ((st->output[i].address & AD9517_ADDRESS_CHAN_TYPE_LVPECL) &&
    		    (div3 & AD9517_PECLDIV_VCO_SEL))
    			parent_name = vco_divin_parent_name;
    		else
    			parent_name = div0123_parent_name;
    
    		st->output[i].parent_name = parent_name;
    		st->output[i+1].parent_name = parent_name;
    	}
    
    	st->div0123_freq = div0123_freq;
    	st->vco_divin_freq = vco_divin_freq;
    
    	gpiod_set_value(st->gpio_sync, 0);
    
    	return 0;
    }
    
    static unsigned long ad9517_recalc_rate(struct clk_hw *hw,
    		unsigned long parent_rate)
    {
    	return ad9517_get_frequency(clk_to_ad9517_clk_div(hw)->st,
    				    clk_to_ad9517_clk_div(hw)->address);
    }
    
    static long ad9517_clk_round_rate(struct clk_hw *hw, unsigned long rate,
    				  unsigned long *prate)
    {
    	struct ad9517_state *st = clk_to_ad9517_clk_div(hw)->st;
    	unsigned int address = clk_to_ad9517_clk_div(hw)->address;
    	long rrate;
    	unsigned d1, d2;
    
    	if (address & AD9517_ADDRESS_CHAN_TYPE_LVPECL) {
    		if (rate > st->div0123_freq) {
    			rrate = st->vco_divin_freq;
    		} else {
    			d1 = DIV_ROUND_CLOSEST(st->div0123_freq, rate);
    			d1 = clamp_t(unsigned, d1, 1, 32);
    			rrate = st->div0123_freq / d1;
    		}
    	} else {
    		ad9517_calc_d12_dividers(st->div0123_freq, rate, &d1, &d2);
    		rrate = st->div0123_freq / (d1 * d2);
    	}
    
    	return rrate;
    }
    
    static int ad9517_clk_set_rate(struct clk_hw *hw, unsigned long rate,
    			       unsigned long prate)
    {
    	struct ad9517_state *st = clk_to_ad9517_clk_div(hw)->st;
    	unsigned int address = clk_to_ad9517_clk_div(hw)->address;
    
    	return ad9517_set_frequency(st, address, rate);
    }
    
    static int ad9517_clk_is_enabled(struct clk_hw *hw)
    {
    	return ad9517_is_enabled(to_ad9517_clk_output(hw)->st,
    				 to_ad9517_clk_output(hw)->address);
    }
    
    static int ad9517_clk_prepare(struct clk_hw *hw)
    {
    	struct ad9517_state *st = to_ad9517_clk_output(hw)->st;
    
    	return ad9517_out_enable(st, to_ad9517_clk_output(hw)->address, 1);
    }
    
    static void ad9517_clk_unprepare(struct clk_hw *hw)
    {
    	struct ad9517_state *st = to_ad9517_clk_output(hw)->st;
    
    	ad9517_out_enable(st, to_ad9517_clk_output(hw)->address, 0);
    }
    
    static const struct clk_ops ad9517_clk_div_ops = {
    	.recalc_rate = ad9517_recalc_rate,
    	.set_rate = ad9517_clk_set_rate,
    	.round_rate = ad9517_clk_round_rate,
    };
    
    static const struct clk_ops ad9517_clk_ops = {
    	.is_enabled = ad9517_clk_is_enabled,
    	.prepare = ad9517_clk_prepare,
    	.unprepare = ad9517_clk_unprepare,
    };
    
    static struct clk *ad9517_clk_register(struct ad9517_state *st,
    	unsigned int num)
    {
    	struct ad9517_outputs *output = &st->output[num];
    	struct clk_init_data init;
    	unsigned int div_num;
    	char div_name[128];
    	const char *parent_name;
    	struct clk *clk;
    	char name[8];
    	int ret;
    
    	div_num = num / 2;
    
    	snprintf(div_name, sizeof(div_name), "%s-div%d",
    		dev_name(&st->spi->dev), div_num);
    	parent_name = div_name;
    
    	/* Register a clock divider for every second clock */
    	if (num % 2 == 0) {
    		init.ops = &ad9517_clk_div_ops;
    		init.parent_names = &output->parent_name;
    		init.num_parents = 1;
    		init.name = div_name;
    		init.flags = 0;
    
    		st->clk_divs[div_num].st = st;
    		st->clk_divs[div_num].hw.init = &init;
    		st->clk_divs[div_num].address = output->address;
    
    		clk = devm_clk_register(&st->spi->dev,
    			&st->clk_divs[div_num].hw);
    		if (IS_ERR(clk))
    			return clk;
    	}
    
    	init.ops = &ad9517_clk_ops;
    	init.parent_names = &parent_name;
    	init.num_parents = 1;
    	init.flags = CLK_SET_RATE_PARENT;
    
    	ret = of_property_read_string_index(st->spi->dev.of_node,
    		"clock-output-names", num, &init.name);
    	if (ret < 0) {
    		sprintf(name, "out%d", num);
    		init.name = name;
    	}
    
    	output->hw.init = &init;
    	output->st = st;
    
    	/* register the clock */
    	clk = devm_clk_register(&st->spi->dev, &output->hw);
    	st->clk_data.clks[num] = clk;
    
    	return clk;
    }
    
    static int ad9517_reg_access(struct iio_dev *indio_dev,
    			      unsigned reg, unsigned writeval,
    			      unsigned *readval)
    {
    	struct ad9517_state *st = iio_priv(indio_dev);
    	int ret;
    
    	mutex_lock(&st->lock);
    	if (readval == NULL) {
    		ret = ad9517_write(st->spi, reg, writeval);
    		/* Update all registers */
    		ad9517_write(st->spi, AD9517_TRANSFER, AD9517_TRANSFER_NOW);
    	} else {
    		ret = ad9517_read(st->spi, reg);
    		if (ret < 0)
    			goto out_unlock;
    		*readval = ret;
    		ret = 0;
    	}
    
    out_unlock:
    	mutex_unlock(&st->lock);
    
    	return ret;
    }
    
    static int ad9517_read_raw(struct iio_dev *indio_dev,
    			   struct iio_chan_spec const *chan,
    			   int *val,
    			   int *val2,
    			   long m)
    {
    	struct ad9517_state *st = iio_priv(indio_dev);
    
    	switch (m) {
    	case IIO_CHAN_INFO_RAW:
    		*val = ad9517_is_enabled(st, chan->address);
    		return IIO_VAL_INT;
    	case IIO_CHAN_INFO_FREQUENCY:
    		*val = (int) ad9517_get_frequency(st, chan->address);
    		return IIO_VAL_INT;
    	default:
    		return -EINVAL;
    	}
    };
    
    static int ad9517_write_raw(struct iio_dev *indio_dev,
    			    struct iio_chan_spec const *chan,
    			    int val,
    			    int val2,
    			    long m)
    {
    	struct ad9517_state *st = iio_priv(indio_dev);
    
    	switch (m) {
    	case IIO_CHAN_INFO_RAW:
    		return ad9517_out_enable(st, chan->address, val);
    	case IIO_CHAN_INFO_FREQUENCY:
    		return ad9517_set_frequency(st, chan->address, val);
    	default:
    		return -EINVAL;
    	}
    }
    
    static const struct iio_info ad9517_info = {
    	.read_raw = &ad9517_read_raw,
    	.write_raw = ad9517_write_raw,
    	.debugfs_reg_access = &ad9517_reg_access,
    };
    
    #define AD9517_CHAN(_chan, _addr)				\
    	{ .type = IIO_ALTVOLTAGE,				\
    	  .indexed = 1,						\
    	  .channel = _chan,					\
    	  .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | 	\
    			BIT(IIO_CHAN_INFO_FREQUENCY),		\
    	  .output = 1,						\
    	  .address = _addr }
    
    static const struct iio_chan_spec ad9516_chan[] = {
    	AD9517_CHAN(0, AD9517_ADDRESS_LVPECL(0)),
    	AD9517_CHAN(1, AD9517_ADDRESS_LVPECL(1)),
    	AD9517_CHAN(2, AD9517_ADDRESS_LVPECL(2)),
    	AD9517_CHAN(3, AD9517_ADDRESS_LVPECL(3)),
    	AD9517_CHAN(4, AD9517_ADDRESS_LVPECL(4)),
    	AD9517_CHAN(5, AD9517_ADDRESS_LVPECL(5)),
    	AD9517_CHAN(6, AD9517_ADDRESS_CMOS(0)),
    	AD9517_CHAN(7, AD9517_ADDRESS_CMOS(1)),
    	AD9517_CHAN(8, AD9517_ADDRESS_CMOS(2)),
    	AD9517_CHAN(9, AD9517_ADDRESS_CMOS(3)),
    };
    
    static const struct iio_chan_spec ad9517_chan[] = {
    	AD9517_CHAN(0, AD9517_ADDRESS_LVPECL(0)),
    	AD9517_CHAN(1, AD9517_ADDRESS_LVPECL(1)),
    	/* Register map gap between channel 1 and 2 */
    	AD9517_CHAN(2, AD9517_ADDRESS_LVPECL(4)),
    	AD9517_CHAN(3, AD9517_ADDRESS_LVPECL(5)),
    	AD9517_CHAN(4, AD9517_ADDRESS_CMOS(0)),
    	AD9517_CHAN(5, AD9517_ADDRESS_CMOS(1)),
    	AD9517_CHAN(6, AD9517_ADDRESS_CMOS(2)),
    	AD9517_CHAN(7, AD9517_ADDRESS_CMOS(3)),
    };
    
    enum ad9517_device_type {
    	AD9516,
    	AD9517,
    	AD9518,
    };
    
    #define AD9517_DRIVER_DATA(type, part_id) \
    	((type << 8) | part_id)
    
    struct ad9517_device_info {
    	unsigned int num_channels;
    	const struct iio_chan_spec *channels;
    };
    
    static const struct ad9517_device_info ad9517_device_info[] = {
    	[AD9516] = {
    		.num_channels = ARRAY_SIZE(ad9516_chan),
    		.channels = ad9516_chan,
    	},
    	[AD9517] = {
    		.num_channels = ARRAY_SIZE(ad9517_chan),
    		.channels = ad9517_chan,
    	},
    	[AD9518] = { /* Same layout as AD9516 but only LVPECL outputs */
    		.num_channels = 6,
    		.channels = ad9516_chan,
    	},
    };
    
    static int ad9517_probe(struct spi_device *spi)
    {
    	const struct spi_device_id *id;
    	const char *name;
    	struct iio_dev *indio_dev;
    	struct device *dev = &spi->dev;
    	int out, ret, conf;
    	const struct firmware *fw;
    	struct ad9517_state *st;
    	struct clk *clk, *ref_clk, *clkin;
    	unsigned int device_type, part_id;
    	bool spi3wire;
    
    	id = spi_get_device_id(spi);
    	pr_err("%s:%d\n", __func__, __LINE__);
    	device_type = id->driver_data >> 8;
    	part_id = id->driver_data & 0xff;
    
    	indio_dev = devm_iio_device_alloc(dev, sizeof(*st));
    	pr_err("%s:%d\n", __func__, __LINE__);
    
    
    	if (indio_dev == NULL)
    		return -ENOMEM;
    
    	st = iio_priv(indio_dev);
    	pr_err("%s:%d\n", __func__, __LINE__);
    
    	mutex_init(&st->lock);
    	pr_err("%s:%d\n", __func__, __LINE__);
    
    	st->gpio_reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH);
    	pr_err("%s:%d\n", __func__, __LINE__);
    	if (st->gpio_reset) {
    		udelay(10);
    		gpiod_set_value(st->gpio_reset, 0);
    		pr_err("%s:%d\n", __func__, __LINE__);
    	}
    
    	st->gpio_sync = devm_gpiod_get_optional(dev, "sync", GPIOD_OUT_HIGH);
    	pr_err("%s:%d\n", __func__, __LINE__);
    
    	spi3wire = device_property_present(dev, "adi,spi-3wire-enable");
    	pr_err("%s:%d\n", __func__, __LINE__);
    	conf = AD9517_LONG_INSTR |
    		((spi->mode & SPI_3WIRE || spi3wire) ? 0 : AD9517_SDO_ACTIVE);
    
    	ret = ad9517_write(spi, AD9517_SERCONF, conf | AD9517_SOFT_RESET);
    	pr_err("%s:%d\n", __func__, __LINE__);
    	if (ret < 0)
    		return ret;
    
    	ret = ad9517_write(spi, AD9517_SERCONF, conf);
    	pr_err("%s:%d\n", __func__, __LINE__);
    	if (ret < 0)
    		return ret;
    
    	ret = ad9517_read(spi, AD9517_PARTID);
    	pr_err("%s:%d\n", __func__, __LINE__);
    	if (ret < 0)
    		return ret;
    	if (ret != part_id) {
    		dev_err(dev, "Unrecognized CHIP_ID 0x%X\n", ret);
     		return -ENODEV;
    	}
    
    	if (dev->of_node) {
    		if (of_property_read_string(dev->of_node, "firmware", &name))
    			pr_err("%s:%d\n", __func__, __LINE__);
    			name = NULL;
    	} else {
    		name = FIRMWARE;
    	}
    
    	if (name) {
    		ret = request_firmware(&fw, name, dev);
    		pr_err("%s:%d\n", __func__, __LINE__);
    		if (ret) {
    			dev_err(dev,
    				"request_firmware() failed with %i\n", ret);
    			return ret;
    		}
    		ad9517_parse_firmware(st, fw->data, fw->size);
    		pr_err("%s:%d\n", __func__, __LINE__);
    		release_firmware(fw);
    		pr_err("%s:%d\n", __func__, __LINE__);
    	} else {
    		memcpy(st->regs, ad9517_default_regs, sizeof(st->regs));
    		pr_err("%s:%d\n", __func__, __LINE__);
    	}
    
    	st->spi = spi;
    
    	ref_clk = devm_clk_get(dev, "refclk");
    	pr_err("%s:%d\n", __func__, __LINE__);
    	if (IS_ERR(ref_clk)) {
    		ret = PTR_ERR(ref_clk);
    		if (ret != -ENOENT) {
    			dev_err(dev, "Failed getting REFIN clock (%d)\n", ret);
    			return ret;
    		}
    	} else {
    		st->refin_freq = clk_get_rate(ref_clk);
    		pr_err("%s:%d\n", __func__, __LINE__);
    		clk_prepare_enable(ref_clk);
    		pr_err("%s:%d\n", __func__, __LINE__);
    	}
    
    	clkin = devm_clk_get(dev, "clkin");
    	pr_err("%s:%d\n", __func__, __LINE__);
    	if (IS_ERR(clkin)) {
    		ret = PTR_ERR(clkin);
    		if (ret != -ENOENT) {
    			dev_err(dev, "Failed getting CLK clock (%d)\n", ret);
    			return ret;
    		}
    	} else {
    		st->clkin_freq = clk_get_rate(clkin);
    		pr_err("%s:%d\n", __func__, __LINE__);
    		clk_prepare_enable(clkin);
    		pr_err("%s:%d\n", __func__, __LINE__);
    	}
    
    	indio_dev->dev.parent = dev;
    	indio_dev->name = spi_get_device_id(spi)->name;
    	indio_dev->info = &ad9517_info;
    	indio_dev->modes = INDIO_DIRECT_MODE;
    	indio_dev->channels = ad9517_device_info[device_type].channels;
    	indio_dev->num_channels = ad9517_device_info[device_type].num_channels;
    
    	/* Needs to be done before ad9517_setup() */
    	for (out = 0; out < indio_dev->num_channels; out++)
    		st->output[out].address = indio_dev->channels[out].address;
    
    	ret = ad9517_setup(st, indio_dev->num_channels);
    	pr_err("%s:%d\n", __func__, __LINE__);
    	if (ret < 0)
    		return ret;
    
    	st->clk_data.clks = st->clks;
    	st->clk_data.clk_num = indio_dev->num_channels;
    
    	for (out = 0; out < indio_dev->num_channels; out++) {
    		clk = ad9517_clk_register(st, out);
    		pr_err("%s:%d\n", __func__, __LINE__);
    		if (IS_ERR(clk))
    			return PTR_ERR(clk);
    	}
    
    	of_clk_add_provider(dev->of_node,
    			    of_clk_src_onecell_get, &st->clk_data);
    	pr_err("%s:%d\n", __func__, __LINE__);
    
    	ret = iio_device_register(indio_dev);
    	pr_err("%s:%d\n", __func__, __LINE__);
    	if (ret)
    		goto err_of_clk_del_provider;
    
    	spi_set_drvdata(spi, indio_dev);
    	pr_err("%s:%d\n", __func__, __LINE__);
    
    	dev_info(dev, "AD9517 successfully initialized");
    	pr_err("%s:%d\n", __func__, __LINE__);
    
    	return 0;
    
    err_of_clk_del_provider:
    	of_clk_del_provider(dev->of_node);
    	pr_err("%s:%d\n", __func__, __LINE__);
    	return ret;
    }
    
    static int ad9517_remove(struct spi_device *spi)
    {
    	struct iio_dev *indio_dev = spi_get_drvdata(spi);
    
    	iio_device_unregister(indio_dev);
    	of_clk_del_provider(spi->dev.of_node);
    
    	return 0;
    }
    
    static const struct spi_device_id ad9517_id[] = {
    	{"ad9516-0", AD9517_DRIVER_DATA(AD9516, 0x01) },
    	{"ad9516-1", AD9517_DRIVER_DATA(AD9516, 0x41) },
    	{"ad9516-2", AD9517_DRIVER_DATA(AD9516, 0x81) },
    	{"ad9516-3", AD9517_DRIVER_DATA(AD9516, 0x43) },
    	{"ad9516-4", AD9517_DRIVER_DATA(AD9516, 0xc3) },
    	{"ad9516-5", AD9517_DRIVER_DATA(AD9516, 0xc1) },
    	{"ad9517-0", AD9517_DRIVER_DATA(AD9517, 0x11) },
    	{"ad9517-1", AD9517_DRIVER_DATA(AD9517, 0x51) },
    	{"ad9517-2", AD9517_DRIVER_DATA(AD9517, 0x91) },
    	{"ad9517-3", AD9517_DRIVER_DATA(AD9517, 0x53) },
    	{"ad9517-4", AD9517_DRIVER_DATA(AD9517, 0xD3) },
    	{"ad9518-0", AD9517_DRIVER_DATA(AD9518, 0x21) },
    	{"ad9518-1", AD9517_DRIVER_DATA(AD9518, 0x61) },
    	{"ad9518-2", AD9517_DRIVER_DATA(AD9518, 0xa1) },
    	{"ad9518-3", AD9517_DRIVER_DATA(AD9518, 0x63) },
    	{"ad9518-4", AD9517_DRIVER_DATA(AD9518, 0xe3) },
    	{}
    };
    MODULE_DEVICE_TABLE(spi, ad9517_id);
    
    static struct spi_driver ad9517_driver = {
    	.driver = {
    		.name	= "ad9517",
    		.owner	= THIS_MODULE,
    	},
    	.probe		= ad9517_probe,
    	.remove		= ad9517_remove,
    	.id_table	= ad9517_id,
    };
    module_spi_driver(ad9517_driver);
    
    MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>");
    MODULE_DESCRIPTION("Analog Devices AD9517");
    MODULE_LICENSE("GPL v2");

    And re-built.

    The important parts of the boot log, that are different now:

    [    4.421211] ahci-ceva fd0c0000.ahci: supply ahci not found, using dummy regulator 
    
    [    4.428763] ahci-ceva fd0c0000.ahci: supply phy not found, using dummy regulator 
    
    [    4.437332] ad9517_probe:1020 
    
    [    4.440305] ad9517_probe:1025 
    
    [    4.443261] ad9517_probe:1032 
    
    [    4.446222] ad9517_probe:1035 
    
    [    4.449194] ad9517_probe:1038 
    
    [    4.452168] ad9517_probe:1046 
    
    [    4.455119] ad9517_probe:1049 
    
    [    4.458118] ad9517_probe:1054 
    
    [    4.461100] ad9517_probe:1059 
    
    [    4.464091] ad9517_probe:1064 
    
    [    4.467046] ad9517_probe:1094 
    
    [    4.470010] ad9517_probe:1100 
    
    [    4.472971] ad9517_probe:1109 
    
    [    4.475931] ad9517_probe:1111 
    
    [    4.478888] ad9517_probe:1115 
    
    [    4.481851] ad9517_probe:1124 
    
    [    4.484811] ad9517_probe:1126 
    
    [    4.488880] ad9517_probe:1141 
    
    [    4.492280] ad9517_probe:1150 
    
    [    4.495425] ad9517_probe:1150 
    
    [    4.498758] ad9517_probe:1150 
    
    [    4.501908] ad9517_probe:1150 
    
    [    4.505256] ad9517_probe:1150 
    
    [    4.508412] ad9517_probe:1150 
    
    [    4.511751] ad9517_probe:1150 
    
    [    4.514895] ad9517_probe:1150 
    
    [    4.518240] ad9517_probe:1150 
    
    [    4.521393] ad9517_probe:1150 
    
    [    4.524495] ad9517_probe:1157 
    
    [    4.527730] ad9517_probe:1160 
    
    [    4.530686] ad9517_probe:1165 
    
    [    4.533647] ad9517 spi1.0: AD9517 successfully initialized 
    
    [    4.539121] ad9517_probe:1168 
    
    [    4.568835] ad9517_probe:1020 
    
    [    4.571806] ad9517_probe:1025 
    
    [    4.574763] ad9517_probe:1032 
    
    [    4.577726] ad9517_probe:1035 
    
    [    4.580701] ad9517_probe:1038 
    
    [    4.583670] ad9517_probe:1046 
    
    [    4.586621] ad9517_probe:1049 
    
    [    4.589607] ad9517_probe:1054 
    
    [    4.592585] ad9517_probe:1059 
    
    [    4.595579] ad9517_probe:1064 
    
    [    4.598530] ad9517_probe:1094 
    
    [    4.601494] ad9517_probe:1100 
    
    [    4.604455] ad9517_probe:1109 
    
    [    4.607409] ad9517_probe:1111 
    
    [    4.610370] ad9517_probe:1115 
    
    [    4.613325] ad9517_probe:1124 
    
    [    4.616285] ad9517_probe:1126 
    
    [    4.620345] ad9517_probe:1141 
    
    [    4.623708] ad9517_probe:1150 
    
    [    4.626854] ad9517_probe:1150 
    
    [    4.630211] ad9517_probe:1150 
    
    [    4.633364] ad9517_probe:1150 
    
    [    4.636722] ad9517_probe:1150 
    
    [    4.639877] ad9517_probe:1150 
    
    [    4.643223] ad9517_probe:1150 
    
    [    4.646383] ad9517_probe:1150 
    
    [    4.649543] ad9517_probe:1150 
    
    [    4.653382] ad9517: probe of spi2.0 failed with error -17 
    
    [    4.684608] spi-nor spi0.0: SPI-NOR-UniqueID e00d0e0017faff0900fc436c66b8 
    
    [    4.691394] spi-nor spi0.0: found mt25qu512a, expected m25p80 
    
    [    4.697682] spi-nor spi0.0: trying to lock already unlocked area 
    
    [    4.703695] spi-nor spi0.0: mt25qu512a (131072 Kbytes) 
    
    [    4.708850] 4 fixed-partitions partitions found on MTD device spi0.0 
    
    [    4.715195] Creating 4 MTD partitions on "spi0.0": 

    This is the whole boot log:

    Xilinx Zynq MP First Stage Boot Loader 
    
    Release 2021.2   Oct 13 2021  -  07:15:53 
    
    NOTICE:  BL31: v2.4(release):xlnx_rebase_v2.4_2021.1_update1-23-g9188496b9 
    
    NOTICE:  BL31: Built : 07:41:24, Oct 13 2021 
    
      
    
      
    
    U-Boot 2021.01 (Oct 12 2021 - 09:28:42 +0000) 
    
      
    
    CPU:   ZynqMP 
    
    Silicon: v3 
    
    Model: ZynqMP ZCU102 Rev1.0 
    
    Board: Xilinx ZynqMP 
    
    DRAM:  4 GiB 
    
    PMUFW:  v1.1 
    
    Xilinx I2C Legacy format at nvmem0: 
    
     Board name:    zcu102 
    
     Board rev:     1.0 
    
     Board SN:      1030078502308-83420 
    
     Ethernet mac:  00:0a:35:07:ea:b3 
    
    EL Level:       EL2 
    
    Chip ID:        zu9eg 
    
    NAND:  0 MiB 
    
    MMC:   mmc@ff170000: 0 
    
    Loading Environment from FAT... *** Warning - bad CRC, using default environment 
    
      
    
    In:    serial 
    
    Out:   serial 
    
    Err:   serial 
    
    Bootmode: LVL_SHFT_SD_MODE1 
    
    Reset reason:   EXTERNAL 
    
    Net: 
    
    ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 12, interface rgmii-id 
    
    eth0: ethernet@ff0e0000 
    
    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 13 ms (203.1 KiB/s) 
    
    ## Executing script at 20000000 
    
    Trying to load boot images from mmc0 
    
    30281216 bytes read in 2009 ms (14.4 MiB/s) 
    
    ## Loading kernel from FIT Image at 10000000 ... 
    
       Using 'conf-system-top.dtb' configuration 
    
       Trying 'kernel-1' kernel subimage 
    
         Description:  Linux kernel 
    
         Created:      2023-11-29  10:01:07 UTC 
    
         Type:         Kernel Image 
    
         Compression:  gzip compressed 
    
         Data Start:   0x100000f8 
    
         Data Size:    11218763 Bytes = 10.7 MiB 
    
         Architecture: AArch64 
    
         OS:           Linux 
    
         Load Address: 0x00200000 
    
         Entry Point:  0x00200000 
    
         Hash algo:    sha256 
    
         Hash value:   ecdd0a52959d8e51ea87864a963bfe7fbdf73378d66c674e645983048f440158 
    
       Verifying Hash Integrity ... sha256+ OK 
    
    ## Loading ramdisk from FIT Image at 10000000 ... 
    
       Using 'conf-system-top.dtb' configuration 
    
       Trying 'ramdisk-1' ramdisk subimage 
    
         Description:  petalinux-image-minimal 
    
         Created:      2023-11-29  10:01:07 UTC 
    
         Type:         RAMDisk Image 
    
         Compression:  uncompressed 
    
         Data Start:   0x10ac1d78 
    
         Data Size:    19000077 Bytes = 18.1 MiB 
    
         Architecture: AArch64 
    
         OS:           Linux 
    
         Load Address: unavailable 
    
         Entry Point:  unavailable 
    
         Hash algo:    sha256 
    
         Hash value:   7e4acf4bd70bcf6dfdf4b14ac7fd3c04a6bced82c9dcdaf3cbd661d6709c7ea9 
    
       Verifying Hash Integrity ... sha256+ OK 
    
    ## Loading fdt from FIT Image at 10000000 ... 
    
       Using 'conf-system-top.dtb' configuration 
    
       Trying 'fdt-system-top.dtb' fdt subimage 
    
         Description:  Flattened Device Tree blob 
    
         Created:      2023-11-29  10:01:07 UTC 
    
         Type:         Flat Device Tree 
    
         Compression:  uncompressed 
    
         Data Start:   0x10ab3154 
    
         Data Size:    60241 Bytes = 58.8 KiB 
    
         Architecture: AArch64 
    
         Hash algo:    sha256 
    
         Hash value:   43221856e6daea68e28275d2023dcf76dc88ad29b9d87562325e4ab6d226d552 
    
       Verifying Hash Integrity ... sha256+ OK 
    
       Booting using the fdt blob at 0x10ab3154 
    
       Uncompressing Kernel Image 
    
       Loading Ramdisk to 7cbee000, end 7de0cb0d ... OK 
    
       Loading Device Tree to 000000007cbdc000, end 000000007cbedb50 ... OK 
    
      
    
    Starting kernel ... 
    
      
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] 
    
    [    0.000000] Linux version 5.10.0-xilinx-v2021.2 (oe-user@oe-host) (aarch64-xilinx-linux-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35.1) #1 SMP Wed Nov 29 10:01:07 UTC 2023 
    
    [    0.000000] Machine model: ZynqMP ZCU102 Rev1.0 
    
    [    0.000000] earlycon: cdns0 at MMIO 0x00000000ff000000 (options '115200n8') 
    
    [    0.000000] printk: bootconsole [cdns0] enabled 
    
    [    0.000000] efi: UEFI not found. 
    
    [    0.000000] cma: Reserved 256 MiB at 0x000000006c800000 
    
    [    0.000000] Zone ranges: 
    
    [    0.000000]   DMA      [mem 0x0000000000000000-0x000000003fffffff] 
    
    [    0.000000]   DMA32    [mem 0x0000000040000000-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-0x000000007fffffff] 
    
    [    0.000000]   node   0: [mem 0x0000000800000000-0x000000087fffffff] 
    
    [    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000087fffffff] 
    
    [    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 22 pages/cpu s50968 r8192 d30952 u90112 
    
    [    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: 1032192 
    
    [    0.000000] Kernel command line:  earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/ram0 rw 
    
    [    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 0x000000003bfff000-0x000000003ffff000] (64MB) 
    
    [    0.000000] Memory: 3733660K/4194304K available (16064K kernel code, 1728K rwdata, 12220K rodata, 2624K init, 660K bss, 198500K 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=8 to nr_cpu_ids=4. 
    
    [    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=4 
    
    [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 
    
    [    0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000 
    
    [    0.000000] GIC: Using split EOI/Deactivate mode 
    
    [    0.000000] random: get_random_bytes called from start_kernel+0x31c/0x524 with crng_init=0 
    
    [    0.000000] arch_timer: cp15 timer(s) running at 100.00MHz (phys). 
    
    [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x171024e7e0, max_idle_ns: 440795205315 ns 
    
    [    0.000004] sched_clock: 56 bits at 100MHz, resolution 10ns, wraps every 4398046511100ns 
    
    [    0.008499] Console: colour dummy device 80x25 
    
    [    0.012485] Calibrating delay loop (skipped), value calculated using timer frequency.. 200.00 BogoMIPS (lpj=400000) 
    
    [    0.022841] pid_max: default: 32768 minimum: 301 
    
    [    0.027599] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear) 
    
    [    0.034789] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear) 
    
    [    0.043610] rcu: Hierarchical SRCU implementation. 
    
    [    0.047595] EFI services will not be available. 
    
    [    0.051961] smp: Bringing up secondary CPUs ... 
    
    [    0.056701] Detected VIPT I-cache on CPU1 
    
    [    0.056744] CPU1: Booted secondary processor 0x0000000001 [0x410fd034] 
    
    [    0.057140] Detected VIPT I-cache on CPU2 
    
    [    0.057164] CPU2: Booted secondary processor 0x0000000002 [0x410fd034] 
    
    [    0.057547] Detected VIPT I-cache on CPU3 
    
    [    0.057570] CPU3: Booted secondary processor 0x0000000003 [0x410fd034] 
    
    [    0.057617] smp: Brought up 1 node, 4 CPUs 
    
    [    0.091780] SMP: Total of 4 processors activated. 
    
    [    0.096453] CPU features: detected: 32-bit EL0 Support 
    
    [    0.101556] CPU features: detected: CRC32 instructions 
    
    [    0.106693] CPU: All CPU(s) started at EL2 
    
    [    0.110736] alternatives: patching kernel code 
    
    [    0.116260] devtmpfs: initialized 
    
    [    0.125007] Registered cp15_barrier emulation handler 
    
    [    0.125057] Registered setend emulation handler 
    
    [    0.129037] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns 
    
    [    0.138618] futex hash table entries: 1024 (order: 4, 65536 bytes, linear) 
    
    [    0.152048] pinctrl core: initialized pinctrl subsystem 
    
    [    0.152749] NET: Registered protocol family 16 
    
    [    0.157137] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations 
    
    [    0.163125] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations 
    
    [    0.170847] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations 
    
    [    0.178663] audit: initializing netlink subsys (disabled) 
    
    [    0.184132] audit: type=2000 audit(0.116:1): state=initialized audit_enabled=0 res=1 
    
    [    0.191708] cpuidle: using governor menu 
    
    [    0.195656] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. 
    
    [    0.202384] ASID allocator initialised with 65536 entries 
    
    [    0.229866] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages 
    
    [    0.230922] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages 
    
    [    0.237591] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages 
    
    [    0.244247] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages 
    
    [    1.309963] DRBG: Continuing without Jitter RNG 
    
    [    1.387705] raid6: neonx8   gen()  2139 MB/s 
    
    [    1.455764] raid6: neonx8   xor()  1594 MB/s 
    
    [    1.523835] raid6: neonx4   gen()  2186 MB/s 
    
    [    1.591890] raid6: neonx4   xor()  1563 MB/s 
    
    [    1.659964] raid6: neonx2   gen()  2075 MB/s 
    
    [    1.728018] raid6: neonx2   xor()  1429 MB/s 
    
    [    1.796086] raid6: neonx1   gen()  1773 MB/s 
    
    [    1.864143] raid6: neonx1   xor()  1219 MB/s 
    
    [    1.932217] raid6: int64x8  gen()  1437 MB/s 
    
    [    2.000272] raid6: int64x8  xor()   771 MB/s 
    
    [    2.068337] raid6: int64x4  gen()  1602 MB/s 
    
    [    2.136404] raid6: int64x4  xor()   820 MB/s 
    
    [    2.204479] raid6: int64x2  gen()  1397 MB/s 
    
    [    2.272543] raid6: int64x2  xor()   749 MB/s 
    
    [    2.340617] raid6: int64x1  gen()  1033 MB/s 
    
    [    2.408679] raid6: int64x1  xor()   517 MB/s 
    
    [    2.408717] raid6: using algorithm neonx4 gen() 2186 MB/s 
    
    [    2.412671] raid6: .... xor() 1563 MB/s, rmw enabled 
    
    [    2.417601] raid6: using neon recovery algorithm 
    
    [    2.422663] iommu: Default domain type: Translated 
    
    [    2.427251] SCSI subsystem initialized 
    
    [    2.430902] usbcore: registered new interface driver usbfs 
    
    [    2.436226] usbcore: registered new interface driver hub 
    
    [    2.441506] usbcore: registered new device driver usb 
    
    [    2.446634] mc: Linux media interface: v0.10 
    
    [    2.450748] videodev: Linux video capture interface: v2.00 
    
    [    2.456242] EDAC MC: Ver: 3.0.0 
    
    [    2.459711] zynqmp-ipi-mbox mailbox@ff990400: Registered ZynqMP IPI mbox with TX/RX channels. 
    
    [    2.468167] jesd204: found 0 devices and 0 topologies 
    
    [    2.472821] FPGA manager framework 
    
    [    2.476298] Advanced Linux Sound Architecture Driver Initialized. 
    
    [    2.482608] Bluetooth: Core ver 2.22 
    
    [    2.485774] NET: Registered protocol family 31 
    
    [    2.490176] Bluetooth: HCI device and connection manager initialized 
    
    [    2.496492] Bluetooth: HCI socket layer initialized 
    
    [    2.501335] Bluetooth: L2CAP socket layer initialized 
    
    [    2.506358] Bluetooth: SCO socket layer initialized 
    
    [    2.511531] clocksource: Switched to clocksource arch_sys_counter 
    
    [    2.517400] VFS: Disk quotas dquot_6.6.0 
    
    [    2.521191] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) 
    
    [    2.532118] NET: Registered protocol family 2 
    
    [    2.532652] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear) 
    
    [    2.540826] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear) 
    
    [    2.548850] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear) 
    
    [    2.556309] TCP: Hash tables configured (established 32768 bind 32768) 
    
    [    2.562474] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear) 
    
    [    2.569139] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear) 
    
    [    2.576311] NET: Registered protocol family 1 
    
    [    2.580823] RPC: Registered named UNIX socket transport module. 
    
    [    2.586372] RPC: Registered udp transport module. 
    
    [    2.591035] RPC: Registered tcp transport module. 
    
    [    2.595707] RPC: Registered tcp NFSv4.1 backchannel transport module. 
    
    [    2.602725] PCI: CLS 0 bytes, default 64 
    
    [    2.606114] Trying to unpack rootfs image as initramfs... 
    
    [    3.495205] Freeing initrd memory: 18552K 
    
    [    3.495674] hw perfevents: no interrupt-affinity property for /pmu, guessing. 
    
    [    3.500982] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available 
    
    [    3.509353] Initialise system trusted keyrings 
    
    [    3.512918] workingset: timestamp_bits=46 max_order=20 bucket_order=0 
    
    [    3.519905] NFS: Registering the id_resolver key type 
    
    [    3.524219] Key type id_resolver registered 
    
    [    3.528360] Key type id_legacy registered 
    
    [    3.532355] nfs4filelayout_init: NFSv4 File Layout Driver Registering... 
    
    [    3.539012] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc. 
    
    [    3.546203] fuse: init (API version 7.32) 
    
    [    3.586098] NET: Registered protocol family 38 
    
    [    3.586143] xor: measuring software checksum speed 
    
    [    3.593829]    8regs           :  2363 MB/sec 
    
    [    3.597497]    32regs          :  2799 MB/sec 
    
    [    3.602440]    arm64_neon      :  2380 MB/sec 
    
    [    3.602629] xor: using function: 32regs (2799 MB/sec) 
    
    [    3.607657] Key type asymmetric registered 
    
    [    3.611718] Asymmetric key parser 'x509' registered 
    
    [    3.616579] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248) 
    
    [    3.623915] io scheduler mq-deadline registered 
    
    [    3.628411] io scheduler kyber registered 
    
    [    3.659290] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled 
    
    [    3.664434] cacheinfo: Unable to detect cache hierarchy for CPU 0 
    
    [    3.670623] brd: module loaded 
    
    [    3.675139] loop: module loaded 
    
    [    3.675472] Registered mathworks_ip class 
    
    [    3.678872] libphy: Fixed MDIO Bus: probed 
    
    [    3.681719] tun: Universal TUN/TAP device driver, 1.6 
    
    [    3.685792] CAN device driver interface 
    
    [    3.690432] usbcore: registered new interface driver asix 
    
    [    3.694926] usbcore: registered new interface driver ax88179_178a 
    
    [    3.700954] usbcore: registered new interface driver cdc_ether 
    
    [    3.706750] usbcore: registered new interface driver net1080 
    
    [    3.712374] usbcore: registered new interface driver cdc_subset 
    
    [    3.718253] usbcore: registered new interface driver zaurus 
    
    [    3.723798] usbcore: registered new interface driver cdc_ncm 
    
    [    3.730293] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver 
    
    [    3.735882] ehci-pci: EHCI PCI platform driver 
    
    [    3.740731] usbcore: registered new interface driver uas 
    
    [    3.745601] usbcore: registered new interface driver usb-storage 
    
    [    3.751601] usbcore: registered new interface driver usbserial_generic 
    
    [    3.758038] usbserial: USB Serial support registered for generic 
    
    [    3.764011] usbcore: registered new interface driver ftdi_sio 
    
    [    3.769713] usbserial: USB Serial support registered for FTDI USB Serial Device 
    
    [    3.776991] usbcore: registered new interface driver upd78f0730 
    
    [    3.782861] usbserial: USB Serial support registered for upd78f0730 
    
    [    3.790629] rtc_zynqmp ffa60000.rtc: registered as rtc0 
    
    [    3.794289] rtc_zynqmp ffa60000.rtc: setting system clock to 2019-01-04T09:31:50 UTC (1546594310) 
    
    [    3.803156] i2c /dev entries driver 
    
    [    3.808553] usbcore: registered new interface driver uvcvideo 
    
    [    3.812260] USB Video Class driver (1.1.1) 
    
    [    3.817865] Bluetooth: HCI UART driver ver 2.3 
    
    [    3.820744] Bluetooth: HCI UART protocol H4 registered 
    
    [    3.825841] Bluetooth: HCI UART protocol BCSP registered 
    
    [    3.831130] Bluetooth: HCI UART protocol LL registered 
    
    [    3.836219] Bluetooth: HCI UART protocol ATH3K registered 
    
    [    3.841595] Bluetooth: HCI UART protocol Three-wire (H5) registered 
    
    [    3.847850] Bluetooth: HCI UART protocol Intel registered 
    
    [    3.853186] Bluetooth: HCI UART protocol QCA registered 
    
    [    3.858391] usbcore: registered new interface driver bcm203x 
    
    [    3.864009] usbcore: registered new interface driver bpa10x 
    
    [    3.869546] usbcore: registered new interface driver bfusb 
    
    [    3.874997] usbcore: registered new interface driver btusb 
    
    [    3.880457] usbcore: registered new interface driver ath3k 
    
    [    3.885941] EDAC MC: ECC not enabled 
    
    [    3.889577] EDAC DEVICE0: Giving out device to module zynqmp-ocm-edac controller zynqmp_ocm: DEV ff960000.memory-controller (INTERRUPT) 
    
    [    3.901893] sdhci: Secure Digital Host Controller Interface driver 
    
    [    3.907669] sdhci: Copyright(c) Pierre Ossman 
    
    [    3.911994] sdhci-pltfm: SDHCI platform and OF driver helper 
    
    [    3.918082] ledtrig-cpu: registered to indicate activity on CPUs 
    
    [    3.923601] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping .... 
    
    [    3.930027] zynqmp_firmware_probe Platform Management API v1.1 
    
    [    3.935784] zynqmp_firmware_probe Trustzone version v1.0 
    
    [    3.972926] zynqmp-pinctrl firmware:zynqmp-firmware:pinctrl: zynqmp pinctrl initialized 
    
    [    4.019746] zynqmp-aes firmware:zynqmp-firmware:zynqmp-aes: will run requests pump with realtime priority 
    
    [    4.035773] zynqmp-aes firmware:zynqmp-firmware:zynqmp-aes: ERROR: Unknown error 
    
    [    4.037565] alg: aead: xilinx-zynqmp-aes-gcm encryption failed on test vector 8; expected_error=0, actual_error=-64, cfg="in-place" 
    
    [    4.049675] alg: No test for xilinx-keccak-384 (zynqmp-keccak-384) 
    
    [    4.055638] alg: No test for xilinx-zynqmp-rsa (zynqmp-rsa) 
    
    [    4.061122] usbcore: registered new interface driver usbhid 
    
    [    4.066502] usbhid: USB HID core driver 
    
    [    4.077994] axi_sysid 85000000.axi-sysid-0: AXI System ID core version (1.01.a) found 
    
    [    4.080354] axi_sysid 85000000.axi-sysid-0: [dac_fmc_ebz] [AD9144 - 00] on [zcu102] git branch <> git <0> dirty [2023-11-27 12:42:07] UTC 
    
    [    4.093010] fpga_manager fpga0: Xilinx ZynqMP FPGA Manager registered 
    
    [    4.099396] usbcore: registered new interface driver snd-usb-audio 
    
    [    4.106909] pktgen: Packet Generator for packet performance testing. Version: 2.75 
    
    [    4.113163] Initializing XFRM netlink socket 
    
    [    4.116840] NET: Registered protocol family 10 
    
    [    4.121592] Segment Routing with IPv6 
    
    [    4.124967] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver 
    
    [    4.131044] NET: Registered protocol family 17 
    
    [    4.135116] NET: Registered protocol family 15 
    
    [    4.139601] can: controller area network core 
    
    [    4.143870] NET: Registered protocol family 29 
    
    [    4.148257] can: raw protocol 
    
    [    4.151187] can: broadcast manager protocol 
    
    [    4.155353] can: netlink gateway - max_hops=1 
    
    [    4.159758] Bluetooth: RFCOMM TTY layer initialized 
    
    [    4.164522] Bluetooth: RFCOMM socket layer initialized 
    
    [    4.169630] Bluetooth: RFCOMM ver 1.11 
    
    [    4.173340] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 
    
    [    4.178613] Bluetooth: BNEP filters: protocol multicast 
    
    [    4.183805] Bluetooth: BNEP socket layer initialized 
    
    [    4.188732] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 
    
    [    4.194617] Bluetooth: HIDP socket layer initialized 
    
    [    4.199689] 9pnet: Installing 9P2000 support 
    
    [    4.203811] NET: Registered protocol family 36 
    
    [    4.208210] Key type dns_resolver registered 
    
    [    4.212627] registered taskstats version 1 
    
    [    4.216508] Loading compiled-in X.509 certificates 
    
    [    4.221648] Btrfs loaded, crc32c=crc32c-generic 
    
    [    4.235048] ff000000.serial: ttyPS0 at MMIO 0xff000000 (irq = 49, base_baud = 6249999) is a xuartps 
    
    [    4.244070] printk: console [ttyPS0] enabled 
    
    [    4.244070] printk: console [ttyPS0] enabled 
    
    [    4.248366] printk: bootconsole [cdns0] disabled 
    
    [    4.248366] printk: bootconsole [cdns0] disabled 
    
    [    4.258009] ff010000.serial: ttyPS1 at MMIO 0xff010000 (irq = 50, base_baud = 6249999) is a xuartps 
    
    [    4.271218] of-fpga-region fpga-full: FPGA Region probed 
    
    [    4.278225] nwl-pcie fd0e0000.pcie: host bridge /axi/pcie@fd0e0000 ranges: 
    
    [    4.285123] nwl-pcie fd0e0000.pcie:      MEM 0x00e0000000..0x00efffffff -> 0x00e0000000 
    
    [    4.293135] nwl-pcie fd0e0000.pcie:      MEM 0x0600000000..0x07ffffffff -> 0x0600000000 
    
    [    4.301205] nwl-pcie fd0e0000.pcie: Link is DOWN 
    
    [    4.305962] nwl-pcie fd0e0000.pcie: PCI host bridge to bus 0000:00 
    
    [    4.312138] pci_bus 0000:00: root bus resource [bus 00-ff] 
    
    [    4.317621] pci_bus 0000:00: root bus resource [mem 0xe0000000-0xefffffff] 
    
    [    4.324498] pci_bus 0000:00: root bus resource [mem 0x600000000-0x7ffffffff pref] 
    
    [    4.332002] pci 0000:00:00.0: [10ee:d021] type 01 class 0x060400 
    
    [    4.338057] pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot 
    
    [    4.348949] pci 0000:00:00.0: PCI bridge to [bus 01-0c] 
    
    [    4.354966] xilinx-zynqmp-dma fd500000.dma: ZynqMP DMA driver Probe success 
    
    [    4.362142] xilinx-zynqmp-dma fd510000.dma: ZynqMP DMA driver Probe success 
    
    [    4.369320] xilinx-zynqmp-dma fd520000.dma: ZynqMP DMA driver Probe success 
    
    [    4.376496] xilinx-zynqmp-dma fd530000.dma: ZynqMP DMA driver Probe success 
    
    [    4.383681] xilinx-zynqmp-dma fd540000.dma: ZynqMP DMA driver Probe success 
    
    [    4.390855] xilinx-zynqmp-dma fd550000.dma: ZynqMP DMA driver Probe success 
    
    [    4.398035] xilinx-zynqmp-dma fd560000.dma: ZynqMP DMA driver Probe success 
    
    [    4.405214] xilinx-zynqmp-dma fd570000.dma: ZynqMP DMA driver Probe success 
    
    [    4.412622] xilinx-zynqmp-dpdma fd4c0000.dma-controller: Xilinx DPDMA engine is probed 
    
    [    4.421211] ahci-ceva fd0c0000.ahci: supply ahci not found, using dummy regulator 
    
    [    4.428763] ahci-ceva fd0c0000.ahci: supply phy not found, using dummy regulator 
    
    [    4.437332] ad9517_probe:1020 
    
    [    4.440305] ad9517_probe:1025 
    
    [    4.443261] ad9517_probe:1032 
    
    [    4.446222] ad9517_probe:1035 
    
    [    4.449194] ad9517_probe:1038 
    
    [    4.452168] ad9517_probe:1046 
    
    [    4.455119] ad9517_probe:1049 
    
    [    4.458118] ad9517_probe:1054 
    
    [    4.461100] ad9517_probe:1059 
    
    [    4.464091] ad9517_probe:1064 
    
    [    4.467046] ad9517_probe:1094 
    
    [    4.470010] ad9517_probe:1100 
    
    [    4.472971] ad9517_probe:1109 
    
    [    4.475931] ad9517_probe:1111 
    
    [    4.478888] ad9517_probe:1115 
    
    [    4.481851] ad9517_probe:1124 
    
    [    4.484811] ad9517_probe:1126 
    
    [    4.488880] ad9517_probe:1141 
    
    [    4.492280] ad9517_probe:1150 
    
    [    4.495425] ad9517_probe:1150 
    
    [    4.498758] ad9517_probe:1150 
    
    [    4.501908] ad9517_probe:1150 
    
    [    4.505256] ad9517_probe:1150 
    
    [    4.508412] ad9517_probe:1150 
    
    [    4.511751] ad9517_probe:1150 
    
    [    4.514895] ad9517_probe:1150 
    
    [    4.518240] ad9517_probe:1150 
    
    [    4.521393] ad9517_probe:1150 
    
    [    4.524495] ad9517_probe:1157 
    
    [    4.527730] ad9517_probe:1160 
    
    [    4.530686] ad9517_probe:1165 
    
    [    4.533647] ad9517 spi1.0: AD9517 successfully initialized 
    
    [    4.539121] ad9517_probe:1168 
    
    [    4.568835] ad9517_probe:1020 
    
    [    4.571806] ad9517_probe:1025 
    
    [    4.574763] ad9517_probe:1032 
    
    [    4.577726] ad9517_probe:1035 
    
    [    4.580701] ad9517_probe:1038 
    
    [    4.583670] ad9517_probe:1046 
    
    [    4.586621] ad9517_probe:1049 
    
    [    4.589607] ad9517_probe:1054 
    
    [    4.592585] ad9517_probe:1059 
    
    [    4.595579] ad9517_probe:1064 
    
    [    4.598530] ad9517_probe:1094 
    
    [    4.601494] ad9517_probe:1100 
    
    [    4.604455] ad9517_probe:1109 
    
    [    4.607409] ad9517_probe:1111 
    
    [    4.610370] ad9517_probe:1115 
    
    [    4.613325] ad9517_probe:1124 
    
    [    4.616285] ad9517_probe:1126 
    
    [    4.620345] ad9517_probe:1141 
    
    [    4.623708] ad9517_probe:1150 
    
    [    4.626854] ad9517_probe:1150 
    
    [    4.630211] ad9517_probe:1150 
    
    [    4.633364] ad9517_probe:1150 
    
    [    4.636722] ad9517_probe:1150 
    
    [    4.639877] ad9517_probe:1150 
    
    [    4.643223] ad9517_probe:1150 
    
    [    4.646383] ad9517_probe:1150 
    
    [    4.649543] ad9517_probe:1150 
    
    [    4.653382] ad9517: probe of spi2.0 failed with error -17 
    
    [    4.684608] spi-nor spi0.0: SPI-NOR-UniqueID e00d0e0017faff0900fc436c66b8 
    
    [    4.691394] spi-nor spi0.0: found mt25qu512a, expected m25p80 
    
    [    4.697682] spi-nor spi0.0: trying to lock already unlocked area 
    
    [    4.703695] spi-nor spi0.0: mt25qu512a (131072 Kbytes) 
    
    [    4.708850] 4 fixed-partitions partitions found on MTD device spi0.0 
    
    [    4.715195] Creating 4 MTD partitions on "spi0.0": 
    
    [    4.719979] 0x000000000000-0x000000100000 : "qspi-fsbl-uboot" 
    
    [    4.726519] 0x000000100000-0x000000600000 : "qspi-linux" 
    
    [    4.732500] 0x000000600000-0x000000620000 : "qspi-device-tree" 
    
    [    4.739034] 0x000000620000-0x000000c00000 : "qspi-rootfs" 
    
    [    4.747715] macb ff0e0000.ethernet: Not enabling partial store and forward 
    
    [    4.755260] libphy: MACB_mii_bus: probed 
    
    [    4.762982] macb ff0e0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0e0000 irq 30 (00:0a:35:07:ea:b3) 
    
    [    4.773315] xilinx-axipmon ffa00000.perf-monitor: Probed Xilinx APM 
    
    [    4.779907] xilinx-axipmon fd0b0000.perf-monitor: Probed Xilinx APM 
    
    [    4.786445] xilinx-axipmon fd490000.perf-monitor: Probed Xilinx APM 
    
    [    4.792989] xilinx-axipmon ffa10000.perf-monitor: Probed Xilinx APM 
    
    [    4.802461] pca953x 0-0020: supply vcc not found, using dummy regulator 
    
    [    4.809148] pca953x 0-0020: using no AI 
    
    [    4.813621] gpio-322 (sel0): hogged as output/low 
    
    [    4.818524] gpio-323 (sel1): hogged as output/high 
    
    [    4.823508] gpio-324 (sel2): hogged as output/high 
    
    [    4.828503] gpio-325 (sel3): hogged as output/high 
    
    [    4.833696] pca953x 0-0021: supply vcc not found, using dummy regulator 
    
    [    4.840362] pca953x 0-0021: using no AI 
    
    [    4.846179] ina2xx 2-0040: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.853211] ina2xx 2-0041: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.860255] ina2xx 2-0042: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.867292] ina2xx 2-0043: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.874328] ina2xx 2-0044: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.881361] ina2xx 2-0045: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.888133] random: fast init done 
    
    [    4.891798] ina2xx 2-0046: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.898883] ina2xx 2-0047: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.905918] ina2xx 2-004a: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.912958] ina2xx 2-004b: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.919366] i2c i2c-0: Added multiplexed i2c bus 2 
    
    [    4.924967] ina2xx 3-0040: power monitor ina226 (Rshunt = 2000 uOhm) 
    
    [    4.931997] ina2xx 3-0041: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.939081] ina2xx 3-0042: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.946114] ina2xx 3-0043: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.953157] ina2xx 3-0044: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.960191] ina2xx 3-0045: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.967239] ina2xx 3-0046: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.974275] ina2xx 3-0047: power monitor ina226 (Rshunt = 5000 uOhm) 
    
    [    4.980679] i2c i2c-0: Added multiplexed i2c bus 3 
    
    [    5.036938] i2c i2c-0: Added multiplexed i2c bus 4 
    
    [    5.041884] i2c i2c-0: Added multiplexed i2c bus 5 
    
    [    5.046675] pca954x 0-0075: registered 4 multiplexed busses for I2C mux pca9544 
    
    [    5.054024] cdns-i2c ff020000.i2c: 400 kHz mmio ff020000 irq 32 
    
    [    5.061850] at24 6-0054: supply vcc not found, using dummy regulator 
    
    [    5.068751] at24 6-0054: 1024 byte 24c08 EEPROM, writable, 1 bytes/write 
    
    [    5.075498] i2c i2c-1: Added multiplexed i2c bus 6 
    
    [    5.081775] si5341 7-0036: Chip: 5341 Grade: 1 Rev: 3 
    
    [    5.119415] i2c i2c-1: Added multiplexed i2c bus 7 
    
    [    5.127085] si570 8-005d: registered, current frequency 300000000 Hz 
    
    [    5.133491] i2c i2c-1: Added multiplexed i2c bus 8 
    
    [    5.153278] si570 9-005d: registered, current frequency 148500000 Hz 
    
    [    5.159680] i2c i2c-1: Added multiplexed i2c bus 9 
    
    [    5.164735] si5324 10-0069: si5328 probed 
    
    [    5.231904] si5324 10-0069: si5328 probe successful 
    
    [    5.236835] i2c i2c-1: Added multiplexed i2c bus 10 
    
    [    5.241871] i2c i2c-1: Added multiplexed i2c bus 11 
    
    [    5.246908] i2c i2c-1: Added multiplexed i2c bus 12 
    
    [    5.251937] i2c i2c-1: Added multiplexed i2c bus 13 
    
    [    5.256816] pca954x 1-0074: registered 8 multiplexed busses for I2C switch pca9548 
    
    [    5.264960] at24 14-0050: supply vcc not found, using dummy regulator 
    
    [    5.271781] at24 14-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write 
    
    [    5.278533] i2c i2c-1: Added multiplexed i2c bus 14 
    
    [    5.283592] i2c i2c-1: Added multiplexed i2c bus 15 
    
    [    5.288637] i2c i2c-1: Added multiplexed i2c bus 16 
    
    [    5.293683] i2c i2c-1: Added multiplexed i2c bus 17 
    
    [    5.298729] i2c i2c-1: Added multiplexed i2c bus 18 
    
    [    5.303776] i2c i2c-1: Added multiplexed i2c bus 19 
    
    [    5.308824] i2c i2c-1: Added multiplexed i2c bus 20 
    
    [    5.313870] i2c i2c-1: Added multiplexed i2c bus 21 
    
    [    5.318749] pca954x 1-0075: registered 8 multiplexed busses for I2C switch pca9548 
    
    [    5.326358] cdns-i2c ff030000.i2c: 400 kHz mmio ff030000 irq 33 
    
    [    5.336548] cdns-wdt fd4d0000.watchdog: Xilinx Watchdog Timer with timeout 60s 
    
    [    5.346446] axi_adxcvr 84a60000.axi-adxcvr-tx: AXI-ADXCVR-TX (17.05.a) using QPLL on GTH4 at 0x84A60000. Number of lanes: 8. 
    
    [    5.358583] axi-jesd204-tx 84a90000.axi-jesd204-tx: AXI-JESD204-TX (1.06.a) at 0x84A90000. Encoder 8b10b, width 4/4, lanes 8. 
    
    [    5.371385] zynqmp-display fd4a0000.display: vtc bridge property not present 
    
    [    5.376403] mmc0: SDHCI controller on ff170000.mmc [ff170000.mmc] using ADMA 64-bit 
    
    [    5.381059] xilinx-dp-snd-codec fd4a0000.display:zynqmp_dp_snd_codec0: Failed to get required clock freq 
    
    [    5.395574] xilinx-dp-snd-codec: probe of fd4a0000.display:zynqmp_dp_snd_codec0 failed with error -22 
    
    [    5.405127] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm0: Xilinx DisplayPort Sound PCM probed 
    
    [    5.413308] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm1: Xilinx DisplayPort Sound PCM probed 
    
    [    5.421548] OF: graph: no port node found in /axi/display@fd4a0000 
    
    [    5.428087] xlnx-drm xlnx-drm.0: bound fd4a0000.display (ops 0xffffffc011090608) 
    
    [    5.474675] mmc0: new high speed SDHC card at address aaaa 
    
    [    5.480534] mmcblk0: mmc0:aaaa SC32G 29.7 GiB 
    
    [    5.488971]  mmcblk0: p1 p2 
    
    [    6.511559] zynqmp-display fd4a0000.display: [drm] Cannot find any crtc or sizes 
    
    [    6.519192] [drm] Initialized xlnx 1.0.0 20130509 for fd4a0000.display on minor 0 
    
    [    6.526690] zynqmp-display fd4a0000.display: ZynqMP DisplayPort Subsystem driver probed 
    
    [    6.535088] ahci-ceva fd0c0000.ahci: supply ahci not found, using dummy regulator 
    
    [    6.542638] ahci-ceva fd0c0000.ahci: supply phy not found, using dummy regulator 
    
    [    6.550094] ahci-ceva fd0c0000.ahci: supply target not found, using dummy regulator 
    
    [    6.557939] ahci-ceva fd0c0000.ahci: AHCI 0001.0301 32 slots 2 ports 6 Gbps 0x3 impl platform mode 
    
    [    6.566897] ahci-ceva fd0c0000.ahci: flags: 64bit ncq sntf pm clo only pmp fbs pio slum part ccc sds apst 
    
    [    6.577604] scsi host0: ahci-ceva 
    
    [    6.581213] scsi host1: ahci-ceva 
    
    [    6.584648] ata1: SATA max UDMA/133 mmio [mem 0xfd0c0000-0xfd0c1fff] port 0x100 irq 45 
    
    [    6.592565] ata2: SATA max UDMA/133 mmio [mem 0xfd0c0000-0xfd0c1fff] port 0x180 irq 45 
    
    [    6.628014] ad9144 spi1.1: Failed to set lane rate to 2500000 kHz: -22 
    
    [    6.634582] ad9144: probe of spi1.1 failed with error -22 
    
    [    6.673433] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller 
    
    [    6.678932] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1 
    
    [    6.686692] xhci-hcd xhci-hcd.1.auto: hcc params 0x0238f625 hci version 0x100 quirks 0x0000000002010810 
    
    [    6.696121] xhci-hcd xhci-hcd.1.auto: irq 57, io mem 0xfe200000 
    
    [    6.702251] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10 
    
    [    6.710517] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 
    
    [    6.717733] usb usb1: Product: xHCI Host Controller 
    
    [    6.722601] usb usb1: Manufacturer: Linux 5.10.0-xilinx-v2021.2 xhci-hcd 
    
    [    6.729296] usb usb1: SerialNumber: xhci-hcd.1.auto 
    
    [    6.734480] hub 1-0:1.0: USB hub found 
    
    [    6.738248] hub 1-0:1.0: 1 port detected 
    
    [    6.742369] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller 
    
    [    6.747850] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2 
    
    [    6.755508] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed 
    
    [    6.762140] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10 
    
    [    6.770398] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 
    
    [    6.777616] usb usb2: Product: xHCI Host Controller 
    
    [    6.782485] usb usb2: Manufacturer: Linux 5.10.0-xilinx-v2021.2 xhci-hcd 
    
    [    6.789177] usb usb2: SerialNumber: xhci-hcd.1.auto 
    
    [    6.794294] hub 2-0:1.0: USB hub found 
    
    [    6.798069] hub 2-0:1.0: 1 port detected 
    
    [    6.870572] input: gpio-keys as /devices/platform/gpio-keys/input/input0 
    
    [    6.877649] of_cfs_init 
    
    [    6.880114] of_cfs_init: OK 
    
    [    6.883068] cfg80211: Loading compiled-in X.509 certificates for regulatory database 
    
    [    6.913766] ata1: SATA link down (SStatus 0 SControl 330) 
    
    [    6.919194] ata2: SATA link down (SStatus 0 SControl 330) 
    
    [    7.025092] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' 
    
    [    7.031624] clk: Not disabling unused clocks 
    
    [    7.036156] ALSA device list: 
    
    [    7.039112]   No soundcards found. 
    
    [    7.042828] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 
    
    [    7.043642] Freeing unused kernel memory: 2624K 
    
    [    7.051437] cfg80211: failed to load regulatory.db 
    
    [    7.075579] Run /init as init process 
    
    INIT: version 2.97 booting 
    
    Starting udev 
    
    [    7.181876] udevd[159]: starting version 3.2.9 
    
    [    7.186684] random: udevd: uninitialized urandom read (16 bytes read) 
    
    [    7.193177] random: udevd: uninitialized urandom read (16 bytes read) 
    
    [    7.199637] random: udevd: uninitialized urandom read (16 bytes read) 
    
    [    7.210686] udevd[160]: starting eudev-3.2.9 
    
    [    7.595613] zynqmp-display fd4a0000.display: [drm] Cannot find any crtc or sizes 
    
    [    7.669094] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) 
    
    [    7.673035] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. 
    
    bootlogd: /dev/ttyPS0Configuring packages on first boot.... 
    
     (This may take several minutes. Please do not power off the machine.) 
    
    Running postinst /etc/rpm-postinsts/100-sysvinit-inittab... 
    
    update-rc.d: /etc/init.d/run-postinsts exists during rc.d purge (continuing) 
    
    INIT: Entering runlevel: 5 
    
    Configuring network interfaces... [    8.048829] macb ff0e0000.ethernet eth0: PHY [ff0e0000.ethernet-ffffffff:0c] driver [TI DP83867] (irq=POLL) 
    
    [    8.058574] macb ff0e0000.ethernet eth0: configuring for phy/rgmii-id link mode 
    
    udhcpc: started, v1.32.0 
    
    udhcpc: sending discover 
    
    [   11.145207] macb ff0e0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control tx 
    
    [   11.152816] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready 
    
    udhcpc: sending discover 
    
    udhcpc: sending discover 
    
    udhcpc: no lease, forking to background 
    
    done. 
    
    Starting system message bus: dbus. 
    
    Starting haveged: haveged: command socket is listening at fd 3 
    
    haveged: haveged starting up 
    
      
    
      
    
    Starting Dropbear SSH server: Waiting for kernel randomness to be initialised... 
    
    haveged: haveged: ver: 1.9.13; arch: generic; vend: ; build: (gcc 10.2.0 CTV); collect: 128K 
    
      
    
    haveged: haveged: cpu: (VC); data: 16K (D); inst: 16K (D); idx: 11/40; sz: 15456/64452 
    
      
    
    haveged: haveged: tot tests(BA8): A:1/1 B:1/1 continuous tests(B):  last entropy estimate 8.00251 
    
      
    
    haveged: haveged: fills: 0, generated: 0 
    
      
    
    [   17.992991] random: crng init done 
    
    Generating 2048 bit rsa key, this may take a while... 
    
    [   17.996413] random: 7 urandom warning(s) missed due to ratelimiting 
    
    Public key portion is: 
    
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCD5JH6DxRxZC5VODdhXavQ0G79eI/anpqccpFkeArQKUVqC2HtSfLAoRWtJbTZk6pFp6oepYelltwbK5rZ+KG3MlTKPoLlH1VAokLP8rvuPLnVI8BKHzAUD+hu84pd5RmQTvVow/jt5C0S7M+680bOL6m4fgHFQpnalISr2Wi7VIlHwkC/3r9B5WvvaqsCi78YD1bVo5eiaa/LRX4S956Q5cezN6Ly2qDfTtC9XaabeDtanfLAV1D08XysIYqAfgpAZR2oCbcsit1K7e31wi5NDVSBP8JugAtIPFggR/qB5tJLP8WSPBCPdSiS85WLvqP9Jc90PqJzT1+F6zdGbIiH root@molecular-duck-double-t8 
    
    Fingerprint: sha1!! 39:f6:f3:f7:e5:ea:24:2e:3d:4e:68:56:e9:d0:13:d7:b3:65:77:ce 
    
    dropbear. 
    
    Starting Fancontrol Daemon: fancontrold 
    
    Starting IIO Daemon: iiod 
    
    Starting internet superserver: inetd. 
    
    Starting syslogd/klogd: done 
    
    Starting tcf-agent: OK 
    

    Something strange happened- checking jesd_status now shows the clock (on the first AD9144-FMC-EBZ) is 20MHz instead of 2000MHz. (I checked the clock on a scope, it is still 2GHz..):

    root@molecular-duck-double-t8:~# jesd_status 
    
    lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk 
    
    xl(DEVICES) Found 1 JESD204 Link Layer peripheralsqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx 
    
    xx                                                                            xx 
    
    xx(0): axi-jesd204-tx/84a90000.axi-jesd204-tx  [*]                            xx 
    
    xmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjx 
    
    xl(STATUS)qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx 
    
    xxLink is                      disabled                                       xx 
    
    xxLink Status                                                                 xx 
    
    xxMeasured Link Clock (MHz)    20.833                                         xx 
    
    xxReported Link Clock (MHz)    20.833                                         xx 
    
    xxMeasured Device Clock (MHz)  20.833                                         xx 
    
    xxReported Device Clock (MHz)  20.833                                         xx 
    
    xxDesired Device Clock (MHz)   20.833                                         xx 
    
    xxLane rate (MHz)                                                             xx 
    
    xxLane rate / 40 (MHz)                                                        xx 
    
    xxLMFC rate (MHz)                                                             xx 
    
    xxSYSREF captured                                                             xx 
    
    xxSYSREF alignment error                                                      xx 
    
    xxSYNC~                                                                       xx 
    
    xmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjx 
    
    x                                                                              x 
    
    xYou can also use 'q' to quit and 'a' or 'd' to move between devices!          x 
    
    xF1axi-jesd204-tx/84a90000.axi-jesd204-txF9Quit                                x 

    Does this debugging tell you anything?

    Thanks! Slight smile

    Eliana