AD9084 (Apollo) Profile Generator
The Apollo plugin comes bundled with the ACE software and can be downloaded from here.

Apollo Profile Generator
The Apollo profile generator is a tool that allows you to create profiles with different configurations for the AD9084 device. The profiles are then programmed into the device to configure it to work in a specific way.

The profile generator allows you to configure various parameters of the AD9084:
The JESD parameters
ADC / DAC clock frequencies
Interpolation / Decimation factors
Important
The JESD parameters configured in the profile have to match the ones used to build the AD9084 HDL design.
Note
By pressing the Save
button, the profile generator will generate 3 files inside the
User Library
folder:
A
.json
file containing all the profile settingsA
_summary.json
file containing a brief summary of the profile settingsA
.bin
file containing the profile settings in binary format which will be loaded on the AD9084
Using the generated profile
The AD9084 driver will look for the profile in the default location
linux/lib/firmware/
in order to program it to the board.
Important
The driver reads the adi,device-profile-fw-name
property from the device tree
and will search for the corresponding .bin
file.
Note
The following commands assume that the profile has been generated and saved
with the new_profile.bin
name.
After generating the profile, copy the .bin
file to the linux/lib/firmware
location:
user@analog:~$
cp <path_to_profile>/new_profile.bin linux/lib/firmware/
Update the defconfig to include the generated profile
For Virtex UltraScale+ carriers (VCU118/VCU128)
Update the arch/microblaze/configs/adi_mb_defconfig
file to include
the generated .bin
under the CONFIG_EXTRA_FIRMWARE
option:
user@analog:~$
cd linux
user@analog:~/linux$
sed -i 's/^CONFIG_EXTRA_FIRMWARE="/&new_profile.bin /' arch/arch/microblaze/configs/adi_mb_defconfig
user@analog:~/linux$
cat arch/arch/microblaze/configs/adi_mb_defconfig | grep 'CONFIG_EXTRA_FIRMWARE='
CONFIG_EXTRA_FIRMWARE="new_profile.bin APOLLO_FW_CPU1_B.bin <...>"
You can then follow the Linux kernel build flow to build the kernel and boot it on the board.
For Versal carriers (VCK190/VPK180)
Update the arch/arm64/configs/adi_versal_defconfig
file to include
the generated .bin
under the CONFIG_EXTRA_FIRMWARE
option:
user@analog:~$
cd linux
user@analog:~/linux$
sed -i 's/^CONFIG_EXTRA_FIRMWARE="/&new_profile.bin /' arch/arm64/configs/adi_versal_defconfig
user@analog:~/linux$
cat arch/arm64/configs/adi_versal_defconfig | grep 'CONFIG_EXTRA_FIRMWARE='
CONFIG_EXTRA_FIRMWARE="new_profile.bin APOLLO_FW_CPU1_B.bin <...>"
You can then follow the Linux kernel build flow to build the kernel and boot it on the board.
For Intel Agilex 7 I-Series (FM87)
Update the arch/arm64/configs/adi_zynqmp_defconfig
file to include
the generated .bin
under the CONFIG_EXTRA_FIRMWARE
option:
user@analog:~$
cd linux
user@analog:~/linux$
sed -i 's/^CONFIG_EXTRA_FIRMWARE="/&new_profile.bin /' arch/arm64/configs/adi_zynqmp_defconfig
user@analog:~/linux$
cat arch/arm64/configs/adi_zynqmp_defconfig | grep 'CONFIG_EXTRA_FIRMWARE='
CONFIG_EXTRA_FIRMWARE="new_profile.bin APOLLO_FW_CPU1_B.bin <...>"
You can then follow the Linux kernel build flow to build the kernel and boot it on the board.
Important
The adi,device-profile-fw-name
property must also be updated
in the device tree to match the name of the newly generated profile.