Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


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.

Multiplier
ComponentPlatform/IP CoreLinkIn MainlineLocationComment
Analog to Digital ConverterZynq-7000 SoC, axi_xadc, xadc_wizXADC DriverYesdrivers/iio/adc/xilinx-xadc-core.c
System MonitorUltrascale+ MPSoCAMSNodrivers/iio/adc/xilinx-ams.c
AXI Traffic generatoraxi_trafficgenTRAFNodrivers/misc/xilinx_trafgen.c
CAN ControllerZynq-7000 SoC , axi_can
Ultrascale+ MPSoC
LinuxCAN DriverYesdrivers/net/can/xilinx_can.cAlternative CAN4Linux project: can4linux
CANFD Controlleraxi_canfdLinuxCAN DriverNodrivers/net/can/xilinx_can.c
Common Clock FrameworkZynq-7000 SoC


Yes

drivers/clk/zynq/


cpufreqZynq-7000 SoC and
Ultrascale+ MPSoC
CpufreqYesdrivers/cpufreq/cpufreq-dt.c
cpuidleZynq-7000 SoC and
Ultrascale+ MPSoC
cpuidleYesdrivers/cpuidle/cpuidle-zynq.c
DevcfgZynq-7000 SoCPL ProgrammingNodrivers/char/xilinx_devcfg.cxilinx_devcfg.c driver got deprecated in 2018.1 release. So this driver is not part of mainline tree.
FPGA ManagerUltrascale+ MPSoCPL ProgrammingYesdrivers/fpga/zynqmp-fpga.c
FPGA ManagerZynq-7000 SoCPL ProgrammingYesdrivers/fpga/zynq-fpga.c
FPGA ManagerVersalPL ProgrammingNodrivers/fpga/versal.c
DMA ControllerZynq-7000 SoC (PL330)N/AYesdrivers/dma/pl330.cPL330 driver is owned/maintained by linux open source community.
DMA ControllerPlatform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC/Versal
and Microblaze

IP: axi_dma
DMA driversYesdrivers/dma/xilinx/xilinx_dma.c
DMA Controller

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

IP: axi_cdma

DMA driversYesdrivers/dma/xilinx/xilinx_dma.c
DMA ControllerPlatform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC/Versal and Microblaze

IP: axi_vdma
DMA driversYesdrivers/dma/xilinx/xilinx_dma.c
DMA ControllerPlatform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC/Versal and Microblaze

IP: axi_mcdma
DMA driversYesdrivers/dma/xilinx/xilinx_dma.c
DMA ControllerPlatform: Zynq Ultrascale+ MPSoC, Versal

IP: ZynqMP DMA
ZynqMP DMAYesdrivers/dma/xilinx/zynqmp_dma.c
DMA ControllerPlatform: Zynq Ultrascale+ MPSoC

IP: Video Framebuffer Write
IP: Video Framebuffer Read
Video Framebuffer Write
Video Framebuffer Read
Nodrivers/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 driverNodrivers/gpu/drm/xlnx/xlnx_mixer.c
Video SDI-TX driverNodrivers/gpu/drm/xlnx/xlnx_sdi.c
MIPI DSI2-TX driverNodrivers/gpu/drm/xlnx/xlnx_dsi.c
HDMI Tx driverNohdmi-modules/hdmi/xilinx_drm_hdmi.c
DP Tx Subsystem driverNodp-modulesdrivers/dpgpu/xilinx_drm/xlnx/xlnx_dpdptx.c
DRM VPSS Scaler driverNodrivers/gpu/drm/xlnx/xlnx_scaler.c
EDACZynq-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 MACPlatform: Zynq, Zynq Ultrascale+ MPSoC, Versal
IP Core: GEM
Macb DriverYesdrivers/net/ethernet/cadence/macb.c
Ethernet MACPlatform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC, Versal
and Microblaze

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

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
EthernetlitePlatform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC
and Microblaze

IP: axi_ethernetlite
EmacLite DriverYesdrivers/net/ethernet/xilinx/xilinx_emaclite.c
GPIOZynq-7000 SoC,
Ultrascale+ MPSoC 
GPIO DriverYesdrivers/gpio/gpio-zynq.c
GPIOaxi_gpioAXI GPIO DriverYesdrivers/gpio/gpio-xilinx.c
HDMI ClocksSI5324 ClockCCF SI5324 DriverNodrivers/clk/clk-si5324.c
HDMI Clocks Multiplier/Jitter Attenuator
SNx5DP159 device
CCF SI5324 Driver
Misc DP159 Driver
No
No
hdmi-modules/clk/*
hdmi-modules/misc/dp159.c2018.1 hdmi-modules

HDMI PHYVideo PHY Controller LogiCORE™ IPXilinx Phy VideoPhy DriverNodrivers/staginghdmi-modules/xilinx/hdmi/phy-xilinx-vphy/xvphy_hdmi.c2018.1 hdmi-modules
pinctrlUltrascale+ MPSoCPin-Controller DriverNodrivers/pinctrl/pinctrl-zynqmp.c
I2C ControllerZynq-7000 SoC and
Ultrascale+ MPSoC
Cadence I2C DriverYesdrivers/i2c/busses/i2c-cadence.c
I2C Controlleraxi_iicI2C DriverYesdrivers/i2c/busses/i2c-xiic.c
Interrupt ControllerZynq-7000 SoC and
Ultrascale+ MPSoC
GIC driverYesdrivers/irqchip/irq-gic.c
Interrupt ControllerMicroBlaze (axi_intc)INTCYesarch/microblaze/kernel/intc.c
MALIUltrascale+ MPSoCXilinx MALI driverNodrivers/staging/mali/*
NANDUltrascale+ MPSoCZynqMP NANDYesdrivers/mtd/nand/raw/arasan_nand.cDDR support is pending
Nvmem-
SoC revision read mechanism
Ultrascale+ MPSoCSoC revision read mechanismNodrivers/nvmem/zynqmp_nvmem.c
PCIeaxi_pcie (Zynq-7000 SoC)PCIe Root Port DriverYesdrivers/pci/controller/pcie-xilinx.c
PCIeUltrascale+ MPSoCPCIe Root Port DriverYesdrivers/pci/controller/pcie-xilinx-nwl.c
PL PCIeUltrascale+ MPSoCPL PCIe Root Port DriverNodrivers/pci/controller/pcie-xdma-pl.c
CPM PCIe RCVersalVersal CCIX-PCIe Module (CPM) Root port Linux driverNo drivers/pci/controller/pcie-xdma-pl.c
PCIeaxi_pcie (MicroBlaze)PCIe Root Port DriverYesdrivers/pci/controller/pcie-xilinx.c
PinctrlZynq-7000 SoCZynq Linux Pin Controller DriverYesdrivers/pinctrl/pinctrl-zynq.c
Zynq QSPIZynq-7000 SoC Zynq QSPI DriverYesdrivers/spi/spi-zynq-qspi.cEAR support, Dual parallel and stacked mode support is pending
Zynq Ultrascale + MPSoC QSPIUltrascale+ MPSoCZynqMP QSPI
drivers/spi/spi-zynqmp-qspi.cDual parallel and stacked mode support is pending
Reset-Controller

Ultrascale+ MPSoC

Versal

Reset-controller DriverYesdrivers/reset/reset-zynqmp.c
remoteproc

Zynq-7000 SoC

Zynq Ultrascale+ MPSoC

OpenAMPNo

drivers/remoteproc/zynq_remoteproc.c

drivers/remoteproc/zynqmp_r5*.c


RTC

Ultrascale+ MPSoC

Zynqmp RTCYesdrivers/rtc/rtc-zynqmp.c
SATAUltrascale+ MPSoCSATAYesdrivers/ata/ahci_ceva.c
SD ControllerZynq-7000 SoC,
Ultrascale+ MPSoC and Versal
SD controllerYesdrivers/mmc/host/sdhci-of-arasan.c
SD-FECZynq Ultrascale+ RFSoCSD-FEC DriverYesdrivers/misc/xilinx_sdfec.c
SDIO WiFi
SDIO WiFi DriverYesdrivers/net/wireless/ath/ath6kl/sdio.c
SMC ControllerZynq-7000 SoCSMC & NAND driverNodrivers/memory/pl353-smc.c
drivers/mtd/nand/raw/pl353_nand.c
PL353 SMC controller driver
PL353 SMC Nand Controller driver
SPI ControllerZynq-7000 SoC and
Ultrascale+ MPSoC
Zynq SPI DriverYesdrivers/spi/spi-cadence.c
SPI/QSPI Controlleraxi_spi/axi_quad_spiSPI DriverNodrivers/spi/spi-xilinx.c
System ACEaxi_sysaceSystem ACE DriverYesdrivers/block/xsysace.c
TFTaxi_tftTFT DriverYesdrivers/video/fbdev/xilinxfb.c
Timeraxi_timerAXI timerYesarch/microblaze/kernel/timer.cTimer Counter
TSNZynq-7000 SoC, Zynq Ultrascale+ MPSoCTSNYesdrivers/ethernet/net/ethernet/xilinx/*
SHAUltrascale+ MPSoCSHANodrivers/crypto/zynqmp-sha.c
RSAUltrascale+ MPSoCRSANodrivers/crypto/zynqmp-rsa.c
UARTZynq-7000 SoC and
Ultrascale+ MPSoC
PSUARTYesdrivers/tty/serial/xilinx_uartps.c
UARTaxi_uartliteUartlite DriverYesdrivers/tty/serial/uartlite.c
UARTVersalVersal uart DriverYesdrivers/tty/serial/amba-pl011.c
USB (host)Zynq-7000 SoCUSB Host DriverNo
No
Yes
drivers/usb/host/zynq-dr-of.c
drivers/usb/host/ehci-zynq.c
drivers/usb/chipidea/
Zynq PS USB Dual role driver
Zynq PS ehci host controller driver
USB (device)Zynq-7000 SoCUSB Gadget driverNo
Yes

Yes
drivers/usb/gadget/zynq_udc.c
drivers/usb/chipidea/udc.c

drivers/usb/chipidea/ci_hdrc_usb2.c
Zynq PS usb gadget controller driver
USB (OTG)Zynq-7000 SoCUSB OTG DriverYesdrivers/usb/phy/phy-ulpi.c
drivers/usb/chipidea/
Zynq PS OTG driver
USB (device)axi_usb2_deviceAXI USB gadget driverYesdrivers/usb/gadget/udc/udc-xilinx.cAXI USB device soft IP linux driver.
USBUltrascale+ MPSoCzynqMP USB DriverNodrivers/usb/dwc3
V4L2UltraScale+ MPSoC

VIPP

Yes

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

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


Multi-ScalerNo

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


CFANodrivers/media/platform/xilinx/xilinx-cfa.c
CRESAMPLENodrivers/media/platform/xilinx/xilinx-cresample.c
CSIRXNoYesdrivers/media/platform/xilinx/xilinx-csi2rxss.c
REMAPPERNodrivers/media/platform/xilinx/xilinx-remapper.c
RGB2YUVNodrivers/media/platform/xilinx/xilinx-rgb2yuv.c
SCALERNodrivers/media/platform/xilinx/xilinx-scaler.c
SWITCHNodrivers/media/platform/xilinx/xilinx-switch.c
TPG (including VTC)Yesdrivers/media/platform/xilinx/xilinx-tpg.c + xilinx-vtc.c
VPSS CSCNodrivers/media/platform/xilinx/xilinx-vpss-csc.c
VPSS ScalerNodrivers/media/platform/xilinx/xilinx-vpss-scaler.c
Video DemosaicNodrivers/media/platform/xilinx/xilinx-demosaic.c
Gamma Correction LUTNodrivers/media/platform/xilinx/xilinx-gamma.c
HDMI RxNohdmi-modules/hdmi/xilinx-hdmirx.c
SDI RX SubsystemNodrivers/media/platform/xilinx/xilinx-sdirxss.c
/wiki/spaces/XWUC/pages/141950977Nodp-modules/dpdrivers/media/platform/xilinx/xilinx-dprxss.c
Video Codec Unit (VCU) Zynq UltraScale+ MPSoCXilinx Zynq UltraScale+ MPSoC Video Codec UnitNohttps://github.com/Xilinx/vcu-modules/


WatchdogZynq and
Ultrascale+ MPSoC
Cadence WDT DriverYesdrivers/watchdog/cadence_wdt.c
Watchdogaxi_timebase_wdt Axi WatchdogYesdrivers/watchdog/of_xilinx_wdt.c
APMaxi Performance monitorAPMNodrivers/uio/uio_xilinx_apm.c
SERDES/SIOUUltrascale+ MPSoCSERDESNodrivers/phy/phy-zynqmp.cserdes/siou linux device driver
Clock Framework ZynqmpUltrascale+ MPSoC
Versal
CCFYesdrivers/clk/zynqmp
JESD24BIP:jesd204bJESD204BNo

drivers/misc/jesd204b/xilinx_jesd204b.c

drivers/misc/jesd204b/xilinx_jesd204b.h


GMII2RGMII converterPlatform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC 
and Microblaze

IP: gmii_to_rgmii
GMII2RGMII converterYesdrivers/net/phy/xilinx_gmii2rgmii.c
ALSA SoCUltrascale+ 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 driverUltrascale+ MPSoCZynqMP firmware driverYesdrivers/firmware/xilinx/zynqmp/
RFdc wrapperZynq Ultrascale+ RFSoCrfdcNo/XilinxProcessorIPLib/drivers/rfdcLinux user space driver
ZynqMP AES driverUltrascale+ MPSoCAESNodrivers/crypto/zynqmp-aes.c


ZynqMp Secure driverUltrascale+ MPSoCZynqMp Secure driver Nodrivers/firmware/xilinx/zynqmp-secure.c
OSPIVersalOSPI Linux driverNodrivers/mtd/spi-nor/cadence-quadspi.c
Clock WizardPlatform: Zynq-7000 SoC/Zynq Ultrascale+ MPSoC , Versal
and Microblaze
Linux Clocking WizardNodrivers/clk/clk-xlnx-clock-wizard.c
Xilinx EDACVersalLinux Versal EDAC DriverNodrivers/edac/xilinx_ddrmc_edac.c
Versal Sysmon DriverVersalVersal Sysmon DriverNodrivers/iio/adc/versal-sysmon.c
Xillinx FlexNoc APMVersalVersal FlexNoC DriverNodrivers/misc/xilinx_flex_pm.c