📄 nandfdrv.h
字号:
/****************************************************************
;* *
;* INSTUTITE FOR INFORMATION INDUSTRY *
;* FFS HEADER -- FFSFLASH *
;* July 22, 1999 *
;* *
;****************************************************************/
#ifndef _NAND_FFS_FLASH_DRIVER_H
#define _NAND_FFS_FLASH_DRIVER_H
/**************************************************************
;* *
;* Gloabal Definitions *
;* *
;*************************************************************/
// the base address of flash
#define NAND_FFS_FLASH_BASE_ADDR 0x10c00000
// commands and address for Intel 28F flash
#define INTEL28F800C3_SA0 (0x000000)
#define INTEL28F800C3_SA1 (0x002000)
#define INTEL28F800C3_SA2 (0x004000)
#define INTEL28F800C3_SA3 (0x006000)
#define INTEL28F800C3_SA4 (0x008000)
#define INTEL28F800C3_SA5 (0x00a000)
#define INTEL28F800C3_SA6 (0x00c000)
#define INTEL28F800C3_SA7 (0x00e000)
#define INTEL28F800C3_SA8 (0x010000)
#define INTEL28F800C3_SA9 (0x020000)
#define INTEL28F800C3_SA10 (0x030000)
#define INTEL28F800C3_SA11 (0x040000)
#define INTEL28F800C3_SA12 (0x050000)
#define INTEL28F800C3_SA13 (0x060000)
#define INTEL28F800C3_SA14 (0x070000)
#define INTEL28F800C3_SA15 (0x080000)
#define INTEL28F800C3_SA16 (0x090000)
#define INTEL28F800C3_SA17 (0x0A0000)
#define INTEL28F800C3_SA18 (0x0B0000)
#define INTEL28F800C3_SA19 (0x0C0000)
#define INTEL28F800C3_SA20 (0x0D0000)
#define INTEL28F800C3_SA21 (0x0E0000)
#define INTEL28F800C3_SA22 (0x0F0000)
#define INTEL28F800C3_SA23 (0x100000)
#define INTEL28F800C3_SA24 (0x110000)
#define INTEL28F800C3_SA25 (0x120000)
#define INTEL28F800C3_SA26 (0x130000)
#define INTEL28F800C3_SA27 (0x140000)
#define INTEL28F800C3_SA28 (0x150000)
#define INTEL28F800C3_SA29 (0x160000)
#define INTEL28F800C3_SA30 (0x170000)
#define INTEL28F800C3_SA31 (0x180000)
#define INTEL28F800C3_SA32 (0x190000)
#define INTEL28F800C3_SA33 (0x1A0000)
#define INTEL28F800C3_SA34 (0x1B0000)
#define INTEL28F800C3_SA35 (0x1C0000)
#define INTEL28F800C3_SA36 (0x1D0000)
#define INTEL28F800C3_SA37 (0x1E0000)
#define INTEL28F800C3_SA38 (0x1F0000)
#define INTEL28F800C3_SA39 (0x200000)
#define INTEL28F800C3_SA40 (0x210000)
#define INTEL28F800C3_SA41 (0x220000)
#define INTEL28F800C3_SA42 (0x230000)
#define INTEL28F800C3_SA43 (0x240000)
#define INTEL28F800C3_SA44 (0x250000)
#define INTEL28F800C3_SA45 (0x260000)
#define INTEL28F800C3_SA46 (0x270000)
#define INTEL28F800C3_SA47 (0x280000)
#define INTEL28F800C3_SA48 (0x290000)
#define INTEL28F800C3_SA49 (0x2A0000)
#define INTEL28F800C3_SA50 (0x2B0000)
#define INTEL28F800C3_SA51 (0x2C0000)
#define INTEL28F800C3_SA52 (0x2D0000)
#define INTEL28F800C3_SA53 (0x2E0000)
#define INTEL28F800C3_SA54 (0x2F0000)
#define INTEL28F800C3_SA55 (0x300000)
#define INTEL28F800C3_SA56 (0x310000)
#define INTEL28F800C3_SA57 (0x320000)
#define INTEL28F800C3_SA58 (0x330000)
#define INTEL28F800C3_SA59 (0x340000)
#define INTEL28F800C3_SA60 (0x350000)
#define INTEL28F800C3_SA61 (0x360000)
#define INTEL28F800C3_SA62 (0x370000)
#define INTEL28F800C3_SA63 (0x380000)
#define INTEL28F800C3_SA64 (0x390000)
#define INTEL28F800C3_SA65 (0x3A0000)
#define INTEL28F800C3_SA66 (0x3B0000)
#define INTEL28F800C3_SA67 (0x3C0000)
#define INTEL28F800C3_SA68 (0x3D0000)
#define INTEL28F800C3_SA69 (0x3E0000)
#define INTEL28F800C3_SA70 (0x3F0000)
#define INTEL28F800C3_SAEND (0x400000)
#define INTEL_STATUS_WSMS (0x80)
#define INTEL_STATUS_ESS (0x40)
#define INTEL_STATUS_ES (0x20)
#define INTEL_STATUS_PS (0x10)
#define INTEL_STATUS_VPPS (0x08)
#define INTEL_STATUS_PSS (0x04)
#define INTEL_STATUS_BLS (0x02)
#define INTEL_STATUS_R (0x01)
#define INTEL_CMD_CFIQUERY (0x9898)
#define INTEL_CMD_READ_CONFIG (0x9090)
#define INTEL_CMD_RESET (0xFFFF)
#define INTEL_CMD_STATUS (0x7070)
#define INTEL_CMD_CLR_STATUS (0x5050)
#define INTEL_CMD_PROG_SETUP (0x4040)
#define INTEL_CMD_ERASE_SETUP (0x2020)
#define INTEL_CMD_SUSPEND (0xB0B0)
#define INTEL_CMD_CONFIG (0x6060)
#define INTEL_CMD_LOCK_BLOCK (0x0101)
#define INTEL_CMD_ERASE_CONFRM (0xD0D0)
#define INTEL_CMD_ERASE_RESUME (0xD0D0)
#define INTEL_CMD_UNLOCK_BLOCK (0xD0D0)
#define INTEL_CMD_LOCKDOWN (0x2F2F)
#define INTEL_CMD_PROG_PROTECT (0xC0C0)
/*************************************************************
Function: NAND_FFS_fshFrameRead
Description:
read a flash frame
Input:
frame - the frame number
Output:
0 SUCCESS
-1 FAILURE
**************************************************************/
int NAND_FFS_fshFrameRead(int frame, unsigned char *pData);
/*************************************************************
Function: NAND_FFS_fshBlockRead
Description:
read a flash sector
Input:
sec - the sector number
Output:
0 SUCCESS
-1 FAILURE
**************************************************************/
int NAND_FFS_fshBlockRead(int sec, unsigned char *pData);
/*************************************************************
Function: NAND_FFS_fshBlockErase
Description:
erase a flash sector
Input:
sec - the sector number
Output:
0 SUCCESS
-1 FAILURE
**************************************************************/
int NAND_FFS_fshBlockErase(int sec);
/*************************************************************
Function: NAND_FFS_fshBlockProgram
Description:
program a flash sector
Input:
sec - the sector number
Output:
0 SUCCESS
-1 FAILURE
**************************************************************/
int NAND_FFS_fshBlockProgram(int sec, unsigned char *pData);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -