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 Name | Class | Driver Name | Platform | Driver wiki page | Documentation | Comments |
AXI central dma controller | DMA | axicdma | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
AXI dma | DMA | axidma | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
AXI MCDMA | DMA | mcdma | Zynq UltraScale+ MPSoC, Versal | |||
AXI ethernet subsystem | Networking | axiethernet | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
XXV Ethernet, USXGMII | Networking | xxvethernet | ZynqMP | |||
AXI PCIexpress core | PCIe | axipcie | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | To be updated | ||
AXI performance monitor | Monitor | axipmon | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
Versal Performance Monitor | Performance monitor | pmonpsv | Versal | |||
AXI video dma | DMA | axivdma | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
AXI i2c | I2C | iic | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
Block ram controller | Memory | bram | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
Emaclite | Networking | emaclite | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | |||
AXI gpio controller | I/O | gpio | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
IO module | I/O | iomodule | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
AXI streaming fifo | FIFO | llfifo | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
Mutex | IPC | mutex | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
Mailbox | IPC | mbox | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
AXI watchdog timer | Timer | wdttb | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
AXI usb | Usb | usb | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | |||
AXI uart lite | Serial | uartlite | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
AXI uart 16550 | Serial | uartns | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | |||
Axi traffic generator | Performance | trafgen | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
Test pattern generator | Performance | tpg | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | To be updated | ||
Axi timer and counter | Timer | tmrctr | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze, Versal | |||
AXI TFT controller | IO | axitft | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | |||
Serial RapidIO | IO | srio | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | To be updated | ||
Zynq scu watchdog timer | Timer | scuwdt | Zynq | |||
Zynq scu timer | Timer | scutimer | Zynq | |||
Memory Interface Generator | Memory | mig_7series | MicroBlaze | To be updated | ||
Controller area network | Networking | can | Zynq, Zynq UltraScale+ MPSoC, MicroBlaze | |||
Zynq and Zynq MPSoC | Networking | canps | Zynq, Zynq UltraScale+ MPSoC | |||
CANFD | Networking | canfd | Zynq, Zynq UltraScale+ MPSoC,, Versal | |||
GPIO controller | I/O | gpiops | Zynq, UltraScale+ MPSoC, Versal | |||
RTC | Clock | rtcpsu | Zynq UltraScale+ MPSoC, Versal | |||
Watchdog timer | Timer | wdtps | Zynq, Zynq UltraScale+ MPSoC | |||
Arasan nand controller | Nand | nandpsu | Zynq UltraScale+ MPSoC | |||
Pl353 nand controller | Nand | nandps | Zynq | |||
Pl330 dma controller | DMA | dmaps | Zynq | |||
ZDMA controller | DMA | zdma | Zynq UltraScale+ MPSoC, Versal | |||
CSU dma | DMA | csudma | Zynq UltraScale+ MPSoC, Versal | |||
USB 2.0 Synopsys DRD controller | Usb | usbps | Zynq | |||
USB 3.0 Synopsys DRD controller | Usb | usbpsu | Zynq UltraScale+ MPSoC, Versal |
© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy