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

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

?? u-boot-rat.patch

?? Hugerat 編寫的mini2440 ARM u_boot_2008.10 的patch
?? PATCH
?? 第 1 頁 / 共 4 頁
字號:
diff -Nurp u-boot-2008.10/board/hugerat/rat2410/config.mk u-boot-rat/board/hugerat/rat2410/config.mk--- u-boot-2008.10/board/hugerat/rat2410/config.mk	1970-01-01 08:00:00.000000000 +0800+++ u-boot-rat/board/hugerat/rat2410/config.mk	2008-12-15 23:03:59.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 -Nurp u-boot-2008.10/board/hugerat/rat2410/flash.c u-boot-rat/board/hugerat/rat2410/flash.c--- u-boot-2008.10/board/hugerat/rat2410/flash.c	1970-01-01 08:00:00.000000000 +0800+++ u-boot-rat/board/hugerat/rat2410/flash.c	2008-10-19 03:30:31.000000000 +0800@@ -0,0 +1,433 @@+/*+ * (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);+#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,+		       CONFIG_ENV_ADDR,+		       CONFIG_ENV_ADDR + CONFIG_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;+	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;+	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+ */++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;+	}++	if (cnt == 0) {+		return ERR_OK;+	}++	/*+	 * handle unaligned tail bytes+	 */+	data = 0;+	for (i = 0, cp = wp; i < 2 && cnt > 0; ++i, ++cp) {+		data = (data >> 8) | (*src++ << 8);+		--cnt;+	}+	for (; i < 2; ++i, ++cp) {+		data = (data >> 8) | (*(uchar *) cp << 8);+	}++	return write_hword (info, wp, data);+}diff -Nurp u-boot-2008.10/board/hugerat/rat2410/lowlevel_init.S u-boot-rat/board/hugerat/rat2410/lowlevel_init.S--- u-boot-2008.10/board/hugerat/rat2410/lowlevel_init.S	1970-01-01 08:00:00.000000000 +0800+++ u-boot-rat/board/hugerat/rat2410/lowlevel_init.S	2008-12-10 19:08:15.000000000 +0800@@ -0,0 +1,191 @@+/*+ * Memory Setup stuff - taken from blob memsetup.S+ *+ * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and+ *                     Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl)+ *+ * Modified for the Samsung SMDK2410 by+ * (C) Copyright 2002+ * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>+ *+ * 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 <config.h>+#include <version.h>+++/* some parameters for the board */++/*+ *+ * Taken from linux/arch/arm/boot/compressed/head-s3c2410.S+ *+ * Copyright (C) 2002 Samsung Electronics SW.LEE  <hitchcar@sec.samsung.com>+ *+ */++#define BWSCON	0x48000000++/* BWSCON */+#define DW8			(0x0)+#define DW16			(0x1)+#define DW32			(0x2)+#define WAIT			(0x1<<2)+#define UBLB			(0x1<<3)++#define B1_BWSCON		(DW32)+#define B2_BWSCON		(DW16)+#define B3_BWSCON		(DW16 + WAIT + UBLB)+/*by hugerat,phase 4-----------*/+//#define B4_BWSCON		(DW16)+#define B4_BWSCON		(DW16 + WAIT + UBLB)+/*-----------------------------*/+#define B5_BWSCON		(DW16)+#define B6_BWSCON		(DW32)+#define B7_BWSCON		(DW32)++/* BANK0CON */+#define B0_Tacs			0x0	/*  0clk */+#define B0_Tcos			0x0	/*  0clk */+#define B0_Tacc			0x7	/* 14clk */+#define B0_Tcoh			0x0	/*  0clk */+#define B0_Tah			0x0	/*  0clk */+#define B0_Tacp			0x0+#define B0_PMC			0x0	/* normal */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品免费日韩av| 久久99国产精品久久99| 亚洲一卡二卡三卡四卡五卡| 青娱乐精品视频在线| 91色视频在线| 精品久久久久香蕉网| 亚洲欧美色图小说| 国产一区美女在线| 欧美一区二区视频在线观看 | 欧美极品少妇xxxxⅹ高跟鞋 | 欧美激情在线免费观看| 婷婷久久综合九色综合绿巨人| 国产精品99久久久久久似苏梦涵 | 中文字幕亚洲在| 国产一区欧美日韩| 日韩精品一区二区三区四区视频| 亚洲精品日韩一| 99久久国产免费看| 亚洲国产精品精华液ab| 国产乱子轮精品视频| 91精品欧美综合在线观看最新| 亚洲女同ⅹxx女同tv| av不卡免费在线观看| 国产日韩欧美亚洲| 国产精品影视天天线| 日韩三级精品电影久久久| 亚洲国产欧美另类丝袜| 欧美影院精品一区| 亚洲精品日日夜夜| 色欧美88888久久久久久影院| 国产精品国产馆在线真实露脸| 国产乱码字幕精品高清av | 日韩精品成人一区二区三区| 91国产精品成人| 亚洲精品免费在线| 在线视频国内一区二区| 一区二区高清视频在线观看| 91福利在线看| 一级特黄大欧美久久久| 欧美三电影在线| 午夜日韩在线观看| 在线91免费看| 久久国产麻豆精品| 久久久91精品国产一区二区精品| 国产一区视频网站| 国产精品欧美久久久久一区二区| 成人黄页在线观看| 亚洲精品你懂的| 91精品国产综合久久久久| 美女视频黄免费的久久| 久久蜜桃一区二区| 不卡的电影网站| 一区二区三区高清| 制服丝袜在线91| 国产精品自在欧美一区| 亚洲欧美自拍偷拍| 精品视频色一区| 精品系列免费在线观看| 久久日韩精品一区二区五区| 成人福利在线看| 亚洲成人动漫av| 久久久噜噜噜久久中文字幕色伊伊| 国产成人免费网站| 亚洲成人av电影| 久久午夜老司机| 一本大道av伊人久久综合| 日日欢夜夜爽一区| 久久婷婷久久一区二区三区| 色婷婷久久一区二区三区麻豆| 亚洲成a人v欧美综合天堂 | 欧美日韩激情在线| 国产一区中文字幕| 亚洲综合在线视频| 久久久久久一级片| 欧美精品在线观看播放| 国产精品 欧美精品| 亚洲综合一区在线| 国产亲近乱来精品视频| 欧美日韩国产大片| 成人动漫精品一区二区| 奇米色一区二区| 亚洲女人的天堂| 久久久午夜精品理论片中文字幕| 欧美午夜影院一区| 成人精品一区二区三区中文字幕| 婷婷丁香久久五月婷婷| 中文字幕一区二区视频| 日韩一区二区三区高清免费看看| 91麻豆国产精品久久| 国产一区二区精品在线观看| 亚洲福利视频一区| 亚洲色图都市小说| 日本一区二区三级电影在线观看 | 亚洲午夜久久久久久久久电影网| 日韩一区二区三区四区五区六区| 91黄视频在线观看| 白白色 亚洲乱淫| 国产九九视频一区二区三区| 男人的j进女人的j一区| 亚洲成人激情社区| 亚洲综合成人在线视频| 国产精品久久久久久妇女6080| 欧美成人a视频| 欧美一区二区三区的| 一本一本久久a久久精品综合麻豆| 国产一区二区三区四区在线观看| 免费观看日韩电影| 午夜精品一区在线观看| 亚洲成a人v欧美综合天堂下载 | 亚洲精品高清视频在线观看| 国产午夜亚洲精品羞羞网站| 久久美女艺术照精彩视频福利播放| 91精品国产一区二区| 欧美日本在线看| 欧美日韩二区三区| 欧美日韩一级二级| 欧美日韩亚州综合| 欧美日韩二区三区| 欧美一区二区在线不卡| 日韩精品一区二区在线| 精品日韩一区二区三区免费视频| 欧美日本在线看| 欧美一二三区在线观看| 精品国偷自产国产一区| 久久久久九九视频| 中文字幕欧美日本乱码一线二线| 亚洲国产精品ⅴa在线观看| 国产精品久久久久久久久免费桃花| 国产精品久久影院| 亚洲视频免费观看| 亚洲va国产天堂va久久en| 热久久一区二区| 国产真实乱对白精彩久久| 国产电影精品久久禁18| 成人美女视频在线观看| 91久久精品一区二区三区| 欧美日韩三级一区二区| 欧美电影免费提供在线观看| 国产婷婷色一区二区三区在线| 国产精品久久精品日日| 一区二区成人在线视频| 喷水一区二区三区| 大桥未久av一区二区三区中文| 色综合天天综合给合国产| 欧美美女直播网站| 久久久精品蜜桃| 怡红院av一区二区三区| 热久久一区二区| 成人av午夜电影| 制服丝袜av成人在线看| 国产片一区二区| 午夜精品一区二区三区三上悠亚| 精品一区二区日韩| 日本高清不卡aⅴ免费网站| 欧美一区二区视频网站| 中文字幕国产精品一区二区| 亚洲成人综合网站| 丁香婷婷综合五月| 欧美日韩1234| 中文字幕在线不卡一区| 日本成人超碰在线观看| 91在线观看视频| 欧美草草影院在线视频| 亚洲乱码国产乱码精品精小说| 久久精品国产亚洲5555| 色香色香欲天天天影视综合网| 欧美成人三级电影在线| 一二三区精品视频| 国产成人精品一区二区三区网站观看 | 亚洲人一二三区| 美国精品在线观看| 91国在线观看| 国产精品你懂的在线| 激情综合网av| 欧美夫妻性生活| 一区二区三区在线视频免费| 国产高清不卡一区| 精品欧美久久久| 婷婷丁香激情综合| 在线日韩国产精品| 综合在线观看色| 成人精品国产福利| 欧美精品一区二区在线观看| 亚洲成人免费在线| 国产女人18水真多18精品一级做| 日日骚欧美日韩| 欧美三级韩国三级日本一级| 亚洲同性同志一二三专区| 成人美女在线视频| 国产女人18水真多18精品一级做| 秋霞午夜av一区二区三区| 欧美色综合网站| 一级精品视频在线观看宜春院| 99久久精品国产网站| 国产精品乱码一区二区三区软件| 国产资源精品在线观看| 日韩欧美国产一二三区| 麻豆精品一区二区综合av| 91麻豆精品国产91| 美女视频第一区二区三区免费观看网站|