Linux Drivers



Linux Drivers

This page is intended to give more details on the Xilinx drivers for Linux, such as testing, how to use the drivers, known issues, etc. The drivers included in the kernel tree are intended to run on the ARM (Zynq, Ultrascale+ MPSoC, Versal) and MicroBlaze Linux.


Driver Information

There are a number of drivers in the kernel tree due to history and they may work, but the following list of drivers are currently what's tested and users are encouraged to use these rather than others. Any other drivers, not in the mainline and only in the Xilinx tree, may be old and that they could be removed at any time.


Component

Platform/IP Core

Link

In Mainline

Location

Comment

Analog to Digital Converter

Zynq-7000 SoC, axi_xadc, xadc_wiz

XADC Driver

Yes

drivers/iio/adc/xilinx-xadc-core.c



System Monitor

Ultrascale+ MPSoC

AMS

No

drivers/iio/adc/xilinx-ams.c



CAN Controller

Zynq-7000 SoC , axi_can
Ultrascale+ MPSoC

LinuxCAN Driver

Yes

drivers/net/can/xilinx_can.c

Alternative CAN4Linux project: can4linux

CANFD Controller

axi_canfd

LinuxCAN Driver

No

drivers/net/can/xilinx_can.c



Common Clock Framework

Zynq-7000 SoC


CCF

Yes

drivers/clk/zynq/




cpufreq

Zynq-7000 SoC and
Ultrascale+ MPSoC

Cpufreq

Yes

drivers/cpufreq/cpufreq-dt.c



cpuidle

Zynq-7000 SoC and
Ultrascale+ MPSoC

cpuidle

Yes

drivers/cpuidle/cpuidle-zynq.c



Devcfg

Zynq-7000 SoC

PL Programming

No

drivers/char/xilinx_devcfg.c

xilinx_devcfg.c driver got deprecated in 2018.1 release. So this driver is not part of mainline tree.

DFX Decoupler

DFX Axi Shutdown  manager

Zynq Ultrascale+ MPSoC, Versal

PL Programming

Yes

drivers/fpga/xilinx-pr-decoupler.c



DMA Controller

Zynq-7000 SoC (PL330)

N/A

Yes

drivers/dma/pl330.c

PL330 driver is owned/maintained by linux open source community.

DMA Controller

Platform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC/Versal
and Microblaze

IP: axi_dma

DMA drivers

Yes

drivers/dma/xilinx/xilinx_dma.c



DMA Controller

Platform:Zynq-7000 SoC/Zynq Ultrascale+ MPSoC/Versal and Microblaze

IP: axi_cdma

DMA drivers

Yes

drivers/dma/xilinx/xilinx_dma.c



DMA Controller

Platform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC/Versal and Microblaze

IP: axi_vdma

DMA drivers

Yes

drivers/dma/xilinx/xilinx_dma.c



DMA Controller

Platform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC/Versal and Microblaze

IP: axi_mcdma

DMA drivers

Yes

drivers/dma/xilinx/xilinx_dma.c



DMA Controller

Platform: Zynq Ultrascale+ MPSoC, Versal

IP: ZynqMP DMA

Zynqmp and Versal DMA

Yes

drivers/dma/xilinx/zynqmp_dma.c



DMA Controller

Platform: Zynq Ultrascale+ MPSoC

IP: Video Framebuffer Write
IP: Video Framebuffer Read

Video Framebuffer Write
Video Framebuffer Read

No

drivers/dma/xilinx/xilinx_frmbuf.c



DRM KMS

Ultrascale+ MPSoC

DRM KMS Driver
DisplayPort driver







Yes

drivers/gpu/drm/xilinx/*
drivers/gpu/drm/xlnx/*







Including subdevice drivers
- HDMI Tx

-DP Tx Subsystem
- On Screen Display
- Video Mixer
- Chroma Resampler
- Video Timing Controller
- RGB to YUV converter
- DisplayPort: Soft IP (LogiCORE v7.0 only not DP RX/TX Subsystems) and ZynqMP DisplayPort Controller
- MIPI DSI2 Tx Controller
- SDI Tx



Video Mixer driver

No

drivers/gpu/drm/xlnx/xlnx_mixer.c

Video SDI-TX driver

No

drivers/gpu/drm/xlnx/xlnx_sdi.c

MIPI DSI2-TX driver

No

drivers/gpu/drm/xlnx/xlnx_dsi.c

HDMI Tx driver

No

hdmi-modules/hdmi/xilinx_drm_hdmi.c

DP Tx Subsystem driver

No

drivers/gpu/drm/xlnx/xlnx_dptx.c

DRM VPSS Scaler driver

No

drivers/gpu/drm/xlnx/xlnx_scaler.c

EDAC

Zynq-7000 SoC and
Ultrascale+ MPSoC
Zynq Ultrascale+ MPSoC OCM

EDAC Driver

ZynqMP OCM EDAC

Yes
No
No

drivers/edac/synopsys_edac.c

drivers/edac/zynqmp_ocm_edac.c



Ethernet MAC

Platform: Zynq, Zynq Ultrascale+ MPSoC, Versal
IP Core: GEM

Macb Driver

Yes

drivers/net/ethernet/cadence/macb.c



Ethernet MAC

Platform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC, Versal
and Microblaze

IP: axi_ethernet, legacy 10G MAC,10G/25G, USXGMII Ethernet Subsystem, and MRMAC.

Axi Ethernet Driver

Yes

drivers/net/ethernet/xilinx/xilinx_axienet_main.c
drivers/net/ethernet/xilinx/xilinx_axienet_dma.c
drivers/net/ethernet/xilinx/xilinx_axienet_mcdma.c
drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c
drivers/net/ethernet/xilinx/xilinx_axienet.h

Uses AXI DMA and AXI MCDMA

Ethernetlite

Platform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC
and Microblaze

IP: axi_ethernetlite

EmacLite Driver

Yes

drivers/net/ethernet/xilinx/xilinx_emaclite.c



FPGA Manager

Ultrascale+ MPSoC

PL Programming

Yes

drivers/fpga/zynqmp-fpga.c



FPGA Manager

Zynq-7000 SoC

PL Programming

Yes

drivers/fpga/zynq-fpga.c



FPGA Manager

Versal

PL Programming

No

drivers/fpga/versal.c



GPIO

Zynq-7000 SoC,
Ultrascale+ MPSoC, Versal

GPIO Driver

Yes

drivers/gpio/gpio-zynq.c



GPIO

axi_gpio

AXI GPIO Driver

Yes

drivers/gpio/gpio-xilinx.c



HDMI Clocks

SI5324 Clock

CCF SI5324 Driver

No

drivers/clk/clk-si5324.c



HDMI Clocks

 Multiplier/Jitter Attenuator
SNx5DP159 device

Misc DP159 Driver

No
No

hdmi-modules/misc/dp159.c



HDMI PHY

Video PHY Controller LogiCORE™ IP

Xilinx Phy VideoPhy Driver

No

/hdmi-modules/hdmi/phy-xilinx-vphy/xvphy_hdmi.c



pinctrl

Ultrascale+ MPSoC

Pin-Controller Driver

No

drivers/pinctrl/pinctrl-zynqmp.c



I2C Controller

Zynq-7000 SoC and
Ultrascale+ MPSoC, Versal

Cadence I2C Driver

Yes

drivers/i2c/busses/i2c-cadence.c



I2C Controller

axi_iic

I2C Driver

Yes

drivers/i2c/busses/i2c-xiic.c



Interrupt Controller

Zynq-7000 SoC and
Ultrascale+ MPSoC

GIC driver

Yes

drivers/irqchip/irq-gic.c



Interrupt Controller

MicroBlaze (axi_intc)

INTC

Yes 

drivers/irqchip/irq-xilinx-intc.c

INTC as module feature is in experimental form and yet to be upstreamed

MALI

Ultrascale+ MPSoC

Xilinx MALI driver

No

drivers/staging/mali/*



NAND

Ultrascale+ MPSoC

ZynqMP NAND

Yes

drivers/mtd/nand/raw/arasan-nand-controller.c



Nvmem-
SoC revision read mechanism

Ultrascale+ MPSoC

SoC revision read mechanism

No

drivers/nvmem/zynqmp_nvmem.c



PCIe

axi_pcie (Zynq-7000 SoC)

PCIe Root Port Driver

Yes

drivers/pci/controller/pcie-xilinx.c



PCIe

Ultrascale+ MPSoC

PCIe Root Port Driver

Yes

drivers/pci/controller/pcie-xilinx-nwl.c



PL PCIe

Ultrascale+ MPSoC

Xilinx Linux PL PCIe Root Port

No

drivers/pci/controller/pcie-xdma-pl.c



CPM4 PCIe RC

Versal

Versal Adaptive SoC CCIX-PCIe Module (CPM) Root port Linux driver

Yes

drivers/pci/controller/pcie-xilinx-cpm.c



PCIe

axi_pcie (MicroBlaze)

PCIe Root Port Driver

Yes

drivers/pci/controller/pcie-xilinx.c



Pinctrl

Zynq-7000 SoC

Zynq Linux Pin Controller Driver

Yes

drivers/pinctrl/pinctrl-zynq.c



Zynq QSPI

Zynq-7000 SoC

Zynq QSPI Driver

Yes

drivers/spi/spi-zynq-qspi.c

EAR support, Dual parallel and stacked mode support is pending

Zynq Ultrascale + MPSoC QSPI

Ultrascale+ MPSoC, Versal

ZynqMP QSPI



drivers/spi/spi-zynqmp-gqspi.c

Dual parallel and stacked mode support is pending

Reset-Controller

Ultrascale+ MPSoC

Versal

Reset-controller Driver

Yes

drivers/reset/reset-zynqmp.c



remoteproc

Zynq-7000 SoC

Zynq Ultrascale+ MPSoC

OpenAMP

No

drivers/remoteproc/zynq_remoteproc.c

drivers/remoteproc/zynqmp_r5*.c



RTC

Ultrascale+ MPSoC, Versal

Zynqmp RTC

Yes

drivers/rtc/rtc-zynqmp.c



SATA

Ultrascale+ MPSoC

SATA

Yes

drivers/ata/ahci_ceva.c



SD Controller

Zynq-7000 SoC,
Ultrascale+ MPSoC and Versal

SD controller

Yes

drivers/mmc/host/sdhci-of-arasan.c



SD-FEC

Zynq Ultrascale+ RFSoC

SD-FEC Driver

Yes

drivers/misc/xilinx_sdfec.c



SDIO WiFi



SDIO WiFi Driver

Yes

drivers/net/wireless/ath/ath6kl/sdio.c



SMC Controller

Zynq-7000 SoC

SMC & NAND driver

Yes

drivers/memory/pl353-smc.c
drivers/mtd/nand/raw/pl35x-nand-controller.c

PL353 SMC controller driver
PL353 SMC Nand Controller driver

SPIPS Controller

Zynq-7000 SoC,
Ultrascale+ MPSoC, Versal

Zynq SPI Driver

Yes

drivers/spi/spi-cadence.c



SPI/QSPI Controller

axi_spi/axi_quad_spi

SPI Driver

No

drivers/spi/spi-xilinx.c



System ACE

axi_sysace

System ACE Driver

Yes

drivers/block/xsysace.c



TFT

axi_tft

TFT Driver

Yes

drivers/video/fbdev/xilinxfb.c



Timer

axi_timer

AXI timer

Yes

arch/microblaze/kernel/timer.c

Timer Counter

TSN

Zynq-7000 SoC, Zynq Ultrascale+ MPSoC

TSN

Yes

drivers/ethernet/net/ethernet/xilinx/*



SHA

Ultrascale+ MPSoC

SHA

No

drivers/crypto/zynqmp-sha.c



RSA

Ultrascale+ MPSoC

RSA

No

drivers/crypto/zynqmp-rsa.c



UART

Zynq-7000 SoC and
Ultrascale+ MPSoC

PSUART

Yes

drivers/tty/serial/xilinx_uartps.c



UART

axi_uartlite

Uartlite Driver

Yes

drivers/tty/serial/uartlite.c



UART

Versal

Versal uart Driver

Yes

drivers/tty/serial/amba-pl011.c



USB (host)

Zynq-7000 SoC

USB Host Driver


Yes

Yes


drivers/usb/chipidea/ci_hdrc_usb2.c

drivers/usb/chipidea/host.c

Zynq PS USB Dual role driver
Zynq PS ehci host controller driver

USB (device)

Zynq-7000 SoC

USB Gadget driver

Yes
Yes

Yes

drivers/usb/chipidea/udc.c
drivers/usb/chipidea/ci_hdrc_usb2.c

drivers/usb/chipidea/core.c

Zynq PS usb gadget controller driver

USB (OTG)

Zynq-7000 SoC

USB OTG Driver

Yes

Yes

drivers/usb/phy/phy-ulpi.c
drivers/usb/chipidea/otg_fsm.c

Zynq PS OTG driver

USB (device)

axi_usb2_device

AXI USB gadget driver

Yes

drivers/usb/gadget/udc/udc-xilinx.c

AXI USB device soft IP linux driver.

USB

Ultrascale+ MPSoC, Versal

zynqMP USB Driver

Yes

drivers/usb/dwc3/dwc3-xilinx.c

dwc3 - xilinx driver

V4L2

UltraScale+ MPSoC

VIPP

Yes

drivers/media/platform/xilinx/xilinx-vipp.c

and xilinx-vip.c and xilinx-dma.c



Multi-Scaler

No

drivers/media/platform/xilinx/xilinx-multi-scaler.c



CFA

No

drivers/media/platform/xilinx/xilinx-cfa.c



CRESAMPLE

No

drivers/media/platform/xilinx/xilinx-cresample.c



CSIRX

Yes

drivers/media/platform/xilinx/xilinx-csi2rxss.c



REMAPPER

No

drivers/media/platform/xilinx/xilinx-remapper.c



RGB2YUV

No

drivers/media/platform/xilinx/xilinx-rgb2yuv.c



SCALER

No

drivers/media/platform/xilinx/xilinx-scaler.c



SWITCH

No

drivers/media/platform/xilinx/xilinx-switch.c



TPG (including VTC)

Yes

drivers/media/platform/xilinx/xilinx-tpg.c + xilinx-vtc.c



VPSS CSC

No

drivers/media/platform/xilinx/xilinx-vpss-csc.c



VPSS Scaler

No

drivers/media/platform/xilinx/xilinx-vpss-scaler.c



Video Demosaic

No

drivers/media/platform/xilinx/xilinx-demosaic.c



Gamma Correction LUT

No

drivers/media/platform/xilinx/xilinx-gamma.c



HDMI Rx

No

hdmi-modules/hdmi/xilinx-hdmirx.c



SDI RX Subsystem

No

drivers/media/platform/xilinx/xilinx-sdirxss.c



DP Rx Subsystem Driver

No

drivers/media/platform/xilinx/xilinx-dprxss.c



Video Codec Unit (VCU) 

Zynq UltraScale+ MPSoC

Xilinx Zynq UltraScale+ MPSoC Video Codec Unit

No

https://github.com/Xilinx/vcu-modules/

drivers/clk/xilinx/xlnx_vcu.c



Watchdog

Zynq and
Ultrascale+ MPSoC

Cadence WDT Driver

Yes

drivers/watchdog/cadence_wdt.c



Watchdog

axi_timebase_wdt,

Zynq UltraScale+ MPSoC, Versal

Axi Watchdog

Yes

drivers/watchdog/of_xilinx_wdt.c



APM

axi Performance monitor

APM

No

drivers/uio/uio_xilinx_apm.c



SERDES/SIOU

Ultrascale+ MPSoC

SERDES

No

drivers/phy/phy-zynqmp.c

serdes/siou linux device driver

Clock Framework Zynqmp

Ultrascale+ MPSoC
Versal

CCF

Yes

drivers/clk/zynqmp



GMII2RGMII converter

Platform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC 
and Microblaze

IP: gmii_to_rgmii

GMII2RGMII converter

Yes

drivers/net/phy/xilinx_gmii2rgmii.c



ALSA SoC

Ultrascale+ MPSoC

ASoC Platform/DMA
ASoC I2S
ASoC SPDIF
ASoC SDI

ASoC Sound Card

ASoC HDMI

Yes
Yes
Yes
No

No

No

sound/soc/xilinx/xlnx_formatter_pcm.c
sound/soc/xilinx/xlnx_i2s.c
sound/soc/xilinx/xlnx_spdif.c
sound/soc/xilinx/xlnx_sdi_audio.c

sound/soc/xilinx/xlnx_pl_snd_card.c

hdmi-modules/hdmi/xlnx_hdmirx_audio.c

hdmi-modules/hdmi/xlnx_hdmitx_audio.c

Linux PL audio drivers based on ALSA SoC (ASoC) framework.

ZynqMP firmware driver

Ultrascale+ MPSoC

ZynqMP firmware driver

Yes

drivers/firmware/xilinx/zynqmp/



RFdc wrapper

Zynq Ultrascale+ RFSoC

rfdc

No

/XilinxProcessorIPLib/drivers/rfdc

Linux user space driver

ZynqMP AES driver

Ultrascale+ MPSoC

AES

No

drivers/crypto/zynqmp-aes.c



ZynqMp Secure driver

Ultrascale+ MPSoC

ZynqMp Secure driver 

No

drivers/firmware/xilinx/zynqmp-secure.c



OSPI

Versal

OSPI Linux driver

No

drivers/mtd/spi-nor/cadence-quadspi.c



Clock Wizard

Platform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC , Versal
and Microblaze

Linux Clocking Wizard

Yes

drivers/clk/xilinx/clk-xlnx-clock-wizard.c



Xilinx EDAC

Versal

Linux Versal EDAC Driver

Yes

drivers/edac/xilinx_ddrmc_edac.c



Versal Sysmon Driver

Versal

Versal Sysmon Driver

No

drivers/iio/adc/versal-sysmon.c



Microblaze Triple Modular Redundancy (TMR) Subsystem

Microblaze

MicroBlaze Triple Modular Redundancy (TMR) Subsystem

No

drivers/misc/xilinx_tmr_manager.c

drivers/misc/xilinx_tmr_inject.c



   

© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy