xilisf
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, psu_spi or psv_ospi 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 athttps://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 Vitis
- Select Flash Family as below
- Select Flash interface as below
- Library supports SPI PS, QSPI PS, QSPIPSU and OSPIPSV 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. If PS OSPI is selected
during compilation, OSPIPSV interface is 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
> Octal 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 |
AT45DB011DAT45DB021D AT45DB041D AT45DB081D AT45DB161D AT45DB321DAT45DB642D | Atmel |
W25Q16, W25Q32, W25Q64, W25Q80, W25Q128, W25X10, W25X20, W25X40, W25X80, W25X16, W25X32, W25X64 | Winbound |
S25FL004, S25FL008, S25FL016, S25FL032, S25FL064, S25FL128, S25FL129, S25FL256, S25FL512, S70FL01G | Spansion |
N25Q032, N25Q064, N25Q128, N25Q256, N25Q512, N25Q00AA, MT25Q01, MT25Q02 MT25QL01G, MT25QL02G MT35XU512ABA | Micron |
IS25LP080D, IS25WP080D, IS25LP016D, IS25WP016D, IS25LP032D, IS25WP032D, IS25LP064A, IS25WP064A, IS25LP128F, IS25WP128F, IS25LP256D, IS25WP256D, IS25LP512M, IS25WP512M | ISSI |
MX66U1G45G, MX66L1G45G | Macronix |
SST26WF016B | Microchip |
Known issues and limitations
Test cases
Test case ran by taking examples from example folder specified aboveQSPIPSU 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 |
OSPIPSV FLASH Polling Example Test Successfully ran OSPIPSV FLASH Polling Example Test |
OSPIPSV FLASH Interrupt Example Test Executing on the a72 Successfully ran OSPIPSV 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
2018.3
- Added support for ISSI low density flash parts of size 8/16/32/64Mb of 3V and 1.8V variants
- Added support for 1Gb flash parts from Macronix
- Added support for 1Gb and 2Gb Flash parts from Micron of 3V variants
2019.1
2019.2
2020.1
- Summary
- None
- Commits
- None
- Summary
2020.2
- Summary
- Deprecate xilisf library
- Commits
- Summary
Related Links
© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy