⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1007.mtd.patch

📁 sm86xx内核源包括补丁( GPL )的
💻 PATCH
📖 第 1 页 / 共 2 页
字号:
diff -Naur --exclude=CVS --exclude='*.o' --exclude='*.a' --exclude='*.so' --exclude='*.elf' --exclude=System.map --exclude=Makefile.d --exclude='*log' --exclude='*log2' --exclude='*~' --exclude='.*~' --exclude='.#*' --exclude='*.bak' --exclude='*.orig' --exclude='*.rej' --exclude='core.[0-9]*' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=vmlinux --exclude=vmlinux.bin --exclude=yamon-02.06-SIGMADESIGNS-01_el.bin linux-2.6.15.ref/arch/mips/configs/tango2_defconfig linux-2.6.15/arch/mips/configs/tango2_defconfig--- linux-2.6.15.ref/arch/mips/configs/tango2_defconfig	2006-10-12 10:24:30.000000000 -0700+++ linux-2.6.15/arch/mips/configs/tango2_defconfig	2006-10-12 10:28:24.000000000 -0700@@ -344,7 +344,81 @@ # # Memory Technology Devices (MTD) #-# CONFIG_MTD is not set+CONFIG_MTD=y+# CONFIG_MTD_DEBUG is not set+CONFIG_MTD_CONCAT=y+CONFIG_MTD_PARTITIONS=y+# CONFIG_MTD_REDBOOT_PARTS is not set+# CONFIG_MTD_CMDLINE_PARTS is not set++#+# User Modules And Translation Layers+#+CONFIG_MTD_CHAR=y+CONFIG_MTD_BLOCK=y+# CONFIG_FTL is not set+# CONFIG_NFTL is not set+# CONFIG_INFTL is not set+# CONFIG_RFD_FTL is not set++#+# RAM/ROM/Flash chip drivers+#+CONFIG_MTD_CFI=y+# CONFIG_MTD_JEDECPROBE is not set+CONFIG_MTD_GEN_PROBE=y+# CONFIG_MTD_CFI_ADV_OPTIONS is not set+CONFIG_MTD_MAP_BANK_WIDTH_1=y+CONFIG_MTD_MAP_BANK_WIDTH_2=y+CONFIG_MTD_MAP_BANK_WIDTH_4=y+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set+CONFIG_MTD_CFI_I1=y+CONFIG_MTD_CFI_I2=y+# CONFIG_MTD_CFI_I4 is not set+# CONFIG_MTD_CFI_I8 is not set+CONFIG_MTD_CFI_INTELEXT=y+CONFIG_MTD_CFI_AMDSTD=y+CONFIG_MTD_CFI_AMDSTD_RETRY=0+CONFIG_MTD_CFI_STAA=y+CONFIG_MTD_CFI_UTIL=y+# CONFIG_MTD_RAM is not set+# CONFIG_MTD_ROM is not set+# CONFIG_MTD_ABSENT is not set++#+# Mapping drivers for chip access+#+CONFIG_MTD_PHYSMAP=y+# CONFIG_MTD_PLATRAM is not set++#+# Self-contained MTD device drivers+#+# CONFIG_MTD_PMC551 is not set+# CONFIG_MTD_SLRAM is not set+# CONFIG_MTD_PHRAM is not set+# CONFIG_MTD_MTDRAM is not set+# CONFIG_MTD_BLKMTD is not set+# CONFIG_MTD_BLOCK2MTD is not set++#+# Disk-On-Chip Device Drivers+#+# CONFIG_MTD_DOC2000 is not set+# CONFIG_MTD_DOC2001 is not set+# CONFIG_MTD_DOC2001PLUS is not set++#+# NAND Flash Device Drivers+#+# CONFIG_MTD_NAND is not set++#+# OneNAND Flash Device Drivers+#+# CONFIG_MTD_ONENAND is not set  # # Parallel port support@@ -905,6 +979,8 @@ # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set+# CONFIG_JFFS_FS is not set+# CONFIG_JFFS2_FS is not set CONFIG_CRAMFS=y # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not setdiff -Naur --exclude=CVS --exclude='*.o' --exclude='*.a' --exclude='*.so' --exclude='*.elf' --exclude=System.map --exclude=Makefile.d --exclude='*log' --exclude='*log2' --exclude='*~' --exclude='.*~' --exclude='.#*' --exclude='*.bak' --exclude='*.orig' --exclude='*.rej' --exclude='core.[0-9]*' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=vmlinux --exclude=vmlinux.bin --exclude=yamon-02.06-SIGMADESIGNS-01_el.bin linux-2.6.15.ref/arch/mips/configs/tango3_defconfig linux-2.6.15/arch/mips/configs/tango3_defconfig--- linux-2.6.15.ref/arch/mips/configs/tango3_defconfig	2006-10-12 10:24:30.000000000 -0700+++ linux-2.6.15/arch/mips/configs/tango3_defconfig	2006-10-12 10:28:24.000000000 -0700@@ -340,7 +340,81 @@ # # Memory Technology Devices (MTD) #-# CONFIG_MTD is not set+CONFIG_MTD=y+# CONFIG_MTD_DEBUG is not set+CONFIG_MTD_CONCAT=y+CONFIG_MTD_PARTITIONS=y+# CONFIG_MTD_REDBOOT_PARTS is not set+# CONFIG_MTD_CMDLINE_PARTS is not set++#+# User Modules And Translation Layers+#+CONFIG_MTD_CHAR=y+CONFIG_MTD_BLOCK=y+# CONFIG_FTL is not set+# CONFIG_NFTL is not set+# CONFIG_INFTL is not set+# CONFIG_RFD_FTL is not set++#+# RAM/ROM/Flash chip drivers+#+CONFIG_MTD_CFI=y+# CONFIG_MTD_JEDECPROBE is not set+CONFIG_MTD_GEN_PROBE=y+# CONFIG_MTD_CFI_ADV_OPTIONS is not set+CONFIG_MTD_MAP_BANK_WIDTH_1=y+CONFIG_MTD_MAP_BANK_WIDTH_2=y+CONFIG_MTD_MAP_BANK_WIDTH_4=y+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set+CONFIG_MTD_CFI_I1=y+CONFIG_MTD_CFI_I2=y+# CONFIG_MTD_CFI_I4 is not set+# CONFIG_MTD_CFI_I8 is not set+CONFIG_MTD_CFI_INTELEXT=y+CONFIG_MTD_CFI_AMDSTD=y+CONFIG_MTD_CFI_AMDSTD_RETRY=0+CONFIG_MTD_CFI_STAA=y+CONFIG_MTD_CFI_UTIL=y+# CONFIG_MTD_RAM is not set+# CONFIG_MTD_ROM is not set+# CONFIG_MTD_ABSENT is not set++#+# Mapping drivers for chip access+#+CONFIG_MTD_PHYSMAP=y+# CONFIG_MTD_PLATRAM is not set++#+# Self-contained MTD device drivers+#+# CONFIG_MTD_PMC551 is not set+# CONFIG_MTD_SLRAM is not set+# CONFIG_MTD_PHRAM is not set+# CONFIG_MTD_MTDRAM is not set+# CONFIG_MTD_BLKMTD is not set+# CONFIG_MTD_BLOCK2MTD is not set++#+# Disk-On-Chip Device Drivers+#+# CONFIG_MTD_DOC2000 is not set+# CONFIG_MTD_DOC2001 is not set+# CONFIG_MTD_DOC2001PLUS is not set++#+# NAND Flash Device Drivers+#+# CONFIG_MTD_NAND is not set++#+# OneNAND Flash Device Drivers+#+# CONFIG_MTD_ONENAND is not set  # # Parallel port support@@ -900,6 +974,8 @@ # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set+# CONFIG_JFFS_FS is not set+# CONFIG_JFFS2_FS is not set CONFIG_CRAMFS=y # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not setdiff -Naur --exclude=CVS --exclude='*.o' --exclude='*.a' --exclude='*.so' --exclude='*.elf' --exclude=System.map --exclude=Makefile.d --exclude='*log' --exclude='*log2' --exclude='*~' --exclude='.*~' --exclude='.#*' --exclude='*.bak' --exclude='*.orig' --exclude='*.rej' --exclude='core.[0-9]*' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=.depend --exclude='.*.o.flags' --exclude='*.gz' --exclude=vmlinux --exclude=vmlinux.bin --exclude=yamon-02.06-SIGMADESIGNS-01_el.bin linux-2.6.15.ref/drivers/mtd/chips/cfi_cmdset_0002.c linux-2.6.15/drivers/mtd/chips/cfi_cmdset_0002.c--- linux-2.6.15.ref/drivers/mtd/chips/cfi_cmdset_0002.c	2006-01-25 20:51:27.000000000 -0800+++ linux-2.6.15/drivers/mtd/chips/cfi_cmdset_0002.c	2006-10-12 11:54:46.000000000 -0700@@ -407,6 +407,22 @@  * correctly and is therefore not done	(particulary with interleaved chips  * as each chip must be checked independantly of the others).  */+#ifdef CONFIG_TANGOX+/* For TANGOX, verify content in start address as well */+static int __xipram chip_ready(struct map_info *map, unsigned long addr, unsigned long start, map_word z_val)+{+	map_word d, t, z;++	d = map_read(map, addr);+	mb();+	t = map_read(map, addr);+	mb();+	z = map_read(map, start);+	mb();++	return map_word_equal(map, d, t) && map_word_equal(map, z, z_val);+}+#else static int __xipram chip_ready(struct map_info *map, unsigned long addr) { 	map_word d, t;@@ -416,6 +432,7 @@  	return map_word_equal(map, d, t); }+#endif  /*  * Return true if the chip is ready and has the correct value.@@ -449,6 +466,9 @@ 	struct cfi_private *cfi = map->fldrv_priv; 	unsigned long timeo; 	struct cfi_pri_amdstd *cfip = (struct cfi_pri_amdstd *)cfi->cmdset_priv;+#ifdef CONFIG_TANGOX+	map_word z_val = map_read(map, chip->start);+#endif   resettime: 	timeo = jiffies + HZ;@@ -457,8 +477,13 @@  	case FL_STATUS: 		for (;;) {+#ifdef CONFIG_TANGOX+			if (chip_ready(map, adr, chip->start, z_val))+				break;+#else 			if (chip_ready(map, adr)) 				break;+#endif  			if (time_after(jiffies, timeo)) { 				printk(KERN_ERR "Waiting for chip to be ready timed out.\n");@@ -487,6 +512,12 @@ 		      || (mode == FL_WRITING && (cfip->EraseSuspend & 0x1)))) 			goto sleep; +		/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+		 * Sentivision FIX: map_write here whole flash operation freeze on VIP1216 STB.+		 *   So we just will sleep waitting for state change: */+		goto sleep;+		/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */+ 		/* We could check to see if we're trying to access the sector 		 * that is currently being erased. However, no user will try 		 * anything like that so we just wait for the timeout. */@@ -499,8 +530,13 @@ 		chip->state = FL_ERASE_SUSPENDING; 		chip->erase_suspended = 1; 		for (;;) {+#ifdef CONFIG_TANGOX+			if (chip_ready(map, adr, chip->start, z_val))+				break;+#else 			if (chip_ready(map, adr)) 				break;+#endif  			if (time_after(jiffies, timeo)) { 				/* Should have suspended the erase by now.@@ -956,6 +992,9 @@ 	int ret = 0; 	map_word oldd; 	int retry_cnt = 0;+#ifdef CONFIG_TANGOX+	map_word z_val;+#endif  	adr += chip->start; @@ -975,6 +1014,9 @@ 	 * data at other locations when 0xff is written to a location that 	 * already contains 0xff. 	 */+#ifdef CONFIG_TANGOX+	z_val = ((adr == chip->start) ? datum : map_read(map, chip->start));+#endif 	oldd = map_read(map, adr); 	if (map_word_equal(map, oldd, datum)) { 		DEBUG( MTD_DEBUG_LEVEL3, "MTD %s(): NOP\n",@@ -1013,15 +1055,25 @@ 			continue; 		} -		if (time_after(jiffies, timeo) && !chip_ready(map, adr)){+#ifdef CONFIG_TANGOX+		if (time_after(jiffies, timeo) && !chip_ready(map, adr, chip->start, z_val))+#else+		if (time_after(jiffies, timeo) && !chip_ready(map, adr))+#endif+		{ 			xip_enable(map, chip, adr); 			printk(KERN_WARNING "MTD %s(): software timeout\n", __func__); 			xip_disable(map, chip, adr); 			break; 		} +#ifdef CONFIG_TANGOX+		if (chip_ready(map, adr, chip->start, z_val))+			break;+#else 		if (chip_ready(map, adr)) 			break;+#endif  		/* Latency issues. Drop the lock, wait a while and retry */ 		UDELAY(map, chip, adr, 1);@@ -1204,6 +1256,9 @@ 	unsigned long cmd_adr; 	int z, words; 	map_word datum;+#ifdef CONFIG_TANGOX+	map_word z_val;+#endif  	adr += chip->start; 	cmd_adr = adr;@@ -1224,6 +1279,9 @@ 	ENABLE_VPP(map); 	xip_disable(map, chip, cmd_adr); +#ifdef CONFIG_TANGOX+	z_val = ((adr == chip->start) ? datum : map_read(map, chip->start));+#endif 	cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL); 	cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, cfi->device_type, NULL); 	//cfi_send_gen_cmd(0xA0, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL);@@ -1274,10 +1332,20 @@ 			continue; 		} +#ifdef CONFIG_TANGOX+		if (time_after(jiffies, timeo) && !chip_ready(map, adr, chip->start, z_val))+			break;+#else 		if (time_after(jiffies, timeo) && !chip_ready(map, adr)) 			break;+#endif -		if (chip_ready(map, adr)) {+#ifdef CONFIG_TANGOX+		if (chip_ready(map, adr, chip->start, z_val)) +#else+		if (chip_ready(map, adr)) +#endif+		{ 			xip_enable(map, chip, adr); 			goto op_done; 		}@@ -1395,6 +1463,10 @@ 	unsigned long int adr; 	DECLARE_WAITQUEUE(wait, current);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -