亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cfnand.h.svn-base

?? 這是三星的2443的wince的bootloader
?? SVN-BASE
字號:
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright (c) 2001  Microsoft Corporation

Module Name:	S3C2440.H

Abstract:		FLASH Media Driver Interface Samsung S3C2440 CPU with NAND Flash 
                controller.
  
Environment:	As noted, this media driver works on behalf of the FAL to directly
				access the underlying FLASH hardware.  Consquently, this module 
				needs to be linked with FLASHFAL.LIB to produce the device driver 
				named FLASHDRV.DLL.

-----------------------------------------------------------------------------*/
#ifndef _S3C2440_DEVBOARD_
#define _S3C2440_DEVBOARD_

#include "FMD_LB.h"
#include "FMD_SB.h"
#include "nand.h"

#define BW_X08                              0
#define BW_X16                              1
#define BW_X32                              2

/*****************************************************************************/
/* S2440 Internal Data Structure Definition                                    */
/*****************************************************************************/
typedef struct
{
	UINT16          nMID;           /* Manufacturer ID               */
	UINT16          nDID;           /* Device ID                     */

	UINT16          nNumOfBlks;     /* Number of Blocks              */
	UINT16          nPgsPerBlk;     /* Number of Pages per block     */
	UINT16          nSctsPerPg;     /* Number of Sectors per page    */
	UINT16          nNumOfPlanes;   /* Number of Planes              */
	UINT16          nBlksInRsv;     /* The Number of Blocks
									   in Reservior for Bad Blocks   */
	UINT8           nBadPos;        /* BadBlock Information Poisition*/
	UINT8           nLsnPos;        /* LSN Position                  */
	UINT8           nECCPos;        /* ECC Policy : HW_ECC, SW_ECC   */
	UINT16          nBWidth;        /* Nand Organization X8 or X16   */

	UINT16          nTrTime;        /* Typical Read Op Time          */
	UINT16          nTwTime;        /* Typical Write Op Time         */
	UINT16          nTeTime;        /* Typical Erase Op Time         */
	UINT16          nTfTime;        /* Typical Transfer Op Time      */
} S2440Spec;

static S2440Spec     astNandSpec[] = {
	/*************************************************************************/
	/* nMID, nDID,                                                           */
	/*            nNumOfBlks                                                 */
	/*                  nPgsPerBlk                                           */
	/*                      nSctsPerPg                                       */
	/*                         nNumOfPlanes                                  */
	/*                            nBlksInRsv                                 */ 
	/*                                nBadPos                                */
	/*                                   nLsnPos                             */
	/*                                      nECCPos                          */
	/*                                         nBWidth                       */
	/*                                                nTrTime                */
	/*                                                    nTwTime            */
	/*                                                         nTeTime       */
	/*                                                                nTfTime*/
	/*************************************************************************/
	/* 8Gbit DDP NAND Flash */
	{ 0xEC, 0xD3, 8192, 64, 4, 2,160, 0, 2, 8, BW_X08, 50, 350, 2000, 50}, 
	/* 4Gbit DDP NAND Flash */
	{ 0xEC, 0xAC, 4096, 64, 4, 2, 80, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
	{ 0xEC, 0xDC, 4096, 64, 4, 2, 80, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
	//{ 0xEC, 0xBC, 4096, 64, 4, 2, 80, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
	//{ 0xEC, 0xCC, 4096, 64, 4, 2, 80, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
	/* 2Gbit NAND Flash */
	{ 0xEC, 0xAA, 2048, 64, 4, 1, 40, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
	{ 0xEC, 0xDA, 2048, 64, 4, 1, 40, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
	//{ 0xEC, 0xBA, 2048, 64, 4, 1, 40, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
	//{ 0xEC, 0xCA, 2048, 64, 4, 1, 40, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
	/* 2Gbit DDP NAND Flash */
	{ 0xEC, 0xDA, 2048, 64, 4, 2, 40, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
	{ 0xEC, 0xAA, 2048, 64, 4, 2, 40, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
	//{ 0xEC, 0xBA, 2048, 64, 4, 2, 40, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
	//{ 0xEC, 0xCA, 2048, 64, 4, 2, 40, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
	/*1Gbit NAND Flash */
	{ 0xEC, 0xA1, 1024, 64, 4, 1, 20, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
	{ 0xEC, 0xF1, 1024, 64, 4, 1, 20, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
	//{ 0xEC, 0xB1, 1024, 64, 4, 1, 20, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
	//{ 0xEC, 0xC1, 1024, 64, 4, 1, 20, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
	/* 1Gbit NAND Flash */	
	{ 0xEC, 0x79, 8192, 32, 1, 4,120, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
	{ 0xEC, 0x78, 8192, 32, 1, 4,120, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
	//{ 0xEC, 0x74, 8192, 32, 1, 4,120,11, 0, 6, BW_X16, 50, 350, 2000, 50},
	//{ 0xEC, 0x72, 8192, 32, 1, 4,120,11, 0, 6, BW_X16, 50, 350, 2000, 50},
	/* 512Mbit NAND Flash */
	{ 0xEC, 0x76, 4096, 32, 1, 4, 70, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
	{ 0xEC, 0x36, 4096, 32, 1, 4, 70, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
	
	/* 512Mbit XP Card */
	{ 0x98, 0x76, 4096, 32, 1, 4, 70, 5, 0, 6, BW_X08, 50, 350, 2000, 50},	
	{ 0x98, 0x79, 4096, 32, 1, 4, 70, 5, 0, 6, BW_X08, 50, 350, 2000, 50},		

	//{ 0xEC, 0x56, 4096, 32, 1, 4, 70,11, 0, 6, BW_X16, 50, 350, 2000, 50},
	//{ 0xEC, 0x46, 4096, 32, 1, 4, 70,11, 0, 6, BW_X16, 50, 350, 2000, 50},
	/* 256Mbit NAND Flash */   
	{ 0xEC, 0x75, 2048, 32, 1, 1, 35, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
	{ 0xEC, 0x35, 2048, 32, 1, 1, 35, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
	//{ 0xEC, 0x55, 2048, 32, 1, 1, 35,11, 0, 6, BW_X16, 50, 350, 2000, 50},
	//{ 0xEC, 0x45, 2048, 32, 1, 1, 35,11, 0, 6, BW_X16, 50, 350, 2000, 50},
	/* 128Mbit NAND Flash */
	{ 0xEC, 0x73, 1024, 32, 1, 1, 20, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
	{ 0xEC, 0x33, 1024, 32, 1, 1, 20, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
	//{ 0xEC, 0x53, 1024, 32, 1, 1, 20,11, 0, 6, BW_X16, 50, 350, 2000, 50},
	//{ 0xEC, 0x43, 1024, 32, 1, 1, 20,11, 0, 6, BW_X16, 50, 350, 2000, 50},

    { 0x00, 0x00,    0,  0, 0, 0,  0, 0, 0, 0,      0,  0,   0,    0,  0}
};

DWORD	dwPrimaryNandDevice;
DWORD	dwSecondaryNandDevice;

WORD	wPRIMARY_NAND_BLOCKS;
WORD	wPRIMARY_REAL_NAND_BLOCKS;
WORD	wSECONDARY_NAND_BLOCKS;
WORD	wSECONDARY_REAL_NAND_BLOCKS;
WORD	wNUM_BLOCKS;

#define VALIDADDR				0x05
#define OEMADDR					0x04					// 5th byte in spare area


#define	STATUS_ILLACC			(1<<5)		//	Illigar Access

#if 0
#define CMD_READ                0x00        //  Read
#define CMD_READ1               0x01        //  Read1
#define CMD_READ2               0x50        //  Read2
#define CMD_READ3               0x30        //  Read3
#define CMD_READID              0x90        //  ReadID
#define CMD_WRITE               0x80        //  Write phase 1
#define CMD_WRITE2              0x10        //  Write phase 2
#define CMD_ERASE               0x60        //  Erase phase 1
#define CMD_ERASE2              0xd0        //  Erase phase 2
#define CMD_STATUS              0x70        //  Status read
#define CMD_RDI                 0x85        //  Random Data Input
#define CMD_RDO                 0x05        //  Random Data Output
#define CMD_RDO2                0xE0        //  Random Data Output
#define CMD_RESET               0xff        //  Reset
#define CMD_READ_ID             0x90		// Read ID

//  Status bit pattern
#define STATUS_READY            0x40        //  Ready
#define STATUS_ERROR            0x01        //  Error
#define	STATUS_ILLACC			0x08		//	Illigar Access

//  Use Macros here to avoid extra over head for c function calls
#define READ_REGISTER_BYTE(p)		(*(PBYTE)(p))
#define WRITE_REGISTER_BYTE(p, v)	(*(PBYTE)(p)) = (v)
#define READ_REGISTER_USHORT(p)		(*(PUSHORT)(p))
#define WRITE_REGISTER_USHORT(p, v)	(*(PUSHORT)(p)) = (v)
#define READ_REGISTER_ULONG(p)		(*(PULONG)(p))
#define WRITE_REGISTER_ULONG(p, v)	(*(PULONG)(p)) = (v)

//  Status bit pattern
#define STATUS_READY		0x40
#define STATUS_ERROR		0x01

// HCLK=133Mhz
#define TACLS		0
#define TWRPH0		6
#define TWRPH1		2

//  MACROS
#define NF_CE_L()			WRITE_REGISTER_USHORT(pNFCONT, (USHORT) (READ_REGISTER_USHORT(pNFCONT) & ~(1<<1)))
#define NF_CE_H()			WRITE_REGISTER_USHORT(pNFCONT, (USHORT) (READ_REGISTER_USHORT(pNFCONT) | (1<<1)))
#define NF_CMD(cmd)			WRITE_REGISTER_USHORT(pNFCMD, (USHORT) (cmd))
#define NF_ADDR(addr)		WRITE_REGISTER_USHORT(pNFADDR, (USHORT) (addr))
#define NF_DATA_R()			READ_REGISTER_BYTE(pNFDATA)
#define NF_DATA_W(val)		WRITE_REGISTER_BYTE(pNFDATA, (BYTE) (val))
#define NF_DATA_R4()		READ_REGISTER_ULONG(pNFDATA)
#define NF_DATA_W4(val)		WRITE_REGISTER_ULONG(pNFDATA, (ULONG) (val))
#define NF_STAT()			READ_REGISTER_USHORT(pNFSTAT)
#define NF_MECC_UnLock()	WRITE_REGISTER_USHORT(pNFCONT, (USHORT) (READ_REGISTER_USHORT(pNFCONT) & ~(1<<5)))
#define NF_MECC_Lock()		WRITE_REGISTER_USHORT(pNFCONT, (USHORT) (READ_REGISTER_USHORT(pNFCONT) | (1<<5)))
#define NF_RSTECC()			WRITE_REGISTER_USHORT(pNFCONT, (USHORT) (READ_REGISTER_USHORT(pNFCONT) | (1<<4)))
#define NF_WAITRB()			{while(!(NF_STAT() & (1<<1))) ;}
#define NF_CLEAR_RB()		WRITE_REGISTER_USHORT(pNFSTAT, (USHORT) (READ_REGISTER_USHORT(pNFSTAT) | (1<<2)))
#define NF_DETECT_RB()		{while(!(NF_STAT() & (1<<2)));}
#define NF_ECC()			READ_REGISTER_ULONG(pNFECC)

#ifdef USENANDDMA
#define NAND_BUFFER_LENG	512
#endif

//  For fast read / write
#endif 
#ifdef __cplusplus
extern "C"  {
#endif
#if 0
void ReadPage512(BYTE *pBuf, PULONG pReg);
void WritePage512(BYTE *pBuf, PULONG pReg);

#endif
#ifdef __cplusplus
}
#endif


#endif _S3C2440_DEVBOARD_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本成人在线不卡视频| 中文字幕一区在线| 欧美美女bb生活片| 欧美亚一区二区| 欧美色精品在线视频| 欧美挠脚心视频网站| 欧美丝袜丝交足nylons| 欧美日韩午夜在线| 欧美一区二区三区性视频| 91精品国产麻豆| 日韩一级精品视频在线观看| 欧美sm极限捆绑bd| 久久久国产精品麻豆| 国产精品免费aⅴ片在线观看| 久久亚洲精品国产精品紫薇| 国产亚洲欧美在线| 国产精品福利av| 一区二区三区四区在线播放| 天天综合色天天综合| 久久爱www久久做| jlzzjlzz国产精品久久| 欧美综合欧美视频| 精品国内片67194| 亚洲日本韩国一区| 日韩av中文在线观看| 成人少妇影院yyyy| 欧美日韩一二三区| 久久精品亚洲乱码伦伦中文| 日本一区二区成人| 丝袜诱惑制服诱惑色一区在线观看| 午夜国产精品影院在线观看| 国产夫妻精品视频| 欧美日韩在线电影| 国产精品免费av| 蜜桃久久久久久| 99久久99久久精品免费看蜜桃 | 老司机午夜精品| 国产a视频精品免费观看| 色88888久久久久久影院按摩| 欧美日韩亚洲综合在线| 中文av一区二区| 三级在线观看一区二区| 成人精品鲁一区一区二区| 欧美美女黄视频| 亚洲精品一二三| 国产成人免费av在线| 7777精品伊人久久久大香线蕉完整版| 中文在线一区二区| 日本中文字幕一区二区有限公司| 菠萝蜜视频在线观看一区| 日韩午夜激情视频| 亚洲国产日韩精品| 不卡av在线网| 日本久久一区二区| 亚洲精品一区二区在线观看| 亚洲一区在线电影| 91天堂素人约啪| 中文字幕高清一区| 国产成人精品综合在线观看 | 国产成人午夜视频| 日韩欧美一区二区久久婷婷| 亚洲电影你懂得| 色婷婷综合在线| 最新中文字幕一区二区三区| 国产精品主播直播| 国产调教视频一区| 国产精品影视在线| 欧美精品一区视频| 国产一区二区在线看| 精品精品国产高清a毛片牛牛| 免费亚洲电影在线| 欧美日韩www| 日韩中文字幕1| 在线成人免费视频| 青娱乐精品在线视频| 日韩欧美资源站| 久久99这里只有精品| 久久久亚洲精品一区二区三区| 韩国av一区二区三区在线观看| 日韩欧美亚洲国产精品字幕久久久| 日韩av网站免费在线| 精品欧美一区二区久久| 国产一区二区中文字幕| 欧美激情一区二区三区在线| 成人免费视频视频在线观看免费| 国产精品久久久久影院亚瑟| 色综合天天性综合| 亚洲福利一区二区| 欧美va在线播放| 国产91清纯白嫩初高中在线观看| 中文在线资源观看网站视频免费不卡| 99精品视频一区| 亚洲人成网站色在线观看| 一本色道久久综合精品竹菊| 亚洲国产你懂的| 精品奇米国产一区二区三区| 国产成人精品三级麻豆| 亚洲精品成人天堂一二三| 欧美人动与zoxxxx乱| 国内久久精品视频| 亚洲人成7777| 欧美精品久久99| 国产精品资源网站| 一区二区三区精品视频| 日韩欧美国产午夜精品| 国产成人亚洲精品青草天美| 亚洲一区二区三区免费视频| 欧美一区二区三区四区五区 | 天堂蜜桃一区二区三区| 国产亚洲成aⅴ人片在线观看 | 日韩一区二区三区三四区视频在线观看| 美女视频黄久久| 亚洲色欲色欲www| 日韩女优电影在线观看| 99久久99久久免费精品蜜臀| 美女视频网站黄色亚洲| 亚洲少妇最新在线视频| 精品日韩av一区二区| 欧美日韩中文字幕一区| 国产成人综合亚洲91猫咪| 午夜影院久久久| 中文字幕一区在线| 精品免费一区二区三区| 精品视频一区三区九区| 国产不卡视频在线播放| 免费人成在线不卡| 亚洲国产视频在线| 国产精品久久久久久久久久免费看| 日韩限制级电影在线观看| 91香蕉国产在线观看软件| 国产91露脸合集magnet | 国产精品理论片| 欧美群妇大交群的观看方式| 成人精品亚洲人成在线| 久久av中文字幕片| 日韩高清一区在线| 亚洲第四色夜色| 亚洲欧美色一区| 亚洲色图欧洲色图婷婷| 中文无字幕一区二区三区| 亚洲精品一区二区三区精华液 | 国产麻豆欧美日韩一区| 日本欧美肥老太交大片| 亚洲1区2区3区视频| 亚洲永久精品国产| 亚洲毛片av在线| 亚洲女与黑人做爰| 自拍偷拍欧美精品| 亚洲女同一区二区| 亚洲三级在线观看| 亚洲日本在线a| 亚洲精品免费电影| 亚洲综合一区二区精品导航| 亚洲精品乱码久久久久久黑人| 亚洲欧洲色图综合| 亚洲美女区一区| 亚洲国产aⅴ天堂久久| 亚洲第一久久影院| 三级久久三级久久久| 美女看a上一区| 极品销魂美女一区二区三区| 狠狠色综合播放一区二区| 国产一区二区三区黄视频| 国产不卡视频在线观看| 97精品久久久久中文字幕| 91麻豆高清视频| 欧美喷水一区二区| 欧美大片一区二区三区| 国产片一区二区三区| 亚洲视频香蕉人妖| 另类小说一区二区三区| 久久99国产精品久久| 成人激情开心网| 欧美伊人久久大香线蕉综合69| 欧美久久久久久久久中文字幕| 日韩三级免费观看| 国产精品久久久久影院色老大 | 成人一区在线观看| 一本色道a无线码一区v| 欧美一区二区三区在线观看视频| 精品国产免费一区二区三区香蕉| 中文字幕一区视频| 日本欧美大码aⅴ在线播放| 国产成人自拍网| 在线免费观看日本一区| www一区二区| 亚洲一区二区欧美激情| 国产一区二区三区香蕉| 色噜噜久久综合| 久久综合九色综合97_久久久 | 91精品国产aⅴ一区二区| 国产日韩欧美一区二区三区综合| 亚洲美女在线一区| 国产成人免费视频精品含羞草妖精| 一本到高清视频免费精品| 精品理论电影在线观看| 一区二区久久久| 国产福利精品一区| 日韩一区二区免费高清| 亚洲精品日韩专区silk|