/
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.
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 Name | Class | Driver Name | Platform | Driver wiki page | Documentation (Doxygen Generated) | Comments |
AXI central dma controller | DMA | axicdma | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | AXI CDMA Standalone Driver | axicdma | |
AXI dma | DMA | axidma | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | AXI DMA Standalone Driver | axidma | |
AXI MCDMA | DMA | mcdma | Zynq UltraScale+ MPSoC, Versal | AXI MCDMA Standalone Driver | mcdma | |
AXI ethernet subsystem | Networking | axiethernet | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | AXI Ethernet Standalone Driver | axiethernet | |
XXV Ethernet, USXGMII | Networking | xxvethernet | ZynqMP | XXV Ethernet Standalone Driver | xxvethernet | |
AXI PCIexpress core | PCIe | axipcie | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | To be updated | axipcie | |
AXI performance monitor | Monitor | axipmon | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | AXI PMON standalone driver | axipmon | |
Versal Performance Monitor | Performance monitor | pmonpsv | Versal | Pmonpsv Performance Monitor standalone | pmonpsv | |
AXI video dma | DMA | axivdma | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | AXI VDMA Standalone Driver | axivdma | |
AXI i2c | I2C | iic | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | AXI-I2C standalone driver | axii2c | |
Block ram controller | Memory | bram | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | BRAM Standalone driver | axibram | |
Emaclite | Networking | emaclite | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | Emaclite Standalone Driver | emaclite | |
AXI gpio controller | I/O | gpio | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | AXI gpio standalone driver | gpio | |
IO module | I/O | iomodule | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | Iomodule Standalone driver | iomodule | |
AXI streaming fifo | FIFO | llfifo | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | FIFO Standalone Driver | llfifo | |
Mutex | IPC | mutex | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | Mutex Standalone Driver | mutex | |
Mailbox | IPC | mbox | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | Mailbox Standalone Driver | mbox | |
AXI watchdog timer | Timer | wdttb | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | AXI Watchdog Timer standalone driver | wdttb | |
AXI usb | Usb | usb | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | AXI USB Standalone Driver | usb | |
AXI uart lite | Serial | uartlite | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | AXI UART Lite standalone driver | uartlite | |
AXI uart 16550 | Serial | uartns | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | AXI UART 16550 standalone driver | uartns550 | |
Axi traffic generator | Performance | trafgen | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | Axi traffic generator standalone driver | trafgen | |
Test pattern generator | Performance | tpg | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | To be updated | tpg | |
Axi timer and counter | Timer | tmrctr | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | AXI TIMER Standalone Driver | tmrctr | |
AXI TFT controller | IO | axitft | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | TFT standalone driver | tft | |
Serial RapidIO | IO | srio | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | To be updated | srio | |
Zynq scu watchdog timer | Timer | scuwdt | Zynq | SCU Watchdog Standalone driver | scuwdt | |
Zynq scu timer | Timer | scutimer | Zynq | SCUTIMER Standalone Driver | scutimer | |
Memory Interface Generator | Memory | mig_7series | MicroBlaze | To be updated | mig_7series | |
Controller area network | Networking | can | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | CAN standalone driver | can | |
Zynq and Zynq MPSoC controller area network | Networking | canps | Zynq, Zynq UltraScale+ MPSoC | CAN PS Standalone Driver | canps | |
CANFD | Networking | canfd | Zynq, Zynq UltraScale+ MPSoC,, Versal | canfd standalone Driver | canfd | |
GPIO controller | I/O | gpiops | Zynq, UltraScale+ MPSoC, Versal | Gpio-PS standalone driver | gpiops | |
RTC | Clock | rtcpsu | Zynq UltraScale+ MPSoC, Versal | RTC standalone driver | rtcpsu | |
Watchdog timer | Timer | wdtps | Zynq, Zynq UltraScale+ MPSoC | Watchdog Timer standalone driver | wdtps | |
Arasan nand controller | Nand | nandpsu | Zynq UltraScale+ MPSoC | Nandpsu standalone driver | nandpsu | |
Pl353 nand controller | Nand | nandps | Zynq | Nandps standalone driver | nandps | |
Pl330 dma controller | DMA | dmaps | Zynq | PL330 standalone driver | dmaps | |
ZDMA controller | DMA | zdma | Zynq UltraScale+ MPSoC, Versal | ZynqMP/Versal DMA Standalone driver | zdma | |
CSU dma | DMA | csudma | Zynq UltraScale+ MPSoC, Versal | CSUDMA standalone driver | csudma | |
USB 2.0 Synopsys DRD controller | Usb | usbps | Zynq | Zynq standalone usb device driver | usbps | |
USB 3.0 Synopsys DRD controller | Usb | usbpsu | Zynq UltraScale+ MPSoC, Versal | ZynqMp usb stadalone driver | usbpsu | |
Gigabit Ethernet MAC | Networking | emacps | Zynq, Zynq UltraScale+ MPSoC, Versal | Ethernet standalone driver | emacps | |
AXI Quad SPI | SPI | spi | Zynq,Zynq UltraScale+ MPSoC, MicroBlaze | Axi-QuadSPI | spi | |
GQSPI controller | SPI | qspipsu | Zynq UltraScale+ MPSoC, Versal | Qspipsu standalone driver | qspipsu | |
Cadence spi controller | SPI | spips | Zynq, Zynq UltraScale+ MPSoC, Versal | Spips Standalone driver | spips | |
QSPI controller | QSPI | qspips | Zynq | Qspips standalone driver | qspi | |
Cadence uart controller | Serial | uartps | Zynq, Zynq UltraScale+ MPSoC | UART standalone driver | uartps | |
Cadence iicps controller | I2C | iicps | Zynq, Zynq UltraScale+ MPSoC, Versal | I2CPS standalone driver | i2cps | |
Arasan SD 3.0 host controller | SD | sdps | Zynq UltraScale+ MPSoC, Versal | SDPS standalone driver | sdps | |
Arasan SD 2.0 host controller | SD | sdps | Zynq | Zynq SD standalone driver | sdps | |
Triple-timer counter | Timer | ttcps | Zynq, Zynq UltraScale+ MPSoC, Versal | TTC standalone driver | ttcps | |
Interrupt controller | GIC | scugic | Zynq, Zynq UltraScale+ MPSoC, Versal | GIC standalone driver | gic | |
Sysmonpsu controller | Sysmon | sysmonpsu | Zynq UltraScale+ MPSoC | Sysmonpsu standalone driver | sysmonpsu | |
XADC controller | ADC | xadc | Zynq | XADC standalone driver | xadc | |
Zynq MPSoc DisplayPort Controller | DisplayPort Controller | dppsu | Zynq UltraScale+ MPSoC | ZynqMp DisplayPort Subsystem | dppsu | |
Zynq MPSoc Video Pipeline | Video | avbuf | Zynq UltraScale+ MPSoC | ZynqMp DisplayPort Subsystem | avbuf | |
Zynq MPSoc DPDMA | DMA | dpdma | Zynq UltraScale+ MPSoC | ZynqMp DisplayPort Subsystem | dpdma | |
RFdc wrapper | usp data converter | rfdc | Zynq UltraScale+ RFSoC | RFdc Standalone driver | rfdc | |
Video Frame Buffer Read | Video | v_frmbuf_rd | Zynq UltraScale+ MPSoC | Video Frame Buffer Read | v_frmbuf_rd | |
Video Frame Buffer Write | Video | v_frmbuf_wr | Zynq UltraScale+ MPSoC | Video Frame Buffer Write | v_frmbuf_wr | |
Video Scene Change | Video | v_scenechange | Zynq UltraScale+ MPSoC | Video Scene change driver | v_scenechange | |
Video Mixer | Video | v_mix | Zynq UltraScale+ MPSoC | Video Mixer driver | v_mix | |
Video Processing Subsystem | Video | vprocss | Zynq UltraScale+ MPSoC | Video Processing Subsystem driver | vprocss | |
Video Horizontal Scaler | Video | v_hscaler | Zynq UltraScale+ MPSoC | Video Processing Subsystem driver | v_hscaler | |
Video Vertical Scaler | Video | v_vscaler | Zynq UltraScale+ MPSoC | Video Processing Subsystem driver | v_vscaler | |
Video Horizontal Resampler | Video | v_hcresampler | Zynq UltraScale+ MPSoC | Video Processing Subsystem driver | v_hcresampler | |
Video Vertical Resampler | Video | v_vcresampler | Zynq UltraScale+ MPSoC | Video Processing Subsystem driver | v_vcresampler | |
Video Color Space Converter | Video | v_csc | Zynq UltraScale+ MPSoC | Video Processing Subsystem driver | v_csc | |
Video Multi Scaler | Video | v_multi_scaler | Zynq UltraScale+ MPSoC | Video Multi Scaler Driver | v_multi_scaler | |
Video Letter Box | Video | v_letterbox | Zynq UltraScale+ MPSoC | Video Processing Subsystem driver | v_letterbox | |
csi2txss | Video | csi2txss | Zynq UltraScale+ MPSoC | CSI2Tx driver | csi2txss | |
dsi | Video | dsi | Zynq UltraScale+ MPSoC | DSI Driver | dsi | |
mipicsiss | Video | mipicsiss | Zynq UltraScale+ MPSoC | MIPICSISS Driver | mipicsiss | |
sdiaud | Audio | sdiaud | Zynq UltraScale+ MPSoC | sdiaud Driver | sdiaud | |
sdirxss | Video | v_sdirxss | Zynq UltraScale+ MPSoC | sdirxss Driver | v_sdirxss | |
IPI | IPI | ipipsu | Zynq UltraScale+ MPSoC, Versal | Ipipsu Standalone driver | ipipsu | |
Sysmon for Versal | Sysmon | sysmonpsv | Versal | Sysmon Standalone driver | sysmonpsv | |
ospi | ospi | ospipsv | Versal | OSPI Standalone driver | ospipsv | |
Clocking Wizard | Clocking | clk_wiz | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | Clocking Wizard Standalone driver | clk_wiz | |
AXI intc | interrupt controller | intc | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | intc | ||
PS-PCIe | PCIe | pciepsu | Zynq UltraScale+ MPSoC | PCIePSU Standalone driver | pcipsu | |
DFX Decoupler | DFX | prd | Zynq UltraScale+ MPSoC, Versal | Prd_Standalone_Driver | prd | |
DFX AXI Shutdown manager | DFX | dfxasm | Zynq UltraScale+ MPSoC, Versal | Dfxasm Standalone Driver | dfxasm | |
Uartpsv | Serial | uartpsv | Versal | Uartpsv standalone driver | uartpsv | |
AXI DDR Synopsys controller | DDR | ddrcpsu | Zynq UltraScale+ MPSoC | ddrcpsu Standalone Driver | ddrcpsu | |
DDR4 memory controller | DDR | ddrpsv | Versal | ddrpsv Standalone Driver | ddrpsv | |
DDR3 memory controller | DDR | ddrps | Zynq | ddrps Standalone Driver | ddrps | |
Clockps | Clock driver | clockps | Zynq UltraScale+ MPSoC | Clockps Standalone Driver | clockps | |
axi4-stream switch | Axi stteam switch | axis_switch | Zynq, Zynq UltraScale+ MPSoC, Versal | axis_switchStandalone Driver | axis_switch | |
Resetps | Reset driver | resetps | Zynq UltraScale+ MPSoC | resetps Standalone Driver | resetps | |
ARM Coresightps controller | Debugger | coresightps_dcc | Zynq, Zynq UltraScale+ MPSoC, Versal | coresightps Standalone Driver | coresightps_dcc | |
AXI I3C controller | I3C | i3c | Zynq UltraScale+ MPSoC | AXI I3C Standalone Driver | NA | |
I3C controller | I3C | i3cpsx | Versal | i3cpsx Standalone Driver | i3cpsx | |
Axi EMC controlled | EMC | emc | MicroBlaze | Emc standalone driver | emc | |
UFS XHCI | UFS XHCI | ufspsxc | AMD Versal Gen 2 | UFS Standalone driver |
Libraries Information
Library Name | Class | Drivers/Processors | Platform | Link | Documentation (Doxygen Generated) | Comments |
---|---|---|---|---|---|---|
lwip | Network TCP/IP stack | emacps, axiethernet | Zynq,Zynq UltraScale+ MPSoC, MicroBlaze, Versal | LWIP library | lwip | |
xilisf | Flash | spips, qspips, qspipsu, axi qspi | Zynq,Zynq UltraScale+ MPSoC, MicroBlaze | xilisf library | xilisf | Deprecated in 2020.2 release |
xilflash | Parallel Flash | emc | Microblaze | xilflash library | xilflash | |
standalone bsp | bsp | cortex-A9, cortex-A53, cortex-R5 processors, Cortex-A72 | Zynq,Zynq UltraScale+ MPSoC, MicroBlaze, Versal | Standalone BSP | standalone bsp | |
xilffs | FAT File System | sdps, ufs | Zynq,Zynq UltraScale+ MPSoC, Versal | xilffs library | xilffs | |
xilfpga | Bitstream loading | csudma | Zynq UltraScale+ MPSoC, Versal | Xilfpga library | xilfpga | |
xilskey | Security | efuse, bbram | Zynq, ZynqMP and Ultrascale | xilskey Library | xilskey | |
xilsecure | security | AES, RSA, SHA2/SHA3 | Zynq,Zynq UltraScale+ MPSoC | xilsecure Library | xilsecure | |
xilrsa | security | RSA, SHA2 | Zynq | xilrsa library | xilrsa | |
xilmailbox | Mailbox | ipipsu | Zynq,Zynq UltraScale+ MPSoC, Versal | xilmailbox library | xilmailbox | |
xilsfl | Flash | OSPI | Versal | xilsfl |
Change Log for the Drivers, BSPs, Libraries
Related Links
, multiple selections available,
Related content
Standalone Clockps Driver
Standalone Clockps Driver
More like this
Linux Drivers
Linux Drivers
More like this
FreeRTOS
FreeRTOS
Read with this
Iomodule Standalone driver
Iomodule Standalone driver
More like this
AXI UART Lite standalone driver
AXI UART Lite standalone driver
Read with this
Mutex standalone
Mutex standalone
More like this
© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy