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

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

?? nand_drv_st.c

?? MTK手機平臺下載工具FLASHTOOL驅動源碼
?? C
字號:
/*******************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2005
*
*******************************************************************************/

/*******************************************************************************
 *
 * Filename:
 * ---------
 *	 nand_drv_ST.c 
 *
 * Project:
 * --------
 *   FlashTool Download Agent 
 *
 * Description:
 * ------------
 *   STMicroelectronics compatible NAND flash driver 
 *
 * Author:
 * -------
 *	 Amos Hsu 
 *
 *==============================================================================
 * 				HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 * $Revision:   1.1  $
 * $Modtime:   Dec 19 2005 16:02:28  $
 * $Log:   //mtkvs01/vmdata/new_flash_tool/archives/DA/SRC/nand_drv_ST.c-arc  $
 * 
 *    Rev 1.1   Dec 29 2005 10:53:18   mtk00539
 *  1. [DA] Add pre-process callback function to unlock all the blocks to meet ST NAND flash requirement. 
 * Resolution for 156: [FlashTool v2.7.1013][BUG FIX] Fix BootROM start command failure while manually selecting NMT6226 or MT6227 baseband chip.
 * 
 *    Rev 1.0   Oct 19 2005 14:41:08   mtk00539
 * Initial revision.
 * Resolution for 140: [BROM_DLL v2.7.1008][New] Support NFB download and many new features.
 * 
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *==============================================================================
 *******************************************************************************/
#include "nand_drv_ST.h"
#include "nand_drv_COMMON.h"
#include "nand_util_func.h"
#include "NFI.h"

//------------------------------------------------------------------------------
// STMicroelectronics Command Set                                               
//------------------------------------------------------------------------------
const NAND_CommandSet_S		g_NAND_ST_512_CMD_SET={
	 { 1, 0x90 }	// read id 
	,{ 1, 0x70 }	// read status 
	,{ 1, 0xFF }	// reset device 
	,{ 1, 0x00 }	// read 
	,{ 1, 0x50 }	// read spare area 
	,{ 0, 0 }		// read confirm 
	,{ 1, 0x00 }	// program 1st half page 
	,{ 1, 0x80 }	// program 
	,{ 1, 0x10 }	// program confirm 
	,{ 1, 0x60 }	// erase 
	,{ 1, 0xD0 }	// erase confirm 
	,{ 1, 0x00 }	// copyback read 
	,{ 0, 0 }		// copyback read confirm 
	,{ 1, 0x8A }	// copyback program 
	,{ 1, 0x10 }	// copyback program confirm 
};

const NAND_CommandSet_S		g_NAND_ST_2048_CMD_SET={
	 { 1, 0x90 }	// read id 
	,{ 1, 0x70 }	// read status 
	,{ 1, 0xFF }	// reset device 
	,{ 1, 0x00 }	// read 
	,{ 0, 0 }		// read spare area 
	,{ 1, 0x30 }	// read confirm 
	,{ 0, 0 }		// program 1st half page 
	,{ 1, 0x80 }	// program 
	,{ 1, 0x10 }	// program confirm 
	,{ 1, 0x60 }	// erase 
	,{ 1, 0xD0 }	// erase confirm 
	,{ 1, 0x00 }	// copyback read 
	,{ 1, 0x35 }	// copyback read confirm 
	,{ 1, 0x85 }	// copyback program 
	,{ 1, 0x10 }	// copyback program confirm 
};

//------------------------------------------------------------------------------
// ST Callback Function Set                                                     
//------------------------------------------------------------------------------
const NAND_CMD_Callback_S	g_NAND_ST_CB_FUNC_SET={
	NAND_COMMON_ReadID
	,NAND_COMMON_Reset
	,NAND_ST_WholeChipUnlock
	,NAND_COMMON_ReadStatus
	,NAND_COMMON_BlockErase
	,NAND_COMMON_BadBlockSymbol_Check
	,NAND_COMMON_BadBlockSymbol_Set
	,NAND_COMMON_PageRead
	,NAND_COMMON_PageProgram
	,NAND_COMMON_SpareRead
	,NAND_COMMON_SpareProgram
	,NAND_COMMON_CopyBack
};

//------------------------------------------------------------------------------
// ST Callback Function Set Without H/W CopyBack Function                       
//------------------------------------------------------------------------------
const NAND_CMD_Callback_S	g_NAND_ST_CB_FUNC_SET_WITHOUT_COPYBACK={
	NAND_COMMON_ReadID
	,NAND_COMMON_Reset
	,NAND_ST_WholeChipUnlock
	,NAND_COMMON_ReadStatus
	,NAND_COMMON_BlockErase
	,NAND_COMMON_BadBlockSymbol_Check
	,NAND_COMMON_BadBlockSymbol_Set
	,NAND_COMMON_PageRead
	,NAND_COMMON_PageProgram
	,NAND_COMMON_SpareRead
	,NAND_COMMON_SpareProgram
	,NULL
};

//------------------------------------------------------------------------------
// Whole Chip Unlock                                                            
//------------------------------------------------------------------------------
STATUS_E  NAND_ST_WholeChipUnlock(const NAND_DeviceInfo_S  *nand_info, const uint32  c_timeout)
{
	uint32	page_size;
	uint32	spare_size;
	uint32	addr_cycle;
	uint32	ra_last_blockaddr;

	page_size = NUTL_PAGE_SIZE(nand_info);
	spare_size = NUTL_SPARE_SIZE(nand_info);
	addr_cycle = NUTL_ADDR_CYCLE(nand_info);
	ra_last_blockaddr = NUTL_AbsAddrToBlockAddr(nand_info, (NUTL_TOTAL_SIZE(nand_info)-1));

	// reset the NFI core state machine, data FIFO and flushing FIFO 
	*NFI_OPCON = 0x0;
	*NFI_CON = 0x0;
	*NFI_FIFOCON = 0x30;

	// block unlock command 
	*NFI_CMD = 0x23;
	// wait til CMD is completely issued 
	while( *NFI_PSTA & STATUS_CMD );
	// fill 1~4 cycle addr 
	*NFI_ADDRL = 0;
	*NFI_ADDRM = 0;
	// no. of addr cycle 
	if( 512 < page_size ) {
		*NFI_ADDNOB = addr_cycle-2;
	}
	else {
		*NFI_ADDNOB = addr_cycle-1;
	}
	// wait til ADDR is completely issued 
	while( *NFI_PSTA & STATUS_ADDR );

	// block unlock confirm 
	*NFI_CMD = 0x24;
	// wait til CMD is completely issued 
	while( *NFI_PSTA & STATUS_CMD );
	// fill 1~4 cycle addr , block unlock command only fill row address, so column bits shift is unnecessary 
	*NFI_ADDRL = ra_last_blockaddr;
	*NFI_ADDRM = 0;
	// no. of addr cycle 
	if( 512 < page_size ) {
		*NFI_ADDNOB = addr_cycle-2;
	}
	else {
		*NFI_ADDNOB = addr_cycle-1;
	}
	// wait til ADDR is completely issued 
	while( *NFI_PSTA & STATUS_ADDR );

	return S_DONE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99久久久欧美国产| 看电视剧不卡顿的网站| 久久免费的精品国产v∧| 777色狠狠一区二区三区| 欧美午夜精品免费| 欧美在线999| 欧美日韩日日夜夜| 在线播放中文一区| 日韩欧美三级在线| 精品国产乱码久久久久久牛牛| 日韩一区二区在线观看| 欧美不卡视频一区| 日本一二三不卡| 最新欧美精品一区二区三区| 亚洲免费观看在线观看| 一区二区成人在线| 久草这里只有精品视频| 国产精品一区二区久久不卡 | 最近中文字幕一区二区三区| 日本一二三不卡| 亚洲人成影院在线观看| 亚洲成人777| 韩国精品一区二区| 色综合天天综合色综合av | 亚洲国产精品精华液ab| 国产精品第一页第二页第三页| 亚洲另类色综合网站| 午夜日韩在线电影| 国产精品主播直播| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 国产精品久久久久精k8 | 日本一区二区三区免费乱视频| 亚洲欧洲av在线| 午夜伦理一区二区| 国产一区二区三区国产| 91黄色免费网站| 2019国产精品| 亚洲黄网站在线观看| 麻豆精品国产传媒mv男同| 国产91高潮流白浆在线麻豆| 色先锋资源久久综合| 欧美大片国产精品| 洋洋成人永久网站入口| 国产精品资源在线| 欧美精品777| 亚洲欧美视频在线观看视频| 国产一区二三区| 欧美日韩综合不卡| 国产欧美日本一区视频| 免费观看久久久4p| 欧美日韩激情一区| 亚洲精品国产a| av一二三不卡影片| 国产亚洲精品aa| 蜜臀va亚洲va欧美va天堂| 91行情网站电视在线观看高清版| 国产亚洲欧美一区在线观看| 日韩国产在线观看| 欧美日韩视频不卡| 亚洲福中文字幕伊人影院| 成人午夜精品在线| 久久久国产精华| 国产尤物一区二区在线| 日韩一级欧美一级| 日本va欧美va精品发布| 欧美精品vⅰdeose4hd| 亚洲妇女屁股眼交7| 在线观看91视频| 亚洲影院在线观看| 91黄色激情网站| 亚洲一区二区精品3399| 在线精品视频免费播放| 亚洲欧美另类小说视频| 91丨porny丨国产入口| 欧美国产成人精品| 不卡在线观看av| 亚洲男人的天堂在线aⅴ视频| 成人av电影在线网| 亚洲色图制服丝袜| 色香蕉成人二区免费| 亚洲一区在线看| 欧美日本一区二区| 欧美aaa在线| 久久久精品中文字幕麻豆发布| 国模套图日韩精品一区二区| 久久综合视频网| 成人在线一区二区三区| 一区在线观看免费| 色哟哟一区二区| 午夜av电影一区| 精品sm在线观看| 波多野结衣精品在线| 亚洲欧美日韩中文字幕一区二区三区 | 日韩国产精品大片| 久久久无码精品亚洲日韩按摩| 国产69精品久久777的优势| 国产精品情趣视频| 欧美日韩五月天| 国内精品不卡在线| 亚洲欧美国产77777| 欧美酷刑日本凌虐凌虐| 久久精品久久99精品久久| 欧美激情一区在线观看| 欧美日韩久久久| 狠狠色丁香婷综合久久| **网站欧美大片在线观看| 在线电影院国产精品| 国产成人亚洲综合a∨婷婷| 亚洲女女做受ⅹxx高潮| 欧美成人官网二区| 色综合天天综合网国产成人综合天| 日韩中文字幕不卡| 中文字幕av一区二区三区高| 欧洲精品一区二区| 国产一区二区三区av电影| 亚洲午夜羞羞片| 国产精品亲子伦对白| 91精品国产综合久久久蜜臀图片| 国产毛片精品一区| 午夜精品久久久久| 亚洲欧洲成人精品av97| 亚洲精品一区二区三区香蕉| 在线一区二区三区做爰视频网站| 国产九色sp调教91| 日本在线观看不卡视频| 亚洲乱码国产乱码精品精小说| 欧美大度的电影原声| 欧美这里有精品| www.av亚洲| 国产精品综合av一区二区国产馆| 日本一道高清亚洲日美韩| 亚洲精品中文字幕在线观看| 日本一区二区三区国色天香 | 国产欧美日韩精品a在线观看| 欧美夫妻性生活| 欧美曰成人黄网| 99久久久国产精品免费蜜臀| 国产成a人亚洲| 久草精品在线观看| 精品亚洲国产成人av制服丝袜| 午夜伊人狠狠久久| 亚洲一区二区美女| 亚洲无人区一区| 亚洲高清视频在线| 亚洲成人动漫在线免费观看| 亚洲激情欧美激情| 亚洲国产中文字幕在线视频综合| 亚洲精品日日夜夜| 一区二区欧美国产| 一区二区三区蜜桃| 午夜精品福利一区二区三区av | 久久91精品久久久久久秒播| 天堂在线亚洲视频| 午夜精品福利一区二区蜜股av| 亚洲尤物在线视频观看| 五月天欧美精品| 免播放器亚洲一区| 九色|91porny| 国产激情一区二区三区| 国产91综合一区在线观看| 国产不卡在线一区| 色婷婷激情综合| 欧美四级电影在线观看| 91精品在线麻豆| 337p粉嫩大胆噜噜噜噜噜91av| 久久久99精品久久| 亚洲欧洲av一区二区三区久久| 一区二区免费在线| 毛片av中文字幕一区二区| 韩日精品视频一区| 91免费精品国自产拍在线不卡| 色爱区综合激月婷婷| 免费精品99久久国产综合精品| 成人av免费在线| 爽好多水快深点欧美视频| 日韩精品乱码免费| 国产精品自拍在线| 色婷婷国产精品综合在线观看| 欧美日韩高清一区二区不卡| 日韩美一区二区三区| 中文字幕av一区二区三区免费看 | 欧美揉bbbbb揉bbbbb| 精品播放一区二区| 亚洲精品日韩一| 久久国产精品色| 91在线国内视频| 欧美电视剧在线观看完整版| 国产精品美女视频| 天使萌一区二区三区免费观看| 国产一区二区三区综合| 色婷婷精品久久二区二区蜜臀av| 欧美一级片在线看| 国产精品久久久久久久久免费丝袜| 亚洲午夜激情av| 国产大陆精品国产| 欧美电影在哪看比较好| 国产精品色一区二区三区| 奇米一区二区三区av| 91色九色蝌蚪| 久久免费视频一区|