/
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 |