Introduction

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
https://github.com/Xilinx/embeddedsw/tree/master/lib/sw_services/xilisf

xilisf
|
- 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
Manufacturer
Device Series
Manufacturer
Device Series
Manufacturer
Device Series
Manufacturer
AT45DB011DAT45DB021D
AT45DB041D
AT45DB081D
AT45DB161D
AT45DB321DAT45DB642D
Atmel
W25Q16W25Q32W25Q64W25Q80W25Q128W25X10W25X20W25X40W25X80W25X16W25X32W25X64
Winbound
S25FL004S25FL008S25FL016S25FL032S25FL064S25FL128S25FL129S25FL256S25FL512S70FL01G
Spansion
N25Q032N25Q064N25Q128N25Q256N25Q512N25Q00AAMT25Q01MT25Q02
Micron


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

Related Links