CN0506 + Arria 10 SoC Quickstart

This guide provides instructions on how to setup CN0506 on the Arria 10 SoC platform.

https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/arria10soc.jpg

Required Hardware

  • Arria 10 SoC (Rev. C or later) FPGA board and its power supply

  • EVAL-CN0506-FMCZ FMC evaluation board

  • SD Card 16 GB or higher

  • Mini USB Cable

  • Ethernet Cable

  • (Optional) USB keyboard & mouse and a HDMI compatible monitor

Required Software

  • microSD Card 16GB imaged with Kuiper (check out that guide on how to do it, then come back to this section)

  • A UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate 115200 (8N1)

  • iPerf3

Necessary Files

They can either be taken from the SD card – already generated by us, or you can build them manually.

In the following sections, we explain how to take them from the SD card.

The following files are needed for the system to boot and should be moved to the root of the SD Card partition:

  • Files from socfpga_arria10_socdk_cn0506_mii

    • HDL boot image: fit_spl_fpga.itb

    • Linux device tree: socfpga_arria10_socdk_sdmmc.dtb

    • U-Boot image: u-boot.img

    • Write u-boot-splx4.sfp from socfpga_arria10_socdk_cn0506_mii folder on third SD Card partition:

  • Files from socfpga_arria10_common

    • Linux Kernel image: zImage

    • Move extlinux.conf in the extlinux folder in the root of the SD Card partition (if it doesn’t exist you should create it)

      ~$
      
      lsblk
      
      NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
      sda           8:0    1 14.9G  0 disk
      ├─sda1        8:1    1    1G  0 part /media/pi/BOOT
      ├─sda2        8:2    1  7.6G  0 part /media/pi/rootfs
      └─sda3        8:3    1    4M  0 part
      
      ~$
      
      dd if="./u-boot-splx4.sfp" of="/dev/sda3" bs=512
      
      2048+0 records in
      2048+0 records out
      1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.25035 s, 4.2 MB/s
      

Additional information about how to mount and use the SD Card can be found here:

Instructions on how to manually build the boot files from source can be found here:

A10Soc Required Hardware Changes

Warning

The following rework is required on the A10SoC FPGA:

To avoid using an external clock source and fully rely on the HMC7044 clock chip, rotate the C6D/C4D caps in C5D/C3D position. (Please note: In the latest version of the board, this is now the default configuration, so this configuration step might not be needed anymore).

If LEDS V1P0_LED and VINT_LED are not on please depopulate R22M and populate R2M.

In the default configuration of the Arria10 SoC Development Kit, some of the FMC header pins are connected to a dedicated clock chip. To be compatible with the EVAL-CN0506-FMCZ, these pins need to be connected directly to the FPGA.

The connection of those pins can be changed by moving the position of four zero Ohm resistors:

  • R612 to R610

  • R613 to R611

  • R621 to R620

  • R633 to R632

These resistors can be found on the backside of the A10SoC, underneath the FMCA connector (J29). The following picture shows the required configuration to be compatible with the EVAL-CN0506-FMCZ.

https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/a10soc_rework.jpeg

Testing

Creating the setup

https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/a10soc_setup_cn0506.jpeg

Follow the steps in this order, to avoid damaging the components:

  1. Both the HPS (J26) and FPGA (J27) memory module must be installed on the A10SoC

  2. Connect the EVAL-CN0506-FMCZ FMC board to the A10SOC HPC1 FMCA (J29) socket

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/a10soc_cn0506.jpeg
  3. Insert microSD card into the card socket on the FPGA

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/a10soc_sdcard.jpeg
  4. Configure the FPGA for SD card boot mode. You can find the default position here

  5. Plug-in an Ethernet cable from your router/switch to whichever Ethernet port you prefer on the EVAL-CN0506-FMCZ

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/a10soc_eth.jpeg
  6. Connect USB UART1 (J10) to your host PC using the Mini USB cable

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/a10soc_usb.jpeg
  7. (Optional) Connect a monitor to the FPGA by HDMI, and a mouse and a keyboard

  8. Connect the power supply for the FPGA

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/a10soc_power.jpeg
  9. Open your preferred UART terminal and connect to the correct COM Port. You can find out which port to connect to by going to Device Manager > Ports (COM & LPT) and looking for ‘USB Serial Device’. If you have multiple devices, try disconnecting the USB cable from your PC and see which port disappears. After plugging it back in remember the COM number.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/dev_manager.png
  10. Set the baud rate to 115200.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/putty.png
  11. Now you can turn on the board by flipping the power switch, and also start your serial connection from your PC. You should see some boot messages like these ones:

    Linux BOOT messages
    U-Boot SPL 2021.07-16360-gee63370553-dirty (Oct 25 2024 - 03:57:19 +0100)
    FPGA: Checking FPGA configuration setting ...
    FPGA: Start to program peripheral/full bitstream ...
    FPGA: Early Release Succeeded.
    FPGA: Checking FPGA configuration setting ...
    FPGA: Start to program peripheral/full bitstream ...
    FPGA: Early Release Succeeded.
    
    U-Boot SPL 2021.07-16360-gee63370553-dirty (Oct 25 2024 - 03:57:19 +0100)
    DDRCAL: Success
    FPGA: Checking FPGA configuration setting ...
    FPGA: Start to program core bitstream ...
    Full Configuration Succeeded.
    FPGA: Enter user mode.
    WDT:   Started with servicing (10s timeout)
    Trying to boot from MMC1
    
    
    U-Boot 2021.07-16360-gee63370553-dirty (Oct 25 2024 - 03:57:19 +0100)socfpga_arria10, Build: jenkins-hdl_2023_r2-builds-hdl_2023_r2_latest_commit-projects-cn0506.a10soc-1
    
    CPU:   Altera SoCFPGA Arria 10
    BOOT:  SD/MMC External Transceiver (1.8V)
    Model: Altera SOCFPGA Arria 10
    DRAM:  1 GiB
    WDT:   Started with servicing (10s timeout)
    MMC:   dwmmc0@ff808000: 0
    Loading Environment from MMC... *** Warning - bad CRC, using default environment
    
    In:    serial
    Out:   serial
    Err:   serial
    Model: Altera SOCFPGA Arria 10
    Net:
    Warning: ethernet@ff800000 (eth0) using random MAC address - 1a:73:c1:65:db:e2
    eth0: ethernet@ff800000
    Hit any key to stop autoboot:  0
    Failed to load 'u-boot.scr'
    15031340 bytes read in 734 ms (19.5 MiB/s)
    fpga - loadable FPGA image support
    
    Usage:
    fpga [operation type] [device number] [image address] [image size]
    fpga operations:
      dump  [dev] [address] [size]  Load device to memory buffer
      info  [dev]                   list known device information
      load  [dev] [address] [size]  Load device from memory buffer
      loadb [dev] [address] [size]  Load device from bitstream buffer (Xilinx only)
      loadmk [dev] [address]        Load device generated with mkimage
            For loadmk operating on FIT format uImage address must include
            subimage unit name in the form of addr:<subimg_uname>
    switch to partitions #0, OK
    mmc0 is current device
    Scanning mmc 0:1...
    Found /extlinux/extlinux.conf
    Retrieving file: /extlinux/extlinux.conf
    162 bytes read in 7 ms (22.5 KiB/s)
    1:      Linux Default
    Retrieving file: /extlinux/../zImage
    9543072 bytes read in 469 ms (19.4 MiB/s)
    append: root=/dev/mmcblk0p2 rw rootwait earlyprintk console=ttyS0,115200n8
    Retrieving file: /extlinux/../socfpga_arria10_socdk_sdmmc.dtb
    25913 bytes read in 10 ms (2.5 MiB/s)
    Kernel image @ 0x1000000 [ 0x000000 - 0x919da0 ]
    ## Flattened Device Tree blob at 02000000
      Booting using the fdt blob at 0x2000000
      Loading Device Tree to 09ff6000, end 09fff538 ... OK
    
    Starting kernel ...
    
    Deasserting all peripheral resets
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 6.1.70-284114-g2e8908932dfd (jenkins@romlxbuild1) (arm-linux-gnueabi-gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #1063 SMP Tue Mar 18 17:12:50 EET 2025
    [    0.000000] CPU: ARMv7 Processor [414fc091] revision 1 (ARMv7), cr=10c5387d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] OF: fdt: Machine model: Altera SOCFPGA Arria 10
    [    0.000000] printk: bootconsole [earlycon0] enabled
    [    0.000000] Memory policy: Data cache writealloc
    [    0.000000] cma: Reserved 128 MiB at 0x38000000
    [    0.000000] Zone ranges:
    [    0.000000]   Normal   [mem 0x0000000000000000-0x000000002fffffff]
    [    0.000000]   HighMem  [mem 0x0000000030000000-0x000000003fffffff]
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000000000000-0x000000003fffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff]
    [    0.000000] percpu: Embedded 15 pages/cpu s30036 r8192 d23212 u61440
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 260608
    [    0.000000] Kernel command line: root=/dev/mmcblk0p2 rw rootwait earlyprintk console=ttyS0,115200n8
    [    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:off, heap alloc:off, heap free:off
    [    0.000000] Memory: 879788K/1048576K available (14336K kernel code, 1367K rwdata, 10896K rodata, 1024K init, 498K bss, 37716K reserved, 131072K cma-reserved, 131072K highmem)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
    [    0.000000] ftrace: allocating 46749 entries in 138 pages
    [    0.000000] ftrace: allocated 137 pages with 3 groups
    [    0.000000] trace event string verifier disabled
    [    0.000000] rcu: Hierarchical RCU implementation.
    [    0.000000] rcu:     RCU event tracing is enabled.
    [    0.000000]  Rude variant of Tasks RCU enabled.
    [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
    [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
    [    0.000000] L2C-310 erratum 769419 enabled
    [    0.000000] L2C-310 enabling early BRESP for Cortex-A9
    [    0.000000] L2C-310: enabling full line of zeros but not enabled in 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 0x410030c9, AUX_CTRL 0x76560001
    [    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
    [    0.000000] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604467 ns
    [    0.000000] sched_clock: 32 bits at 100MHz, resolution 10ns, wraps every 21474836475ns
    [    0.007886] Switching to timer-based delay loop, resolution 10ns
    [    0.014174] Console: colour dummy device 80x30
    [    0.018628] Calibrating delay loop (skipped), value calculated using timer frequency.. 200.00 BogoMIPS (lpj=1000000)
    [    0.029113] CPU: Testing write buffer coherency: ok
    [    0.034002] CPU0: Spectre v2: using BPIALL workaround
    [    0.039031] pid_max: default: 32768 minimum: 301
    [    0.043763] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
    [    0.051052] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
    [    0.059502] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
    [    0.065839] cblist_init_generic: Setting adjustable number of callback queues.
    [    0.073053] cblist_init_generic: Setting shift to 1 and lim to 1.
    [    0.079225] Setting up static identity map for 0x100000 - 0x100060
    [    0.085521] rcu: Hierarchical SRCU implementation.
    [    0.090292] rcu:     Max phase no-delay instances is 1000.
    [    0.095857] smp: Bringing up secondary CPUs ...
    [    0.101028] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
    [    0.101045] CPU1: Spectre v2: using BPIALL workaround
    [    0.111808] smp: Brought up 1 node, 2 CPUs
    [    0.115893] SMP: Total of 2 processors activated (400.00 BogoMIPS).
    [    0.122150] CPU: All CPU(s) started in SVC mode.
    [    0.127342] devtmpfs: initialized
    [    0.134179] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    [    0.142002] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.151819] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
    [    0.164319] NET: Registered PF_NETLINK/PF_ROUTE protocol family
    [    0.171994] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.179693] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    [    0.187684] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [    0.222554] SCSI subsystem initialized
    [    0.226456] usbcore: registered new interface driver usbfs
    [    0.231993] usbcore: registered new interface driver hub
    [    0.237308] usbcore: registered new device driver usb
    [    0.242479] usb_phy_generic soc:usbphy: supply vcc not found, using dummy regulator
    [    0.250225] usb_phy_generic soc:usbphy: dummy supplies not allowed for exclusive requests
    [    0.258668] mc: Linux media interface: v0.10
    [    0.262990] videodev: Linux video capture interface: v2.00
    [    0.268513] pps_core: LinuxPPS API ver. 1 registered
    [    0.273491] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.282602] PTP clock support registered
    [    0.286759] jesd204: found 0 devices and 0 topologies
    [    0.291836] FPGA manager framework
    [    0.295292] Advanced Linux Sound Architecture Driver Initialized.
    [    0.308463] vgaarb: loaded
    [    0.320323] clocksource: Switched to clocksource timer1
    [    0.355667] NET: Registered PF_INET protocol family
    [    0.360765] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
    [    0.369586] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
    [    0.377941] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
    [    0.385668] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
    [    0.393440] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
    [    0.400832] TCP: Hash tables configured (established 8192 bind 8192)
    [    0.407281] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
    [    0.413938] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
    [    0.421152] NET: Registered PF_UNIX/PF_LOCAL protocol family
    [    0.430588] RPC: Registered named UNIX socket transport module.
    [    0.436489] RPC: Registered udp transport module.
    [    0.441191] RPC: Registered tcp transport module.
    [    0.445872] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.452297] PCI: CLS 0 bytes, default 64
    [    0.463625] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
    [    0.472697] workingset: timestamp_bits=30 max_order=18 bucket_order=0
    [    0.483661] NFS: Registering the id_resolver key type
    [    0.488730] Key type id_resolver registered
    [    0.492933] Key type id_legacy registered
    [    0.497556] ntfs: driver 2.1.32 [Flags: R/W].
    [    0.502059] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
    [    0.508503] fuse: init (API version 7.37)
    [    0.512978] bounce: pool size: 64 pages
    [    0.516860] io scheduler mq-deadline registered
    [    0.521395] io scheduler kyber registered
    [    0.535672] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
    [    0.542940] printk: console [ttyS0] disabled
    [    0.547247] ffc02100.serial1: ttyS0 at MMIO 0xffc02100 (irq = 30, base_baud = 6250000) is a 16550A
    [    0.556246] printk: console [ttyS0] enabled
    [    0.556246] printk: console [ttyS0] enabled
    [    0.564598] printk: bootconsole [earlycon0] disabled
    [    0.564598] printk: bootconsole [earlycon0] disabled
    [    0.576071] brd: module loaded
    [    0.579538] SPI driver spidev has no spi_device_id for adi,swspi
    [    0.587711] CAN device driver interface
    [    0.591837] socfpga-dwmac ff800000.ethernet: IRQ eth_wake_irq not found
    [    0.598429] socfpga-dwmac ff800000.ethernet: IRQ eth_lpi not found
    [    0.604736] socfpga-dwmac ff800000.ethernet: No sysmgr-syscon node found
    [    0.611425] socfpga-dwmac ff800000.ethernet: Unable to parse OF data
    [    0.617754] socfpga-dwmac: probe of ff800000.ethernet failed with error -524
    [    0.624927] socfpga-dwmac ff802000.ethernet: IRQ eth_wake_irq not found
    [    0.631532] socfpga-dwmac ff802000.ethernet: IRQ eth_lpi not found
    [    0.637777] socfpga-dwmac ff802000.ethernet: No sysmgr-syscon node found
    [    0.644462] socfpga-dwmac ff802000.ethernet: Unable to parse OF data
    [    0.650795] socfpga-dwmac: probe of ff802000.ethernet failed with error -524
    [    0.657901] socfpga-dwmac ff804000.ethernet: IRQ eth_wake_irq not found
    [    0.664500] socfpga-dwmac ff804000.ethernet: IRQ eth_lpi not found
    [    0.670749] socfpga-dwmac ff804000.ethernet: No sysmgr-syscon node found
    [    0.677422] socfpga-dwmac ff804000.ethernet: Unable to parse OF data
    [    0.683766] socfpga-dwmac: probe of ff804000.ethernet failed with error -524
    [    0.690956] stmmaceth ff800000.ethernet: IRQ eth_wake_irq not found
    [    0.697199] stmmaceth ff800000.ethernet: IRQ eth_lpi not found
    [    0.703294] stmmaceth ff800000.ethernet: User ID: 0x10, Synopsys ID: 0x37
    [    0.710064] stmmaceth ff800000.ethernet:     DWMAC1000
    [    0.714945] stmmaceth ff800000.ethernet: DMA HW capability register supported
    [    0.722060] stmmaceth ff800000.ethernet: RX Checksum Offload Engine supported
    [    0.729163] stmmaceth ff800000.ethernet: COE Type 2
    [    0.734026] stmmaceth ff800000.ethernet: TX Checksum insertion supported
    [    0.740703] stmmaceth ff800000.ethernet: Enhanced/Alternate descriptors
    [    0.747287] stmmaceth ff800000.ethernet: Enabled extended descriptors
    [    0.753704] stmmaceth ff800000.ethernet: Ring mode enabled
    [    0.759166] stmmaceth ff800000.ethernet: Enable RX Mitigation via HW Watchdog Timer
    [    0.766812] stmmaceth ff800000.ethernet: device MAC address 96:da:6f:c7:48:ee
    [    0.782381] Micrel KSZ9031 Gigabit PHY stmmac-0:07: attached PHY driver (mii_bus:phy_addr=stmmac-0:07, irq=POLL)
    [    0.793404] stmmaceth ff802000.ethernet: IRQ eth_wake_irq not found
    [    0.799667] stmmaceth ff802000.ethernet: IRQ eth_lpi not found
    [    0.806070] stmmaceth ff802000.ethernet: User ID: 0x10, Synopsys ID: 0x37
    [    0.812965] stmmaceth ff802000.ethernet:     DWMAC1000
    [    0.817843] stmmaceth ff802000.ethernet: DMA HW capability register supported
    [    0.825017] stmmaceth ff802000.ethernet: RX Checksum Offload Engine supported
    [    0.832177] stmmaceth ff802000.ethernet: COE Type 2
    [    0.837044] stmmaceth ff802000.ethernet: TX Checksum insertion supported
    [    0.843742] stmmaceth ff802000.ethernet: Enhanced/Alternate descriptors
    [    0.850339] stmmaceth ff802000.ethernet: Enabled extended descriptors
    [    0.856752] stmmaceth ff802000.ethernet: Ring mode enabled
    [    0.862219] stmmaceth ff802000.ethernet: Enable RX Mitigation via HW Watchdog Timer
    [    0.869871] stmmaceth ff802000.ethernet: device MAC address da:d3:f6:61:c7:68
    [    0.885028] ADIN1300 stmmac-1:01: attached PHY driver (mii_bus:phy_addr=stmmac-1:01, irq=POLL)
    [    0.894471] stmmaceth ff804000.ethernet: IRQ eth_wake_irq not found
    [    0.900742] stmmaceth ff804000.ethernet: IRQ eth_lpi not found
    [    0.906877] stmmaceth ff804000.ethernet: User ID: 0x10, Synopsys ID: 0x37
    [    0.913678] stmmaceth ff804000.ethernet:     DWMAC1000
    [    0.918537] stmmaceth ff804000.ethernet: DMA HW capability register supported
    [    0.925659] stmmaceth ff804000.ethernet: RX Checksum Offload Engine supported
    [    0.932779] stmmaceth ff804000.ethernet: COE Type 2
    [    0.937636] stmmaceth ff804000.ethernet: TX Checksum insertion supported
    [    0.944314] stmmaceth ff804000.ethernet: Enhanced/Alternate descriptors
    [    0.950905] stmmaceth ff804000.ethernet: Enabled extended descriptors
    [    0.957316] stmmaceth ff804000.ethernet: Ring mode enabled
    [    0.962784] stmmaceth ff804000.ethernet: Enable RX Mitigation via HW Watchdog Timer
    [    0.970429] stmmaceth ff804000.ethernet: device MAC address 12:df:a0:65:b2:66
    [    0.985347] ADIN1300 stmmac-2:02: attached PHY driver (mii_bus:phy_addr=stmmac-2:02, irq=POLL)
    [    0.994906] usbcore: registered new interface driver asix
    [    1.000361] usbcore: registered new interface driver ax88179_178a
    [    1.006450] usbcore: registered new interface driver cdc_ether
    [    1.012292] usbcore: registered new interface driver net1080
    [    1.017945] usbcore: registered new interface driver cdc_subset
    [    1.023871] usbcore: registered new interface driver zaurus
    [    1.029463] usbcore: registered new interface driver cdc_ncm
    [    1.035129] usbcore: registered new interface driver r8153_ecm
    [    1.041486] dwc2 ffb00000.usb: supply vusb_d not found, using dummy regulator
    [    1.048711] dwc2 ffb00000.usb: supply vusb_a not found, using dummy regulator
    [    1.056092] dwc2 ffb00000.usb: EPs: 16, dedicated fifos, 8064 entries in SPRAM
    [    1.063837] dwc2 ffb00000.usb: DWC OTG Controller
    [    1.068543] dwc2 ffb00000.usb: new USB bus registered, assigned bus number 1
    [    1.075611] dwc2 ffb00000.usb: irq 35, io mem 0xffb00000
    [    1.081047] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
    [    1.089280] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    1.096486] usb usb1: Product: DWC OTG Controller
    [    1.101187] usb usb1: Manufacturer: Linux 6.1.70-284114-g2e8908932dfd dwc2_hsotg
    [    1.108550] usb usb1: SerialNumber: ffb00000.usb
    [    1.113625] hub 1-0:1.0: USB hub found
    [    1.117388] hub 1-0:1.0: 1 port detected
    [    1.122429] usbcore: registered new interface driver uas
    [    1.127791] usbcore: registered new interface driver usb-storage
    [    1.133873] usbcore: registered new interface driver usbserial_generic
    [    1.140416] usbserial: USB Serial support registered for generic
    [    1.146419] usbcore: registered new interface driver ftdi_sio
    [    1.152164] usbserial: USB Serial support registered for FTDI USB Serial Device
    [    1.159506] usbcore: registered new interface driver upd78f0730
    [    1.165432] usbserial: USB Serial support registered for upd78f0730
    [    1.172519] SPI driver ads7846 has no spi_device_id for ti,tsc2046
    [    1.178677] SPI driver ads7846 has no spi_device_id for ti,ads7843
    [    1.184846] SPI driver ads7846 has no spi_device_id for ti,ads7845
    [    1.191007] SPI driver ads7846 has no spi_device_id for ti,ads7873
    [    1.197284] i2c_dev: i2c /dev entries driver
    [    1.201905] usbcore: registered new interface driver uvcvideo
    [    1.209315] Synopsys Designware Multimedia Card Interface Driver
    [    1.215565] dw_mmc ff808000.dwmmc0: IDMAC supports 32-bit address mode.
    [    1.222237] ledtrig-cpu: registered to indicate activity on CPUs
    [    1.228354] usbcore: registered new interface driver usbhid
    [    1.233922] usbhid: USB HID core driver
    [    1.237932] SPI driver fb_seps525 has no spi_device_id for syncoam,seps525
    [    1.248616] SPI driver adis16475 has no spi_device_id for adi,adis16470
    [    1.255232] SPI driver adis16475 has no spi_device_id for adi,adis16475-1
    [    1.261998] SPI driver adis16475 has no spi_device_id for adi,adis16475-2
    [    1.268755] SPI driver adis16475 has no spi_device_id for adi,adis16475-3
    [    1.275517] SPI driver adis16475 has no spi_device_id for adi,adis16477-1
    [    1.282286] SPI driver adis16475 has no spi_device_id for adi,adis16477-2
    [    1.289043] SPI driver adis16475 has no spi_device_id for adi,adis16477-3
    [    1.295806] SPI driver adis16475 has no spi_device_id for adi,adis16465-1
    [    1.302568] SPI driver adis16475 has no spi_device_id for adi,adis16465-2
    [    1.309323] SPI driver adis16475 has no spi_device_id for adi,adis16465-3
    [    1.316085] SPI driver adis16475 has no spi_device_id for adi,adis16467-1
    [    1.322846] SPI driver adis16475 has no spi_device_id for adi,adis16467-2
    [    1.329601] SPI driver adis16475 has no spi_device_id for adi,adis16467-3
    [    1.336366] SPI driver adis16475 has no spi_device_id for adi,adis16500
    [    1.342959] SPI driver adis16475 has no spi_device_id for adi,adis16501
    [    1.349541] SPI driver adis16475 has no spi_device_id for adi,adis16505-1
    [    1.356308] SPI driver adis16475 has no spi_device_id for adi,adis16505-2
    [    1.363071] SPI driver adis16475 has no spi_device_id for adi,adis16505-3
    [    1.369826] SPI driver adis16475 has no spi_device_id for adi,adis16507-1
    [    1.376588] SPI driver adis16475 has no spi_device_id for adi,adis16507-2
    [    1.383350] SPI driver adis16475 has no spi_device_id for adi,adis16507-3
    [    1.390106] SPI driver adis16475 has no spi_device_id for adi,adis16575-2
    [    1.396867] SPI driver adis16475 has no spi_device_id for adi,adis16575-3
    [    1.403632] SPI driver adis16475 has no spi_device_id for adi,adis16576-2
    [    1.410394] SPI driver adis16475 has no spi_device_id for adi,adis16576-3
    [    1.417150] SPI driver adis16475 has no spi_device_id for adi,adis16577-2
    [    1.423911] SPI driver adis16475 has no spi_device_id for adi,adis16577-3
    [    1.431983] dw_mmc ff808000.dwmmc0: Using internal DMA controller.
    [    1.432062] fpga_manager fpga0: SoCFPGA Arria10 FPGA Manager registered
    [    1.438155] dw_mmc ff808000.dwmmc0: Version ID is 270a
    [    1.445356] usbcore: registered new interface driver snd-usb-audio
    [    1.449914] dw_mmc ff808000.dwmmc0: DW MMC controller at irq 37,32 bit host data width,1024 deep fifo
    [    1.457769] NET: Registered PF_INET6 protocol family
    [    1.465395] mmc_host mmc0: card is polling.
    [    1.475492] Segment Routing with IPv6
    [    1.479188] In-situ OAM (IOAM) with IPv6
    [    1.483197] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [    1.487002] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
    [    1.489595] NET: Registered PF_PACKET protocol family
    [    1.503614] NET: Registered PF_KEY protocol family
    [    1.508574] can: controller area network core
    [    1.513005] NET: Registered PF_CAN protocol family
    [    1.517789] can: raw protocol
    [    1.520766] can: broadcast manager protocol
    [    1.524945] can: netlink gateway - max_hops=1
    [    1.529347] 8021q: 802.1Q VLAN Support v1.8
    [    1.533568] NET: Registered PF_IEEE802154 protocol family
    [    1.538984] Key type dns_resolver registered
    [    1.543337] ThumbEE CPU extension supported.
    [    1.547604] Registering SWP/SWPB emulation handler
    [    1.559164] at24 0-0051: supply vcc not found, using dummy regulator
    [    1.566770] at24 0-0051: 4096 byte 24c32 EEPROM, writable, 32 bytes/write
    [    1.576088] rtc-ds1307 0-0068: SET TIME!
    [    1.584307] rtc-ds1307 0-0068: registered as rtc0
    [    1.590550] ltc2978: probe of 0-005c failed with error -121
    [    1.596434] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
    [    1.606208] mmc0: new high speed SDHC card at address 0001
    [    1.612405] mmcblk0: mmc0:0001 USD 29.1 GiB
    [    1.618943] dma-pl330 ffda1000.pdma: Loaded driver for PL330 DMAC-341330
    [    1.625683] dma-pl330 ffda1000.pdma:         DBUFF-512x8bytes Num_Chans-8 Num_Peri-32 Num_Events-8
    [    1.634445] altr_a10sr_gpio altr_a10sr_gpio.0.auto: DMA mask not set
    [    1.640988]  mmcblk0: p1 p2 p3
    [    1.643878] of_cfs_init
    [    1.646514] of_cfs_init: OK
    [    1.649521] ALSA device list:
    [    1.652511]   No soundcards found.
    [    1.656129] dw-apb-uart ffc02100.serial1: forbid DMA for kernel console
    [    1.893363] EXT4-fs (mmcblk0p2): recovery complete
    [    1.899314] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: disabled.
    [    1.908225] VFS: Mounted root (ext4 filesystem) on device 179:2.
    [    1.921891] devtmpfs: mounted
    [    1.928864] Freeing unused kernel image (initmem) memory: 1024K
    [    1.935297] Run /sbin/init as init process
    [    2.464741] systemd[1]: System time before build time, advancing clock.
    [    2.530458] 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)
    [    2.554287] systemd[1]: Detected architecture arm.
    
    Welcome to Kuiper GNU/Linux 11.2 (bullseye)!
    
    [    2.601448] systemd[1]: Set hostname to <analog>.
    [    4.247459] 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.
    [    4.482845] systemd[1]: Queued start job for default target Graphical Interface.
    [    6.610319] random: crng init done
    [    6.614043] systemd[1]: system-getty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
    [    6.626383] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
    [    6.636065] systemd[1]: Created slice system-getty.slice.
    [  OK  ] Created slice system-getty.slice.
    [    6.671227] systemd[1]: Created slice system-modprobe.slice.
    [  OK  ] Created slice system-modprobe.slice.
    [    6.711179] systemd[1]: Created slice system-serial\x2dgetty.slice.
    [  OK  ] Created slice system-serial\x2dgetty.slice.
    [    6.751159] systemd[1]: Created slice system-systemd\x2dfsck.slice.
    [  OK  ] Created slice system-systemd\x2dfsck.slice.
    [    6.790947] systemd[1]: Created slice User and Session Slice.
    [  OK  ] Created slice User and Session Slice.
    [    6.830754] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [  OK  ] Started Forward Password R…uests to Wall Directory Watch.
    [    6.870726] systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped.
    [    6.883144] systemd[1]: Reached target Slices.
    [  OK  ] Reached target Slices.
    [    6.920553] systemd[1]: Reached target Swap.
    [  OK  ] Reached target Swap.
    [    6.959581] systemd[1]: Listening on Syslog Socket.
    [  OK  ] Listening on Syslog Socket.
    [    6.991013] systemd[1]: Listening on fsck to fsckd communication Socket.
    [  OK  ] Listening on fsck to fsckd communication Socket.
    [    7.030737] systemd[1]: Listening on initctl Compatibility Named Pipe.
    [  OK  ] Listening on initctl Compatibility Named Pipe.
    [    7.094544] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
    [    7.103372] systemd[1]: Listening on Journal Socket (/dev/log).
    [  OK  ] Listening on Journal Socket (/dev/log).
    [    7.141244] systemd[1]: Listening on Journal Socket.
    [  OK  ] Listening on Journal Socket.
    [    7.188730] systemd[1]: Listening on udev Control Socket.
    [  OK  ] Listening on udev Control Socket.
    [    7.221017] systemd[1]: Listening on udev Kernel Socket.
    [  OK  ] Listening on udev Kernel Socket.
    [    7.261154] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
    [    7.269737] systemd[1]: Condition check resulted in POSIX Message Queue File System being skipped.
    [    7.320844] systemd[1]: Mounting RPC Pipe File System...
            Mounting RPC Pipe File System...
    [    7.363629] systemd[1]: Mounting Kernel Debug File System...
            Mounting Kernel Debug File System...
    [    7.403585] systemd[1]: Mounting Kernel Trace File System...
            Mounting Kernel Trace File System...
    [    7.440778] systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped.
    [    7.455153] systemd[1]: Starting Restore / save the current clock...
            Starting Restore / save the current clock...
    [    7.494418] systemd[1]: Starting Set the console keyboard layout...
            Starting Set the console keyboard layout...
    [    7.530838] systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped.
    [    7.601435] systemd[1]: Starting Load Kernel Module configfs...
            Starting Load Kernel Module configfs...
    [    7.644157] systemd[1]: Starting Load Kernel Module drm...
            Starting Load Kernel Module drm...
    [    7.659519] systemd[1]: Starting Load Kernel Module fuse...
            Starting Load Kernel Module fuse...
    [    7.713448] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped.
    [    7.722893] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
    [    7.791219] systemd[1]: Starting Journal Service...
            Starting Journal Service...
    [    7.826144] systemd[1]: Starting Load Kernel Modules...
            Starting Load Kernel Modules...
    [    7.863810] systemd[1]: Starting Remount Root and Kernel File Systems...
            Starting Remount Root and Kernel File Systems...
    [    7.913925] systemd[1]: Starting Coldplug All udev Devices...
            Starting Coldplug All udev Devices...
    [    7.958839] systemd[1]: Mounted RPC Pipe File System.
    [  OK  ] Mounted RPC Pipe File System.
    [    7.993267] systemd[1]: Mounted Kernel Debug File System.
    [  OK  ] Mounted Kernel Debug File System.
    [    8.021266] systemd[1]: Started Journal Service.
    [  OK  ] Started Journal Service.
    [  OK  ] Mounted Kernel Trace File System.
    [  OK  ] Finished Restore / save the current clock.
    [  OK  ] Finished Set the console keyboard layout.
    [    8.145723] EXT4-fs (mmcblk0p2): re-mounted. Quota mode: disabled.
    [  OK  ] Finished Load Kernel Module configfs.
    [  OK  ] Finished Load Kernel Module drm.
    [  OK  ] Finished Load Kernel Module fuse.
    [FAILED] Failed to start Load Kernel Modules.
    See 'systemctl status systemd-modules-load.service' for details.
    [  OK  ] Finished Remount Root and Kernel File Systems.
            Mounting FUSE Control File System...
            Mounting Kernel Configuration File System...
            Starting Flush Journal to Persistent Storage...
            Starting Load/Save Random Seed...
    [    8.524242] systemd-journald[106]: Received client request to flush runtime journal.
            Starting Apply Kernel Variables...
    [    8.571011] systemd-journald[106]: File /var/log/journal/bd7a006966074fa6823f3c7cda1c5662/system.journal corrupted or uncleanly shut down, renaming and replacing.
            Starting Create System Users...
    [  OK  ] Finished Coldplug All udev Devices.
    [  OK  ] Mounted FUSE Control File System.
    [  OK  ] Mounted Kernel Configuration File System.
    [  OK  ] Finished Flush Journal to Persistent Storage.
    [  OK  ] Finished Load/Save Random Seed.
    [  OK  ] Finished Apply Kernel Variables.
    [  OK  ] Finished Create System Users.
            Starting Helper to synchronize boot up for ifupdown...
            Starting Create Static Device Nodes in /dev...
            Starting Wait for udev To …plete Device Initialization...
    [  OK  ] Finished Helper to synchronize boot up for ifupdown.
    [  OK  ] Finished Create Static Device Nodes in /dev.
    [  OK  ] Reached target Local File Systems (Pre).
            Starting Rule-based Manage…for Device Events and Files...
    [  OK  ] Started Rule-based Manager for Device Events and Files.
            Starting Show Plymouth Boot Screen...
    [  OK  ] Started Show Plymouth Boot Screen.
    [  OK  ] Started Forward Password R…s to Plymouth Directory Watch.
    [  OK  ] Reached target Local Encrypted Volumes.
    [  OK  ] Reached target Hardware activated USB gadget.
            Starting Load Kernel Modules...
    [  OK  ] Found device /dev/ttyS0.
    [FAILED] Failed to start Load Kernel Modules.
    See 'systemctl status systemd-modules-load.service' for details.
    [  OK  ] Found device /dev/disk/by-partuuid/a22286d2-01.
            Starting File System Check…isk/by-partuuid/a22286d2-01...
    [  OK  ] Started File System Check Daemon to report status.
    [  OK  ] Finished Wait for udev To Complete Device Initialization.
    [  OK  ] Finished File System Check…/disk/by-partuuid/a22286d2-01.
            Mounting /boot...
    [  OK  ] Mounted /boot.
    [  OK  ] Reached target Local File Systems.
            Starting Set console font and keymap...
            Starting Raise network interfaces...
            Starting Preprocess NFS configuration...
            Starting Tell Plymouth To Write Out Runtime Data...
            Starting Create Volatile Files and Directories...
    [  OK  ] Finished Set console font and keymap.
    [  OK  ] Finished Tell Plymouth To Write Out Runtime Data.
    [  OK  ] Finished Preprocess NFS configuration.
    [  OK  ] Reached target NFS client services.
    [  OK  ] Reached target Remote File Systems (Pre).
    [  OK  ] Reached target Remote File Systems.
    [  OK  ] Finished Create Volatile Files and Directories.
            Starting Network Time Synchronization...
            Starting Update UTMP about System Boot/Shutdown...
    [  OK  ] Finished Update UTMP about System Boot/Shutdown.
    [  OK  ] Started Network Time Synchronization.
    [  OK  ] Reached target System Time Set.
    [  OK  ] Reached target System Time Synchronized.
            Starting Load Kernel Modules...
    [  OK  ] Finished Raise network interfaces.
    [FAILED] Failed to start Load Kernel Modules.
    See 'systemctl status systemd-modules-load.service' for details.
    [  OK  ] Reached target System Initialization.
    [  OK  ] Started CUPS Scheduler.
    [  OK  ] Started Daily apt download activities.
    [  OK  ] Started Daily apt upgrade and clean activities.
    [  OK  ] Started Periodic ext4 Onli…ata Check for All Filesystems.
    [  OK  ] Started Discard unused blocks once a week.
    [  OK  ] Started Daily rotation of log files.
    [  OK  ] Started Daily man-db regeneration.
    [  OK  ] Started Daily Cleanup of Temporary Directories.
    [  OK  ] Reached target Paths.
    [  OK  ] Reached target Timers.
    [  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
    [  OK  ] Listening on CUPS Scheduler.
    [  OK  ] Listening on D-Bus System Message Bus Socket.
    [  OK  ] Listening on Erlang Port Mapper Daemon Activation Socket.
    [  OK  ] Listening on GPS (Global P…ioning System) Daemon Sockets.
    [  OK  ] Listening on triggerhappy.socket.
    [  OK  ] Reached target Sockets.
    [  OK  ] Reached target Basic System.
            Starting Analog Devices power up/down sequence...
            Starting Avahi mDNS/DNS-SD Stack...
    [  OK  ] Started Regular background program processing daemon.
    [  OK  ] Started D-Bus System Message Bus.
            Starting dphys-swapfile - …unt, and delete a swap file...
            Starting Remove Stale Onli…t4 Metadata Check Snapshots...
    [  OK  ] Started fan-control.
            Starting Fix DP audio and X11 for Jupiter...
            Starting Creating IIOD Context Attributes......
            Starting Authorization Manager...
            Starting DHCP Client Daemon...
            Starting LSB: Switch to on…nless shift key is pressed)...
            Starting LSB: rng-tools (Debian variant)...
            Starting System Logging Service...
            Starting User Login Management...
            Starting triggerhappy global hotkey daemon...
            Starting Disk Manager...
            Starting WPA supplicant...
    [  OK  ] Started triggerhappy global hotkey daemon.
    [  OK  ] Started System Logging Service.
    [  OK  ] Finished Fix DP audio and X11 for Jupiter.
    [  OK  ] Started DHCP Client Daemon.
    [  OK  ] Started LSB: rng-tools (Debian variant).
    [  OK  ] Started LSB: Switch to ond…(unless shift key is pressed).
    [  OK  ] Started Avahi mDNS/DNS-SD Stack.
    [  OK  ] Started WPA supplicant.
    [  OK  ] Reached target Network.
    [  OK  ] Reached target Network is Online.
            Starting CUPS Scheduler...
    [  OK  ] Started Erlang Port Mapper Daemon.
            Starting Load USB gadget scheme...
            Starting HTTP based time synchronization tool...
            Starting Internet superserver...
            Starting /etc/rc.local Compatibility...
            Starting OpenBSD Secure Shell server...
            Starting Permit User Sessions...
    [  OK  ] Finished dphys-swapfile - …mount, and delete a swap file.
    [  OK  ] Finished Load USB gadget scheme.
    [  OK  ] Started /etc/rc.local Compatibility.
    [  OK  ] Started Authorization Manager.
    [  OK  ] Found device /dev/ttyGS0.
    [  OK  ] Started Internet superserver.
    [  OK  ] Started HTTP based time synchronization tool.
    [  OK  ] Started User Login Management.
            Mounting Mount FunctionFS instance...
            Starting Modem Manager...
    [  OK  ] Started Unattended Upgrades Shutdown.
    [  OK  ] Finished Permit User Sessions.
    [  OK  ] Mounted Mount FunctionFS instance.
            Starting Light Display Manager...
            Starting Hold until boot process finishes up...
    [  OK  ] Started CUPS Scheduler.
    [  OK  ] Started Make remote CUPS printers available locally.
    [  OK  ] Finished Analog Devices power up/down sequence.
    [FAILED] Failed to start VNC Server for X11.
    
    Raspbian GNU/Linux 11 analog ttyS0
    
    analog login: root (automatic login)
    
    Linux analog 6.1.70-284114-g2e8908932dfd #1063 SMP Tue Mar 18 17:12:50 EET 2025 armv7l
    
    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.
    
    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    

Login Information

user: analog password: analog

Useful commands

The commands below can be run in the serial terminal connected to the FPGA. They will help you learn more about the system you are using.

  • To find out the IP of the FPGA board, run the following command and take the IP specified at “eth0 inet” or “eth1 inet” (depending on which of the two Ethernet ports on the EVAL-CN0506-FMCZ you connected to):

    ~$
    
    ifconfig
    

    After finding out the IP address of your board, you can also connect to it through SSH from another computer on the same network using the command:

    ~$
    
    ssh analog@<board_ip_address>
    
  • To see the IIO devices detected, run:

    ~$
    
    iio_info | grep iio:device
    
  • 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 though this is Linux, this is a persistent file system. 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.

Performing iPerf3

  1. Make sure you have installed your favorite terminal emulator (in this case, TeraTerm) on your Host PC.

  2. Connect the UART USB Cable connection from A10SoC to your Host PC. Your Host PC should have a CP2103 USB to UART Bridge Controller driver installed or up to date. This is important so your PC can communicate with the FPGA board.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/1_uart_installation.png
  3. Connect an Ethernet Cable connection from CN0506 M1 to your Ethernet-capable Host PC. Make sure the Host PC is also connected to the Internet using Wi-Fi or Ethernet.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/pc_connect.jpg
  4. Bridge network connections so we can install necessary tools such as iPerf3 for A10SoC through the Internet. Go to Control Panel > Network and Internet > Network Connections. To create a Network Bridge between your Wi-Fi/Ethernet Internet and CN0506 Ethernet, select the two network connections, right-click, and select “Bridge Connections.”

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/2_bridge_installation.png
  5. Launch TeraTerm and make a new serial connection with the designated COM port. Click Serial, choose the correct COM port number, then click OK.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/3_tera_term_serial.png
  6. Change the baud rate from 9600 to 115200. Go to Setup > Serial Port… A dialog box will pop up and then change the Speed to 115200. Click “New setting.”

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/4_serial_config.png https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/5_serial_config_baud_115200.png
  7. Install iPerf3 on your Linux machine. Enter in the terminal line, then write and enter

    apt-get install iperf3
    
    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/6_aptget_install_iperf3.png
  8. The performance test will also require your Host PC to be the iPerf3 server and the carrier is the client. The server should be run first before the client. Install iPerf3 on your Host PC. Go to the Downloads page and download the necessary files depending on your Host PC.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/7_windows_download_iperf3.png
  9. Open your Host PC’s terminal (e.g. Windows PowerShell) and navigate through the iPerf3 directory.

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/8_ms_powershell.png
  10. Get the IP address of the connected Ethernet port of your Host PC using the command: “ipconfig”. Take note of the IP address of the connected Ethernet cable because this will vary from time to time. In this case, we have the IP address 169.254.6.62 of “Ethernet adapter Ethernet” which corresponds to your Host PC’s Ethernet port.

    ipconfig
    
    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/9_ipconfig.png
  11. In your UART terminal (TeraTerm), get the IP address of the connected Ethernet port of CN0506. Use the command “ip addr”. Take note of the IP address of the connected Ethernet cable because this will vary from time to time. In this case, we have the IP address 169.254.7.196 of “eth1” which corresponds to the M1 Ethernet port of CN0506.

    ip addr
    
    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/10_ipaddr.png
  12. In your Host PC’s terminal. run the iperf3 as the server. In this case of Windows PowerShell, use the command:

    .\iperf3.exe -s -B 169.254.6.62
    
    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/11_iperf_exe_b.png

    This will run the iperf3 from the PC as the server (-s) and bound to its Ethernet port having the address 169.254.6.62. It is acceptable to keep the server running since this will wait for connections from the client.

  13. In your UART terminal (TeraTerm), you will need to run the iperf3 client for each Ethernet port so you can verify its performance by using “iperf3 -c <IP address of server> -B <IP address of client>. Enter the following commands:

    iperf3 -c 169.254.6.62 -B 169.254.7.196
    
    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/12_performance_run_b_s.png
  14. Use the command “-R” to reverse the direction of the performance test.

    iperf3 -c 169.254.6.62 -B 169.254.7.196 -R
    
    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0506-fmcz/images/performance_run_b_s_r.png