/****************************************************************************** * * Copyright (C) 2012 - 2014 Xilinx, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * Use of the Software is limited solely to applications: * (a) running on a Xilinx device, or * (b) that interact with a Xilinx device through a bus or interconnect. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * * Except as contained in this notice, the name of the Xilinx shall not be used * in advertising or otherwise to promote the sale, use or other dealings in * this Software without prior written authorization from Xilinx. * ******************************************************************************/ /*****************************************************************************/ /** * * @file qspi.h * * This file contains the interface for the QSPI FLASH functionality * *
* MODIFICATION HISTORY: * * Ver Who Date Changes * ----- ---- -------- ------------------------------------------------------- * 1.00a ecm 01/10/10 Initial release * 3.00a mb 01/09/12 Added the Delay Values defines for qspi * 5.00a sgd 05/17/13 Added Flash Size > 128Mbit support * Dual Stack support ** * @note * ******************************************************************************/ #ifndef ___QSPI_H___ #define ___QSPI_H___ #include "fsbl.h" #ifdef __cplusplus extern "C" { #endif /***************************** Include Files *********************************/ #include "fsbl.h" /************************** Constant Definitions *****************************/ #define SINGLE_FLASH_CONNECTION 0 #define DUAL_STACK_CONNECTION 1 #define DUAL_PARALLEL_CONNECTION 2 #define FLASH_SIZE_16MB 0x1000000 /* * Bank mask */ #define BANKMASK 0xF000000 /* * Identification of Flash * Micron: * Byte 0 is Manufacturer ID; * Byte 1 is first byte of Device ID - 0xBB or 0xBA * Byte 2 is second byte of Device ID describes flash size: * 128Mbit : 0x18; 256Mbit : 0x19; 512Mbit : 0x20 * Spansion: * Byte 0 is Manufacturer ID; * Byte 1 is Device ID - Memory Interface type - 0x20 or 0x02 * Byte 2 is second byte of Device ID describes flash size: * 128Mbit : 0x18; 256Mbit : 0x19; 512Mbit : 0x20 */ #define MICRON_ID 0x20 #define SPANSION_ID 0x01 #define WINBOND_ID 0xEF #define MACRONIX_ID 0xC2 #define FLASH_SIZE_ID_128M 0x18 #define FLASH_SIZE_ID_256M 0x19 #define FLASH_SIZE_ID_512M 0x20 #define FLASH_SIZE_ID_1G 0x21 /* Macronix size constants are different for 512M and 1G */ #define MACRONIX_FLASH_SIZE_ID_512M 0x1A #define MACRONIX_FLASH_SIZE_ID_1G 0x1B /* * Size in bytes */ #define FLASH_SIZE_128M 0x1000000 #define FLASH_SIZE_256M 0x2000000 #define FLASH_SIZE_512M 0x4000000 #define FLASH_SIZE_1G 0x8000000 /************************** Function Prototypes ******************************/ u32 InitQspi(void); u32 QspiAccess( u32 SourceAddress, u32 DestinationAddress, u32 LengthBytes); u32 FlashReadID(void); u32 SendBankSelect(u8 BankSel); /************************** Variable Definitions *****************************/ #ifdef __cplusplus } #endif #endif /* ___QSPI_H___ */