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

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

?? flash.c

?? 友善mini2440嵌入式
?? C
字號(hào):
/* * (C) Copyright 2000 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. * * See file CREDITS for list of people who contributed to this * project. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA *//* * Modified 4/5/2001 * Wait for completion of each sector erase command issued * 4/5/2001 * Chris Hallinan - DS4.COM, Inc. - clh@net1plus.com */#include <common.h>#include <ppc4xx.h>#include <asm/processor.h>flash_info_t flash_info[CFG_MAX_FLASH_BANKS];	/* info for FLASH chips        */#undef DEBUG#ifdef DEBUG#define DEBUGF(x...) printf(x)#else#define DEBUGF(x...)#endif				/* DEBUG *//* * include common flash code (for amcc boards) */#include "../common/flash.c"/*----------------------------------------------------------------------- * Functions */static ulong flash_get_size(vu_long * addr, flash_info_t * info);static void flash_get_offsets(ulong base, flash_info_t * info);unsigned long flash_init(void){	unsigned long size_b0, size_b1;	int i;	uint pbcr;	unsigned long base_b0, base_b1;	/* Init: no FLASHes known */	for (i = 0; i < CFG_MAX_FLASH_BANKS; ++i) {		flash_info[i].flash_id = FLASH_UNKNOWN;	}	/* Static FLASH Bank configuration here - FIXME XXX */	size_b0 =	    flash_get_size((vu_long *) FLASH_BASE0_PRELIM, &flash_info[0]);	if (flash_info[0].flash_id == FLASH_UNKNOWN) {		printf("## Unknown FLASH on Bank 0 - Size = 0x%08lx = %ld MB\n",		       size_b0, size_b0 << 20);	}	/* Only one bank */	if (CFG_MAX_FLASH_BANKS == 1) {		/* Setup offsets */		flash_get_offsets(FLASH_BASE0_PRELIM, &flash_info[0]);		/* Monitor protection ON by default */		(void)flash_protect(FLAG_PROTECT_SET,				    CFG_MONITOR_BASE,				    CFG_MONITOR_BASE + CFG_MONITOR_LEN - 1,				    &flash_info[0]);#ifdef CFG_ENV_IS_IN_FLASH		(void)flash_protect(FLAG_PROTECT_SET, CFG_ENV_ADDR,				    CFG_ENV_ADDR + CFG_ENV_SECT_SIZE - 1,				    &flash_info[0]);		(void)flash_protect(FLAG_PROTECT_SET, CFG_ENV_ADDR_REDUND,				    CFG_ENV_ADDR_REDUND + CFG_ENV_SECT_SIZE - 1,				    &flash_info[0]);#endif		size_b1 = 0;		flash_info[0].size = size_b0;	}	/* 2 banks */	else {		size_b1 =		    flash_get_size((vu_long *) FLASH_BASE1_PRELIM,				   &flash_info[1]);		/* Re-do sizing to get full correct info */		if (size_b1) {			mtdcr(ebccfga, pb0cr);			pbcr = mfdcr(ebccfgd);			mtdcr(ebccfga, pb0cr);			base_b1 = -size_b1;			pbcr = (pbcr & 0x0001ffff) | base_b1 |			    (((size_b1 / 1024 / 1024) - 1) << 17);			mtdcr(ebccfgd, pbcr);			/*          printf("pb1cr = %x\n", pbcr); */		}		if (size_b0) {			mtdcr(ebccfga, pb1cr);			pbcr = mfdcr(ebccfgd);			mtdcr(ebccfga, pb1cr);			base_b0 = base_b1 - size_b0;			pbcr = (pbcr & 0x0001ffff) | base_b0 |			    (((size_b0 / 1024 / 1024) - 1) << 17);			mtdcr(ebccfgd, pbcr);			/*            printf("pb0cr = %x\n", pbcr); */		}		size_b0 = flash_get_size((vu_long *) base_b0, &flash_info[0]);		flash_get_offsets(base_b0, &flash_info[0]);		/* monitor protection ON by default */		(void)flash_protect(FLAG_PROTECT_SET,				    base_b0 + size_b0 - CFG_MONITOR_LEN,				    base_b0 + size_b0 - 1, &flash_info[0]);		/* Also protect sector containing initial power-up instruction */		/* (flash_protect() checks address range - other call ignored) */		(void)flash_protect(FLAG_PROTECT_SET,				    0xFFFFFFFC, 0xFFFFFFFF, &flash_info[0]);		(void)flash_protect(FLAG_PROTECT_SET,				    0xFFFFFFFC, 0xFFFFFFFF, &flash_info[1]);		if (size_b1) {			/* Re-do sizing to get full correct info */			size_b1 =			    flash_get_size((vu_long *) base_b1, &flash_info[1]);			flash_get_offsets(base_b1, &flash_info[1]);			/* monitor protection ON by default */			(void)flash_protect(FLAG_PROTECT_SET,					    base_b1 + size_b1 - CFG_MONITOR_LEN,					    base_b1 + size_b1 - 1,					    &flash_info[1]);			/* monitor protection OFF by default (one is enough) */			(void)flash_protect(FLAG_PROTECT_CLEAR,					    base_b0 + size_b0 - CFG_MONITOR_LEN,					    base_b0 + size_b0 - 1,					    &flash_info[0]);		} else {			flash_info[1].flash_id = FLASH_UNKNOWN;			flash_info[1].sector_count = -1;		}		flash_info[0].size = size_b0;		flash_info[1].size = size_b1;	}			/* else 2 banks */	return (size_b0 + size_b1);}static void flash_get_offsets(ulong base, flash_info_t * info){	int i;	/* set up sector start address table */	if (((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) ||	    (info->flash_id == FLASH_AM040)) {		for (i = 0; i < info->sector_count; i++)			info->start[i] = base + (i * 0x00010000);	} else {		if (info->flash_id & FLASH_BTYPE) {			/* set sector offsets for bottom boot block type        */			info->start[0] = base + 0x00000000;			info->start[1] = base + 0x00004000;			info->start[2] = base + 0x00006000;			info->start[3] = base + 0x00008000;			for (i = 4; i < info->sector_count; i++) {				info->start[i] =				    base + (i * 0x00010000) - 0x00030000;			}		} else {			/* set sector offsets for top boot block type           */			i = info->sector_count - 1;			info->start[i--] = base + info->size - 0x00004000;			info->start[i--] = base + info->size - 0x00006000;			info->start[i--] = base + info->size - 0x00008000;			for (; i >= 0; i--) {				info->start[i] = base + i * 0x00010000;			}		}	}}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久影院| 一区二区三区 在线观看视频| av激情亚洲男人天堂| 手机精品视频在线观看| 最新国产精品久久精品| 欧美成人性福生活免费看| 欧洲一区二区三区在线| 国产福利视频一区二区三区| 午夜av电影一区| 亚洲免费观看高清在线观看| 欧美精品一区二区久久久| 欧美日韩激情在线| 91亚洲精华国产精华精华液| 国产精品资源站在线| 欧美a级一区二区| 亚洲不卡av一区二区三区| 国产精品久久久久久久久果冻传媒 | 26uuu欧美日本| 欧美日韩国产不卡| 欧美性欧美巨大黑白大战| 99精品视频一区二区三区| 国产激情一区二区三区| 久久狠狠亚洲综合| 免费在线观看成人| 日本欧美肥老太交大片| 亚洲一级二级在线| 亚洲伦理在线精品| 亚洲欧洲日产国产综合网| 国产亚洲精品精华液| 精品国产乱码久久久久久牛牛| 欧美一卡在线观看| 欧美精品自拍偷拍| 91精品国产综合久久香蕉麻豆| 欧美三级中文字幕| 欧美亚洲国产一区二区三区va | 蜜臀va亚洲va欧美va天堂 | 国产日韩精品一区| 国产欧美一区二区精品婷婷| 久久综合网色—综合色88| 精品久久久三级丝袜| 久久女同精品一区二区| 久久精品这里都是精品| 久久久久久亚洲综合影院红桃| 精品国产自在久精品国产| 日韩欧美国产一区二区三区| 日韩欧美国产三级| 精品国产乱码久久| 欧美国产日本视频| 中文字幕欧美一| 亚洲蜜桃精久久久久久久| 亚洲色图欧美在线| 亚洲国产欧美一区二区三区丁香婷| 一区二区三区产品免费精品久久75| 一区二区三区久久| 天堂成人免费av电影一区| 人人精品人人爱| 国产伦精一区二区三区| 成人午夜免费视频| 欧美最猛性xxxxx直播| 欧美精品乱码久久久久久按摩| 欧美一区二区精品| 国产清纯白嫩初高生在线观看91| 一区免费观看视频| 亚洲第一福利一区| 久久99精品国产.久久久久久| 韩国精品久久久| 成年人国产精品| 欧美日韩一区二区三区视频| 欧美va在线播放| 国产精品久久久久久一区二区三区| 亚洲精品国久久99热| 日本亚洲天堂网| 国产成人鲁色资源国产91色综| 成人高清免费观看| 欧美日韩视频在线第一区 | 91精品国产手机| 国产亚洲短视频| 一区二区三区中文在线观看| 日本sm残虐另类| 国v精品久久久网| 欧美性猛交xxxxxx富婆| 久久一区二区视频| 一区二区三区四区高清精品免费观看| 石原莉奈一区二区三区在线观看| 国产高清无密码一区二区三区| 日本韩国精品一区二区在线观看| 欧美一级一级性生活免费录像| 亚洲国产精品高清| 五月婷婷另类国产| www.色精品| 精品对白一区国产伦| 一区二区在线观看av| 狠狠色狠狠色综合系列| 色久优优欧美色久优优| 久久网站最新地址| 香蕉加勒比综合久久| 成人免费高清在线| 26uuu国产日韩综合| 亚洲一级电影视频| 成人天堂资源www在线| 日韩欧美区一区二| 亚洲国产综合91精品麻豆| 国产乱码精品一区二区三 | 日韩免费高清av| 一区二区三区久久| 国产91精品一区二区| 欧美一级日韩免费不卡| 一区av在线播放| av不卡免费电影| 国产偷v国产偷v亚洲高清| 免费观看91视频大全| 欧美体内she精高潮| 亚洲丝袜美腿综合| 国产成人精品免费视频网站| 欧美一区二区女人| 亚洲成a人v欧美综合天堂下载| 91在线视频网址| 国产精品日韩成人| 国产精品自拍在线| 久久精品亚洲麻豆av一区二区| 免费高清在线视频一区·| 欧美精品欧美精品系列| 亚洲一区中文日韩| 色猫猫国产区一区二在线视频| 国产精品第一页第二页第三页| 国产白丝精品91爽爽久久| 精品国产91洋老外米糕| 麻豆久久久久久久| 欧美一卡二卡在线| 久久国产精品色婷婷| 欧美日韩不卡在线| 视频在线在亚洲| 欧美一区二区三区小说| 全国精品久久少妇| 91精品婷婷国产综合久久竹菊| 婷婷国产在线综合| 欧美一区二区黄色| 美美哒免费高清在线观看视频一区二区 | 夜夜精品视频一区二区| 91蝌蚪porny| 一级女性全黄久久生活片免费| 91高清在线观看| 亚洲国产中文字幕| 日韩亚洲欧美成人一区| 看片的网站亚洲| 国产农村妇女毛片精品久久麻豆 | 久久国产精品露脸对白| 精品乱人伦一区二区三区| 精品一区二区在线视频| 久久先锋影音av鲁色资源网| 国产精品99久久久久久久女警| 2023国产精品| 成人爽a毛片一区二区免费| 国产精品理论片| 色婷婷精品久久二区二区蜜臀av| 一区二区三区精品视频在线| 在线免费av一区| 日本中文字幕一区二区有限公司| 日韩欧美亚洲另类制服综合在线| 国产成人在线视频播放| |精品福利一区二区三区| 欧美日韩黄色一区二区| 久久国产剧场电影| 国产精品成人免费精品自在线观看| 91在线无精精品入口| 日韩综合小视频| 欧美高清在线视频| 欧美午夜一区二区| 国产精品99久久不卡二区| 亚洲欧洲综合另类在线| 91精品国产综合久久久蜜臀粉嫩| 国产自产2019最新不卡| 亚洲卡通动漫在线| 欧美成人精品1314www| 99综合电影在线视频| 婷婷开心激情综合| 国产精品国产三级国产普通话三级 | 91精品国产综合久久小美女| 国产高清精品网站| 亚洲永久免费av| 久久久久久久电影| 欧美三级午夜理伦三级中视频| 久久电影网电视剧免费观看| 最好看的中文字幕久久| 精品国产凹凸成av人网站| 日本精品一级二级| 国产一区二区日韩精品| 午夜久久久久久久久| 国产精品视频一二三区| 制服视频三区第一页精品| 成人av片在线观看| 久久国产精品露脸对白| 亚洲国产综合人成综合网站| 国产精品久久久久精k8| 91精品国产91综合久久蜜臀| 91免费精品国自产拍在线不卡| 精品一区二区在线免费观看| 亚洲成人激情综合网| 亚洲欧美日韩国产一区二区三区| 久久青草国产手机看片福利盒子|