Bring up AD9001 - Device driver error

Hi All,

during building of the AD-9001 at our custom board using the HDF repo: adrv9001_zed and DTS based on:  zynq-zed-adv7511-adrv9002

we got the following error during boot time:

adrv9002 spi0.0: [ERROR]: Error number 1 (0x00000001), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_arm.c, in function adi_adrv9001_arm_Memory_ReadWrite_Validate, in line 357, variable name address.Error message Invalid ARM Memory Address.
adrv9002 spi0.0: [ERROR]: Error number 1 (0x00000001), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_arm.c, in function adi_adrv9001_arm_Memory_Write, in line 403, variable name NULL.Error message Invalid ARM Memory Address.
adrv9002 spi0.0: [ERROR]: Error number 1 (0x00000001), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_powermanagement.c, in function adi_adrv9001_powermanagement_Configure, in line 56, variable name NULL.Error message Invalid ARM Memory Address.
adrv9002 spi0.0: adrv9002_power_mgmt_config, 2142: failed with "Invalid ARM Memory Address" (1)
adrv9002 spi0.0: [ERROR]: Error number 1 (0x00000001), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_arm.c, in function adi_adrv9001_arm_Memory_ReadWrite_Validate, in line 357, variable name address.Error message Invalid ARM Memory Address.
adrv9002 spi0.0: [ERROR]: Error number 1 (0x00000001), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_arm.c, in function adi_adrv9001_arm_Memory_Write, in line 403, variable name NULL.Error message Invalid ARM Memory Address.
adrv9002 spi0.0: [ERROR]: Error number 1 (0x00000001), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_powermanagement.c, in function adi_adrv9001_powermanagement_Configure, in line 56, variable name NULL.Error message Invalid ARM Memory Address.
adrv9002 spi0.0: adrv9002_power_mgmt_config, 2142: failed with "Invalid ARM Memory Address" (1)
cf_axi_adc: probe of 44a00000.axi-adrv9002-rx-lpc failed with error -22
cf_axi_tdd 44a0c800.axi-adrv9002-core-tdd1-lpc: Major version mismatch between PCORE and driver. Driver expected 1.00.a, PCORE reported 173.222.⚌
cf_axi_tdd 44a0cc00.axi-adrv9002-core-tdd2-lpc: Major version mismatch between PCORE and driver. Driver expected 1.00.a, PCORE reported 173.222.⚌
Division by zero in kernel.

the communication from FPGA layer to AD is based on SPI-0 (the I2C domain is disabled).

due to mention errors in the IIOScope utility we don`t see the RF response although it probably found the  IPC (Tx signals) as can you see here:

After investigate the device (9001) drive code: it seems that the issue come from the line: 

address >= ADRV9001_ADDR_ARM_START_PROG && address <= ADRV9001_ADDR_ARM_END_PROG (at File: adi_adrv9001_arm), it seems like an PL physically address error rather then issue at the dts / Linux (PS) side.

Please assist us to overcome this issue, the time is critical for us.

Thanks a`lot,

Roee.   



edit line
[edited by: Roee Zi at 9:36 PM (GMT -4) on 28 Jun 2021]
Parents
  • 0
    •  Analog Employees 
    on Jun 29, 2021 7:12 AM

    Hi Roee,

    It looks something very odd is going on as the TDD cores are also not coming up correctly. I will have to see if I can replicate this on my side... Are you using the master branches (on both hdl and linux) or are you using a release branch?

    - Nuno Sá

  • Hi,

    The kernel device driver are not the most update. but they exist.

    the Meta-ADI is point to 2019_R2 and the HDF design also.

    i don`t knew if it related but i build the project with PetaLinux 2019 R1 and not 2019 R2.

    i attached in the follow link the driver files as they appear my workstation.

    https://www.jumbomail.me/j/nbzMpoRiVkabqRc

    i can try to update the AD9001 kernel driver to latest master version, but don`t sure this is the reason for this issue.

    Thanks,

    Roee.  

  • 0
    •  Analog Employees 
    on Jul 12, 2021 12:12 PM in reply to Amir_M

    Hi Amir,

    I would like to consult with you about the correct GIT version that we should use for building the FPGA PL project which is based on a Zedboard EVB.

    You can still use "HDL_2019_R2". You just have to update your local branch so that you use the newest code base. TDD_SYNC is already supported in 2019_R2 (just not on your git local copy). So, just sync up you git branch with our 2019_R2 and you should be fine with TDD...

    And, can I use the IP's from this project (branch Master) for building the project of Vivado 2019.1 (of branch HDM_2019_R2)?

    Probably not a good idea...

    Note that I'm not an hdl/FPGA engineer (I concentrate on the linux side), so if you still have some FPGA questions, let me know and I will ask the right person to jump in this thread...

    I would like to ask if there is a stable version of the project that I can use with the Vivado 2019.1

    Just to reinforce, the current stare of 2019_R2 should be stable... Just update your local copy.

    - Nuno Sá

  • Hi Nuno,

    I have succeeded in downloading the updated branch of HDL_2019_R2, which contains the TDD_Sync functionality and some additional improvements since the last released branch.

    We would like if you can answer us the question of Roee:

    How should we use the TDD_SYNC signal after adding it to the HDL project?

    What signal mechanism should drive the pin JA1.JA1 at the PMOD connector on the Zedboard?

    Thanks,

    Amir

  • 0
    •  Analog Employees 
    on Jul 14, 2021 11:08 AM in reply to Amir_M

    Hi Amir, 

    the tdd_sync can be driven with an external pps signal, the TDD core from the AXI_ADRV9001 will resynchronize to that every time it receives a pulse.   If TDD is not required you can ignore this signal.  

    From HDL you can disable the TDD core by setting the TDD_DISABLE parameter of the IP.

    https://github.com/analogdevicesinc/hdl/blob/master/library/axi_adrv9001/axi_adrv9001.v#L41

    Thank you,

    Laszlo

  • Hi Nuno, Inagy,

    Our adrv9002 initialization issues is over, and now we can fully control the ADRV9001 on our custom board (most of the issues come from the hardware layer). so we are very appreciate the knowledge that you share with us to solve this issues. 

    Now our customer want to use TES on our customer board, we knew that TES suppose to be run over EVB only.

    We tried to start the TES server on our board and we got connection errors (such as "file text busy"). is there any way that we be able to start this application on our custom board ? (The IioScope run just fine).

    thanks,

    Roee.  

  • 0
    •  Analog Employees 
    on Jul 19, 2021 10:50 AM in reply to Roee Zi

    Hi,

    TES is just another way/framework of controlling the adrv9002 which is not compatible with the hdl you're running plus the device driver. Look here for the differences between the two solutions provided. 

    Being that said, in the end, you'll have to decide which software package you want to use...

    - Nuno Sá

Reply Children
No Data