SDAA427 July 2026 AFE7900 , AFE7901 , AFE7903 , AFE7906 , AFE7950 , AFE7950-SP , AFE7951 , AFE7953 , AFE7954 , AFE7955 , AFE7958
This section describes building a standard Linux kernel for the ZCU102 board without AFE79xx driver integration, establishing the base system for the user-space driver approach. Since the AFE79xx SDK will be compiled and deployed as a user-space application in subsequent sections, the kernel build does not require custom driver modifications or AFE79xx-specific configuration. The resulting kernel image includes only the generic SPI device driver (spidev) and standard ZCU102 board support, providing the foundation upon which the user-space AFE79xx SDK will operate. This approach simplifies kernel management and allows the AFE79xx driver to be developed, updated, and deployed independently of the kernel.
The AFE79xx SDK needs a SPI interface to communicate with the device. Section 5 describes reference design for adding processor and SPI to ZCU102 FPGA. We can follow exactly to generate the .xsa and .bit.
Follow the steps below to build kernel without AFE79xx driver. This includes only SPI needed for AFE79xx configuration:
Step 1: On the Linux terminal , create a petaLinux project by running command
petalinux-create -t project -n <Project_Name> -s <path to BSP>Step 2: Change directory into the project folder <Project_Name> and run command
petalinux-config –get-hw-description <path to XSA>Step 3: Configure kernel using command
petalinux-config -c kernelThe configuration menu will open. Navigate 'Device drivers' -> 'SPI support' and enable options Cadence SPI, Xilinx SPI, Xilinx Zynq QSPI and User mode SPI device driver.
Figure 3-1 Kernle Config MenuStep 4: configure Root file system using command
petalinux-config -c rootfsThis will open the RootFs configuration menu. To enable GCC compiler navigate to 'Filesystem packages' -> 'misc' -> 'packagegroup-core-buildessential' under this select 'packagegroup-core-buidessential' and 'packagegroup-core-buidessential-dev'
Figure 3-2 RootFs Config Menu for Build DependenciesStep 5: The device tree must be updated to declare the AFE79xx device on the SPI bus, enabling the kernel to recognize and initialize the hardware. The system-user.dtsi file is used for custom device tree modifications in PetaLinux projects.
Go to device tree, add SPI to device tree by editing the system-user.dtsi file in path
<Project_Name>/project-spec/meta-user/recipes-bsp/device-tree/files/In device tree add entries for SPI slaves as shown below:
Figure 3-3 Example Device TreeThis will create a device in /dev by the name "/dev/spidev1.0" after bootup.
Step 6: Build your project using command:
petalinux-buildThis process may take 30-60 minutes depending on your host system performance.
Step 7: Package the file using
petalinux-package --boot --fsbl < Project_Name >/images/linux/zynqmp_fsbl.elf --fpga <path to bit file> --u-boot –forceAfter successfully build, we should have all files needed for section 4.2. we can follow section 4.2 exactly to partition the SD card, copy the boot images and root filesystem to the appropriate partitions, and prepare the bootable media.