AXI USB gadget driver


Table of Contents

Introduction

The AXI USB device IP is an USB device controller IP. It has no support for HOST or OTG mode. This IP can be instantiated on FPGA or Zynq PL. This page describes the usage of AXI USB device IP linux driver.

HW/IP Features

  • Compliant with the USB 2.0 Specification
  • Supports High Speed, Full Speed and Low speed

Features supported by driver

  • All the HW/IP features are supported by driver

Kernel Configuration

  1. Enable the AXI USB linux driver in kernel configuration
    Device Drivers -> USB Support -> USB Gadget Support -> USB Peripheral Conotroller -> Xilinx USB driver
  2. Enable Mass storage gadget
    Device Drivers -> USB Support -> USB Gadget Support -> Mass Storage Gadget
    Device Drivers -> USB Support -> USB Gadget Support -> USB Gadget Drivers -> USB functions configurable through configfs

Devicetree

Example Device tree node:

Performance

Host used: Dell Precision Tower 7910
ReadWrite
15.0 MB/sec22.9 MB/sec

Test Procedure


Images:

  1. compile the kernel and modules. Copy kernel Image and compiled modules to SD card.
  2. Copy following to SD card: BOOT.bin which has PL bitstream with AXI USB device IP, FSBL and U-Boot. dtb, uramdisk.img (All are provided in attachment).
  3. Boot ZC702 with SD card.
  4. Follow these steps on the board after linux boots :


  1. Connect the usb cable to host PC(windows/linux). Host shows the gadget as a mass storage device with 5MB capacity.

Mainline Status

The AXI USB driver is currently in sync with mainline kernel 4.9

Change Log

2016.3
Summary:
  • None


2016.4
Summary:
  • None


2017.1
Summary:
  • None


2017.2
Summary:
  • None


2017.3
Summary:
  • None


2017.4
Summary:
  • None
2018.1
Summary:
  • None


2018.2
Summary:
  • Add clock framework support to axi usb driver
Commits:
732e1
2018.3
Summary:
  • Add suspend resume support
Commits:
3265e
2019.1
Summary:
  • Merged 4.19 kernel

Commits:

26a8a

2019.2
Summary:

  • None

2020.1
Summary:

  • None

2020.2
Summary:

  • None