Post Go back to editing

ADRV9026 SW integration


Our integration plan is to have the SW integration environment be within a Petalinux / MPSoC platform (acting as the baseband processor itself).

The GPIO and SPI would be modified within adi_platofrm.h. However I see no static libraries or object code that targets the arm environment. I believe this should be the equivalent of adi_common.a (wrapping error/log/hal).

What would be the method to target the equivalent of the MicroZed for full control of the ADRV9026, leveraging the API, but targeting what we expect to be petalinux/MPSoC?


Modify bin analysis. Wrong device.
[edited by: jerryo at 8:17 PM (GMT -5) on 25 Jan 2022]
  • I realized that when I first pulled this (the ADRV9026 SW) from ADI, I ran make right away, then got distracted.

    Analyzing the objects, they were x86-64.

    My question is narrower now: for each and which set of makefiles should I change

    CC = gcc



    Which should provide modified HAL as needed for the appropriate platform?

  • Sorry for the delay.

    The make file for the custom platform will be :
    LIB_ CUSTOMER_PLATFORM = lib_customerPlatform .a

    CC = gcc

    ARFLAGS = -rv

    CFLAGS = -Wall -Werror -I. -I../

    EXT = c

     SRC = $(wildcard *.$(EXT))

    OBJS = $(SRC:.$(EXT)=.o)




                    $(CC) $(CFLAGS) -o $@ -c $<


                    ar $(ARFLAGS) $( LIB_ CUSTOMER_PLATFORM) $(OBJS)


                    rm -rf *.o

                    rm -rf *.a

  • Hi   and others, perhaps I need to generalize a bit.

    The entire system we are designing consists of an MPSoC controlling the ADRV9026 eval board. Initial development is intended for the ZCU106 platform. Pinout works between the ADRV FMC and the 106 and the FPGA image is produced. I am now working on implementing control code that leverages ADI's API for the adrv9025.

    However, ADI doesn't deliver driver code that I can cross-compile for the ADRV9026. I did find (within the Api pulled down as zipfile) and analyzing the SD card, the ADRV9025_server.exe ( ARM32b binary). This code accepts Ethernet commands from TES and provides control to the the appropriate FMC and FPGA.

    How do I access the specific API calls (in example adi_adrv9025_HwOpen) that are public or directly from the controller - the MPSoC that will run against the driver binary file (which I believe is the ADI delivery, is it in the forms of ADRV9025_server.exe). I can use to control the ADRV9026 directly from the MPSoC?