Table of Contents |
---|
Introduction
This page gives an overview of qspipsu driver which is available as part of the Xilinx Vivado and Vitis distribution.Source path for the driver:
https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/qspipsu
Driver source code is organized into different folders. Below diagram shows the qspipsu driver source organization
qspipsu
|
-- Doc - Provides the API and data structure details
|
- Examples - Reference application to show how to use the driver APIs and calling sequence
|
- Source - Driver source files
Features Supported
The controller driver will be exclusive to GQSPI including API’s to be used for configuring the host controller and transmitting the data.Commands Supported:
The following list of basic commands are supported by the Standalone driver:- Read Identification
- Read Page
- Program Page
- Erase (Chip/Die/Bulk Erase)
- Read Status
- Lock/Unlock
Controller Features Supported:
The following features are supported in the QSPI Standalone driver.- DMA access (aligned address only)
- IO access
- Control of two chip selects/bus
- Configurable clock
- Configurable bus width
- Byte Mirror/Stripe operations
- Interrupts – will be chosen and enabled internally
Example Applications:
- Generic register read/write operations
- 3 byte and 4 byte addressing
- Flash configurations illustrated in examples – Single, Dual Stacked, Dual Parallel
Known issues and Limitations
The standalone driver supports GenericQSPI(GQSPI) not Linear QSPI(LQSPI)Test cases
Sample output of test cases that are taken from examples 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 |
Performance Details
Single
Qspipsu write throughput is 1326 KBPSQspipsu read throughput is 28339 KBPS
Dual-Parallel
Qspipsu write throughput is 2438 KBPSQspipsu read throughput is 54245 KBPS
Change Log
2016.3
- Added Tap delay support
- Added example support for LQSPI
- Added PollData and PollTimeout Support
2016.4
- Update GQSPI PollData/PollTimeout for dualparallel configurations
2017.1
- None
2017.2
- None
2017.3
- Added support for accessing upper DDR
- Added CCI support
2017.4
- Replaced the #ifdef COMMENTS with #if USE_FOUR_BYTE
- Examples made compatible with u-boot and linux.
- Resolved errors in qspipsu for ICCARM compiler
- lqspi and poll data poll timeout example made compatible with u-boot and linux.
2018.1
- Removed unsupported 4 byte commands.
- Added support for MT25QL02G, S25FL064L and MX66U1G45G flash parts.
- Removed check before writing destination address to DMA MSB.
- Added a support to toggle WP pin of the flash.
- Added support in EL1 NS mode.
- Enable both CS in dual parallel mode, when issuing Write enable command.
2018.2
- None
2018.3
2019.1
2019.2
2020.1
2020.2
- Summary
- Update Makefile for parallel make execution
- Commits
- Summary
Related Links
...