xref: /rk3399_rockchip-uboot/fs/yaffs2/yaffs_nandemul2k.h (revision 753ac610880e6e563d0384bb114f8b41df89e520)
10e8cc8bdSWilliam Juul /*
20e8cc8bdSWilliam Juul  * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
30e8cc8bdSWilliam Juul  *
4*753ac610SCharles Manning  * Copyright (C) 2002-2011 Aleph One Ltd.
50e8cc8bdSWilliam Juul  *   for Toby Churchill Ltd and Brightstar Engineering
60e8cc8bdSWilliam Juul  *
70e8cc8bdSWilliam Juul  * Created by Charles Manning <charles@aleph1.co.uk>
80e8cc8bdSWilliam Juul  *
90e8cc8bdSWilliam Juul  * This program is free software; you can redistribute it and/or modify
100e8cc8bdSWilliam Juul  * it under the terms of the GNU Lesser General Public License version 2.1 as
110e8cc8bdSWilliam Juul  * published by the Free Software Foundation.
120e8cc8bdSWilliam Juul  *
130e8cc8bdSWilliam Juul  * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
140e8cc8bdSWilliam Juul  */
150e8cc8bdSWilliam Juul 
160e8cc8bdSWilliam Juul /* Interface to emulated NAND functions (2k page size) */
170e8cc8bdSWilliam Juul 
180e8cc8bdSWilliam Juul #ifndef __YAFFS_NANDEMUL2K_H__
190e8cc8bdSWilliam Juul #define __YAFFS_NANDEMUL2K_H__
200e8cc8bdSWilliam Juul 
210e8cc8bdSWilliam Juul #include "yaffs_guts.h"
220e8cc8bdSWilliam Juul 
23*753ac610SCharles Manning int nandemul2k_WriteChunkWithTagsToNAND(struct yaffs_dev *dev,
24*753ac610SCharles Manning 					int nand_chunk, const u8 *data,
25*753ac610SCharles Manning 					const struct yaffs_ext_tags *tags);
26*753ac610SCharles Manning int nandemul2k_ReadChunkWithTagsFromNAND(struct yaffs_dev *dev,
27*753ac610SCharles Manning 					 int nand_chunk, u8 *data,
28*753ac610SCharles Manning 					 struct yaffs_ext_tags *tags);
29*753ac610SCharles Manning int nandemul2k_MarkNANDBlockBad(struct yaffs_dev *dev, int block_no);
30*753ac610SCharles Manning int nandemul2k_QueryNANDBlock(struct yaffs_dev *dev, int block_no,
31*753ac610SCharles Manning 			      enum yaffs_block_state *state, u32 *seq_number);
32*753ac610SCharles Manning int nandemul2k_EraseBlockInNAND(struct yaffs_dev *dev,
33*753ac610SCharles Manning 				int flash_block);
34*753ac610SCharles Manning int nandemul2k_InitialiseNAND(struct yaffs_dev *dev);
350e8cc8bdSWilliam Juul int nandemul2k_GetBytesPerChunk(void);
360e8cc8bdSWilliam Juul int nandemul2k_GetChunksPerBlock(void);
370e8cc8bdSWilliam Juul int nandemul2k_GetNumberOfBlocks(void);
380e8cc8bdSWilliam Juul 
390e8cc8bdSWilliam Juul #endif
40