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

v_mix



Video Processing Subsystem

Video

vprocss

Zynq UltraScale+ MPSoC

Video Processing Subsystem

vprocss



Video Horizontal Scaler

Video

v_hscaler

Zynq UltraScale+ MPSoC

Video Processing Subsystem

v_hscaler



Video Vertical Scaler

Video

v_vscaler

Zynq UltraScale+ MPSoC

Video Processing Subsystem

v_vscaler



Video Horizontal Resampler

Video

v_hcresampler

Zynq UltraScale+ MPSoC

Video Processing Subsystem

v_hcresampler



Video Vertical Resampler

Video

v_vcresampler

Zynq UltraScale+ MPSoC

Video Processing Subsystem

v_vcresampler



Video Color Space Converter

Video

v_csc

Zynq UltraScale+ MPSoC

Video Processing Subsystem

v_csc



Video Deinterlacer

Video

v_deinterlacer

Zynq UltraScale+ MPSoC

Video Processing Subsystem

v_deinterlacer



Video Letter Box

Video

v_letterbox

Zynq UltraScale+ MPSoC

Video Processing Subsystem

v_letterbox



Video Multi Scaler

Video

v_multi_scaler

Zynq UltraScale+ MPSoC

Video Multi Scaler Driver

v_multi_scaler

 

csi2txss

Video

csi2txss

Zynq UltraScale+ MPSoC

CSI2Tx driver

csi2txss



MIPI DSI-2 Tx Subsystem

Video

dsitxss

Zynq UltraScale + MPSoC + Versal

MIPI DSI-2 TX Subsystem Standalone Driver

dsitxss



MIPI CSI-2 Rx Subsystem

Video

mipicsiss

Zynq, Zynq UltraScale+ MPSoC, Versal

MIPI CSI-2 RX Subsystem Standalone Driver

mipicsiss



DP1.4 Tx Subsystem

PL Video

dp14txss

Zynq UltraScale+ MPSoC, Versal, Vertex - VCU118

DP1.4 TXSS standalone driver

dp14txss

 

DP1.4 Rx Subsystem

PL Video

dp14rxss

Zynq UltraScale+ MPSoC, Versal, Vertex - VCU118

DP1.4 RXSS standalone driver

dp14rxss

 

sdiaud

Audio

sdiaud

Zynq UltraScale+ MPSoC

sdiaud Driver

sdiaud



sditxss

Video

v_sditxss

Zynq UltraScale+ MPSoC, Versal

sditxss_Driver

v_sditxss

 

sdirxss

Video

v_sdirxss

Zynq UltraScale+ MPSoC, Versal

SMPTE UHD‑SDI Receiver Standalone Driver

v_sdirxss



HDMI 2.1 Tx Subsystem

Video

v_hdmitxss1

Zynq, Zynq UltraScale+ MPSoC, Versal

HDMI 2.1 Tx Subsystem standalone driver

v_hdmitxss1: Main Page

 

HDMI 2.1 Rx Subsystem

Video

v_hdmirxss1

Zynq, Zynq UltraScale+ MPSoC, Versal

HDMI 2.1 RX Subsystem standalone driver

v_hdmirxss1: Main Page

 

HDMI 2.1 PHY/GT Controller

Video

v_hdmiphy1

Zynq, Zynq UltraScale+ MPSoC, Versal

HDMI 2.1 PHY / GT Controller standalone driver

v_hdmiphy1: Main Page

 

HDMI 1.4/2.0 Tx Subsystem

Video

v_hdmitxss

Zynq, Zynq UltraScale+ MPSoC, Versal

https://xilinx-wiki.atlassian.net/wiki/spaces/XWUC/pages/3520331819

v_hdmitxss: Main Page

 

HDMI 1.4/2.0 Rx Subsystem

Video

v_hdmirxss

Zynq, Zynq UltraScale+ MPSoC, Versal

https://xilinx-wiki.atlassian.net/wiki/spaces/XWUC/pages/3520561160

v_hdmirxss: Main Page

 

Xilinx Video PHY controller

Video

vphy

Zynq, Zynq UltraScale+ MPSoC, Versal

https://xilinx-wiki.atlassian.net/wiki/spaces/XWUC/pages/3520266248

vphy: Main Page

 

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

AXI INTC Standalone driver

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

i3c



DWC I3C controller

I3C

i3cpsx

VersalNet, AMD Versal Gen 2

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