sl@0: // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of the License "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // e32\include\drivers\NandDevice.h sl@0: // sl@0: // sl@0: sl@0: #ifndef __NAND_DEVICE_H__ sl@0: #define __NAND_DEVICE_H__ sl@0: sl@0: sl@0: /** sl@0: This enum contains an entry for every manufacturer ID of NAND flash which sl@0: Symbian OS currently supports. sl@0: @publishedPartner sl@0: @released sl@0: */ sl@0: enum TManufacturerId sl@0: { sl@0: ESamsungId = 0xEC sl@0: }; sl@0: sl@0: /** sl@0: This enum specifies characterisitics exhibited by NAND devices. sl@0: @publishedPartner sl@0: @released sl@0: */ sl@0: enum TDeviceFlags sl@0: { sl@0: ELargeBlock = 0x01, sl@0: ECycle5Dev = 0x02, sl@0: EDataIoWidth16 = 0x04 // i/o width is 16 bits wide sl@0: }; sl@0: sl@0: /** sl@0: Container for storing all of the information about a particular sl@0: type of NAND flash device. sl@0: @publishedPartner sl@0: @released sl@0: */ sl@0: struct TNandDeviceInfo sl@0: { sl@0: TManufacturerId iManufacturerCode; sl@0: TUint8 iDeviceCode; sl@0: TUint32 iNumBlocks; // no. of erase blocks in a device sl@0: TUint32 iNumSectorsPerBlock;// no. of sectors in an erase block sl@0: TUint32 iNumBytesMain; // size of a main array for one sector sl@0: TUint32 iNumBytesSpare; // size of a spare array for one sector sl@0: TUint8 iSectorShift; // shift value for a sector sl@0: TUint8 iBlockShift; // shift value for a block sl@0: TUint16 iBlksInRsv; // number of blocks in reservoir sl@0: TUint8 iBadPos; // BadBlock Information Position in spare block sl@0: TUint8 iLsnPos; // Lsn position in spare array sl@0: TUint8 iECCPos; // ECC position in spare array sl@0: TDeviceFlags iFlags; sl@0: }; sl@0: sl@0: #endif