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

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

?? u-boot-rat.patch

?? 用于mini2440開發板的新版u-boot全部源碼
?? 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一区二区三区四区| 国产一区二区免费看| 久久视频一区二区| 国产福利视频一区二区三区| 国产欧美一区二区在线| 不卡在线观看av| 一区二区三区日本| 6080国产精品一区二区| 国产原创一区二区三区| 国产精品热久久久久夜色精品三区| 成人免费精品视频| 亚洲一区日韩精品中文字幕| 欧美一级在线视频| 成人做爰69片免费看网站| 一区二区免费看| 欧美一二三区在线观看| 国产成人自拍网| 亚洲国产精品久久不卡毛片| 日韩一区二区三区四区| 国产+成+人+亚洲欧洲自线| 亚洲精品亚洲人成人网在线播放| 欧美一级日韩不卡播放免费| 成人性生交大片免费看在线播放 | 久久精品男人的天堂| 大陆成人av片| 视频一区视频二区中文字幕| 久久久777精品电影网影网| 91麻豆6部合集magnet| 青青草精品视频| 国产精品美女一区二区三区| 欧美精品色综合| 懂色av一区二区三区蜜臀| 午夜精品一区在线观看| 国产欧美视频一区二区| 欧美理论在线播放| 成人激情动漫在线观看| 蜜臀久久99精品久久久久宅男| 国产精品动漫网站| 日韩无一区二区| 在线精品视频一区二区三四 | 亚洲美女偷拍久久| 精品美女一区二区| 欧美视频中文字幕| av激情综合网| 国模一区二区三区白浆| 天天色综合天天| 亚洲激情中文1区| 中日韩av电影| 精品国产欧美一区二区| 欧美日韩高清在线播放| 91视频精品在这里| 成人在线视频一区二区| 久久99精品久久久久久| 亚洲成人tv网| 一区二区视频在线| 国产精品亲子伦对白| 日韩欧美二区三区| 欧美卡1卡2卡| 欧美吞精做爰啪啪高潮| 91同城在线观看| 北条麻妃一区二区三区| 成人免费视频一区二区| 国产综合久久久久影院| 久久电影网电视剧免费观看| 午夜精品久久久久久久久| 亚洲自拍偷拍欧美| 亚洲一区二区在线免费看| 日韩理论片在线| 亚洲日穴在线视频| 中文字幕在线免费不卡| 国产精品伦理一区二区| 欧美国产欧美亚州国产日韩mv天天看完整| 日韩一卡二卡三卡国产欧美| 日韩一区二区三区免费看| 日韩一区二区在线看| 日韩精品一区二区三区在线| 欧美一区二区三区免费观看视频| 欧美日韩免费不卡视频一区二区三区| 色婷婷久久久亚洲一区二区三区| 99久久精品一区| 色婷婷一区二区| 欧美日韩一级片在线观看| 欧美乱熟臀69xxxxxx| 日韩一区二区不卡| 久久午夜羞羞影院免费观看| 久久先锋资源网| 中文乱码免费一区二区| 亚洲色图一区二区三区| 亚洲欧美日本韩国| 性久久久久久久久久久久| 亚洲v日本v欧美v久久精品| 香蕉久久一区二区不卡无毒影院| 五月综合激情日本mⅴ| 美女一区二区在线观看| 国产一区二区看久久| 粉嫩aⅴ一区二区三区四区五区| 成人精品鲁一区一区二区| 色综合久久中文字幕综合网| 欧美日韩在线三区| 精品第一国产综合精品aⅴ| 国产欧美日韩精品a在线观看| 最新国产の精品合集bt伙计| 亚洲18色成人| 国产精品一区二区果冻传媒| 99视频在线精品| 91麻豆精品国产91久久久久久久久| 精品精品欲导航| 一色屋精品亚洲香蕉网站| 亚洲自拍偷拍av| 国产乱国产乱300精品| 99视频在线观看一区三区| 欧美精品v国产精品v日韩精品| 26uuu色噜噜精品一区二区| 中文字幕在线免费不卡| 日本三级亚洲精品| 99久久婷婷国产精品综合| 欧美精品在线观看播放| 国产精品午夜电影| 日本欧美大码aⅴ在线播放| 成人黄色a**站在线观看| 91精品国产一区二区三区香蕉| 国产午夜精品福利| 香蕉成人伊视频在线观看| 国产成人av电影在线| 欧美日韩亚洲丝袜制服| 欧美激情一区二区在线| 日韩 欧美一区二区三区| 99久久er热在这里只有精品66| 欧美一区二区三区四区久久| 亚洲天堂a在线| 激情五月激情综合网| 欧美性做爰猛烈叫床潮| 欧美激情一区在线| 久久99久久久久久久久久久| 欧美午夜精品久久久久久超碰| 国产亚洲va综合人人澡精品| 日韩成人精品在线观看| 99热这里都是精品| 2014亚洲片线观看视频免费| 午夜欧美大尺度福利影院在线看| zzijzzij亚洲日本少妇熟睡| 精品99999| 麻豆精品一区二区综合av| 欧美色图一区二区三区| 国产精品传媒视频| 国产成人精品一区二区三区网站观看| 在线综合+亚洲+欧美中文字幕| 亚洲人快播电影网| www.一区二区| 欧美高清一级片在线观看| 黑人巨大精品欧美一区| 欧美一级生活片| 免费精品99久久国产综合精品| 色88888久久久久久影院野外| 国产精品久久综合| 国产精品亚洲成人| 久久新电视剧免费观看| 精品一区二区三区久久久| 日韩一本二本av| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美区一区二区三区| 亚洲成av人片一区二区三区| 欧美少妇一区二区| 亚洲成av人片www| 538在线一区二区精品国产| 亚洲成人动漫一区| 欧美一级高清片在线观看| 免费成人在线观看视频| 欧美一级日韩不卡播放免费| 精品在线播放午夜| 久久精品日产第一区二区三区高清版| 国产一区高清在线| 欧美激情一区二区在线| 不卡影院免费观看| 亚洲码国产岛国毛片在线| 在线观看日韩国产| 亚洲va韩国va欧美va精品| 91精品蜜臀在线一区尤物| 青娱乐精品视频在线| 久久久九九九九| 99久久精品免费看| 亚洲一区二区三区中文字幕| 精品视频在线视频| 麻豆国产一区二区| 国产色91在线| 色综合久久天天综合网| 亚洲成人7777| 日韩区在线观看| 高清在线观看日韩| 亚洲在线中文字幕| 欧美大片日本大片免费观看| 国产成人精品午夜视频免费| 最新国产の精品合集bt伙计| 欧美色大人视频| 国产精品综合二区| 一区二区三区在线观看国产| 日韩一级免费观看| 99在线精品一区二区三区| 午夜激情久久久|