This page is intended to give more details on the Xilinx drivers for U-boot, such as testing, how to use the drivers, etc. The drivers included in the u-boot tree are intended to run on ARM (Zynq,
Zynq Ultrascale+ MPSoC).

Driver Information

There are a number of drivers in the u-boot tree and they may work, but the following list of drivers are currently what's tested and users are encouraged to use these rather than others.

ComponentPlatform/IP coreLinkIn MainlineLocationComment
i2cZynq, ZynqMP and Versali2c driverYesdrivers/i2c/zynq_i2c.c and

SD controllerZynq, ZynqMP and Versalmmc driverYesdrivers/mmc/zynq_sdhci.c
GEMZynq, ZynqMP and Versalethernet driverYesdrivers/net/zynq_gem.c
AXI EthernetPLEthernet driver for 1G/10G/25GYesdrivers/net/xilinx_axi_emac.c
MRMACPLMultirate MAC 10G/25GYesdrivers/net/xilinx_axi_mrmac.cSupports designs based on MCDMA only
AXI UARTPLAXI UART driverYesdrivers/serial/serial_xuartlite.c
QSPIZynqqspi driverYes


QSPIZynqMP and Versal                qspi driverYesdrivers/spi/zynqmp_gqspi.cNeed to upstream support for dual-parallel and dual-stacked configurations
OSPIVersalOctal SPI driverNo




drivers/spi/cadence_ospi_versal.c is not in mainline yet
USBZynq, ZynqMP and Versalusb driverYesdrivers/usb/host/xhci-zynqmp.c and

NANDZynq, ZynqMP and Versalnand driverYesdrivers/mtd/nand/zynq_nand.c and

GPIOZynq, ZynqMP and Versalgpio driverYesdrivers/gpio/zynq_gpio.c and


SerialZynq and ZynqMPUART driverYesdrivers/serial/serial_zynq.c
WatchdogVersalWatchdog driverYesdrivers/watchdog/xilinx_wwdt.c