xilisf_v5_14
Xilinx SDK Drivers API Documentation
xilisf.c File Reference

Overview

This file contains the library functions to initialize, control and read the device information of the Serial Flash devices.

Refer xilisf.h for detailed description.

MODIFICATION HISTORY:
Ver   Who      Date     Changes


1.00a ksu/sdm 03/03/08 First release 1.00a sdm 07/02/08 Changed the initialization so that the SPI Master works in Spi Mode 3 as the In-System Flash works only in Spi Mode 3 2.00a ktn 11/27/09 Updated to use HAL processor APIs/definitions 2.01a sdm 01/04/10 Added Support for Winbond W25QXX/W25XX devices The parameter PagesPerBlock in the struct IntelStmDeviceGeometry has been renamed to PagesPerSector. 2.03a sdm 04/17/10 Updated to support Winbond memory W25Q128. 2.04a sdm 08/17/10 Updated to support Numonyx (N25QXX) and Spansion flash memories 3.00a srt 06/20/12 Updated to support interfaces SPI PS and QSPI PS. New API: XIsf_RegisterInterface() XIsf_SetSpiConfiguration() XIsf_SetTransferMode() Changed API: XIsf_Initialize() XIsf_Transfer() Added support to SST flash. 3.01a srt 02/06/13 Updated for changes made in QSPIPS driver (CR 698107). 5.0 sb 08/05/14 Updated for support for > 128 MB flash for PSQSPI Interface. Added Library Handler API which will register to driver interrupts, based upon the interface selected. New API: SpaMicWinFlashInitialize() GetRealAddr() SendBankSelect() XIsf_SetStatusHandler() void XIsf_IfaceHandler() Changed API:

  • XIsf_Initialize() Added Call back to lib interrupt handler after XIsf_Transfer Call
  • XIsf_Transfer()
  • XIsf_GetStatus()
  • XIsf_GetStatusReg2()
  • XIsf_GetDeviceInfo()
  • XIsf_WriteEnable()
  • XIsf_Ioctl() 5.1 sb 12/23/14 Added check for flash interface for Winbond, Spansion and Micron flash family for PSQSPI. 5.2 asa 05/12/15 Added APIs to support 4 byte addressing for Micron flash. 2 APIs were added, one to enter into 4 byte mode and the other to exit from the same. 5.3 sk 08/07/17 Added QSPIPSU flash interface support for ZynqMP. 5.4 nsk 09/14/15 Updated IntelStmDevices list to support Micron N25Q256A (CR 881478). 5.5 sk 01/14/16 Updated IntelStmDevices list to add support for S25FL512S and S25FL256S. sk 03/02/16 Added support for MT25QU01G. 5.9 ms 08/03/17 Added tags and modified comment lines style for doxygen. 5.10 tjs 11/30/17 Added description of S25FL-L series flash parts in IntelStmDevices array. CR# 987566 5.10 tjs 03/01/18 Added MT25Q512 3V and 1.8V flash part support. CR# 995477 5.11 tjs 03/16/18 Added support for ISSI flash part. 5.12 tjs 05/02/18 Added support for IS25LP064A and IS25WP064A. 5.12 tjs 06/05/18 Added support for Macronix 1G flash parts. CR#978447 5.12 tjs 06/18/18 Removed checkpatch and gcc warnings. 5.12 tjs 06/18/18 Added support for MT25QL01G and MT25QL02G 3V flash.CR#1004264 5.12 tjs 06/18/18 Added support for low density ISSI flash parts. PR#9237 5.13 nsk 01/22/19 Make variable declaration to XQspiPsu_Msg as global CR#1015808. 5.13 akm 01/30/19 Fixed multiple definition error in C++ project CR#1019773 sk 02/11/19 Added support for OSPI flash interface. 5.13 akm 02/26/19 Added support for ISSI serial NOR Flash Devices. PR# 11442 sk 02/28/19 Added support for SST26WF016B flash. 5.14 akm 08/01/19 Initialized Status variable to XST_FAILURE.
 

Macros

#define SIXTEENMB   0x1000000
 Sixteen MB. More...
 

Functions

int XIsf_Initialize (XIsf *InstancePtr, XIsf_Iface *SpiInstPtr, u8 SlaveSelect, u8 *WritePtr)
 This API when called initializes the SPI interface with default settings. More...
 
int XIsf_SetSpiConfiguration (XIsf *InstancePtr, XIsf_Iface *SpiInstPtr, u32 Options, u8 PreScaler)
 This API sets the configuration of SPI. More...
 
int XIsf_GetStatus (XIsf *InstancePtr, u8 *ReadPtr)
 This API reads the Serial Flash Status Register. More...
 
int XIsf_GetStatusReg2 (XIsf *InstancePtr, u8 *ReadPtr)
 This API reads the Serial Flash Status Register 2. More...
 
int XIsf_GetDeviceInfo (XIsf *InstancePtr, u8 *ReadPtr)
 This API reads the Joint Electron Device Engineering Council (JEDEC) information of the Serial Flash. More...
 
int XIsf_WriteEnable (XIsf *InstancePtr, u8 WriteEnable)
 This API Enables/Disables writes to the Intel, STM, Winbond and Spansion Serial Flash. More...
 
int XIsf_Ioctl (XIsf *InstancePtr, XIsf_IoctlOperation Operation)
 This API configures and controls the Intel, STM, Winbond and Spansion Serial Flash. More...
 
void XIsf_RegisterInterface (XIsf *InstancePtr)
 This API registers the interface SPI/SPI PS/QSPI PS. More...
 
u32 GetRealAddr (XIsf_Iface *QspiPtr, u32 Address)
 (((XPAR_XISF_FLASH_FAMILY == WINBOND) || \ (XPAR_XISF_FLASH_FAMILY == SPANSION)) && \ (defined(XPAR_XISF_INTERFACE_PSQSPI) || \ defined (XPAR_XISF_INTERFACE_QSPIPSU) || \ defined(XPAR_XISF_INTERFACE_OSPIPSV))) More...
 
void XIsf_SetStatusHandler (XIsf *InstancePtr, XIsf_Iface *XIfaceInstancePtr, XIsf_StatusHandler XilIsf_Handler)
 This API is to set the Status Handler when an interrupt is registered. More...
 
void XIsf_IfaceHandler (void *CallBackRef, u32 StatusEvent, unsigned int ByteCount)
 This API is the handler which performs processing for the QSPI driver. More...
 

Variables

volatile unsigned int XIsf_TransferInProgress
 (((XPAR_XISF_FLASH_FAMILY==INTEL) || \ (XPAR_XISF_FLASH_FAMILY==STM) || \ (XPAR_XISF_FLASH_FAMILY == SST) || \ (XPAR_XISF_FLASH_FAMILY == WINBOND) || \ (XPAR_XISF_FLASH_FAMILY == SPANSION)) && \ ((!defined(XPAR_XISF_INTERFACE_PSQSPI)) && \ (!defined(XPAR_XISF_INTERFACE_QSPIPSU)) && \ (!defined(XPAR_XISF_INTERFACE_OSPIPSV)))) More...
 

Macro Definition Documentation

#define SIXTEENMB   0x1000000

Sixteen MB.

Variable Documentation

volatile unsigned int XIsf_TransferInProgress

(((XPAR_XISF_FLASH_FAMILY==INTEL) || \ (XPAR_XISF_FLASH_FAMILY==STM) || \ (XPAR_XISF_FLASH_FAMILY == SST) || \ (XPAR_XISF_FLASH_FAMILY == WINBOND) || \ (XPAR_XISF_FLASH_FAMILY == SPANSION)) && \ ((!defined(XPAR_XISF_INTERFACE_PSQSPI)) && \ (!defined(XPAR_XISF_INTERFACE_QSPIPSU)) && \ (!defined(XPAR_XISF_INTERFACE_OSPIPSV))))

(((XPAR_XISF_FLASH_FAMILY == WINBOND) || \ (XPAR_XISF_FLASH_FAMILY == SPANSION)) && \ (defined(XPAR_XISF_INTERFACE_PSQSPI) || \ defined(XPAR_XISF_INTERFACE_QSPIPSU))) (((XPAR_XISF_FLASH_FAMILY == WINBOND) || \ (XPAR_XISF_FLASH_FAMILY == SPANSION)) && \ (defined(XPAR_XISF_INTERFACE_OSPIPSV)))

Referenced by XIsf_IfaceHandler().