ADRV9002 API bootState

Dears

I try bring up ADRV9002. and I wonder bootState.

in "adi_adrv9001_armtypes.h" ArmBootStates defined.

typedef enum adi_adrv9001_ArmBootStates
{
ADI_ADRV9001_ARM_BOOT_POWERUP = 0, /*!< Used to put API in wait for ARM state */
ADI_ADRV9001_ARM_BOOT_READY = 1, /*!< ARM booted with no failure */
ADI_ADRV9001_ARM_BOOT_FW_CHECKSUM_ERR = 2, /*!< ARM firmware checksum error */
ADI_ADRV9001_ARM_BOOT_EFUSE_DATA_ERR = 3, /*!< Efuse data error */
ADI_ADRV9001_ARM_BOOT_STREAM_IMG_CHECKSUM_ERR = 4, /*!< Stream image checksum error */
ADI_ADRV9001_ARM_BOOT_DEVICE_PROFILE_CHECKSUM_ERR = 5, /*!< Device profile checksum error */
ADI_ADRV9001_ARM_BOOT_CLKGEN_ERR = 6, /*!< Bootup clkgen setup error */
ADI_ADRV9001_ARM_BOOT_CLKSSI_ERR = 7, /*!< Bootup SSI setup error */
ADI_ADRV9001_ARM_BOOT_POWER_INIT_ERR = 8, /*!< Power init setup error */
ADI_ADRV9001_ARM_BOOT_JTAG_BUILD_STATUS_READY = 9, /*!< JTAG build status ready indication */
ADI_ADRV9001_ARM_BOOT_CLKLOGEN_ERR = 10, /*!< Bootup clock LOGEN error */
ADI_ADRV9001_ARM_BOOT_RXQECHW_ERR = 11, /*!< Error initializing RxQEC hardware */
ADI_ADRV9001_ARM_BOOT_HM_TIMER_ERR = 12, /*!< Failed to create health monitor timers */
ADI_ADRV9001_ARM_BOOT_ADC_RCAL_ERR = 13, /*!< ADC RCAL error */
ADI_ADRV9001_ARM_BOOT_STREAM_RUNTIME_ERR = 14, /*!< Stream runtime error */
ADI_ADRV9001_ARM_BOOT_CLKGEN_RCAL_ERR = 15, /*!< Bootup clkgen setup after RCAL error */
} adi_adrv9001_ArmBootStates_e;

and in "adrv9001_arm.c"

error_table is defined like below

const char* const adrv9001_error_table_ArmBootStatus[] =
{
"ARM is powering up",
"ARM booted with no failure",
"ARM Firmware checksum error",
"Efuse data error",
"Stream image checksum error",
"Device profile checksum error",
"Bootup clkgen setup error",
"Bootup SCCG init setup error",
"Device profile init setup error",
"JTAG build status ready indication",
"Bootup clock LOGEN error",
"Error initializing RxQEC hardware",
"Failed to create Health monitor timers",
"ADC RCAL error",
"ADC CCAL error",
"Stream Run error"
};

The two defines appear to have different values for indexes 14~15. (CCAL error, Stream Run error)

I wonder which of the two value is correct.


(2)

Sometime in my board, adi_adrv9001_Radio_State_Get() retrun value 15

I wonder what problem number 15 is and how to solve it.

Thank you.

  • 0
    •  Analog Employees 
    on May 7, 2021 3:11 PM

    Hi Henry,

    I've brought your question to the SW team, they'll be getting back to me with an answer once they're ready.

    Best Regards,
    Oisín.

  • +1
    •  Analog Employees 
    on May 10, 2021 8:49 AM

    Hi again Henry,

    The SW team has come back with the first bit of info, in our current working version of the software systemBootState is defined as:

    /*! Enumeration for ARM boot status and error codes */
    typedef enum
    {
    ARM_BOOT_STATE_POWER_UP = 0u, /*!< 0 - Used to put API in wait for ARM state */
    ARM_BOOT_STATE_READY = 1u, /*!< 1 - ARM booted with no failure */
    ARM_BOOT_STATE_FW_CHECKSUM_ERR = 2u, /*!< 2 - ARM Firmware checksum error */
    ARM_BOOT_STATE_EFUSE_DATA_ERR = 3u, /*!< 3 - Efuse data error */
    ARM_BOOT_STATE_DATAMEM_ERR = 4u, /*!< 4 - ARM data memory error */
    ARM_BOOT_STATE_DEVPROF_CHECK_ERR = 5u, /*!< 5 - Device profile checksum error */
    ARM_BOOT_STATE_CLKGEN_ERR = 6u, /*!< 6 - Bootup clkgen setup error */
    ARM_BOOT_STATE_SCCG_INIT_ERR = 7u, /*!< 7 - Bootup SCCG init setup error */
    ARM_BOOT_STATE_DEVPROF_INIT_ERR = 8u, /*!< 8 - Device profile init setup error */
    ARM_BOOT_STATE_JTAG_BUILD_STATUS_READY = 9u, /*!< 9 - Jtag build status ready indication */
    ARM_BOOT_STATE_CLKLOGEN_ERR = 10u, /*!< 10 - Bootup clock LOGEN error */
    ARM_BOOT_STATE_RXQECHW_ERR = 11u, /*!< 11 - Error initializing RxQEC hardware */
    ARM_BOOT_STATE_HM_TIMER_ERR = 12u, /*!< 12 - Failed to create Health monitor timers */
    ARM_BOOT_STATE_ADC_RCAL_ERR = 13u, /*!< 13 - ADC RCAL error */
    ARM_BOOT_STATE_ADC_CCAL_ERR = 14u, /*!< 14 - ADC CCAL error */
    ARM_BOOT_STATE_STREAM_RUNTIME_ERR = 15u, /*!< 15 - Stream Run error */
    } systemBootState_e;
    This is the definition which should be taken as correct. We will be fixing any discrepancies in the SDK in order to match this definition.
    For the second part of your question, I have asked for further information and will return once I have confirmed an answer. In my experience Stream Errors are typically caused by an issue with the device setup, so if for example you tried a slightly different setup you might not get this issue. By monitoring each thing that you change in the setup and seeing which change mitigates the error you might find the problem. Again, I will confirm with the SW team.
    I hope this helps!
    Best Regards,
    Oisín.
  • 0
    •  Analog Employees 
    on May 10, 2021 1:33 PM

    Hello again,

    One of our engineers posed this question:

    "SPI issue where SPI is returning 0xFF maybe? Can they verify they can read 0x56 from 0x000B in that case"

    Could you verify this behaviour and confirm for us?

    Best Regards,
    Oisín.

  • Dear Oisin.

    This post by my FAE Henry is my problem.

    I checked that time 0x000B as you suggested and confirmed that 0xFF came out.

    and again check before adi_adrv9001_Utilities_ArmImage_Load(phy->adrv9001,"Navassa_EvaluationFw.bin", ...);
    0x56 came out.

    I think there is a problem running this function, but I don't know what the problem is.
    Do you have any advice?

    Sincery.

    JaeKyung

  • 0
    •  Analog Employees 
    on Jun 4, 2021 1:33 PM in reply to JaeKyung

    Hi JaeKyung,

    I've gotten on to the SW team again, they are requesting more info:

    • What is the hardware?
      • ADI eval board (CE board)?
      • Customers own eval board?
    • What is the platform
      • ZC706/ZCU102?
      • Other Commercial Off the Shelf solution?
      • Customer BBIC/ASIC?

    If we can get these bits of information they believe they may be able to guide your debug efforts more effectively.

    Best Regards,
    Oisín.