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
username: rootpassword: analog
Buildroot: export CROSS_COMPILE=nios2-linux-gnu- make nios2_adi_rootfs_defconfig makeCopy the generated rootfs.cpio.gz to linux/arch/nios2/boot/
Linux Kernel: copy linux/arch…
There is no sample code to use Ethernet as No-OS is not meant for this purpose. Its meant for an optimized design not for those starting out.
If you are just starting out with the ADRV9371 we recommend starting with the Linux-based SD cards which give you Ethernet and a full OS environment on the board: https://wiki.analog.com/resources/tools-software/linux-software/embedded_arm_images?s[]=fmc&s[]=sd
You will also be able to connect to tools like MATLAB, IIO-Scope, our Python support, ...
-Travis
Hi Travis,
If I build a Nios2 Linux image from this page to run on my Arria 10 GX development board
https://wiki.analog.com/resources/tools-software/linux-drivers/platforms/nios2
Would I be able to utilize the Ethernet port and tools that you mentioned above ?
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 0x00Pausing target processor: OKInitializing CPU cache (if present)OKDownloaded 4973KB in 5.7s (872.4KB/s)Verifying C4000000 ( 0%)Verify failed between address 0xC4000000 and 0xC400FFFFLeaving 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.
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
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: -2List 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)
Thanks,
$ 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)
There seems to be no rootfs filesystem.
Did you configure one?