/
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 PipelineVideoavbufZynq UltraScale+ MPSoCZynqMp DisplayPort Subsystemavbuf
Zynq MPSoc DPDMADMAdpdmaZynq UltraScale+ MPSoCZynqMp DisplayPort Subsystemdpdma
RFdc wrapperusp data converterrfdcZynq UltraScale+ RFSoCRFdc Standalone driverrfdc
Video Frame Buffer ReadVideov_frmbuf_rdZynq UltraScale+ MPSoCVideo Frame Buffer Readv_frmbuf_rd
Video Frame Buffer WriteVideov_frmbuf_wrZynq UltraScale+ MPSoCVideo Frame Buffer Writev_frmbuf_wr
Video Scene ChangeVideov_scenechangeZynq UltraScale+ MPSoCVideo Scene change driverv_scenechange
Video MixerVideov_mixZynq UltraScale+ MPSoCVideo Mixer driverv_mix
Video Processing SubsystemVideovprocssZynq UltraScale+ MPSoCVideo Processing Subsystem drivervprocss
Video Horizontal ScalerVideov_hscalerZynq UltraScale+ MPSoCVideo Processing Subsystem driverv_hscaler
Video Vertical ScalerVideov_vscalerZynq UltraScale+ MPSoCVideo Processing Subsystem driverv_vscaler
Video Horizontal ResamplerVideov_hcresamplerZynq UltraScale+ MPSoCVideo Processing Subsystem driverv_hcresampler
Video Vertical ResamplerVideov_vcresamplerZynq UltraScale+ MPSoCVideo Processing Subsystem driverv_vcresampler
Video Color Space ConverterVideov_cscZynq UltraScale+ MPSoCVideo Processing Subsystem driverv_csc
Video Multi ScalerVideov_multi_scalerZynq UltraScale+ MPSoCVideo Multi Scaler Driverv_multi_scaler
Video Letter BoxVideov_letterboxZynq UltraScale+ MPSoCVideo Processing Subsystem driverv_letterbox
csi2txssVideocsi2txssZynq UltraScale+ MPSoCCSI2Tx drivercsi2txss
dsiVideodsiZynq UltraScale+ MPSoCDSI Driverdsi
mipicsissVideomipicsissZynq UltraScale+ MPSoCMIPICSISS Drivermipicsiss
sdiaudAudiosdiaudZynq UltraScale+ MPSoCsdiaud Driversdiaud
sdirxssVideov_sdirxssZynq UltraScale+ MPSoCsdirxss Driverv_sdirxss
IPIIPIipipsu

Zynq UltraScale+ MPSoC, Versal

Ipipsu Standalone driveripipsu
Sysmon for VersalSysmonsysmonpsvVersalSysmon Standalone driversysmonpsv
ospiospiospipsvVersalOSPI Standalone driverospipsv
Clocking WizardClocking clk_wizZynq, Zynq UltraScale+ MPSoC, MicroBlaze, VersalClocking Wizard Standalone driverclk_wiz
AXI intcinterrupt controllerintcZynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal

AXI INTC Standalone driver

intc
PS-PCIePCIepciepsuZynq UltraScale+ MPSoCPCIePSU Standalone driverpcipsu
DFX DecouplerDFXprdZynq UltraScale+ MPSoC, VersalPrd_Standalone_Driverprd
DFX AXI Shutdown managerDFXdfxasmZynq UltraScale+ MPSoC, VersalDfxasm Standalone Driverdfxasm
UartpsvSerialuartpsvVersalUartpsv standalone driveruartpsv
AXI DDR Synopsys controllerDDRddrcpsuZynq UltraScale+ MPSoCddrcpsu Standalone Driverddrcpsu
DDR4 memory controllerDDRddrpsvVersalddrpsv Standalone Driverddrpsv
DDR3 memory controllerDDRddrpsZynqddrps Standalone Driverddrps
ClockpsClock driverclockpsZynq UltraScale+ MPSoCClockps Standalone Driverclockps
axi4-stream switchAxi stteam switch axis_switchZynq, Zynq UltraScale+ MPSoC, Versalaxis_switchStandalone Driveraxis_switch
ResetpsReset driverresetpsZynq UltraScale+ MPSoCresetps Standalone Driverresetps
ARM Coresightps controllerDebuggercoresightps_dccZynq, Zynq UltraScale+ MPSoC, Versalcoresightps Standalone Drivercoresightps_dcc
AXI I3C controllerI3Ci3cZynq UltraScale+ MPSoCAXI I3C Standalone DriverNA
I3C controllerI3Ci3cpsxVersali3cpsx Standalone Driveri3cpsx
Axi EMC controlledEMCemcMicroBlazeEmc standalone driveremc
UFS XHCIUFS XHCIufspsxcAMD Versal Gen 2UFS Standalone driver

Libraries Information

Library NameClassDrivers/ProcessorsPlatformLinkDocumentation
(Doxygen Generated)
Comments
lwipNetwork TCP/IP stackemacps, axiethernetZynq,Zynq UltraScale+ MPSoC, MicroBlaze, VersalLWIP librarylwip
xilisfFlashspips, qspips, qspipsu, axi qspiZynq,Zynq UltraScale+ MPSoC, MicroBlazexilisf libraryxilisfDeprecated in 2020.2 release
xilflashParallel FlashemcMicroblazexilflash libraryxilflash
standalone bspbspcortex-A9, cortex-A53, cortex-R5 processors, Cortex-A72Zynq,Zynq UltraScale+ MPSoC, MicroBlaze, VersalStandalone BSPstandalone bsp
xilffsFAT File Systemsdps, ufsZynq,Zynq UltraScale+ MPSoC, Versalxilffs libraryxilffs
xilfpgaBitstream loadingcsudmaZynq UltraScale+ MPSoC, VersalXilfpga libraryxilfpga
xilskeySecurityefuse, bbramZynq, ZynqMP and Ultrascalexilskey Libraryxilskey
xilsecuresecurityAES, RSA, SHA2/SHA3Zynq,Zynq UltraScale+ MPSoCxilsecure Libraryxilsecure
xilrsasecurityRSA, SHA2Zynqxilrsa libraryxilrsa


xilmailboxMailboxipipsuZynq,Zynq UltraScale+ MPSoC, Versalxilmailbox libraryxilmailbox



xilsflFlashOSPIVersalxilsfl

Change Log for the Drivers, BSPs, Libraries


Related Links

Related content

© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy