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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? flash.c

?? Intel XScale PXA255 引導(dǎo)Linux的Redboot 版bootloader源代碼!
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
//=============================================================================////      flash.c - Cyclone Diagnostics////=============================================================================//####COPYRIGHTBEGIN####//                                                                          // -------------------------------------------                              // The contents of this file are subject to the Red Hat eCos Public License // Version 1.1 (the "License"); you may not use this file except in         // compliance with the License.  You may obtain a copy of the License at    // http://www.redhat.com/                                                   //                                                                          // Software distributed under the License is distributed on an "AS IS"      // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the // License for the specific language governing rights and limitations under // the License.                                                             //                                                                          // The Original Code is eCos - Embedded Configurable Operating System,      // released September 30, 1998.                                             //                                                                          // The Initial Developer of the Original Code is Red Hat.                   // Portions created by Red Hat are                                          // Copyright (C) 2001 Red Hat, Inc.                             // All Rights Reserved.                                                     // -------------------------------------------                              //                                                                          //####COPYRIGHTEND####//=============================================================================//#####DESCRIPTIONBEGIN####//// Author(s):   Scott Coulter, Jeff Frazier, Eric Breeden// Contributors:// Date:        2001-01-25// Purpose:     // Description: ////####DESCRIPTIONEND####////===========================================================================*/#include <redboot.h>#include <cyg/io/flash.h>#include "iq80310.h"	/* 80310 chip set specific */#include "7_segment_displays.h"typedef unsigned char FLASH_TYPE;#define MASK 0xff  /* for 1 bank *//* 28F016S5/28F640J3A Command Definitions  - First Bus Cycle */#define RESET_CMD				(0xffffffff & MASK)#define WRITE_TO_BUF_CMD		(0xe8e8e8e8 & MASK)#define WRITE_CONFIRM_CMD		(0xd0d0d0d0 & MASK)#define READ_ID_CMD				(0x90909090 & MASK)#define READ_STAT_REG			(0x70707070 & MASK)#define CLEAR_STAT_REG			(0x50505050 & MASK)#define ERASE_CMD				(0x20202020 & MASK)#define PROGRAM_CMD				(0x40404040 & MASK)#define BEP_SUSPEND				(0xb0b0b0b0 & MASK)#define BEP_RESUME				(0xd0d0d0d0 & MASK)#define LOCK_CMD				(0x60606060 & MASK)#define CLEAR_LOCK_BIT_SETUP	(0x60606060 & MASK)	/* 10/06/00 *//* 28F016S5/28F640J3A Command Definitions  - Second Bus Cycle */#define ERASE_CONFIRM			(0xd0d0d0d0 & MASK)#define LOCK_BLOCK_CONFIRM		(0x01010101 & MASK)#define MASTER_LOCK_CONFIRM		(0xf1f1f1f1 & MASK)  /* DO NOT EVER set master enable bit!!! */#define UNLOCK_BLOCK_CONFIRM	(0xd0d0d0d0 & MASK)#define CLEAR_LOCK_BIT_CONFIRM	(0xd0d0d0d0 & MASK)	/* 10/06/00 *//* Flash category definitions */#define SECTOR_PROG	0#define BLOCK_PROG	1/* status register bits */#define WSM_READY				(FLASH_TYPE) (1 << 7)#define WSM_BUSY				(FLASH_TYPE) (0 << 7)#define BE_SUSPENDED			(FLASH_TYPE) (1 << 6)#define BE_COMPLETED			(FLASH_TYPE) (0 << 6)#define ERASE_UNLOCK_ERROR		(FLASH_TYPE) (1 << 5)#define ERASE_UNLOCK_SUCCESS	(FLASH_TYPE) (0 << 5)#define CLEAR_LOCK_BIT_ERROR	(FLASH_TYPE) (1 << 5)	/* 10/06/00 */#define CLEAR_LOCK_BIT_SUCCESS	(FLASH_TYPE) (0 << 5)	/* 10/06/00 */#define PROGRAM_LOCK_ERROR		(FLASH_TYPE) (1 << 4)#define PROGRAM_LOCK_SUCCESS	(FLASH_TYPE) (0 << 4)#define SET_LOCK_BIT_ERROR		(FLASH_TYPE) (1 << 4)	/* 10/17/00 */#define SET_LOCK_BIT_SUCCESS	(FLASH_TYPE) (0 << 4)	/* 10/17/00 */#define VPP_LOW_DETECT			(FLASH_TYPE) (1 << 3)#define VPP_OK					(FLASH_TYPE) (0 << 3)#define PROGRAM_SUSPENDED		(FLASH_TYPE) (1 << 2)#define PROGRAM_COMPLETED		(FLASH_TYPE) (0 << 2)#define DEVICE_PROTECTED		(FLASH_TYPE) (1 << 1)#define DEVICE_UNLOCKED			(FLASH_TYPE) (0 << 1)/* Other Intel 28F016S5/28F640J3A definitions */#define CMD_SEQ_ERR			(FLASH_TYPE) (ERASE_UNLOCK_ERROR | PROGRAM_LOCK_ERROR)#define ALL_FLASH_STATUS	(FLASH_TYPE) (0xfe)#define UNKNOWN_ERR			(FLASH_TYPE) (0xff)#define TEST_BUF_LONGS		16384#define TEST_BUF_CHARS		65536#define MADE_BY_INTEL		(0x89898989 & MASK)		/* Manufacturer Code, read at address 0, note that address bit A0 is not used in x8 or x16 mode when obtaining identifier code *//*#define I28F016S5			(0xAAAAAAAA & MASK)*/	/* 28F016S5 */#define I28F640J3A			(0x17171717 & MASK)		/* Device Code, read at address 1, note that bit address A0 is not used in x8 or x16 mode when obtaining identifier code *//*#define FLASH_BLOCK_SIZE	0x10000*/	/* 28F016S5 */#define FLASH_BLOCK_SIZE	0x20000		/* 28F640J3A */#define BLOCK_LOCKED		1#define BLOCK_UNLOCKED		0// First 4K page of flash at physical address zero is// virtually mapped at address 0xa0000000.#define FLASH_P2V(x) ((volatile FLASH_TYPE *)(((unsigned)(x) < 0x1000) ?  \                           ((unsigned)(x) | 0xa0000000) :  \                           (unsigned)(x)))unsigned long *flash_buffer = (unsigned long *)0xa1000000;extern void _flushICache();extern void _enableICache();extern void _disableICache();extern void _switchMMUpageTables();extern void _usec_delay();extern void _msec_delay();unsigned long eeprom_size;unsigned long flash_base;ADDR flash_addr=FLASH_ADDR, eeprom_prog_first, eeprom_prog_last;extern long hexIn();extern char * sgets();/* forward declarations */void init_eeprom() RAM_FUNC_SECT;int reserved_check(ADDR addr, unsigned long length) RAM_FUNC_SECT;int is_eeprom(ADDR addr, unsigned long length) RAM_FUNC_SECT;int check_eeprom(ADDR addr, unsigned long length) RAM_FUNC_SECT;int lock_breeze() RAM_FUNC_SECT;int check_bstat(int block_num) RAM_FUNC_SECT;int set_all_lock_bits(void) RAM_FUNC_SECT;		/* 10/11/00 added */int clear_all_lock_bits(ADDR addr) RAM_FUNC_SECT;	/* 10/06/00 added */int check_erase_unlock(volatile FLASH_TYPE *flash) RAM_FUNC_SECT;int check_op_status(int cmd, volatile FLASH_TYPE *flash) RAM_FUNC_SECT;int erase_eeprom(ADDR addr, unsigned long length) RAM_FUNC_SECT;int check_program_lock(volatile FLASH_TYPE *flash) RAM_FUNC_SECT;int write_eeprom(ADDR start_addr, const void *data_arg, int data_size) RAM_FUNC_SECT;void flash_test(void) RAM_FUNC_SECT;void delay_and_flush(void) RAM_FUNC_SECT;void do_nothing(void) RAM_FUNC_SECT;void display_val(int num) RAM_FUNC_SECT;void display_out (int msb_flag, unsigned char val) RAM_FUNC_SECT;void check_lock_bit_status(void) RAM_FUNC_SECT;#define MSB_DISPLAY_REG		(volatile unsigned char *)0xfe840000#define LSB_DISPLAY_REG		(volatile unsigned char *)0xfe850000void display_out (int msb_flag, unsigned char val){/*	unsigned char *ledPtr; */	volatile unsigned char *ledPtr;	unsigned char  SevSegDecode;	if (msb_flag) ledPtr = MSB_DISPLAY_REG;	else          ledPtr = LSB_DISPLAY_REG;	switch (val)	{		case 0:			SevSegDecode = ZERO;				break;		case 1:			SevSegDecode = ONE;			break;		case 2:			SevSegDecode = TWO;			break;		case 3:			SevSegDecode = THREE;			break;		case 4:			SevSegDecode = FOUR;			break;		case 5:			SevSegDecode = FIVE;			break;		case 6:			SevSegDecode = SIX;			break;		case 7:			SevSegDecode = SEVEN;			break;		case 8:			SevSegDecode = EIGHT;			break;		case 9:			SevSegDecode = NINE;			break;				case 10:			SevSegDecode = LETTER_A;			break;		case 11:			SevSegDecode = LETTER_B;			break;		case 12:			SevSegDecode = LETTER_C;			break;				case 13:			SevSegDecode = LETTER_D;			break;				case 14:			SevSegDecode = LETTER_E;			break;		case 15:			SevSegDecode = LETTER_F;			break;		default:			SevSegDecode = DECIMAL_POINT;	}	*ledPtr = SevSegDecode;}void display_val (int number){	unsigned char disp_val = number % 256;	unsigned char msb, lsb;	lsb = disp_val & 0x0f;	msb = (disp_val & 0xf0) >> 4;	display_out (0, lsb);	display_out (1, msb);}/* Used in write to buffer routine */void do_nothing (void){	volatile int i;	for (i = 0; i < 50; i++);		/* Rev 2.0B and Rev 2.0C *//*	for (i = 0; i < 100; i++); */	/* Rev 2.0A */}void delay_and_flush (void){	do_nothing(); 	_flushICache();}/********************************************************//* INIT FLASH											*//*														*//* This routine initializes the variables for timing    *//* with any board configuration.  This is used to get   *//* exact timing every time.								*//********************************************************/void init_eeprom(){#if 1	unsigned char MfgCode=MADE_BY_INTEL;	unsigned char DevCode=I28F640J3A;	eeprom_size = 0x800000;#else	unsigned char MfgCode=0;	unsigned char DevCode=0;	flash_addr = FLASH_ADDR;	flash_base = FLASH_BASE_ADDR;    /* Set defaults */    eeprom_size = 0;    /* Note: the PCI-700 platform has only 1 memory bank *//*	*( volatile unsigned char * ) FLASH_BASE_ADDR = RESET_CMD;	printf( "Wrote 1rst Read Array Command\n");*/	*FLASH_P2V(FLASH_BASE_ADDR) = RESET_CMD;	/* issue read array command */		delay_and_flush();		  /* wait for Flash to re-enter Read Array mode */			*FLASH_P2V(FLASH_BASE_ADDR) = READ_ID_CMD;	/* issue read id command */			MfgCode = *FLASH_P2V(FLASH_BASE_ADDR);		/* read a manufacturer code at addr 0, address bit A0 is not used  */		DevCode = *FLASH_P2V(DEV_CODE_ADDR);		/* read a device code at addr 1 */    if (MfgCode == (MADE_BY_INTEL))     {		switch ( DevCode )								/* device code stored in addr 1, address bit A0 is not used, must shift 0x00000001<<1=0x00000002 */ 		{			case I28F640J3A:				eeprom_size += 0x800000 * FLASH_WIDTH;		/* I28F640J3A */				break;            default:                break;        }	}	*FLASH_P2V(FLASH_BASE_ADDR) = READ_ID_CMD;	/* issue 2nd read id command */			*FLASH_P2V(FLASH_BASE_ADDR) = RESET_CMD; /* issue read array command */			delay_and_flush();	/* wait for Flash to re-enter Read Array mode */#endif	printf( "\nManufacturer Code = 0x%x\n", MfgCode);	printf( "Device Code = %x\n", DevCode);	printf( "Flash Memory size = 0x%x\n", eeprom_size);    return;}/********************************************************//* RESERVED AREA CHECK                         			*//*                                   					*//* returns TRUE if the address falls into the 			*//* 	reserved system area								*//* returns FALSE if the address is outside  			*//* 	the reserved system area							*//********************************************************/int reserved_check(ADDR addr, unsigned long length){    /* check start address */    if ( ( addr >= RESERVED_AREA1 ) && ( addr <= ( FLASH_BLK4_BASE_ADDR - 1 ) ) )		return TRUE;	    /* must be outside the area */	else		return FALSE;}/********************************************************//* IS EEPROM											*//* Check if memory is Flash								*//*														*//* returns TRUE if it is; FALSE if not eeprom ;			*//* returns ERROR bad addr or partial eeprom				*//*														*//********************************************************/int is_eeprom(ADDR addr, unsigned long length){    ADDR eeprom_end = flash_addr + eeprom_size - 1;    ADDR block_end = addr + length - 1;    /* Check for wrap: if the address and length given wrap past     * the end of memory, it is an error. */    if (block_end < addr)        return ERR;    if (addr >= flash_addr && block_end <= eeprom_end)        return TRUE;    if (addr > eeprom_end || block_end < flash_addr)        return FALSE;    /* If the block was partly within the Flash, it is an error. */    return ERR;}/********************************************************//* CHECK EEPROM											*//* Check if Flash is Blank								*//*														*//* returns OK if it is; returns ERROR and sets cmd_stat *//* to an error code if memory region is not Flash or if *//* it is not blank.										*//*														*//********************************************************/int check_eeprom(ADDR addr, unsigned long length)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产欧美亚州国产日韩mv天天看完整 | 水蜜桃久久夜色精品一区的特点| 国产精品第一页第二页第三页| 久久综合色综合88| 久久亚洲精精品中文字幕早川悠里| 日韩欧美电影一二三| 91麻豆精品91久久久久同性| 精品999在线播放| 欧美mv日韩mv国产网站app| 日韩美女一区二区三区| 精品免费视频.| 国产亚洲婷婷免费| 国产精品人成在线观看免费| 国产精品久久一级| 一区二区三区国产| 亚洲国产综合91精品麻豆| 天涯成人国产亚洲精品一区av| 亚洲成av人片在线观看无码| 日本不卡视频一二三区| 国产一区二区三区| 成人午夜短视频| 色综合一个色综合亚洲| 欧美性大战久久| 欧美一区二区三区视频免费| 久久久久久久电影| 亚洲天堂精品视频| 午夜精品福利一区二区蜜股av| 日韩精品欧美成人高清一区二区| 韩日av一区二区| av在线综合网| 欧美肥妇bbw| 久久久91精品国产一区二区精品 | 三级精品在线观看| 国产制服丝袜一区| 91丨porny丨户外露出| 在线视频国内自拍亚洲视频| 91精品免费观看| 国产精品日产欧美久久久久| 亚洲综合在线电影| 极品美女销魂一区二区三区| voyeur盗摄精品| 69久久夜色精品国产69蝌蚪网| 精品国产露脸精彩对白| 亚洲免费在线视频一区 二区| 亚洲成av人片一区二区三区| 国产激情一区二区三区| 欧美系列一区二区| 国产日韩欧美精品一区| 亚洲国产日韩综合久久精品| 国产乱国产乱300精品| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美老年两性高潮| 国产精品女主播av| 欧美aaaaa成人免费观看视频| 成人午夜精品一区二区三区| 7799精品视频| 亚洲欧美视频在线观看| 狠狠色丁香婷综合久久| 欧美日韩一级二级三级| 国产精品看片你懂得| 美女高潮久久久| 欧洲av在线精品| 欧美激情一区不卡| 91极品美女在线| 久久久精品免费免费| 图片区小说区国产精品视频| a美女胸又www黄视频久久| 日韩免费电影网站| 偷拍与自拍一区| 91免费视频大全| 国产女主播一区| 加勒比av一区二区| 欧美精品亚洲二区| 夜夜精品视频一区二区| 成人免费的视频| 欧美精品一区二区三区高清aⅴ| 亚洲成av人影院| 欧美在线一二三| 国产精品乱人伦一区二区| 久久99蜜桃精品| 制服.丝袜.亚洲.另类.中文| 亚洲精品高清在线观看| 成人免费视频视频在线观看免费| 欧美成人一级视频| 日本视频在线一区| 欧美熟乱第一页| 一区二区久久久| 色国产综合视频| 亚洲欧美偷拍卡通变态| 99久久久免费精品国产一区二区 | 亚洲成人av福利| 色八戒一区二区三区| 国产精品免费av| 国产不卡高清在线观看视频| 亚洲精品一区二区三区在线观看| 蜜臀久久99精品久久久久宅男| 精品污污网站免费看| 亚洲自拍另类综合| 日本精品一级二级| 亚洲欧美国产77777| 成人激情免费电影网址| 国产欧美一区二区精品性色| 国产一区二区三区精品视频| 欧美videofree性高清杂交| 老司机免费视频一区二区三区| 欧美色爱综合网| 亚洲成人在线免费| 欧美高清视频在线高清观看mv色露露十八| 亚洲一区电影777| 欧美日韩精品一区二区三区蜜桃| 亚洲成人在线观看视频| 这里只有精品电影| 九九在线精品视频| 久久精品人人做| 成人一区在线看| 中文字幕五月欧美| 91久久精品一区二区三区| 亚洲成a人片在线不卡一二三区| 欧美日韩在线电影| 日本不卡123| 国产日韩影视精品| 99久久婷婷国产综合精品| 一区二区三区在线播放| 欧美日韩一级片网站| 久久电影网站中文字幕| 亚洲国产精品成人综合色在线婷婷 | 精一区二区三区| 国产欧美精品一区aⅴ影院 | 日韩精品一区在线| 国产成人午夜片在线观看高清观看| 国产精品污www在线观看| 91影院在线免费观看| 亚洲午夜精品17c| 日韩免费高清av| 成人高清免费在线播放| 亚洲一卡二卡三卡四卡无卡久久| 欧美日本一区二区三区四区| 久久成人综合网| 国产精品久久久久久久第一福利 | 亚洲一区在线观看免费| 91精品国产色综合久久不卡蜜臀 | 欧美一区二区三区免费大片| 欧美三级电影一区| 久久99国产精品久久| 中文字幕日韩av资源站| 6080亚洲精品一区二区| 风流少妇一区二区| 亚洲国产一区视频| 日本一区二区成人| 3atv一区二区三区| 99国产精品久久久久| 另类小说一区二区三区| 亚洲精品成人a在线观看| 日韩精品在线一区二区| 色悠久久久久综合欧美99| 久久av资源网| 亚洲一区二区三区中文字幕在线| 精品91自产拍在线观看一区| 色狠狠综合天天综合综合| 韩国av一区二区三区| 亚洲综合成人网| 中文一区二区在线观看| 日韩午夜在线影院| 在线观看欧美黄色| 成人黄色免费短视频| 老色鬼精品视频在线观看播放| 综合久久给合久久狠狠狠97色| 日韩精品一区国产麻豆| 欧美在线free| 国产a久久麻豆| 美女视频一区二区| 亚洲www啪成人一区二区麻豆| 中文字幕不卡三区| 久久亚洲综合色一区二区三区| 欧美性大战久久久久久久蜜臀| 国产91精品在线观看| 久久99精品国产.久久久久 | 国产suv精品一区二区883| 美国毛片一区二区三区| 亚洲高清视频中文字幕| 《视频一区视频二区| 国产日本亚洲高清| 久久网站最新地址| 欧美一级片免费看| 欧美日韩免费观看一区二区三区| www.日韩精品| 国产69精品久久久久毛片| 另类综合日韩欧美亚洲| 日本少妇一区二区| 日韩精品一二区| 天天综合网天天综合色| 亚洲自拍偷拍综合| 亚洲激情第一区| 亚洲欧美激情插| 日韩久久一区二区| 成人欧美一区二区三区| 国产精品高潮呻吟| 自拍偷拍亚洲欧美日韩| 亚洲欧洲99久久| 美日韩一级片在线观看|