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

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

?? u-boot-1.1.4-imx21-jk1.patch

?? 基于freescale imx21 uboot啟動(dòng)的補(bǔ)丁程序
?? PATCH
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
diff -X linux/Documentation/dontdiff -Nur u-boot-1.1.4/board/fs3/config.mk u-boot-1.1.4.imx21/board/fs3/config.mk--- u-boot-1.1.4/board/fs3/config.mk	1970-01-01 01:00:00.000000000 +0100+++ u-boot-1.1.4.imx21/board/fs3/config.mk	2006-07-03 22:25:00.000000000 +0200@@ -0,0 +1,23 @@+#+# board/mx21ads/config.mk+#+# (C) Copyright 2006 Jochen Karrer+#+#+# 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++TEXT_BASE = 0xC0400000+diff -X linux/Documentation/dontdiff -Nur u-boot-1.1.4/board/fs3/flash.c u-boot-1.1.4.imx21/board/fs3/flash.c--- u-boot-1.1.4/board/fs3/flash.c	1970-01-01 01:00:00.000000000 +0100+++ u-boot-1.1.4.imx21/board/fs3/flash.c	2006-07-11 15:11:34.000000000 +0200@@ -0,0 +1,596 @@+/*+ * (C) 2000-2004 Wolfgang Denk, DENX Software Engineering, wd@denx.de.+ * (C) 2003 August Hoeraendl, Logotronic GmbH+ *+ * 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+ */++#undef CONFIG_FLASH_16BIT++#include <common.h>++//define FLASH_BANK_SIZE MX21FS3_FLASH_BANK_SIZE+#define MAIN_SECT_SIZE  MX21FS3_FLASH_SECT_SIZE++flash_info_t flash_info[CFG_MAX_FLASH_BANKS];	/* info for FLASH chips   */++/*+ * NOTE - CONFIG_FLASH_16BIT means the CPU interface is 16-bit, it+ *        has nothing to do with the flash chip being 8-bit or 16-bit.+ */+#ifdef CONFIG_FLASH_16BIT+typedef unsigned short FLASH_PORT_WIDTH;+typedef volatile unsigned short FLASH_PORT_WIDTHV;++#define	FLASH_ID_MASK	0xFFFF+#else+typedef unsigned long FLASH_PORT_WIDTH;+typedef volatile unsigned long FLASH_PORT_WIDTHV;++#define	FLASH_ID_MASK	0xFFFFFFFF+#endif++#define FPW	FLASH_PORT_WIDTH+#define FPWV	FLASH_PORT_WIDTHV++#define ORMASK(size) ((-size) & OR_AM_MSK)++/*-----------------------------------------------------------------------+ * Functions+ */+#if 0+static ulong flash_get_size(FPWV * addr, flash_info_t * info);+static void flash_get_offsets(ulong base, flash_info_t * info);+#endif++static void flash_reset(flash_info_t * info);+static int write_word_amd(flash_info_t * info, FPWV * dest, FPW data);+#define write_word(in, de, da)   write_word_amd(in, de, da)+#ifdef CFG_FLASH_PROTECTION+static void flash_sync_real_protect(flash_info_t * info);+#endif++/*-----------------------------------------------------------------------+ * flash_init()+ *+ * sets up flash_info and returns size of FLASH (bytes)+ */++static ulong +flash_get_size (FPWV *addr, flash_info_t * info)+{+       	FPW vendor_id,device_id;+	int i;+	int nr_regions;+	ulong flashbase = (ulong)addr;+	ulong offset;+	int dir = 1;++        /* Write auto select command: read Manufacturer ID */+	addr[0x0555] = (FPW)0x00AA00AA;+        addr[0x02AA] = (FPW)0x00550055;+        addr[0x0555] = (FPW)0x00900090;++	vendor_id = addr[0];+	device_id = addr[1];+	if(vendor_id == (FPW)AMD_MANUFACT) {+		info->flash_id = FLASH_MAN_AMD; +	}++        switch (device_id) {+        	case (FPW) (AMD_ID_LV160T): +                	info->flash_id += FLASH_AM160LV;+			dir = -1;+			break;++        	case (FPW) (AMD_ID_LV160B):+                	info->flash_id += FLASH_AM160LV;+			dir=1;+			break;+	}+	info->size = 0;+	info->sector_count = 0;+	addr[0] = (FPW) 0x00FF00FF;     /* restore read mode */+	addr[0x055] = (FPW)0x00980098;+	nr_regions = addr[0x2c] & 0xff;+	if(nr_regions > 4) {+		printf("Illegal number of erase regions (%d)\n",nr_regions);+		nr_regions = 4;+	}+	for(i = 0,offset = 0;i<4;i++) {+		int j;+		int idx; +		uint16_t nsects;+		uint32_t sectsize;++		if(dir==1) {+			idx = i<<2;+		} else {+			idx = (3-i)<<2;+		}+		nsects = (addr[0x2d + idx] & 0xff) + 256 * (addr[0x2e + idx] & 0xff) + 1; +		sectsize = (addr[0x2f + idx] & 0xff) + 256 *(addr[0x30 + idx] & 0xff);+		sectsize *= 256;+		if(!sectsize) {+			continue;+		}+		if(sizeof(FPW) == 4) {+			sectsize <<= 1;+		}+		for (j = 0; j < nsects; j++) {+			info->start[info->sector_count] = flashbase + info->size;+			info->size+=sectsize;+			info->sector_count++;+		}+	}+	addr[0] = (FPW) 0x00FF00FF;     /* restore read mode */+}++ulong+flash_init(void)+{+	int i;+	ulong size = 0;++	for (i = 0; i < CFG_MAX_FLASH_BANKS; i++) {+		ulong flashbase = 0;+		flash_info[i].size = 0;+		flash_info[i].sector_count = 0;+		memset(flash_info[i].protect, 0, CFG_MAX_FLASH_SECT);+		switch (i) {+		case 0:+			flashbase = MX21FS3_FLASH_BASE;+			break;+		default:+			panic("configured too many flash banks!\n");+			break;+		}+		flash_get_size((FPW*)flashbase,&flash_info[i]);+	}++	/* Protect monitor and environment sectors */+	flash_protect(FLAG_PROTECT_SET,+		      CFG_FLASH_BASE,+		      CFG_FLASH_BASE + _bss_start - _armboot_start,+		      &flash_info[0]);++	flash_protect(FLAG_PROTECT_SET,+		      CFG_ENV_ADDR,+		      CFG_ENV_ADDR + CFG_ENV_SIZE - 1, &flash_info[0]);++	return size;+}++/*-----------------------------------------------------------------------+ */+static void+flash_reset(flash_info_t * info)+{+	FPWV *base = (FPWV *) (info->start[0]);++	/* Put FLASH back in read mode */+	if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_INTEL)+		*base = (FPW) 0x00FF00FF;	/* Intel Read Mode */+	else if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_AMD)+		*base = (FPW) 0x00F000F0;	/* AMD Read Mode */+}++/*-----------------------------------------------------------------------+ */++void+flash_print_info(flash_info_t * info)+{+	int i;+	uchar *boottype;+	uchar *bootletter;+	uchar *fmt;+	uchar botbootletter[] = "B";+	uchar topbootletter[] = "T";+	uchar botboottype[] = "bottom boot sector";+	uchar topboottype[] = "top boot sector";++	if (info->flash_id == FLASH_UNKNOWN) {+		printf("missing or unknown FLASH type\n");+		return;+	}++	switch (info->flash_id & FLASH_VENDMASK) {+	case FLASH_MAN_AMD:+		printf("AMD ");+		break;+	case FLASH_MAN_BM:+		printf("BRIGHT MICRO ");+		break;+	case FLASH_MAN_FUJ:+		printf("FUJITSU ");+		break;+	case FLASH_MAN_SST:+		printf("SST ");+		break;+	case FLASH_MAN_STM:+		printf("STM ");+		break;+	case FLASH_MAN_INTEL:+		printf("INTEL ");+		break;+	default:+		printf("Unknown Vendor ");+		break;+	}++	/* check for top or bottom boot, if it applies */+	if (info->flash_id & FLASH_BTYPE) {+		boottype = botboottype;+		bootletter = botbootletter;+	} else {+		boottype = topboottype;+		bootletter = topbootletter;+	}++	switch (info->flash_id & FLASH_TYPEMASK) {+	case FLASH_AM640U:+		fmt = "29LV641D (64 Mbit, uniform sectors)\n";+		break;++	case FLASH_AM160LV:+		fmt = "29LV160D%s (16 Mbit non uniform sectors)\n";+		break;++	default:+		fmt = "Unknown Chip Type\n";+		printf(" Unknown type %04x\n",info->flash_id);+		break;+	}++	printf(fmt, bootletter, boottype);++	printf("  Size: %ld MB in %d Sectors\n",+	       info->size >> 20, info->sector_count);++	printf("  Sector Start Addresses:");++	for (i = 0; i < info->sector_count; ++i) {+		if ((i % 5) == 0) {+			printf("\n   ");+		}++		printf(" %08lX%s", info->start[i],+		       info->protect[i] ? " (RO)" : "     ");+	}++	printf("\n");+}++/*-----------------------------------------------------------------------+ */+++//#ifdef CFG_FLASH_PROTECTION++/*-----------------------------------------------------------------------+ */++int+flash_erase(flash_info_t * info, int s_first, int s_last)+{+	FPWV *addr;+	int flag, prot, sect;+	int intel = (info->flash_id & FLASH_VENDMASK) == FLASH_MAN_INTEL;+	ulong start, now, last;+	int rcode = 0;++	if ((s_first < 0) || (s_first > s_last)) {+		if (info->flash_id == FLASH_UNKNOWN) {+			printf("- missing\n");+		} else {+			printf("- no sectors to erase\n");+		}+		return 1;+	}++	switch (info->flash_id & FLASH_TYPEMASK) {+	case FLASH_AM640U:+		break;+	case FLASH_AM160LV:+		break;+	case FLASH_UNKNOWN:+	default:+		printf("Can't erase unknown flash type %08lx - aborted\n",+		       info->flash_id);+		return 1;+	}++	prot = 0;+	for (sect = s_first; sect <= s_last; ++sect) {+		if (info->protect[sect]) {+			prot++;+		}+	}++	if (prot) {+		printf("- Warning: %d protected sectors will not be erased!\n",+		       prot);+	} else {+		printf("\n");+	}++	start = get_timer(0);+	last = start;++	/* Start erase on unprotected sectors */+	for (sect = s_first; sect <= s_last && rcode == 0; sect++) {++		if (info->protect[sect] != 0)	/* protected, skip it */+			continue;++		/* Disable interrupts which might cause a timeout here */+		flag = disable_interrupts();++		addr = (FPWV *) (info->start[sect]);+		if (intel) {+			*addr = (FPW) 0x00500050;	/* clear status register */+			*addr = (FPW) 0x00200020;	/* erase setup */+			*addr = (FPW) 0x00D000D0;	/* erase confirm */+		} else {+			/* must be AMD style if not Intel */+			FPWV *base;	/* first address in bank */++			base = (FPWV *) (info->start[0]);+			base[0x0555] = (FPW) 0x00AA00AA;	/* unlock */+			base[0x02AA] = (FPW) 0x00550055;	/* unlock */+			base[0x0555] = (FPW) 0x00800080;	/* erase mode */+			base[0x0555] = (FPW) 0x00AA00AA;	/* unlock */+			base[0x02AA] = (FPW) 0x00550055;	/* unlock */+			*addr = (FPW) 0x00300030;	/* erase sector */+		}++		/* re-enable interrupts if necessary */+		if (flag)+			enable_interrupts();++		/* wait at least 50us for AMD, 80us for Intel.+		 * Let's wait 1 ms.+		 */+		udelay(1000);++		while ((*addr & (FPW) 0x00800080) != (FPW) 0x00800080) {+			if ((now = get_timer(0)) - start > CFG_FLASH_ERASE_TOUT) {+				printf("Timeout\n");++				if (intel) {+					/* suspend erase        */+					*addr = (FPW) 0x00B000B0;+				}++				flash_reset(info);	/* reset to read mode */+				rcode = 1;	/* failed */+				break;+			}++			/* show that we're waiting */+			if ((now - last) > 1000) {	/* every second */+				putc('.');+				last = now;+			}+		}++		flash_reset(info);	/* reset to read mode   */+	}++	printf(" done\n");+	return rcode;+}++/*-----------------------------------------------------------------------+ * Copy memory to flash, returns:+ * 0 - OK+ * 1 - write timeout+ * 2 - Flash not erased+ */+int+bad_write_buff(flash_info_t * info, uchar * src, ulong addr, ulong cnt)+{+	FPW data = 0;		/* 16 or 32 bit word, matches flash bus width on MPC8XX */+	int bytes;		/* number of bytes to program in current word         */+	int left;		/* number of bytes left to program                    */+	int i, res;++	for (left = cnt, res = 0;+	     left > 0 && res == 0;+	     addr += sizeof (data), left -= sizeof (data) - bytes) {++		bytes = addr & (sizeof (data) - 1);+		addr &= ~(sizeof (data) - 1);++		/* combine source and destination data so can program+		 * an entire word of 16 or 32 bits+		 */+		for (i = 0; i < sizeof (data); i++) {+			data <<= 8;+			if (i < bytes || i - bytes >= left)+				data += *((uchar *) addr + i);+			else+				data += *src++;+		}++		/* write one word to the flash */+		switch (info->flash_id & FLASH_VENDMASK) {+		case FLASH_MAN_AMD:+			res = write_word_amd(info, (FPWV *) addr, data);+			break;+		default:+			/* unknown flash type, error! */+			printf("missing or unknown FLASH type\n");+			res = 1;	/* not really a timeout, but gives error */+			break;+		}+	}++	return (res);+}++/**+ * write_buf: - Copy memory to flash.+ *

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡av电影在线播放| 国产亚洲精品免费| 色94色欧美sute亚洲线路一久| 成人黄页在线观看| 国产69精品久久久久777| 国产综合久久久久久久久久久久| 麻豆91精品91久久久的内涵| 老司机一区二区| 美女久久久精品| 99re成人在线| 91亚洲大成网污www| 色www精品视频在线观看| 色欧美乱欧美15图片| 欧美制服丝袜第一页| 欧美视频精品在线| 欧美精品色一区二区三区| 欧美老肥妇做.爰bbww视频| 在线不卡的av| 精品日韩一区二区| 国产无一区二区| 国产精品久久久久天堂| 亚洲激情中文1区| 亚洲福利视频一区二区| 青青草国产成人av片免费| 麻豆成人免费电影| 高清不卡一二三区| 一本色道久久综合亚洲aⅴ蜜桃| 欧美午夜片在线看| 欧美一级一级性生活免费录像| 26uuu国产在线精品一区二区| 欧美国产禁国产网站cc| 亚洲欧美色一区| 三级不卡在线观看| 国产激情偷乱视频一区二区三区 | 欧美高清精品3d| 精品奇米国产一区二区三区| 久久久www成人免费毛片麻豆| 国产精品美女久久久久高潮| 亚洲在线免费播放| 国内精品嫩模私拍在线| 972aa.com艺术欧美| 欧美日韩成人综合| 国产免费久久精品| 亚洲一区二区成人在线观看| 久久精品国产网站| 99久精品国产| 日韩欧美国产综合在线一区二区三区| 日本一区二区久久| 天天影视色香欲综合网老头| 国产**成人网毛片九色 | 欧美一区二区观看视频| 国产婷婷色一区二区三区| 综合久久一区二区三区| 男人的j进女人的j一区| 99re热视频精品| 26uuu亚洲| 亚洲mv在线观看| 成人免费视频免费观看| 欧美一区二区三区视频免费播放| 中文字幕不卡在线播放| 秋霞成人午夜伦在线观看| 99久久国产综合色|国产精品| 日韩欧美中文一区二区| 亚洲精品精品亚洲| 国产成人综合视频| 日韩视频永久免费| 亚洲国产aⅴ天堂久久| 成人免费视频一区| 日韩欧美一区二区不卡| 一区二区三区不卡视频在线观看 | 国产一区中文字幕| 欧美三级欧美一级| ...xxx性欧美| 精品一区二区久久| 91精品在线观看入口| 亚洲精品国产一区二区精华液 | 欧美变态口味重另类| 亚洲一区免费在线观看| caoporn国产一区二区| 欧美精品一区二区久久婷婷 | 色综合 综合色| 欧美激情一区在线| 国产综合色视频| 欧美一级片在线看| 亚洲第一成人在线| 欧美在线不卡视频| 亚洲麻豆国产自偷在线| 成人av在线网站| 欧美激情在线观看视频免费| 国产一区二区三区久久悠悠色av| 欧美一级一区二区| 肉色丝袜一区二区| 欧美高清视频在线高清观看mv色露露十八| 亚洲欧美电影院| 91免费视频大全| 1区2区3区国产精品| hitomi一区二区三区精品| 国产欧美一区二区精品婷婷| 国产激情偷乱视频一区二区三区| 精品福利在线导航| 国产在线乱码一区二区三区| 欧美一区二区三区视频免费播放| 视频一区欧美日韩| 欧美久久久久久久久中文字幕| 婷婷综合久久一区二区三区| 欧美性一二三区| 调教+趴+乳夹+国产+精品| 欧美日韩在线播放三区| 午夜亚洲福利老司机| 欧美美女一区二区三区| 日韩电影在线免费观看| 欧美一区二区女人| 久久99精品久久久久久国产越南| www一区二区| 国产黄色成人av| 综合欧美一区二区三区| 色哟哟国产精品| 亚洲线精品一区二区三区八戒| 91福利精品视频| 丝袜亚洲另类欧美综合| 91麻豆精品国产| 韩国女主播成人在线| 国产丝袜欧美中文另类| 99热99精品| 亚洲一卡二卡三卡四卡无卡久久| 欧美日韩国产a| 久久国内精品自在自线400部| 久久亚洲一区二区三区四区| 成人黄色国产精品网站大全在线免费观看 | 精品日韩欧美一区二区| 国产高清久久久| 亚洲精品菠萝久久久久久久| 欧美日韩免费高清一区色橹橹 | 日本一区二区三区在线观看| aaa国产一区| 亚洲第一搞黄网站| 欧美r级在线观看| 99精品视频在线观看免费| 亚洲在线观看免费| 欧美大片在线观看一区| 成人精品免费看| 午夜精品免费在线| 精品成a人在线观看| 99精品视频在线观看免费| 午夜免费欧美电影| xfplay精品久久| 91黄色激情网站| 久久97超碰国产精品超碰| 中文字幕一区二区三区四区不卡 | 大美女一区二区三区| 亚洲精品国产a久久久久久 | 天天综合网天天综合色| 国产三级三级三级精品8ⅰ区| 色综合中文字幕国产 | 国产综合色在线视频区| 亚洲女与黑人做爰| 日韩一区二区影院| 色综合色狠狠天天综合色| 乱中年女人伦av一区二区| 亚洲日本电影在线| 欧美岛国在线观看| 91成人在线免费观看| 国产一区二区剧情av在线| 亚洲国产美国国产综合一区二区| 国产午夜精品美女毛片视频| 欧美日韩国产综合视频在线观看 | www成人在线观看| 在线观看www91| 成人一级黄色片| 久久99精品久久久久久动态图| 亚洲精品成人悠悠色影视| 久久久亚洲欧洲日产国码αv| 欧美日韩视频在线一区二区| 国产成人av一区| 日韩精品免费视频人成| 伊人一区二区三区| 亚洲国产精品传媒在线观看| 欧美一区二区三区视频| 欧洲精品一区二区| 成人福利在线看| 国产一区久久久| 青青草成人在线观看| 一区二区三区精品久久久| 国产精品日产欧美久久久久| 精品久久久久久最新网址| 欧美精品在线一区二区三区| av电影天堂一区二区在线观看| 韩国在线一区二区| 免费在线观看不卡| 图片区小说区区亚洲影院| 一区二区免费在线| 国产精品第13页| 国产精品妹子av| 久久精品一区二区三区四区| 日韩精品一区二区三区在线观看| 欧美午夜不卡在线观看免费| 91麻豆免费观看| 一本色道久久综合亚洲91| 99精品久久只有精品| aaa欧美色吧激情视频|