ZC706 Quick Start Guide
This guide provides some quick instructions on how to setup the ADRV9009-W/PCBZ on:
ZC706 on FMC HPC
Using Linux as software
Necessary files
Note
The SD card includes several folders in the root directory of the BOOT partition. In order to configure the SD card to work with a specific FPGA board and ADI hardware, several files must be copied onto the root directory. Using the host PC, drag and drop the required files onto the BOOT partition, and use the EJECT function when removing the SD card from the reader.
The following files are needed for the system to boot:
HDL boot image:
BOOT.BINLinux Kernel image:
uImageLinux device tree:
devicetree.dtb
They can either be taken from the SD card – already generated by us, or you can build them manually:
Instructions on how to choose the boot files from the SD card can be found in the Platform-Specific Manual Steps section from here: Hardware Configuration.
Instructions on how to manually build the boot files from source can be found here:
ADRV9009 HDL reference design build documentation. More HDL build details at Build an HDL project
Important
Some projects provide multiple devicetree files in the SD card’s boot folders. Make sure you select the devicetree that matches your specific use case.
Required Software
SD Card 16GB imaged with Kuiper
A UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate 115200 (8N1)
Required Hardware
ZC706 FPGA board and its power supply
ADRV9009-W/PCBZ FMC evaluation board
SD card with at least 16GB of memory
(Optional) 2x SMA cable for analog signal loopback
(Optional) External clock generator
Mini-USB cable (UART)
(Optional) Ethernet cable
(Optional) USB keyboard & mouse and a HDMI compatible monitor
More details as to why you need these, can be found at Prerequisites.
Testing
Creating the setup
Caution
This project was tested with VADJ = 2.5 V
All the products described on this page include ESD (electrostatic discharge) sensitive devices. Electrostatic charges as high as 4000V readily accumulate on the human body or test equipment and can discharge without detection. Although the boards feature ESD protection circuitry, permanent damage may occur on devices subjected to high-energy electrostatic discharges. Therefore, proper ESD precautions are recommended to avoid performance degradation or loss of functionality. This includes removing static charge on external equipment, cables, or antennas before connecting to the device.
Follow the steps in this order, to avoid damaging the components:
Connect the ADRV9009-W/PCBZ FMC board to the ZC706 FMC HPC connector
Insert SD card into the SD card socket on the FPGA (J30)
Configure the ZC706 for SD card boot mode (SW11[1:5] in position Down, Down, Up, Up, Down, as shown in the picture below)
Connect USB UART (Mini-USB) to your host PC (J21)
(Optional) Connect the external clock generator and/or loopback cables
(Optional) Plug-in an Ethernet cable from your router/switch to the Ethernet port on the FPGA board
(Optional) Connect a monitor to the FPGA by HDMI, and a mouse and a keyboard
Plug in the power supply and turn on the power switch on the FPGA board
Observe Kernel and serial console output messages on your terminal (use the first ttyUSB or COM port registered)
Booting the System
After turning on the power switch the following messages should appear on the serial console:
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff]
[ 0.000000] percpu: Embedded 11 pages/cpu s14420 r8192 d22444 u45056
[ 0.000000] pcpu-alloc: s14420 r8192 d22444 u45056 alloc=11*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 260608
[ 0.000000] Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlycon rootfstype=ext4 rootwait clk_ignore_unused cpuidle.off=1
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[ 0.000000] Memory: 881904K/1048576K available (12288K kernel code, 818K rwdata, 10376K rodata, 1024K init, 470K bss, 35600K reserved, 131072K cma-reserved, 131072K highmem)
[ 0.000000] rcu: Preemptible hierarchical RCU implementation.
[ 0.000000] rcu: RCU event tracing is enabled.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] efuse mapped to (ptrval)
[ 0.000000] slcr mapped to (ptrval)
[ 0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
[ 0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
[ 0.000000] L2C-310 erratum 769419 enabled
[ 0.000000] L2C-310 enabling early BRESP for Cortex-A9
[ 0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[ 0.000000] L2C-310 ID prefetch enabled, offset 1 lines
[ 0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[ 0.000000] L2C-310 cache controller enabled, 8 ways, 512 kB
[ 0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
[ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[ 0.000000] zynq_clock_init: clkc starts at (ptrval)
[ 0.000000] Zynq clock init
[ 0.000001] sched_clock: 64 bits at 167MHz, resolution 6ns, wraps every 4398046511103ns
[ 0.000022] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x26703d7dd8, max_idle_ns: 440795208065 ns
[ 0.000053] Switching to timer-based delay loop, resolution 6ns
[ 0.000140] clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns
[ 0.000177] timer #0 at (ptrval), irq=25
[ 0.000821] Console: colour dummy device 80x30
[ 0.000863] Calibrating delay loop (skipped), value calculated using timer frequency.. 333.33 BogoMIPS (lpj=1666666)
[ 0.000878] CPU: Testing write buffer coherency: ok
[ 0.000922] CPU0: Spectre v2: using BPIALL workaround
[ 0.000930] pid_max: default: 32768 minimum: 301
[ 0.001152] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[ 0.001170] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[ 0.001982] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.002818] Setting up static identity map for 0x100000 - 0x100060
[ 0.003003] rcu: Hierarchical SRCU implementation.
[ 0.003010] rcu: Max phase no-delay instances is 1000.
[ 0.003466] smp: Bringing up secondary CPUs ...
[ 0.004358] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.004377] CPU1: Spectre v2: using BPIALL workaround
[ 0.004504] smp: Brought up 1 node, 2 CPUs
[ 0.004516] SMP: Total of 2 processors activated (666.66 BogoMIPS).
[ 0.004526] CPU: All CPU(s) started in SVC mode.
[ 0.005155] devtmpfs: initialized
[ 0.012429] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[ 0.012649] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.012681] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[ 0.019290] pinctrl core: initialized pinctrl subsystem
[ 0.020637] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.022875] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.023907] thermal_sys: Registered thermal governor 'step_wise'
[ 0.030820] platform axi: Fixed dependency cycle(s) with /axi/interrupt-controller@f8f01000
[ 0.034510] amba f8801000.etb: Fixed dependency cycle(s) with /replicator/out-ports/port@1/endpoint
[ 0.034703] amba f8803000.tpiu: Fixed dependency cycle(s) with /replicator/out-ports/port@0/endpoint
[ 0.034925] amba f8804000.funnel: Fixed dependency cycle(s) with /replicator/in-ports/port/endpoint
[ 0.035132] amba f889c000.ptm: Fixed dependency cycle(s) with /axi/funnel@f8804000/in-ports/port@0/endpoint
[ 0.035337] amba f889d000.ptm: Fixed dependency cycle(s) with /axi/funnel@f8804000/in-ports/port@1/endpoint
[ 0.043224] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[ 0.043238] hw-breakpoint: maximum watchpoint size is 4 bytes.
[ 0.043818] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 27, base_baud = 3125000) is a xuartps
[ 0.471561] printk: console [ttyPS0] enabled
[ 0.487099] SCSI subsystem initialized
[ 0.489793] usbcore: registered new interface driver usbfs
[ 0.494013] usbcore: registered new interface driver hub
[ 0.498082] usbcore: registered new device driver usb
[ 0.502238] mc: Linux media interface: v0.10
[ 0.505268] videodev: Linux video capture interface: v2.00
[ 0.509538] pps_core: LinuxPPS API ver. 1 registered
[ 0.513194] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.521057] PTP clock support registered
[ 0.524227] jesd204: created con: id=0, topo=0, link=0, /axi/spi@e0006000/ad9528-1@0 <-> /fpga-axi@0/axi-adxcvr-tx@44a80000
[ 0.534104] jesd204: created con: id=1, topo=0, link=2, /axi/spi@e0006000/ad9528-1@0 <-> /fpga-axi@0/axi-adxcvr-rx-os@44a50000
[ 0.544225] jesd204: created con: id=2, topo=0, link=1, /axi/spi@e0006000/ad9528-1@0 <-> /fpga-axi@0/axi-adxcvr-rx@44a60000
[ 0.554083] jesd204: created con: id=3, topo=0, link=2, /fpga-axi@0/axi-adxcvr-rx-os@44a50000 <-> /fpga-axi@0/axi-jesd204-rx-os@44ab0000
[ 0.565064] jesd204: created con: id=4, topo=0, link=0, /fpga-axi@0/axi-adxcvr-tx@44a80000 <-> /fpga-axi@0/axi-jesd204-tx@44a90000
[ 0.575522] jesd204: created con: id=5, topo=0, link=1, /fpga-axi@0/axi-adxcvr-rx@44a60000 <-> /fpga-axi@0/axi-jesd204-rx@44aa0000
[ 0.585991] jesd204: created con: id=6, topo=0, link=0, /fpga-axi@0/axi-jesd204-tx@44a90000 <-> /fpga-axi@0/axi-adrv9009-tx-hpc@44a04000
[ 0.597019] jesd204: created con: id=7, topo=0, link=1, /fpga-axi@0/axi-jesd204-rx@44aa0000 <-> /axi/spi@e0006000/adrv9009-phy@1
[ 0.607328] jesd204: created con: id=8, topo=0, link=2, /fpga-axi@0/axi-jesd204-rx-os@44ab0000 <-> /axi/spi@e0006000/adrv9009-phy@1
[ 0.617907] jesd204: created con: id=9, topo=0, link=0, /fpga-axi@0/axi-adrv9009-tx-hpc@44a04000 <-> /axi/spi@e0006000/adrv9009-phy@1
[ 0.628691] jesd204: /axi/spi@e0006000/adrv9009-phy@1: JESD204[0:0] transition uninitialized -> initialized
[ 0.637154] jesd204: /axi/spi@e0006000/adrv9009-phy@1: JESD204[0:1] transition uninitialized -> initialized
[ 0.645613] jesd204: /axi/spi@e0006000/adrv9009-phy@1: JESD204[0:2] transition uninitialized -> initialized
[ 0.654064] jesd204: found 9 devices and 1 topologies
[ 0.657857] FPGA manager framework
[ 0.660237] Advanced Linux Sound Architecture Driver Initialized.
[ 0.666334] clocksource: Switched to clocksource arm_global_timer
[ 0.681103] NET: Registered PF_INET protocol family
[ 0.684934] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[ 0.693116] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[ 0.700255] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.706719] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[ 0.713239] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
[ 0.719434] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.724575] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 0.729954] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 0.735904] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.740805] RPC: Registered named UNIX socket transport module.
[ 0.745466] RPC: Registered udp transport module.
[ 0.748873] RPC: Registered tcp transport module.
[ 0.752267] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.757794] armv7-pmu f8891000.pmu: hw perfevents: no interrupt-affinity property, guessing.
[ 0.765131] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
[ 0.773302] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[ 0.779310] NFS: Registering the id_resolver key type
[ 0.783086] Key type id_resolver registered
[ 0.785954] Key type id_legacy registered
[ 0.788705] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 0.794098] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[ 0.800447] fuse: init (API version 7.37)
[ 0.803554] bounce: pool size: 64 pages
[ 0.806115] io scheduler mq-deadline registered
[ 0.809361] io scheduler kyber registered
[ 0.813125] zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
[ 0.823016] dma-pl330 f8003000.dma-controller: Loaded driver for PL330 DMAC-241330
[ 0.829316] dma-pl330 f8003000.dma-controller: DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
[ 0.847172] brd: module loaded
[ 0.855210] loop: module loaded
[ 0.857531] Registered mathworks_ip class
[ 0.861027] SPI driver spidev has no spi_device_id for adi,swspi
[ 0.869729] spi-nor spi1.0: found s25fl128s1, expected n25q128a11
[ 0.874620] spi-nor spi1.0: s25fl128s1 (16384 Kbytes)
[ 0.878650] 5 fixed-partitions partitions found on MTD device spi1.0
[ 0.883700] Creating 5 MTD partitions on "spi1.0":
[ 0.887202] 0x000000000000-0x000000500000 : "boot"
[ 0.892138] 0x000000500000-0x000000520000 : "bootenv"
[ 0.897285] 0x000000520000-0x000000540000 : "config"
[ 0.902273] 0x000000540000-0x000000fc0000 : "image"
[ 0.907248] 0x000000fc0000-0x000001000000 : "spare"
[ 0.912493] MACsec IEEE 802.1AE
[ 0.915476] tun: Universal TUN/TAP device driver, 1.6
[ 0.921855] macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 46 (00:0a:35:00:01:22)
[ 0.930994] usbcore: registered new interface driver asix
[ 0.935130] usbcore: registered new interface driver ax88179_178a
[ 0.939978] usbcore: registered new interface driver cdc_ether
[ 0.944547] usbcore: registered new interface driver net1080
[ 0.948950] usbcore: registered new interface driver cdc_subset
[ 0.953595] usbcore: registered new interface driver zaurus
[ 0.957943] usbcore: registered new interface driver cdc_ncm
[ 0.962322] usbcore: registered new interface driver r8153_ecm
[ 0.968666] usbcore: registered new interface driver uas
[ 0.972722] usbcore: registered new interface driver usb-storage
[ 0.977458] usbcore: registered new interface driver usbserial_generic
[ 0.982701] usbserial: USB Serial support registered for generic
[ 0.987445] usbcore: registered new interface driver ftdi_sio
[ 0.991900] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 0.997944] usbcore: registered new interface driver upd78f0730
[ 1.002576] usbserial: USB Serial support registered for upd78f0730
[ 1.086357] ULPI transceiver vendor/product ID 0x0424/0x0007
[ 1.090710] Found SMSC USB3320 ULPI transceiver.
[ 1.094025] ULPI integrity check: passed.
[ 1.096828] ci_hdrc ci_hdrc.0: EHCI Host Controller
[ 1.100417] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
[ 1.146348] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
[ 1.150606] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
[ 1.157582] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.163501] usb usb1: Product: EHCI Host Controller
[ 1.167078] usb usb1: Manufacturer: Linux 6.1.70-284114-g2e8908932dfd ehci_hcd
[ 1.172988] usb usb1: SerialNumber: ci_hdrc.0
[ 1.176699] hub 1-0:1.0: USB hub found
[ 1.179173] hub 1-0:1.0: 1 port detected
[ 1.184001] SPI driver ads7846 has no spi_device_id for ti,tsc2046
[ 1.188895] SPI driver ads7846 has no spi_device_id for ti,ads7843
[ 1.193767] SPI driver ads7846 has no spi_device_id for ti,ads7845
[ 1.198657] SPI driver ads7846 has no spi_device_id for ti,ads7873
[ 1.203862] i2c_dev: i2c /dev entries driver
[ 1.214447] si570 1-005d: registered, current frequency 156250000 Hz
[ 1.219628] i2c i2c-0: Added multiplexed i2c bus 1
[ 1.223535] i2c 2-0039: Fixed dependency cycle(s) with /fpga-axi@0/axi_hdmi@70e00000/port/endpoint
[ 1.231366] adv7511 2-0039: supply avdd not found, using dummy regulator
[ 1.236924] adv7511 2-0039: supply dvdd not found, using dummy regulator
[ 1.242377] adv7511 2-0039: supply pvdd not found, using dummy regulator
[ 1.247837] adv7511 2-0039: supply bgvdd not found, using dummy regulator
[ 1.253372] adv7511 2-0039: supply dvdd-3v not found, using dummy regulator
[ 1.270655] i2c i2c-0: Added multiplexed i2c bus 2
[ 1.274678] at24 3-0054: supply vcc not found, using dummy regulator
[ 1.281061] at24 3-0054: 1024 byte 24c08 EEPROM, writable, 1 bytes/write
[ 1.286570] i2c i2c-0: Added multiplexed i2c bus 3
[ 1.290531] pca953x 4-0021: supply vcc not found, using dummy regulator
[ 1.295963] pca953x 4-0021: using no AI
[ 1.301318] i2c i2c-0: Added multiplexed i2c bus 4
[ 1.307862] rtc-pcf8563 5-0051: low voltage detected, date/time is not reliable.
[ 1.314132] rtc-pcf8563 5-0051: registered as rtc0
[ 1.319034] rtc-pcf8563 5-0051: low voltage detected, date/time is not reliable.
[ 1.325123] rtc-pcf8563 5-0051: hctosys: unable to read the hardware clock
[ 1.332088] i2c i2c-0: Added multiplexed i2c bus 5
[ 1.336100] at24 6-0050: supply vcc not found, using dummy regulator
[ 1.342148] at24 6-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 1.347767] i2c i2c-0: Added multiplexed i2c bus 6
[ 1.351532] i2c i2c-0: Added multiplexed i2c bus 7
[ 1.355275] i2c i2c-0: Added multiplexed i2c bus 8
[ 1.358785] pca954x 0-0074: registered 8 multiplexed busses for I2C switch pca9548
[ 1.366092] gspca_main: v2.14.0 registered
[ 1.368988] usbcore: registered new interface driver uvcvideo
[ 1.376913] cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s
[ 1.383145] Xilinx Zynq CpuIdle Driver started
[ 1.386282] failed to register cpuidle driver
[ 1.389639] sdhci: Secure Digital Host Controller Interface driver
[ 1.394509] sdhci: Copyright(c) Pierre Ossman
[ 1.397573] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.403549] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.408351] hid: raw HID events driver (C) Jiri Kosina
[ 1.414633] usbcore: registered new interface driver usbhid
[ 1.418919] usbhid: USB HID core driver
[ 1.421887] SPI driver fb_seps525 has no spi_device_id for syncoam,seps525
[ 1.426356] mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA
[ 1.438557] ad9528 spi0.0: supply vcc not found, using dummy regulator
[ 1.471879] mmc0: new high speed SDHC card at address 0001
[ 1.477327] mmcblk0: mmc0:0001 00000 29.1 GiB
[ 1.482741] mmcblk0: p1 p2 p3
[ 1.507203] jesd204: /axi/spi@e0006000/ad9528-1@0,jesd204:0,parent=spi0.0: Using as SYSREF provider
[ 1.516887] SPI driver adis16475 has no spi_device_id for adi,adis16470
[ 1.522193] SPI driver adis16475 has no spi_device_id for adi,adis16475-1
[ 1.527687] SPI driver adis16475 has no spi_device_id for adi,adis16475-2
[ 1.533163] SPI driver adis16475 has no spi_device_id for adi,adis16475-3
[ 1.538651] SPI driver adis16475 has no spi_device_id for adi,adis16477-1
[ 1.544126] SPI driver adis16475 has no spi_device_id for adi,adis16477-2
[ 1.549613] SPI driver adis16475 has no spi_device_id for adi,adis16477-3
[ 1.555089] SPI driver adis16475 has no spi_device_id for adi,adis16465-1
[ 1.560575] SPI driver adis16475 has no spi_device_id for adi,adis16465-2
[ 1.566051] SPI driver adis16475 has no spi_device_id for adi,adis16465-3
[ 1.571554] SPI driver adis16475 has no spi_device_id for adi,adis16467-1
[ 1.577044] SPI driver adis16475 has no spi_device_id for adi,adis16467-2
[ 1.582517] SPI driver adis16475 has no spi_device_id for adi,adis16467-3
[ 1.588004] SPI driver adis16475 has no spi_device_id for adi,adis16500
[ 1.593307] SPI driver adis16475 has no spi_device_id for adi,adis16501
[ 1.598620] SPI driver adis16475 has no spi_device_id for adi,adis16505-1
[ 1.604096] SPI driver adis16475 has no spi_device_id for adi,adis16505-2
[ 1.609582] SPI driver adis16475 has no spi_device_id for adi,adis16505-3
[ 1.615059] SPI driver adis16475 has no spi_device_id for adi,adis16507-1
[ 1.620545] SPI driver adis16475 has no spi_device_id for adi,adis16507-2
[ 1.626022] SPI driver adis16475 has no spi_device_id for adi,adis16507-3
[ 1.631515] SPI driver adis16475 has no spi_device_id for adi,adis16575-2
[ 1.637004] SPI driver adis16475 has no spi_device_id for adi,adis16575-3
[ 1.642479] SPI driver adis16475 has no spi_device_id for adi,adis16576-2
[ 1.647965] SPI driver adis16475 has no spi_device_id for adi,adis16576-3
[ 1.653442] SPI driver adis16475 has no spi_device_id for adi,adis16577-2
[ 1.658928] SPI driver adis16475 has no spi_device_id for adi,adis16577-3
[ 1.720987] axi_adxcvr_drv 44a60000.axi-adxcvr-rx: AXI-ADXCVR-RX (17.05.a) using CPLL on GTX2 at 0x44A60000. Number of lanes: 2.
[ 1.789801] axi_adxcvr_drv 44a50000.axi-adxcvr-rx-os: AXI-ADXCVR-RX (17.05.a) using CPLL on GTX2 at 0x44A50000. Number of lanes: 2.
[ 1.824957] axi_adxcvr_drv 44a80000.axi-adxcvr-tx: AXI-ADXCVR-TX (17.05.a) using QPLL on GTX2 at 0x44A80000. Number of lanes: 4.
[ 1.837426] axi_sysid 45000000.axi-sysid-0: AXI System ID core version (1.01.a) found
[ 1.844104] axi_sysid 45000000.axi-sysid-0: [adrv9009] [RX:M=4 L=2 S=1 TX:M=4 L=4 S=1 RX_OS:M=2 L=2 S=1 DAC_FIFO_ADDR_WIDTH=10] on [zc706] git branch <hdl_2023_r2> git <2156ac7e874a1dc321d9f64a325009fafe563419> clean [2024-11-01 15:05:22] UTC
[ 1.865004] fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
[ 1.870909] usbcore: registered new interface driver snd-usb-audio
[ 1.879232] NET: Registered PF_INET6 protocol family
[ 1.884323] Segment Routing with IPv6
[ 1.886762] In-situ OAM (IOAM) with IPv6
[ 1.889463] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ 1.894741] NET: Registered PF_PACKET protocol family
[ 1.898816] NET: Registered PF_IEEE802154 protocol family
[ 1.902865] Key type dns_resolver registered
[ 1.906055] zynq_pm_remap_ocm: OCM pool is not available
[ 1.910086] zynq_pm_suspend_init: Unable to map OCM.
[ 1.913755] Registering SWP/SWPB emulation handler
[ 1.927913] of-fpga-region fpga-full: FPGA Region probed
[ 1.933977] [drm] Initialized axi_hdmi_drm 1.0.0 20120930 for 70e00000.axi_hdmi on minor 0
[ 1.942953] axi-hdmi 70e00000.axi_hdmi: [drm] Cannot find any crtc or sizes
[ 1.950227] axi-hdmi 70e00000.axi_hdmi: [drm] Cannot find any crtc or sizes
[ 1.957118] axi-jesd204-rx 44aa0000.axi-jesd204-rx: AXI-JESD204-RX (1.07.a) at 0x44AA0000. Encoder 8b10b, width 4/4, lanes 2, jesd204-fsm.
[ 1.969070] axi-hdmi 70e00000.axi_hdmi: [drm] Cannot find any crtc or sizes
[ 1.969474] axi-jesd204-rx 44ab0000.axi-jesd204-rx-os: AXI-JESD204-RX (1.07.a) at 0x44AB0000. Encoder 8b10b, width 4/4, lanes 2, jesd204-fsm.
[ 1.987011] axi-jesd204-tx 44a90000.axi-jesd204-tx: AXI-JESD204-TX (1.06.a) at 0x44A90000. Encoder 8b10b, width 4/4, lanes 4, jesd204-fsm.
[ 2.001320] debugfs: File 'Capture' in directory 'dapm' already present!
[ 2.008027] adrv9009 spi0.1: adrv9009_probe : enter
[ 2.047505] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition initialized -> probed
[ 2.057463] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition initialized -> probed
[ 2.067397] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition initialized -> probed
[ 2.077343] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition probed -> initialized
[ 2.087371] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition probed -> initialized
[ 2.097315] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition probed -> initialized
[ 2.107264] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition initialized -> probed
[ 2.117208] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition initialized -> probed
[ 2.127140] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition initialized -> probed
[ 2.137076] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition probed -> idle
[ 2.146401] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition probed -> idle
[ 2.155711] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition probed -> idle
[ 2.165044] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition idle -> device_init
[ 2.174809] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition idle -> device_init
[ 2.184568] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition idle -> device_init
[ 2.194332] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition device_init -> link_init
[ 2.204523] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition device_init -> link_init
[ 2.214712] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition device_init -> link_init
[ 2.224917] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition link_init -> link_supported
[ 2.235384] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition link_init -> link_supported
[ 2.245840] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition link_init -> link_supported
[ 2.317897] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition link_supported -> link_pre_setup
[ 2.328796] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition link_supported -> link_pre_setup
[ 2.339692] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition link_supported -> link_pre_setup
[ 2.350864] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition link_pre_setup -> clk_sync_stage1
[ 2.361845] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition link_pre_setup -> clk_sync_stage1
[ 2.372819] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition link_pre_setup -> clk_sync_stage1
[ 2.383804] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition clk_sync_stage1 -> clk_sync_stage2
[ 2.394867] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition clk_sync_stage1 -> clk_sync_stage2
[ 2.405933] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition clk_sync_stage1 -> clk_sync_stage2
[ 2.416997] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition clk_sync_stage2 -> clk_sync_stage3
[ 2.428058] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition clk_sync_stage2 -> clk_sync_stage3
[ 2.439123] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition clk_sync_stage2 -> clk_sync_stage3
[ 2.452208] adrv9009 spi0.1: ADIHAL_resetHw
[ 2.807316] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition clk_sync_stage3 -> link_setup
[ 2.817967] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition clk_sync_stage3 -> link_setup
[ 2.828598] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition clk_sync_stage3 -> link_setup
[ 2.839559] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition link_setup -> opt_setup_stage1
[ 2.850209] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition link_setup -> opt_setup_stage1
[ 2.860956] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition link_setup -> opt_setup_stage1
[ 3.196360] random: crng init done
[ 5.994760] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition opt_setup_stage1 -> opt_setup_stage2
[ 6.006014] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition opt_setup_stage1 -> opt_setup_stage2
[ 6.017258] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition opt_setup_stage1 -> opt_setup_stage2
[ 6.028826] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition opt_setup_stage2 -> opt_setup_stage3
[ 6.040073] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition opt_setup_stage2 -> opt_setup_stage3
[ 6.051324] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition opt_setup_stage2 -> opt_setup_stage3
[ 6.062964] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition opt_setup_stage3 -> opt_setup_stage4
[ 6.074211] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition opt_setup_stage3 -> opt_setup_stage4
[ 6.085449] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition opt_setup_stage3 -> opt_setup_stage4
[ 12.601331] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition opt_setup_stage4 -> opt_setup_stage5
[ 12.612588] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition opt_setup_stage4 -> opt_setup_stage5
[ 12.623830] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition opt_setup_stage4 -> opt_setup_stage5
[ 12.635810] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition opt_setup_stage5 -> clocks_enable
[ 12.646791] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition opt_setup_stage5 -> clocks_enable
[ 12.657776] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition opt_setup_stage5 -> clocks_enable
[ 12.672981] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition clocks_enable -> link_enable
[ 12.683537] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition clocks_enable -> link_enable
[ 12.694077] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition clocks_enable -> link_enable
[ 12.786767] adrv9009 spi0.1: Link2 TAL_FRAMER_A framerStatus 0xF
[ 12.791465] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition link_enable -> link_running
[ 12.801923] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition link_enable -> link_running
[ 12.812377] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition link_enable -> link_running
[ 12.826722] adrv9009 spi0.1: adrv9009_info: adrv9009 Rev 192, Firmware 6.2.1 API version: 3.6.2.1 successfully initialized via jesd204-fsm
[ 12.837875] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:0] transition link_running -> opt_post_running_stage
[ 12.849302] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:1] transition link_running -> opt_post_running_stage
[ 12.860716] jesd204: /axi/spi@e0006000/adrv9009-phy@1,jesd204:1,parent=spi0.1: JESD204[0:2] transition link_running -> opt_post_running_stage
[ 12.872143] cf_axi_dds 44a04000.axi-adrv9009-tx-hpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.02.b) at 0x44A04000 mapped to 0x3d9eed9a, probed DDS AD9371
[ 12.905693] cf_axi_adc 44a00000.axi-adrv9009-rx-hpc: ADI AIM (10.03.\x00) at 0x44A00000 mapped to 0x77213767 probed ADC ADRV9009 as MASTER
[ 12.917416] input: gpio_keys as /devices/soc0/gpio_keys/input/input0
[ 12.922888] of_cfs_init
[ 12.924057] of_cfs_init: OK
[ 12.925935] clk: Not disabling unused clocks
[ 12.928991] ALSA device list:
[ 12.930647] #0: HDMI monitor
[ 12.945469] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: disabled.
[ 12.953124] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 12.965884] devtmpfs: mounted
[ 12.969159] Freeing unused kernel image (initmem) memory: 1024K
[ 12.977072] Run /sbin/init as init process
[ 12.979858] with arguments:
[ 12.979863] /sbin/init
[ 12.979869] with environment:
[ 12.979874] HOME=/
[ 12.979879] TERM=linux
[ 13.524265] systemd[1]: System time before build time, advancing clock.
[ 13.592823] systemd[1]: systemd 247.3-7+rpi1+deb11u6 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified)
[ 13.615555] systemd[1]: Detected architecture arm.
[ 13.657535] systemd[1]: Set hostname to <analog>.
[ 13.676828] systemd[1]: Initializing machine ID from random generator.
[ 15.643997] systemd[1]: /lib/systemd/system/plymouth-start.service:16: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed.
[ 15.993504] systemd[1]: Queued start job for default target Graphical Interface.
[ 16.002084] systemd[1]: system-getty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
[ 16.013171] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
[ 16.021516] systemd[1]: Created slice system-getty.slice.
[ 16.067422] systemd[1]: Created slice system-modprobe.slice.
[ 16.117382] systemd[1]: Created slice system-serial\x2dgetty.slice.
[ 16.167337] systemd[1]: Created slice system-systemd\x2dfsck.slice.
[ 16.217030] systemd[1]: Created slice User and Session Slice.
[ 16.266994] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[ 16.316905] systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped.
[ 16.328512] systemd[1]: Reached target Slices.
[ 16.366758] systemd[1]: Reached target Swap.
[ 16.406056] systemd[1]: Listening on Syslog Socket.
[ 16.447255] systemd[1]: Listening on fsck to fsckd communication Socket.
[ 16.496907] systemd[1]: Listening on initctl Compatibility Named Pipe.
[ 16.572794] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
[ 16.580545] systemd[1]: Listening on Journal Socket (/dev/log).
[ 16.617490] systemd[1]: Listening on Journal Socket.
[ 16.655145] systemd[1]: Listening on udev Control Socket.
[ 16.697187] systemd[1]: Listening on udev Kernel Socket.
[ 16.747495] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
[ 16.754973] systemd[1]: Condition check resulted in POSIX Message Queue File System being skipped.
[ 16.806895] systemd[1]: Mounting RPC Pipe File System...
[ 16.850246] systemd[1]: Mounting Kernel Debug File System...
[ 16.887118] systemd[1]: Condition check resulted in Kernel Trace File System being skipped.
[ 16.894772] systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped.
[ 16.908795] systemd[1]: Starting Restore / save the current clock...
[ 16.951585] systemd[1]: Starting Set the console keyboard layout...
[ 16.986816] systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped.
[ 17.001599] systemd[1]: Starting Load Kernel Module configfs...
[ 17.041266] systemd[1]: Starting Load Kernel Module drm...
[ 17.070322] systemd[1]: Starting Load Kernel Module fuse...
[ 17.100398] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped.
[ 17.108648] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
[ 17.120247] systemd[1]: Starting Journal Service...
[ 17.153097] systemd[1]: Starting Load Kernel Modules...
[ 17.197860] systemd[1]: Starting Remount Root and Kernel File Systems...
[ 17.216224] systemd[1]: Starting Coldplug All udev Devices...
[ 17.275342] systemd[1]: Mounted RPC Pipe File System.
[ 17.317578] systemd[1]: Mounted Kernel Debug File System.
[ 17.357895] systemd[1]: Finished Restore / save the current clock.
[ 17.453234] systemd[1]: modprobe@configfs.service: Succeeded.
[ 17.467503] systemd[1]: Finished Load Kernel Module configfs.
[ 17.490490] systemd[1]: modprobe@drm.service: Succeeded.
[ 17.516734] systemd[1]: Finished Load Kernel Module drm.
[ 17.560372] systemd[1]: modprobe@fuse.service: Succeeded.
[ 17.586997] systemd[1]: Finished Load Kernel Module fuse.
[ 17.628497] systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE
[ 17.658359] systemd[1]: systemd-modules-load.service: Failed with result 'exit-code'.
[ 17.687601] systemd[1]: Failed to start Load Kernel Modules.
[ 17.776828] systemd[1]: Mounting FUSE Control File System...
[ 17.809852] systemd[1]: Mounting Kernel Configuration File System...
[ 17.836762] systemd[1]: Starting Apply Kernel Variables...
[ 17.866767] EXT4-fs (mmcblk0p2): re-mounted. Quota mode: disabled.
[ 17.900719] systemd[1]: Mounted FUSE Control File System.
[ 17.942396] systemd[1]: Started Journal Service.
[ 18.270036] systemd-journald[104]: Received client request to flush runtime journal.
[ 27.916552] macb e000b000.ethernet eth0: PHY [e000b000.ethernet-ffffffff:07] driver [Marvell 88E1116R] (irq=POLL)
[ 27.916584] macb e000b000.ethernet eth0: configuring for phy/rgmii-id link mode
[ 28.333172] Adding 102396k swap on /var/swap. Priority:-2 extents:1 across:102396k SS
[ 28.887565] EXT4-fs (mmcblk0p2): resizing filesystem from 1986560 to 7106560 blocks
[ 31.058987] macb e000b000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[ 31.059030] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 49.162721] EXT4-fs (mmcblk0p2): resized filesystem to 7106560
Useful commands for the serial terminal
The below commands are to be run in the serial terminal connected to the FPGA.
To find out the IP of the FPGA board, run the following command and take the IP specified at “eth0 inet”:
~$
ifconfig
To see the IIO devices detected, run:
root@analog:~# iio_info | grep :device
iio:device0: ad7291
iio:device1: xadc
iio:device2: ad9528-1
iio:device3: adrv9009-phy
iio:device4: axi-adrv9009-rx-obs-hpc (buffer capable)
iio:device5: axi-adrv9009-tx-hpc (buffer capable)
iio:device6: axi-adrv9009-rx-hpc (buffer capable)
To use the JESD204 status utility, run:
~$
jesd_status
To power off the system, run the following command, and wait for the final message to be printed, then power off the FPGA board from the switch as well.
~$
poweroff
To reboot the system, run:
~$
reboot
Important
Even thought this is Linux, this is a persistent file systems. Care should
be taken not to corrupt the file system – please shut down things, don’t
just turn off the power switch. Depending on your monitor, the standard
power off could be hiding. You can do this from the terminal as well with
sudo shutdown -h now or the above-mentioned command for powering
off.
Using no-OS as software
Necessary files
The following files are needed for the system to boot:
HDL boot file:
system_top.xsano-OS project: projects/adrv9009
Instructions on how to build the boot files from source can be found here:
ADRV9009 HDL reference design. More HDL build details at Build an HDL project
ADRV9009 no-OS Example Project. More no-OS build details at No-OS Build Guide
Required Software
AMD Xilinx Vivado and Vitis (downloading Vitis from here will include Vivado as well)
A UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate 115200 (8N1)
Required Hardware
AMD Xilinx ZC706 FPGA board and its power supply
ADRV9009-W/PCBZ FMC evaluation board
Mini-USB cable for UART
Micro-USB cable for JTAG
(Optional) 2x SMA cable for analog signal loopback
(Optional) External clock generator
More details as to why you need these, can be found at Prerequisites.
Testing
Creating the setup
Caution
This project was tested with VADJ = 2.5 V
All the products described on this page include ESD (electrostatic discharge) sensitive devices. Electrostatic charges as high as 4000V readily accumulate on the human body or test equipment and can discharge without detection. Although the boards feature ESD protection circuitry, permanent damage may occur on devices subjected to high-energy electrostatic discharges. Therefore, proper ESD precautions are recommended to avoid performance degradation or loss of functionality. This includes removing static charge on external equipment, cables, or antennas before connecting to the device.
Follow the steps in this order, to avoid damaging the components:
Connect the ADRV9009-W/PCBZ FMC board to the ZC706 FMC HPC socket
Configure ZC706 for JTAG boot mode (SW11[1:5] in position Down, Down, Down, Down, Down, as shown in the picture below)
Connect USB UART (Mini-USB) to your host PC (J21)
Connect USB JTAG (Micro-USB) to your host PC
(Optional) Connect the external clock generator and/or loopback cables
Plug in the power supply and turn on the power switch on the FPGA board
Build and run the project using the steps shown here.
Observe console output messages on your terminal (use the first ttyUSB or COM port registered)
Console output
The following is what is printed in the serial console, after you have connected to the proper ttyUSB or COM port:
Hello
rx_clkgen: MMCM-PLL locked (122880000 Hz)
tx_clkgen: MMCM-PLL locked (61440000 Hz)
rx_os_clkgen: MMCM-PLL locked (61440000 Hz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
rx_adxcvr: OK (4915200 kHz)
ERR: /no-OS_builds/builds_main/build_xilinx_adrv9009_zc706/app/noos/drivers/axi_core/jesd204/axi_adxcvr.c:502:adxcvr_clk_enable(): adxcvr_clk_enable: CPLL RX buffer underflow error, status: 0x61
ERR: /no-OS_builds/builds_main/build_xilinx_adrv9009_zc706/app/noos/drivers/axi_core/jesd204/axi_adxcvr.c:509:adxcvr_clk_enable(): adxcvr_clk_enable: CPLL RX buffer overflow error, status: 0x61
tx_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
rx_os_adxcvr: OK (2457600 kHz)
ERR: /no-OS_builds/builds_main/build_xilinx_adrv9009_zc706/app/noos/drivers/axi_core/jesd204/axi_adxcvr.c:502:adxcvr_clk_enable(): adxcvr_clk_enable: CPLL RX buffer underflow error, status: 0x61
ERR: /no-OS_builds/builds_main/build_xilinx_adrv9009_zc706/app/noos/drivers/axi_core/jesd204/axi_adxcvr.c:509:adxcvr_clk_enable(): adxcvr_clk_enable: CPLL RX buffer overflow error, status: 0x61
talise: Device Revision 192, Firmware 6.2.1, API 3.6.2.1
talise: Calibrations completed successfully
rx_jesd status:
Link is enabled
Measured Link Clock: 122.881 MHz
Reported Link Clock: 122.880 MHz
Lane rate: 4915.200 MHz
Lane rate / 40: 122.880 MHz
LMFC rate: 3.840 MHz
Link status: DATA
SYSREF captured: Yes
SYSREF alignment error: No
tx_jesd status:
Link is enabled
Measured Link Clock: 61.440 MHz
Reported Link Clock: 61.440 MHz
Lane rate: 2457.600 MHz
Lane rate / 40: 61.440 MHz
LMFC rate: 3.840 MHz
SYNC~: deasserted
Link status: DATA
SYSREF captured: Yes
SYSREF alignment error: No
rx_os_jesd status:
Link is enabled
Measured Link Clock: 61.441 MHz
Reported Link Clock: 61.440 MHz
Lane rate: 2457.600 MHz
Lane rate / 40: 61.440 MHz
LMFC rate: 3.840 MHz
Link status: DATA
SYSREF captured: Yes
SYSREF alignment error: No
tx_dac: Successfully initialized (122879028 Hz)
rx_adc: Successfully initialized (122880554 Hz)
rx_os_adc: Successfully initialized (122879028 Hz)
Running IIOD server...
If successful, you may connect an IIO client application by:
1. Disconnecting the serial terminal you use to view this message.
2. Connecting the IIO client application using the serial backend configured as shown:
Baudrate: 921600
Data size: 8 bits
Parity: none
Stop bits: 1
Flow control: none