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

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

?? magic-boot-2440-v1.0.patch

?? 三星2440,超強bootloader,使用vivi下去做修改的.....歡迎使用
?? PATCH
?? 第 1 頁 / 共 4 頁
字號:
diff -Nur u-boot-1.2.0/board/max2440p/config.mk magic-boot-2440-v1.0/board/max2440p/config.mk--- u-boot-1.2.0/board/max2440p/config.mk	1970-01-01 08:00:00.000000000 +0800+++ magic-boot-2440-v1.0/board/max2440p/config.mk	2007-06-29 13:45:02.000000000 +0800@@ -0,0 +1,25 @@+#+# (C) Copyright 2002+# Gary Jennejohn, DENX Software Engineering, <gj@denx.de>+# David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>+#+# SAMSUNG SMDK2410 board with S3C2410X (ARM920T) cpu+#+# see http://www.samsung.com/ for more information on SAMSUNG+#++#+# SMDK2410 has 1 bank of 64 MB DRAM+#+# 3000'0000 to 3400'0000+#+# Linux-Kernel is expected to be at 3000'8000, entry 3000'8000+# optionally with a ramdisk at 3080'0000+#+# we load ourself to 33F8'0000+#+# download area is 3300'0000+#+++TEXT_BASE = 0x33F80000diff -Nur u-boot-1.2.0/board/max2440p/flash.c magic-boot-2440-v1.0/board/max2440p/flash.c--- u-boot-1.2.0/board/max2440p/flash.c	1970-01-01 08:00:00.000000000 +0800+++ magic-boot-2440-v1.0/board/max2440p/flash.c	2007-06-29 16:53:07.000000000 +0800@@ -0,0 +1,442 @@+/*+ * (C) Copyright 2002+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>+ * Alex Zuepke <azu@sysgo.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+ */++#include <common.h>++ulong myflush (void);+++#define FLASH_BANK_SIZE	PHYS_FLASH_SIZE+#define MAIN_SECT_SIZE  0x10000	/* 64 KB */++flash_info_t flash_info[CFG_MAX_FLASH_BANKS];+++#define CMD_READ_ARRAY		0x000000F0+#define CMD_UNLOCK1		0x000000AA+#define CMD_UNLOCK2		0x00000055+#define CMD_ERASE_SETUP		0x00000080+#define CMD_ERASE_CONFIRM	0x00000030+#define CMD_PROGRAM		0x000000A0+#define CMD_UNLOCK_BYPASS	0x00000020++#define MEM_FLASH_ADDR1		(*(volatile u16 *)(CFG_FLASH_BASE + (0x00000555 << 1)))+#define MEM_FLASH_ADDR2		(*(volatile u16 *)(CFG_FLASH_BASE + (0x000002AA << 1)))++#define BIT_ERASE_DONE		0x00000080+#define BIT_RDY_MASK		0x00000080+#define BIT_PROGRAM_ERROR	0x00000020+#define BIT_TIMEOUT		0x80000000	/* our flag */++#define READY 1+#define ERR   2+#define TMO   4++/*-----------------------------------------------------------------------+ */++ulong flash_init (void)+{+	int i, j;+	ulong size = 0;++	for (i = 0; i < CFG_MAX_FLASH_BANKS; i++) {+		ulong flashbase = 0;++		flash_info[i].flash_id =+#if defined(CONFIG_AMD_LV400)+			(AMD_MANUFACT & FLASH_VENDMASK) |+			(AMD_ID_LV400B & FLASH_TYPEMASK);+#elif defined(CONFIG_AMD_LV800)+			(AMD_MANUFACT & FLASH_VENDMASK) |+			(AMD_ID_LV800B & FLASH_TYPEMASK);+#elif defined(CONFIG_SST_xF1601)+			(SST_MANUFACT & FLASH_VENDMASK) |+			(SST_ID_xF1601 & FLASH_TYPEMASK);+#else+#error "Unknown flash configured"+#endif+			flash_info[i].size = FLASH_BANK_SIZE;+		flash_info[i].sector_count = CFG_MAX_FLASH_SECT;+		memset (flash_info[i].protect, 0, CFG_MAX_FLASH_SECT);+		if (i == 0)+			flashbase = PHYS_FLASH_1;+		else+			panic ("configured too many flash banks!\n");+		for (j = 0; j < flash_info[i].sector_count; j++) {+			if (j <= 3) {+				/* 1st one is 16 KB */+				if (j == 0) {+					flash_info[i].start[j] =+						flashbase + 0;+				}++				/* 2nd and 3rd are both 8 KB */+				if ((j == 1) || (j == 2)) {+					flash_info[i].start[j] =+						flashbase + 0x4000 + (j -+								      1) *+						0x2000;+				}++				/* 4th 32 KB */+				if (j == 3) {+					flash_info[i].start[j] =+						flashbase + 0x8000;+				}+			} else {+				flash_info[i].start[j] =+					flashbase + (j - 3) * MAIN_SECT_SIZE;+			}+		}+		size += flash_info[i].size;+	}++	flash_protect (FLAG_PROTECT_SET,+		       CFG_FLASH_BASE,+		       CFG_FLASH_BASE + monitor_flash_len - 1,+		       &flash_info[0]);++	flash_protect (FLAG_PROTECT_SET,+		       CFG_ENV_ADDR,+		       CFG_ENV_ADDR + CFG_ENV_SIZE - 1, &flash_info[0]);++	return size;+}++/*-----------------------------------------------------------------------+ */+void flash_print_info (flash_info_t * info)+{+	int i;++	switch (info->flash_id & FLASH_VENDMASK) {+	case (AMD_MANUFACT & FLASH_VENDMASK):+		printf ("AMD: ");+		break;+	case (SST_MANUFACT & FLASH_VENDMASK):+		printf ("SST: ");+		break;+	default:+		printf ("Unknown Vendor ");+		break;+	}++	switch (info->flash_id & FLASH_TYPEMASK) {+	case (AMD_ID_LV400B & FLASH_TYPEMASK):+		printf ("1x Amd29LV400BB (4Mbit)\n");+		break;+	case (AMD_ID_LV800B & FLASH_TYPEMASK):+		printf ("1x Amd29LV800BB (8Mbit)\n");+		break;+	case (SST_ID_xF1601 & FLASH_TYPEMASK):+		printf ("1x SSTxF1601 (16Mbit)\n");+		break;+	default:+		printf ("Unknown Chip Type\n");+		goto Done;+		break;+	}++	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");++      Done:;+}++/*-----------------------------------------------------------------------+ */++int flash_erase (flash_info_t * info, int s_first, int s_last)+{+	ushort result;+	int iflag, cflag, prot, sect;+	int rc = ERR_OK;+	int chip;++	/* first look for protection bits */++	if (info->flash_id == FLASH_UNKNOWN)+		return ERR_UNKNOWN_FLASH_TYPE;++	if ((s_first < 0) || (s_first > s_last)) {+		return ERR_INVAL;+	}++	if ((info->flash_id & FLASH_VENDMASK) !=+	    (AMD_MANUFACT & FLASH_VENDMASK)) {+		return ERR_UNKNOWN_FLASH_VENDOR;+	}++	prot = 0;+	for (sect = s_first; sect <= s_last; ++sect) {+		if (info->protect[sect]) {+			prot++;+		}+	}+	if (prot)+		return ERR_PROTECTED;++	/*+	 * Disable interrupts which might cause a timeout+	 * here. Remember that our exception vectors are+	 * at address 0 in the flash, and we don't want a+	 * (ticker) exception to happen while the flash+	 * chip is in programming mode.+	 */+	cflag = icache_status ();+	icache_disable ();+	iflag = disable_interrupts ();++	/* Start erase on unprotected sectors */+	for (sect = s_first; sect <= s_last && !ctrlc (); sect++) {+		printf ("Erasing sector %2d ... ", sect);++		/* arm simple, non interrupt dependent timer */+		reset_timer_masked ();++		if (info->protect[sect] == 0) {	/* not protected */+			vu_short *addr = (vu_short *) (info->start[sect]);++			MEM_FLASH_ADDR1 = CMD_UNLOCK1;+			MEM_FLASH_ADDR2 = CMD_UNLOCK2;+			MEM_FLASH_ADDR1 = CMD_ERASE_SETUP;++			MEM_FLASH_ADDR1 = CMD_UNLOCK1;+			MEM_FLASH_ADDR2 = CMD_UNLOCK2;+			*addr = CMD_ERASE_CONFIRM;++			/* wait until flash is ready */+			chip = 0;++			do {+				result = *addr;++				/* check timeout */+				if (get_timer_masked () >+				    CFG_FLASH_ERASE_TOUT) {+					MEM_FLASH_ADDR1 = CMD_READ_ARRAY;+					chip = TMO;+					break;+				}++				if (!chip+				    && (result & 0xFFFF) & BIT_ERASE_DONE)+					chip = READY;++				if (!chip+				    && (result & 0xFFFF) & BIT_PROGRAM_ERROR)+					chip = ERR;++			} while (!chip);++			MEM_FLASH_ADDR1 = CMD_READ_ARRAY;++			if (chip == ERR) {+				rc = ERR_PROG_ERROR;+				goto outahere;+			}+			if (chip == TMO) {+				rc = ERR_TIMOUT;+				goto outahere;+			}++			printf ("ok.\n");+		} else {	/* it was protected */++			printf ("protected!\n");+		}+	}++	if (ctrlc ())+		printf ("User Interrupt!\n");++      outahere:+	/* allow flash to settle - wait 10 ms */+	udelay_masked (10000);++	if (iflag)+		enable_interrupts ();++	if (cflag)+		icache_enable ();++	return rc;+}++/*-----------------------------------------------------------------------+ * Copy memory to flash+ */++volatile static int write_hword (flash_info_t * info, ulong dest, ushort data)+{+	vu_short *addr = (vu_short *) dest;+	ushort result;+	int rc = ERR_OK;+	int cflag, iflag;+	int chip;++	/*+	 * Check if Flash is (sufficiently) erased+	 */+	result = *addr;+	if ((result & data) != data)+		return ERR_NOT_ERASED;+++	/*+	 * Disable interrupts which might cause a timeout+	 * here. Remember that our exception vectors are+	 * at address 0 in the flash, and we don't want a+	 * (ticker) exception to happen while the flash+	 * chip is in programming mode.+	 */+	cflag = icache_status ();+	icache_disable ();+	iflag = disable_interrupts ();++	MEM_FLASH_ADDR1 = CMD_UNLOCK1;+	MEM_FLASH_ADDR2 = CMD_UNLOCK2;+	MEM_FLASH_ADDR1 = CMD_UNLOCK_BYPASS;+	*addr = CMD_PROGRAM;+	*addr = data;++	/* arm simple, non interrupt dependent timer */+	reset_timer_masked ();++	/* wait until flash is ready */+	chip = 0;+	do {+		result = *addr;++		/* check timeout */+		if (get_timer_masked () > CFG_FLASH_ERASE_TOUT) {+			chip = ERR | TMO;+			break;+		}+		if (!chip && ((result & 0x80) == (data & 0x80)))+			chip = READY;++		if (!chip && ((result & 0xFFFF) & BIT_PROGRAM_ERROR)) {+			result = *addr;++			if ((result & 0x80) == (data & 0x80))+				chip = READY;+			else+				chip = ERR;+		}++	} while (!chip);++	*addr = CMD_READ_ARRAY;++	if (chip == ERR || *addr != data)+		rc = ERR_PROG_ERROR;++	if (iflag)+		enable_interrupts ();++	if (cflag)+		icache_enable ();++	return rc;+}++/*-----------------------------------------------------------------------+ * Copy memory to flash.+ */++int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)+{+	ulong cp, wp;+	int l;+	int i, rc;+	ushort data;++	wp = (addr & ~1);	/* get lower word aligned address */++	/*+	 * handle unaligned start bytes+	 */+	if ((l = addr - wp) != 0) {+		data = 0;+		for (i = 0, cp = wp; i < l; ++i, ++cp) {+			data = (data >> 8) | (*(uchar *) cp << 8);+		}+		for (; i < 2 && cnt > 0; ++i) {+			data = (data >> 8) | (*src++ << 8);+			--cnt;+			++cp;+		}+		for (; cnt == 0 && i < 2; ++i, ++cp) {+			data = (data >> 8) | (*(uchar *) cp << 8);+		}++		if ((rc = write_hword (info, wp, data)) != 0) {+			return (rc);+		}+		wp += 2;+	}++	/*+	 * handle word aligned part+	 */+	while (cnt >= 2) {+		data = *((vu_short *) src);+		if ((rc = write_hword (info, wp, data)) != 0) {+			return (rc);+		}+		src += 2;+		wp += 2;+		cnt -= 2;+	}+

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费欧美高清视频| 色就色 综合激情| 97久久精品人人做人人爽 | 亚洲综合免费观看高清完整版| 日韩高清欧美激情| 色综合一区二区| 久久婷婷色综合| 日韩一区精品视频| 91啪在线观看| 国产欧美一区二区精品秋霞影院| 午夜av一区二区三区| 成人av电影免费观看| 精品少妇一区二区三区在线播放| 亚洲欧美激情一区二区| 国产电影一区二区三区| 欧美一区二区三区系列电影| 亚洲欧美日韩国产手机在线| 福利电影一区二区| 精品国产一区二区三区不卡| 午夜久久久久久| 色噜噜狠狠一区二区三区果冻| 国产精品你懂的在线| 国产在线精品国自产拍免费| 日韩一区二区三区免费看| 亚洲午夜精品在线| 欧美性感一类影片在线播放| 综合久久给合久久狠狠狠97色| 国产999精品久久久久久绿帽| 欧美大片拔萝卜| 日本特黄久久久高潮| 欧美日本一道本在线视频| 尤物在线观看一区| 色婷婷亚洲一区二区三区| 国产精品私房写真福利视频| 国产**成人网毛片九色 | 美女一区二区三区在线观看| 在线观看欧美黄色| 亚洲图片欧美视频| 91成人免费电影| 亚洲一区二区三区三| 欧美在线视频全部完| 亚洲午夜电影网| 欧美人xxxx| 免费av网站大全久久| 日韩一级黄色大片| 精品一区在线看| 久久久99免费| www.一区二区| 亚洲免费电影在线| 欧美日韩大陆在线| 久久91精品国产91久久小草| 久久久午夜电影| 91亚洲永久精品| 亚洲国产一区在线观看| 欧美电影一区二区| 麻豆91免费看| 国产精品日日摸夜夜摸av| 91女神在线视频| 亚洲福利一区二区三区| 国产亚洲精品中文字幕| 成人免费三级在线| 亚洲精品成人天堂一二三| 91精品在线免费观看| 国产精品综合久久| 亚洲三级免费电影| 欧美男女性生活在线直播观看| 日本成人在线一区| 日本一区二区三级电影在线观看 | 成人一区二区视频| 综合亚洲深深色噜噜狠狠网站| 欧美三级电影精品| 国产一区二区福利视频| 椎名由奈av一区二区三区| 在线播放欧美女士性生活| 国产一区二区精品在线观看| 亚洲裸体xxx| 久久久久久久综合色一本| 91久久精品一区二区二区| 欧美bbbbb| 亚洲欧美电影院| 欧美白人最猛性xxxxx69交| 91在线porny国产在线看| 日韩精品国产精品| 亚洲色图.com| 久久综合九色综合欧美亚洲| 91国产免费观看| 黄色日韩网站视频| 亚洲成人久久影院| 国产精品久久久久四虎| 日韩免费福利电影在线观看| 色悠悠久久综合| 国产成人午夜精品5599| 午夜精品一区二区三区电影天堂| 国产日本亚洲高清| 欧美一区二区三区不卡| 色爱区综合激月婷婷| 国产suv精品一区二区6| 麻豆成人免费电影| 亚洲国产精品久久不卡毛片| 欧美激情中文不卡| 久久久久久毛片| 日韩美女一区二区三区| 欧美精品第1页| 欧美制服丝袜第一页| 99r精品视频| 粉嫩一区二区三区性色av| 蜜桃视频在线观看一区| 丝袜美腿成人在线| 香蕉久久夜色精品国产使用方法| ㊣最新国产の精品bt伙计久久| 欧美精品一区二区三区在线播放 | 精品国产三级电影在线观看| 欧美日韩午夜精品| 在线观看免费成人| 在线精品视频免费观看| 99精品1区2区| aaa欧美大片| 一本色道**综合亚洲精品蜜桃冫 | 91电影在线观看| 色丁香久综合在线久综合在线观看| 国产 欧美在线| av影院午夜一区| av在线综合网| 一本色道久久综合亚洲aⅴ蜜桃| 日韩精品一区二区三区四区| 91精品国产综合久久久久久久久久| 欧美日韩一级片在线观看| 欧美视频三区在线播放| 欧美精品 国产精品| 欧美一区二区免费观在线| 日韩一区二区三区免费看| 精品日韩欧美在线| 国产日产精品1区| 一色屋精品亚洲香蕉网站| 依依成人精品视频| 亚洲成精国产精品女| 麻豆成人av在线| 国产成人精品免费视频网站| 99国产精品久久| 欧美专区在线观看一区| 欧美一区二区三区白人| 亚洲精品一区二区三区影院| 国产丝袜在线精品| 亚洲特黄一级片| 天堂av在线一区| 久久99精品久久久久久久久久久久| 国产乱码一区二区三区| 91欧美一区二区| 日韩一区二区麻豆国产| 国产午夜精品一区二区| 亚洲精品高清在线观看| 免费视频最近日韩| av网站免费线看精品| 欧美日韩情趣电影| 精品国产一区二区三区四区四| 国产精品久久久久9999吃药| 亚洲午夜影视影院在线观看| 激情图区综合网| 欧美亚洲综合另类| 久久无码av三级| 亚洲高清在线视频| 成人午夜私人影院| 777奇米四色成人影色区| 亚洲国产成人在线| 蜜桃一区二区三区四区| 91美女片黄在线| 久久奇米777| 午夜伊人狠狠久久| 成人蜜臀av电影| 精品日韩一区二区三区 | 91行情网站电视在线观看高清版| 欧美一区二区福利在线| 国产精品成人午夜| 麻豆成人91精品二区三区| 在线一区二区三区| 中文字幕欧美日本乱码一线二线| 亚洲v精品v日韩v欧美v专区| 大白屁股一区二区视频| 日韩视频一区二区| 亚洲国产aⅴ成人精品无吗| 99久久久精品| 久久久久国产精品厨房| 美国欧美日韩国产在线播放| 欧美亚洲一区三区| 自拍视频在线观看一区二区| 国产成人av电影在线播放| 日韩欧美国产综合| 日本亚洲天堂网| 欧美丝袜自拍制服另类| 亚洲精选视频免费看| 国产成人精品免费看| 精品国产欧美一区二区| 青青草原综合久久大伊人精品 | 精品第一国产综合精品aⅴ| 午夜不卡在线视频| 欧美日韩激情在线| 一区二区视频在线| 色网站国产精品| 亚洲精品久久久蜜桃| 日韩美女视频在线|