This page provides details related to the xilisf library.
  • Allows you to Write, Read, and Erase the Serial Flash.
  • Allows protection of the data stored in the Serial Flash from unwarranted modification by enabling the Sector Protection feature.
  • Supports multiple instances of Serial Flash at a time, provided they are of the same device family
    (Atmel, Intel, STM, Winbond, SST, or Spansion) as the device family is selected at compile time.
  • Allows the user application to perform Control operations on Intel, STM, Winbond, SST, and Spansion Serial Flash.
  • Requires the underlying hardware platform to contain the axi_quad_spi, ps7_spi, ps7_qspi, psu_qspi or psu_spi device for accessing the Serial Flash.
  • Uses the Xilinx® SPI interface drivers in interrupt-driven mode or polled mode for communicating with the Serial Flash.
  • In interrupt mode, the application is required to register a callback to the library and the library registers an internal status handler to the selected
    interface driver.
  • When the user application requests a library operation, it is initiated and control is given back to the application. The library tracks the status of
    the interface transfers, and notifies the user application upon completion of the selected library operation.

How to enable

xilisf library can be found at

- data - Provides the API and data structure details
- src - Driver source files which are further organised into
- examples - Contains example applications demonstrating the use of xilisf libray
Select the xilisf library in SDK
  • Select Flash Family as below
1 for ATMEL. 2 for INTEL. 3 for STM (M25PXX). 4 for Winbond. 5 for Spansion / Micron. 6 for SST Flash
  • Select Flash interface as below
1 for AXI SPI. 2 for PS SPI. 3 for PS QSP
  • Library supports SPI PS and QSPI PS and QSPIPSU interfaces you must select one of the interfaces at compile time.
  • When the user application requests selection of QSPIPS interface during compilation, the QSPI PS or QSPI PSU interface, based on the hardware

    platform are selected. Similarly,if the SPIPS interface is selected during compilation, SPI PS or SPI PSU interface are selected.

Features supported

1. Flash features supported

This xilisf library supports basic operations like read(),write(),erase() etc as below
  • DeviceInfo
  • Read
  • Write
  • Erase
  • SectorProtect
  • WriteEnable
  • Sector Erase

Commands Supported

Below commands can be supported
  • Read
    > Normal Read
    > Fast Read
    > OTP Read
    > Dual OP Fast Read
    > Dual IO Fast Read
    > Quad OP Fast Read
    > Quad IO Fast Read
  • Write
    > Normal Write
    > Dual IP Page Write
    > Dual IP Ext Page Write
    > Quad IP Page Write
    > Quad IP Ext Page Write
    > OTP Write
    > Buffer Write

Example Applications:
  • Flash Family based Read/Write
  • interrupt examples
  • OTP referenced examples

Following is the list of supported flash memories
Device Series
Device Series
Device Series
Device Series

Known issues and limitaions

Test cases

Test case ran by taking examples from example folder specefied above
QSPIPSU FLASH Interrupt Example Test
Successfully ran QSPIPSU FLASH Interrupt Example Test
QSPIPSU FLASH Polling Example Test
Successfully ran QSPIPSU FLASH Polling Example Test
SPI FLASH Polled Example Test
Successfully ran SPI FLASH Polled Example Test
SPI FLASH Interrupt Example Test
Successfully ran SPI FLASH Interrupt Example Test

Change Log

  • 2016.3

    • Added support for sub-sector erase
  • 2016.4

    • Added FreeRTOS support
  • 2017.1

    • Fix array index of writebuffer in fastreaddata
  • 2017.2

    • design examples fail on ZCU102, resolved in 2017.3
  • 2017.3

    • Added 4Byte addressing support for Micron devices
    • Calculation for Die No without initialization rectified.
  • 2017.4

    • None
  • 2018.1

    • Added support for S25FL-L series flash parts.
    • Added a support for MT25Q512 series flash of 3V and 1.8V.
  • 2018.2

    • None

Related Links