/
Baremetal Drivers and Libraries

Baremetal Drivers and Libraries

This page is intended to summarize key details related to Xilinx baremetal software for both hardened peripherals within Versal, Zynq UltraScale+ MPSoC, Zynq-7000 AP SoC, and embedded soft IP cores. Users who wish for higher overview of the Xilinx Baremetal solution can find it in our GIT on the Baremetal Documentation page.

Note: Linux-specific driver details can be found on our Linux Drivers page.

Table of Contents


Baremetal Driver Information

Unless otherwise noted, all standalone drivers included within AMD Xilinx Vitis/SDK are found at: C:\Xilinx\Vitis\202x.y\data\embeddedsw\XilinxProcessorIPLib\drivers (when default installation paths are used on a Windows host).
These drivers can also be found on the Xilinx GIT at: https://github.com/Xilinx/embeddedsw including the Doxygen generated documentation listed below.
Users of AMD Xilinx Baremetal Drivers must note the following:
  • AMD Xilinx Baremetal Drivers are independent of OS/RTOS and processors. They are intended to be highly portable. Users can have adapter layer(s) on top of the relevant driver(s) which will:
    • Encapsulate OS and processor dependencies.
    • Handle threads, semaphores/mutual exclusion.
    • Handle dynamic memory management (if any), threads and/or mutual exclusion, cache policies/maintenance.
  • AMD Xilinx Baremetal Drivers do not initialize and setup interrupt controllers. For interrupt-based usage users must initialize the interrupt controller in the adapter layer.

AMD Xilinx Baremetal Drivers and libraries do not handle watchdog timers. For watchdog timer-based use cases users must refresh the same in the adapter layer.

Driver Information

IP NameClassDriver NamePlatformDriver wiki pageDocumentation
(Doxygen Generated)
Comments
AXI central dma controllerDMAaxicdmaZynq, Zynq UltraScale+ MPSoC, MicroBlaze, VersalAXI CDMA Standalone Driveraxicdma
AXI dmaDMAaxidmaZynq, Zynq UltraScale+ MPSoC, MicroBlaze, VersalAXI DMA Standalone Driveraxidma
AXI MCDMADMAmcdmaZynq UltraScale+ MPSoC, VersalAXI MCDMA Standalone Drivermcdma
AXI ethernet subsystemNetworkingaxiethernetZynq, Zynq UltraScale+ MPSoC, MicroBlaze, VersalAXI Ethernet Standalone Driveraxiethernet
XXV Ethernet, USXGMIINetworkingxxvethernetZynqMPXXV Ethernet Standalone Driverxxvethernet
AXI PCIexpress corePCIeaxipcieZynq, Zynq UltraScale+ MPSoC, MicroBlazeTo be updatedaxipcie
AXI performance monitorMonitoraxipmonZynq, Zynq UltraScale+ MPSoC, MicroBlaze, VersalAXI PMON standalone driveraxipmon
Versal Performance MonitorPerformance monitorpmonpsvVersalPmonpsv Performance Monitor standalonepmonpsv
AXI video dmaDMAaxivdmaZynq, Zynq UltraScale+ MPSoC, MicroBlaze, VersalAXI VDMA Standalone Driveraxivdma
AXI i2cI2CiicZynq, Zynq UltraScale+ MPSoC, MicroBlaze, VersalAXI-I2C standalone driveraxii2c
Block ram controllerMemorybramZynq, Zynq UltraScale+ MPSoC, MicroBlaze, VersalBRAM Standalone driveraxibram
EmacliteNetworkingemacliteZynq, Zynq UltraScale+ MPSoC, MicroBlazeEmaclite Standalone Driveremaclite
AXI gpio controllerI/OgpioZynq, Zynq UltraScale+ MPSoC, MicroBlaze, VersalAXI gpio standalone drivergpio
IO moduleI/OiomoduleZynq, Zynq UltraScale+ MPSoC, MicroBlaze, VersalIomodule Standalone driveriomodule
AXI streaming fifoFIFOllfifoZynq, Zynq UltraScale+ MPSoC, MicroBlaze, VersalFIFO Standalone Driverllfifo
MutexIPCmutexZynq, Zynq UltraScale+ MPSoC, MicroBlaze, VersalMutex Standalone Drivermutex
MailboxIPCmboxZynq, Zynq UltraScale+ MPSoC, MicroBlaze, VersalMailbox Standalone Drivermbox
AXI watchdog timerTimerwdttb

Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal

AXI Watchdog Timer standalone driverwdttb
AXI usbUsbusbZynq, Zynq UltraScale+ MPSoC, MicroBlazeAXI USB Standalone Driverusb
AXI uart liteSerialuartliteZynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal AXI UART Lite standalone driveruartlite
AXI uart 16550SerialuartnsZynq, Zynq UltraScale+ MPSoC, MicroBlazeAXI UART 16550 standalone driveruartns550
Axi traffic generatorPerformancetrafgenZynq, Zynq UltraScale+ MPSoC, MicroBlaze, VersalAxi traffic generator standalone drivertrafgen
Test pattern generatorPerformancetpgZynq, Zynq UltraScale+ MPSoC, MicroBlazeTo be updatedtpg
Axi timer and counterTimertmrctrZynq, Zynq UltraScale+ MPSoC, MicroBlaze, VersalAXI TIMER Standalone Drivertmrctr
AXI TFT controllerIOaxitftZynq, Zynq UltraScale+ MPSoC, MicroBlazeTFT standalone drivertft
Serial RapidIOIOsrioZynq, Zynq UltraScale+ MPSoC, MicroBlazeTo be updatedsrio
Zynq scu watchdog timerTimerscuwdtZynqSCU Watchdog Standalone driverscuwdt
Zynq scu timerTimerscutimerZynqSCUTIMER Standalone Driver scutimer
Memory Interface GeneratorMemorymig_7seriesMicroBlazeTo be updatedmig_7series
Controller area networkNetworkingcanZynq, Zynq UltraScale+ MPSoC, MicroBlazeCAN standalone drivercan
Zynq and Zynq MPSoC
controller area network
NetworkingcanpsZynq, Zynq UltraScale+ MPSoCCAN PS Standalone Drivercanps
CANFDNetworkingcanfdZynq, Zynq UltraScale+ MPSoC,, Versalcanfd standalone Drivercanfd
GPIO controllerI/OgpiopsZynq, UltraScale+ MPSoC, Versal Gpio-PS standalone drivergpiops
RTCClockrtcpsu

Zynq UltraScale+ MPSoC, Versal

RTC standalone driverrtcpsu
Watchdog timerTimerwdtpsZynq, Zynq UltraScale+ MPSoCWatchdog Timer standalone driverwdtps
Arasan nand controllerNandnandpsuZynq UltraScale+ MPSoCNandpsu standalone drivernandpsu
Pl353 nand controllerNandnandpsZynqNandps standalone drivernandps
Pl330 dma controllerDMAdmapsZynqPL330 standalone driverdmaps
ZDMA controllerDMAzdmaZynq UltraScale+ MPSoC, VersalZynqMP/Versal DMA Standalone driverzdma
CSU dmaDMAcsudmaZynq UltraScale+ MPSoC, VersalCSUDMA standalone drivercsudma
USB 2.0 Synopsys DRD controllerUsbusbpsZynqZynq standalone usb device driverusbps
USB 3.0 Synopsys DRD controllerUsbusbpsuZynq UltraScale+ MPSoC, VersalZynqMp usb stadalone driverusbpsu
Gigabit Ethernet MACNetworkingemacpsZynq, Zynq UltraScale+ MPSoC, VersalEthernet standalone driveremacps
AXI Quad SPISPIspiZynq,Zynq UltraScale+ MPSoC, MicroBlazeAxi-QuadSPIspi
GQSPI controllerSPIqspipsuZynq UltraScale+ MPSoC, VersalQspipsu standalone driverqspipsu
Cadence spi controllerSPIspipsZynq, Zynq UltraScale+ MPSoC, VersalSpips Standalone driverspips
QSPI controllerQSPIqspipsZynqQspips standalone driverqspi
Cadence uart controllerSerialuartpsZynq, Zynq UltraScale+ MPSoCUART standalone driveruartps
Cadence iicps controllerI2CiicpsZynq, Zynq UltraScale+ MPSoC, VersalI2CPS standalone driveri2cps
Arasan SD 3.0 host controllerSDsdps

Zynq UltraScale+ MPSoC, Versal

SDPS standalone driversdps
Arasan SD 2.0 host controllerSDsdpsZynqZynq SD standalone driversdps
Triple-timer counterTimerttcpsZynq, Zynq UltraScale+ MPSoC, VersalTTC standalone driverttcps
Interrupt controllerGICscugicZynq, Zynq UltraScale+ MPSoC, VersalGIC standalone drivergic
Sysmonpsu controllerSysmonsysmonpsuZynq UltraScale+ MPSoCSysmonpsu standalone driversysmonpsu
XADC controllerADCxadcZynqXADC standalone driverxadc
Zynq MPSoc DisplayPort ControllerDisplayPort ControllerdppsuZynq UltraScale+ MPSoCZynqMp DisplayPort Subsystemdppsu
Zynq MPSoc Video PipelineVideoavbuf