OSL Drivers

This page is intended to give more details on the Xilinx drivers for Open Source Linux, such as testing, how to use the drivers, known issues, etc. The drivers included in the kernel tree are intended to run on ARM (Zynq), PowerPC 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 obsolete such that they could be removed at any time.

There is an automated test that runs on the kernel for Zynq each nite which does some cursory (not exhaustive) testing on the drivers.

For now the MicroBlaze/PowerPC automated testing is not active. In general, the philosophy for supporting drivers with the automated test is that the EDK system must be supported by Base System Builder (BSB) such that the system can be moved to a new tool version easily.

Zynq Drivers

Driver Description Auto Test Test Details In Mainline Driver Details
Analog to Digital Converter No Contributed by community, not tested No xilinx-xadcps.c
Interrupt Controller Yes Inherently Yes arch/arm/common.gic.c
Ethernet MAC Yes NFS root and read/write No xilinx_emacps.c
General Purpose I/O Yes Read/Write with loopback No gpio-xilinxps.c
I2C Controller Yes Read/write EEPROM No i2c-xilinx_ps.c
L2 Cache Controller (PL310) Yes Inherently, L2 is on Yes arch/arm/mm/cache-l2x0.c
DMA Controller (PL330) Yes Transfers in DDR No arch/arm/mach-zynq/pl330.c, note that this driver is only platform data (not device tree), Note that there is a driver in the mainline in drivers/dma/pl330.c that has not been tested by Xilinx (yet)
QSPI Flash Controller Yes Read/write Flash No spi-xilinx-qps.c
SD Controller Yes Read/write SD card No sdhci-of-xilinxps.c
SPI Controller Yes Read/write EEPROM No spi-xilinx-ps.c
Timer Yes Kernel timer only Yes arch/arm/mach-zynq/timer.c
UART Yes Used as console Yes xilinx_uartps.c, the Xilinx tree is ahead of upstream
USB (host) Yes Read/write memory stick No xusbps-dr-of.c
USB (device) No No gadget/xilinx_usbps_udc.c
USB (OTG) No No otg/xilinx_usbps_otg.c

Non-Zynq Drivers

The following table is stale and needs to be updated as it was based on the transition from PLB (big-endian) to AXI (little endian).

Driver IP Core Link Manual Test On Little Endian Auto Test Test Details In Mainline Driver Details
AXI Ethernet axi_ethernet Yes No NFS No Uses AXI DMA
Interrupt Controller axi_intc Yes Yes UART (and others) are interrupt driven devices Yes Part of the kernel, unique to each kernel architecture
Timer Counter axi_timer Yes Yes kernel time slice Yes Only in MicroBlaze as PowerPC uses those in the core, Part of the kernel
UART Lite axi_uartlite Yes Yes console Yes
UART 16550 axi_uart16550 Yes console Yes Yes Not Xilinx specific driver, but in mainline, works with Xilinx IP
GPIO axi_gpio GPIO Driver Yes Yes simple test setting an output, reading an input which is tied to the output Yes
SPI axi_spi SPI Driver Yes Yes writing and reading to an SPI EEPROM, uses AT25 driver also Yes
I2C axi_iic I2C Driver Yes Yes writing and reading to an I2C EEPROM No Needs a new flat driver for mainline
Emac Lite axi_ethernetlite EmacLite Driver Yes Yes NFS root Yes Just made it into mainline in 2.6.32-rc1
LL TEMAC xps_ll_temac N/A NFS root No No DMA mode only tested
LL TEMAC (flat) xps_ll_temac Flat LL TEMAC Driver N/A No Yes N/A Patches in progress for 405 and MicroBlaze
System ACE axi_sysace System ACE Driver Yes No writing and reading to compact flash Yes
TFT xps_tft TFT Driver N/A No Yes BSB doesn't support this IP
USB Gadget axi_usb2_device USB Gadget Driver No No No Not Yet
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License