Post Go back to editing

TES profiles and TEI0022 board

Category: Software
Product Number: ADRV9002XBCZ

Hi,

We are trying to start profiles from TES on the board TEI0022 (Data Storm DAQ)

With imageadrv9002_tei0022_03_20211103.tar.gz from https://github.com/ArrowElectronics/data-storm-daq/wiki/Prepare-and-Install-the-SD-Card-(ADRV9002) we cannot load config_profile from TES 0.22.0.

adrv9002 spi0.0: adrv9002-phy Rev 12.0, Firmware 0.13.6.7,  Stream 0.5.18.0,  API version: 39.0.7 successfully initialized
cf_axi_adc ff230000.axi-adrv9002-rx-lpc: ADI AIM (10.01.b) at 0xFF230000 mapped to 0x7194ab6e, probed ADC ADRV9002 as MASTER
cf_axi_dds ff23a000.axi-adrv9002-tx-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.01.b) at 0xFF23A000 mapped to 0x44e4a161, probed DDS ADRV9002

cat /root/profile.json > profile_config
cat: write error: Invalid argument
  adrv9002 spi0.0: SSI interface mismatch. PHY=1, RX1=0
  adrv9002 spi0.0: SSI interface mismatch. PHY=1, RX1=0

Profile Custom_1Lane_CMOS.json from https://datastormdaq.s3.us-east-2.amazonaws.com/Custom_1Lane_CMOS.json loads without problem.

The file has a many of different parameters. Eg. If I add to Custom_1Lane_CMOS.json "gainTableType": 0, - it causes same error “SSI interface mismatch. PHY=1, RX1=0”.

Ok, there may be a problem with the driver version, so update according to arrow update procedure.

Update SD image https://github.com/ArrowElectronics/data-storm-daq/wiki/ADRV9002-Platform-Build-uboot

set #define DEBUG in drivers/iio/adc/navassa/adrv9002.c & drivers/iio/adc/navassa/adrv9002_conv.c 

make defconfig: make socfpga_tei0022_adi_defconfig

make linux: make zImage

make device tree: make socfpga_cyclone5_tei0022_03_axi_hdmi_adrv9002_rx2tx2.dtb

replace .dtb and zImage on /boot/

reboot

dmesg boot ok:
adrv9002 spi0.0: adrv9002-phy Rev 12.0, Firmware 0.13.6.7,  Stream 0.5.18.0,  API version: 39.0.7 successfully initialized
cf_axi_adc ff230000.axi-adrv9002-rx-lpc: ADI AIM (10.01.b) at 0xFF230000 mapped to 0xec97bd7d, probed ADC ADRV9002 as MASTER
cf_axi_dds ff23a000.axi-adrv9002-tx-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.01.b) at 0xFF23A000 mapped to 0xb8487922, probed DDS ADRV9002
#same version of API .. but it same in the source codes
cat /root/Custom_1Lane_CMOS.json > profile_config
ok

cat /root/profile.json > profile_config
cat: write error: Invalid argument
  adrv9002 spi0.0: adrv9002_profile_bin_write:3553: size 46329
  adrv9002 spi0.0: SSI interface mismatch. PHY=1, RX1=0
  adrv9002 spi0.0: SSI interface mismatch. PHY=1, RX1=0

problem still here

Try with the Analog devices kernel, here we are unable to initialize the device. We do not know the consequences of where the error could be:

git clone github.com/.../linux 

copy defconfig: arch/arm/configs/socfpga_tei0022_adi_defconfig from github.com/.../altera_5.4 

copy dts: arch/arm/boot/dts/socfpga_cyclone5_tei0022_03_axi_hdmi_adrv9002_rx2tx2.dts from github.com/.../altera_5.4 

set #define DEBUG in drivers/iio/adc/navassa/adrv9002.c & drivers/iio/adc/navassa/adrv9002_conv.c 

make defconfig: make socfpga_tei0022_adi_defconfig

make linux: make zImage

make device tree: make socfpga_cyclone5_tei0022_03_axi_hdmi_adrv9002_rx2tx2.dtb

replace .dtb and zImage on /boot/

replace firmware files from adi linux firmware/ to /lib/firmware/

reboot

Linux version 5.10.0
dmesg boot fails:
SAMPL CLK: 1920000 tuning: RX1
0:1:2:3:4:5:6:7
0:o o o o o o o o
1:o o o o o o o o
2:o o o o o o o o
3:o o o o o o o o
4:o o o o o o o o
5:o o o o o o o o
6:o o o o o o o o
7:o o o o o o o o
SAMPL CLK: 1920000 tuning: TX1
0:1:2:3:4:5:6:7
0:# # # # # # # #
1:# # # # # # # #
2:# # # # # # # #
3:# # # # # # # #
4:# # # # # # # #
5:# # # # # # # #
6:# # # # # # # #
7:# # # # # # # #
adrv9002 spi0.0: Interface tuning failed: -5
cf_axi_adc: probe of ff230000.axi-adrv9002-rx-lpc failed with error -5

Where is the problem in the new kernel version?

Thanks, Tom

  • Hi thrbek,

    There is a version lag between the Linux driver versions and the TES releases. Since TES 0.22.0 was released very recently, it's possible that the drivers you have access to have not yet been updated to support TES 0.22.0 features, which could be the cause of the problem. If you have a previous version of the TES available, I recommend that you try using it to generate your profile. Otherwise, you'll have to wait for the Linux drivers to catch up.

    Additionally, I suggest that you use the Linux Software Drivers forum for issues and queries related to systems that we don't support directly.

    Kind Regards,
    Michał

  • Hi, 

    is there any table of TES version and specific kernel drivers version? We do not have older version of TES, where I can download it?

    In my last try I test new analog kernel (master version) and ADRV have fail in boot: "adrv9002 spi0.0: Interface tuning failed: -5"

    Parts from the /firmware folder, which are part of the kernel, are used in the boot. I don't think the problem will be here.

    Thanks, 

    Tom





  • Hi Tom,

    I'm afraid we don't provide older downloads for older TES versions.

    I'm moving your question to the Linux Software Drivers forum, since your issues are beyond the scope of the help that we can provide here.

    Kind Regards,
    Michał

  • Thanks for the move,

    ok so where is the main problem with not connecting the module in the analog kernel? Can someone take a look at this? It looks like a problem with the TX1 tuning, but I have absolutely no idea how to debug it better:

    SAMPL CLK: 1920000 tuning: TX1
    0:1:2:3:4:5:6:7
    0:# # # # # # # #
    1:# # # # # # # #
    2:# # # # # # # #
    3:# # # # # # # #
    4:# # # # # # # #
    5:# # # # # # # #
    6:# # # # # # # #
    7:# # # # # # # #
    adrv9002 spi0.0: Interface tuning failed: -5
    cf_axi_adc: probe of ff230000.axi-adrv9002-rx-lpc failed with error -5
  • Hi,
    FYI I noticed are the newly added files to the .config kernel eg. RxGainTable_GainCompensated.csv:
    CONFIG_EXTRA_FIRMWARE="ad9144_fmc_ebz_ad9516.stp Mykonos_M3.bin TaliseStream.bin TaliseTDDArmFirmware.bin TaliseTxArmFirmware.bin TaliseRxArmFirmware.bin adau1761.bin Navassa_EvaluationFw.bin RxGainTable.csv RxGainTable_GainCompensated.csv ORxGainTable.csv TxAttenTable.csv Navassa_Stream.bin Navassa_CMOS_profile.json Navassa_LVDS_profile.json Navassa_CMOS_profile_adrv9003.json Navassa_LVDS_profile_adrv9003.json"

    I edited the definition in .config, compiled the kernel, but the error is the same as above: 

    adrv9002 spi0.0: Interface tuning failed: -5
  • Since you are using repositories not maintained by ADI we will need to point you Arrow support which does support them. For questions around the DataStorm kit and repo hosted by ArrowElectronics:

    - Email: gc.na.fpga_platform_support@arrow.com

    - Create an issue here: https://github.com/ArrowElectronics/data-storm-daq/issues

    -Travis

  • Hi, In the last step I tried to use Adi linux but adrv is not connected in the boot sequence.

    Please come and look at it, if we were to use ADRV9002 on our board we will have to deal with the same situation.

    --------------

    Try with the Analog devices kernel, here we are unable to initialize the device. We do not know the consequences of where the error could be:

    git clone github.com/.../linux 
    
    copy defconfig: arch/arm/configs/socfpga_tei0022_adi_defconfig from github.com/.../altera_5.4 
    
    copy dts: arch/arm/boot/dts/socfpga_cyclone5_tei0022_03_axi_hdmi_adrv9002_rx2tx2.dts from github.com/.../altera_5.4 
    
    edit kernel config: CONFIG_EXTRA_FIRMWARE="ad9144_fmc_ebz_ad9516.stp Mykonos_M3.bin TaliseStream.bin TaliseTDDArmFirmware.bin TaliseTxArmFirmware.bin TaliseRxArmFirmware.bin adau1761.bin Navassa_EvaluationFw.bin RxGainTable.csv RxGainTable_GainCompensated.csv ORxGainTable.csv TxAttenTable.csv Navassa_Stream.bin Navassa_CMOS_profile.json Navassa_LVDS_profile.json Navassa_CMOS_profile_adrv9003.json Navassa_LVDS_profile_adrv9003.json"
    set #define DEBUG in drivers/iio/adc/navassa/adrv9002.c & drivers/iio/adc/navassa/adrv9002_conv.c 
    
    make defconfig: make socfpga_tei0022_adi_defconfig
    
    make linux: make zImage
    
    make device tree: make socfpga_cyclone5_tei0022_03_axi_hdmi_adrv9002_rx2tx2.dtb
    
    replace .dtb and zImage on /boot/
    
    replace firmware files from adi linux firmware/ to /lib/firmware/
    
    reboot
    
    Linux version 5.10.0
    dmesg boot fails:
    SAMPL CLK: 1920000 tuning: RX1
    0:1:2:3:4:5:6:7
    0:o o o o o o o o
    1:o o o o o o o o
    2:o o o o o o o o
    3:o o o o o o o o
    4:o o o o o o o o
    5:o o o o o o o o
    6:o o o o o o o o
    7:o o o o o o o o
    SAMPL CLK: 1920000 tuning: TX1
    0:1:2:3:4:5:6:7
    0:# # # # # # # #
    1:# # # # # # # #
    2:# # # # # # # #
    3:# # # # # # # #
    4:# # # # # # # #
    5:# # # # # # # #
    6:# # # # # # # #
    7:# # # # # # # #
    adrv9002 spi0.0: Interface tuning failed: -5
    cf_axi_adc: probe of ff230000.axi-adrv9002-rx-lpc failed with error -5


    Tnx, Tom

  • The interface tuning is tied to the HDL cores. We would need to point you to the Arrow support again since this is their HDL reference design.

    -Travis

  • Ok, new info from my side - I disabled tuning in the driver and I succeeded to upload the first profile from TES (DMR/Analog FM of course in CMOS mode).
    If I compile this profile into the kernel at boot the first tuning will work.
    If I want to use LTE profiles from TES, it is not possible, both for 1CH and 2CH.

    I've contacted Arrow, I'll keep you updated.