Data transfer from PC to Arria 10 GX and ADRV9371-W/PCBZ

Hello,

My current setup comprises an Arria 10 GX development board connecting to ADRV9371-W/PCBZ via FMC connector.

I have completed setting up the Quartus project for no-OS on the a10gx by following this guide https://wiki.analog.com/resources/eval/user-guides/mykonos/no-os-setup#intelaltera_platform

The project was compiled without issue, and the headless application ran fine.

Now, I am looking into a best way to send data from a PC to ADRV9371-W/PCBZ for transmitting out of the SMA ports.

Based on what I have seen in the Platform Designer, I probably can use the Ethernet port RJ-45 on the a10gx to communicate with the PC. I am looking for a sample code to transfer data utilizing this connection. 

Any suggestion on how to accomplish this would be greatly appreciate.

Thanks

Nick

  • 0
    •  Analog Employees 
    on Oct 8, 2020 10:12 AM 3 months ago in reply to Nickbiz

    That's correct, you should be able to use the tools mentioned by Travis. By the way, you can find there prebuilt files for a10gx_adrv9371x too: https://wiki.analog.com/resources/tools-software/linux-drivers/platforms/nios2#adrv9371

    The instructions for building your own image might be a little bit outdated - we'll update them soon.

    Dragos

  • Hi Dragos,

    I have tried the prebuilt files, but I got failure message when I tried to download the zImage:

    $ nios2-download -g zImage
    Using cable "USB-BlasterII [1-9]", device 1, instance 0x00
    Pausing target processor: OK
    Initializing CPU cache (if present)
    OK
    Downloaded 4973KB in 5.7s (872.4KB/s)
    Verifying C4000000 ( 0%)
    Verify failed between address 0xC4000000 and 0xC400FFFF
    Leaving target processor paused

    Have you seen this ?

    I am using the HiLo DDR3 memory module on my a10gx. Does it has something to do with this error ?

    Please let me know when you have instructions for building the image updated. I'll probably try to build my own.

    Thanks

    Nick

  • 0
    •  Analog Employees 
    on Oct 8, 2020 6:30 PM 3 months ago in reply to Nickbiz

    It might be that you are using a newer board revision than the one supported by those prebuilt files. In this case, I would build everything again.

    https://wiki.analog.com/resources/tools-software/linux-drivers/platforms/nios2#build_linux_-_script_method seems to be still valid, but please use altera_4.14 branch.

    If you want to manually build everything, I would use:
    - buildroot - master branch, nios2_adi_rootfs_defconfig (https://github.com/analogdevicesinc/buildroot/blob/master/configs/nios2_adi_rootfs_defconfig)
     - kernel - altera_4.14 branch, a10gx_adrv9371.dts, adi_nios2_defconfig (https://github.com/analogdevicesinc/linux/blob/altera_4.14/arch/nios2/configs/adi_nios2_defconfig)
     - hdl - hdl_2019_r1 branch

    Dragos

  • Hi Dragos,

    I got pass the failure, but then encountered this kernel panic (please see attached log file for more details)

    ...

    Warning: unable to open an initial console.
    Failed to create /dev/root: -2
    List of all partitions:
    No filesystem could mount root, tried:

    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
    ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

    ...

    Have you seen this ?

    Thanks,

    Nick

    terminal.log
    $ nios2-terminal 
    nios2-terminal: connected to hardware target using JTAG UART on cable
    nios2-terminal: "USB-BlasterII [1-9]", device 1, instance 0
    nios2-terminal: (Use the IDE stop button or Ctrl-C to terminate)
    
    Linux version 4.14.73-ltsi-g4445ce4 (qpham@localhost.localdomain) (gcc version 8.3.1 20190416 (Altera 19.2 Build 57)) #1 Thu Oct 8 20:58:31 EDT 2020
    On node 0 totalpages: 65536
    free_area_init_node: node 0, pgdat c0b378f4, node_mem_map c0b5f280
      Normal zone: 512 pages used for memmap
      Normal zone: 0 pages reserved
      Normal zone: 65536 pages, LIFO batch:15
    pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
    pcpu-alloc: [0] 0 
    Built 1 zonelists, mobility grouping on.  Total pages: 65024
    Kernel command line: debug console=ttyJ0,115200
    PID hash table entries: 1024 (order: 0, 4096 bytes)
    Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
    Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
    Sorting __ex_table...
    Memory: 248220K/262144K available (3691K kernel code, 444K rwdata, 4192K rodata, 3156K init, 108K bss, 13924K reserved, 0K cma-reserved)
    NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
    clocksource: nios2-clksrc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604467 ns
    Calibrating delay loop (skipped), value calculated using timer frequency.. 200.00 BogoMIPS (lpj=400000)
    pid_max: default: 32768 minimum: 301
    Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    devtmpfs: initialized
    cpu cpu0: Error -2 creating of_node link
    random: get_random_u32 called from bucket_table_alloc+0xec/0x270 with crng_init=0
    clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    futex hash table entries: 256 (order: -1, 3072 bytes)
    NET: Registered protocol family 16
    jesd204: found 0 devices and 0 topologies
    clocksource: Switched to clocksource nios2-clksrc
    NET: Registered protocol family 2
    TCP established hash table entries: 2048 (order: 1, 8192 bytes)
    TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
    TCP: Hash tables configured (established 2048 bind 2048)
    UDP hash table entries: 256 (order: 0, 4096 bytes)
    UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    NET: Registered protocol family 1
    RPC: Registered named UNIX socket transport module.
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    RPC: Registered tcp NFSv4.1 backchannel transport module.
    random: fast init done
    workingset: timestamp_bits=30 max_order=16 bucket_order=0
    jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
    Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
    io scheduler noop registered
    io scheduler deadline registered
    io scheduler cfq registered (default)
    io scheduler mq-deadline registered
    io scheduler kyber registered
    101814f0.serial: ttyJ0 at MMIO 0x101814f0 (irq = 2, base_baud = 0) is a Altera JTAG UART
    console [ttyJ0] enabled
    loop: module loaded
    spi_altera 10181400.spi: base f0181400, irq 8
    libphy: Fixed MDIO Bus: probed
    libphy: altera_tse: probed
    altera_tse 10181000.ethernet (unnamed net_device) (uninitialized): MDIO bus altera_tse-0: created
    altera_tse 10181000.ethernet: Altera TSE MAC version 19.2 at 0x10181000 irq 1/3
    IR NEC protocol handler initialized
    IR RC5(x/sz) protocol handler initialized
    IR RC6 protocol handler initialized
    IR JVC protocol handler initialized
    IR Sony protocol handler initialized
    IR SANYO protocol handler initialized
    IR Sharp protocol handler initialized
    IR MCE Keyboard/mouse protocol handler initialized
    IR XMP protocol handler initialized
    ad9371 spi0.1: ad9371_probe : enter
    altera-a10-fpll 10045000.altera-a10-fpll: FPLL PLL calibration OK (1400 us)
    altera-a10-fpll 10035000.altera-a10-fpll: FPLL PLL calibration OK (1400 us)
    altera-a10-fpll 10025000.altera-a10-fpll: FPLL PLL calibration OK (1400 us)
    altera_adxcvr 10024000.axi-ad9371-tx-xcvr: ATX PLL calibration OK (20 ms)
    altera_adxcvr 10024000.axi-ad9371-tx-xcvr: Lane 0 TX termination and VOD calibration OK (500 us)
    altera_adxcvr 10024000.axi-ad9371-tx-xcvr: Lane 1 TX termination and VOD calibration OK (500 us)
    altera_adxcvr 10024000.axi-ad9371-tx-xcvr: Lane 2 TX termination and VOD calibration OK (500 us)
    altera_adxcvr 10024000.axi-ad9371-tx-xcvr: Lane 3 TX termination and VOD calibration OK (500 us)
    altera_adxcvr 10024000.axi-ad9371-tx-xcvr: Altera ADXCVR (17.01.a) probed
    altera_adxcvr 10034000.axi-ad9371-rx-xcvr: Lane 0 CDR/CMU PLL & RX offset calibration OK (400 us)
    altera_adxcvr 10034000.axi-ad9371-rx-xcvr: Lane 1 CDR/CMU PLL & RX offset calibration OK (500 us)
    altera_adxcvr 10034000.axi-ad9371-rx-xcvr: Altera ADXCVR (17.01.a) probed
    altera_adxcvr 10044000.axi-ad9371-rx-os-xcvr: Lane 0 CDR/CMU PLL & RX offset calibration OK (500 us)
    altera_adxcvr 10044000.axi-ad9371-rx-os-xcvr: Lane 1 CDR/CMU PLL & RX offset calibration OK (600 us)
    altera_adxcvr 10044000.axi-ad9371-rx-os-xcvr: Altera ADXCVR (17.01.a) probed
    NET: Registered protocol family 17
    altera_adxcvr 10024000.axi-ad9371-tx-xcvr: Setting link rate to 122880000 (lane rate: 4915200)
    altera_adxcvr 10034000.axi-ad9371-rx-xcvr: Setting link rate to 122880000 (lane rate: 4915200)
    altera_adxcvr 10044000.axi-ad9371-rx-os-xcvr: Setting link rate to 122880000 (lane rate: 4915200)
    ad9371 spi0.1: ad9371_probe : enter
    ad9371 spi0.1: ad9371_probe : enter
    random: crng init done
    ad9371 spi0.1: framerStatus (0x20)
    ad9371 spi0.1: obsFramerStatus (0x20)
    ad9371 spi0.1: ad9371_probe : AD9371 Rev 4, Firmware 5.2.2 API version: 1.5.2.3566 successfully initialized
    Warning: unable to open an initial console.
    Failed to create /dev/root: -2
    List of all partitions:
    No filesystem could mount root, tried: 
    
    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
    ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
    
    
    

  • 0
    •  Analog Employees 
    on Oct 9, 2020 7:13 AM 3 months ago in reply to Nickbiz

    There seems to be no rootfs filesystem.

    Did you configure one?