Created
January 9, 2014 18:45
-
-
Save jessenic/cf6050c6db5b985b0cdf to your computer and use it in GitHub Desktop.
DG834GV4_V5.01.16_src-vs-DGN2000_V1.1.1_src-mtd.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary files DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/built-in.o and kernel/kernel/linux/drivers/mtd/built-in.o differ | |
Binary files DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/built-in.o and kernel/kernel/linux/drivers/mtd/chips/built-in.o differ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/.built-in.o.cmd kernel/kernel/linux/drivers/mtd/chips/.built-in.o.cmd | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/.built-in.o.cmd 2010-01-11 21:16:02.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/chips/.built-in.o.cmd 2008-07-09 04:20:53.000000000 -0700 | |
@@ -1 +1 @@ | |
-cmd_drivers/mtd/chips/built-in.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-ld --oformat elf32-tradbigmips -r -o drivers/mtd/chips/built-in.o drivers/mtd/chips/chipreg.o drivers/mtd/chips/cfi_probe.o drivers/mtd/chips/cfi_util.o drivers/mtd/chips/cfi_cmdset_0701.o drivers/mtd/chips/cfi_cmdset_0002.o drivers/mtd/chips/gen_probe.o | |
+cmd_drivers/mtd/chips/built-in.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-ld --oformat elf32-tradbigmips -r -o drivers/mtd/chips/built-in.o drivers/mtd/chips/chipreg.o drivers/mtd/chips/cfi_probe.o drivers/mtd/chips/cfi_util.o drivers/mtd/chips/cfi_cmdset_0002.o drivers/mtd/chips/gen_probe.o | |
Binary files DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/cfi_cmdset_0002.o and kernel/kernel/linux/drivers/mtd/chips/cfi_cmdset_0002.o differ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/.cfi_cmdset_0002.o.cmd kernel/kernel/linux/drivers/mtd/chips/.cfi_cmdset_0002.o.cmd | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/.cfi_cmdset_0002.o.cmd 2010-01-11 21:16:02.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/chips/.cfi_cmdset_0002.o.cmd 2008-07-09 04:20:53.000000000 -0700 | |
@@ -1,4 +1,4 @@ | |
-cmd_drivers/mtd/chips/cfi_cmdset_0002.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/chips/.cfi_cmdset_0002.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=cfi_cmdset_0002 -DKBUILD_MODNAME=cfi_cmdset_0002 -c -o drivers/mtd/chips/cfi_cmdset_0002.o drivers/mtd/chips/cfi_cmdset_0002.c | |
+cmd_drivers/mtd/chips/cfi_cmdset_0002.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/chips/.cfi_cmdset_0002.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=cfi_cmdset_0002 -DKBUILD_MODNAME=cfi_cmdset_0002 -c -o drivers/mtd/chips/cfi_cmdset_0002.o drivers/mtd/chips/cfi_cmdset_0002.c | |
deps_drivers/mtd/chips/cfi_cmdset_0002.o := \ | |
drivers/mtd/chips/cfi_cmdset_0002.c \ | |
@@ -52,13 +52,14 @@ | |
include/linux/cache.h \ | |
include/linux/kernel.h \ | |
$(wildcard include/config/debug/spinlock/sleep.h) \ | |
- /opt/toolchains-neutral-6358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
+ /opt/toolchains-96358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
include/asm/bug.h \ | |
include/asm/break.h \ | |
include/asm/cache.h \ | |
$(wildcard include/config/mips/l1/cache/shift.h) \ | |
include/cpu-feature-overrides.h \ | |
$(wildcard include/config/bcm96358.h) \ | |
+ $(wildcard include/config/bcm96368.h) \ | |
include/asm/war.h \ | |
$(wildcard include/config/sgi/ip22.h) \ | |
$(wildcard include/config/sni/rm200/pci.h) \ | |
@@ -75,7 +76,6 @@ | |
$(wildcard include/config/cpu/has/sync.h) \ | |
$(wildcard include/config/cpu/has/wb.h) \ | |
include/asm/addrspace.h \ | |
- $(wildcard include/config/bcm/endpoint/module.h) \ | |
$(wildcard include/config/cpu/r4300.h) \ | |
$(wildcard include/config/cpu/r4x00.h) \ | |
$(wildcard include/config/cpu/r5000.h) \ | |
@@ -97,6 +97,7 @@ | |
$(wildcard include/config/page/size/8kb.h) \ | |
$(wildcard include/config/page/size/16kb.h) \ | |
$(wildcard include/config/page/size/64kb.h) \ | |
+ $(wildcard include/config/klob.h) \ | |
$(wildcard include/config/debug/stack/usage.h) \ | |
include/asm/processor.h \ | |
$(wildcard include/config/cpu/has/prefetch.h) \ | |
@@ -153,6 +154,7 @@ | |
include/linux/percpu.h \ | |
include/linux/slab.h \ | |
$(wildcard include/config/.h) \ | |
+ $(wildcard include/config/kmalloc/accounting.h) \ | |
include/linux/gfp.h \ | |
include/linux/mmzone.h \ | |
$(wildcard include/config/force/max/zoneorder.h) \ | |
@@ -201,6 +203,7 @@ | |
include/linux/delay.h \ | |
include/asm/delay.h \ | |
include/linux/interrupt.h \ | |
+ $(wildcard include/config/oprofile.h) \ | |
include/asm/hardirq.h \ | |
include/linux/irq.h \ | |
$(wildcard include/config/arch/s390.h) \ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/cfi_cmdset_0701.c kernel/kernel/linux/drivers/mtd/chips/cfi_cmdset_0701.c | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/cfi_cmdset_0701.c 2010-01-11 20:06:58.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/chips/cfi_cmdset_0701.c 1969-12-31 16:00:00.000000000 -0800 | |
@@ -1,1435 +0,0 @@ | |
-/* | |
- * Common Flash Interface support: | |
- * SST Vendor Command Set (ID 0x0701) | |
- * | |
- * Copyright (C) 2000 Crossnet Co. <info@crossnet.co.jp> | |
- * Copyright (C) 2004 Arcom Control Systems Ltd <linux@arcom.com> | |
- * | |
- * 2_by_8 routines added by Simon Munton | |
- * | |
- * 4_by_16 work by Carolyn J. Smith | |
- * | |
- * Occasionally maintained by Thayne Harbaugh tharbaugh at lnxi dot com | |
- * | |
- * This code is GPL | |
- * | |
- * $Id: cfi_cmdset_0701.c,v 1.106 2004/08/09 14:02:32 dwmw2 Exp $ | |
- * | |
- */ | |
- | |
-#include <linux/config.h> | |
-#include <linux/module.h> | |
-#include <linux/types.h> | |
-#include <linux/kernel.h> | |
-#include <linux/sched.h> | |
-#include <linux/init.h> | |
-#include <asm/io.h> | |
-#include <asm/byteorder.h> | |
- | |
-#include <linux/errno.h> | |
-#include <linux/slab.h> | |
-#include <linux/delay.h> | |
-#include <linux/interrupt.h> | |
-#include <linux/mtd/compatmac.h> | |
-#include <linux/mtd/map.h> | |
-#include <linux/mtd/mtd.h> | |
-#include <linux/mtd/cfi.h> | |
- | |
-#define AMD_BOOTLOC_BUG | |
-#define FORCE_WORD_WRITE 0 | |
- | |
-#define MAX_WORD_RETRIES 3 | |
- | |
-static int cfi_sststd_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *); | |
-static int cfi_sststd_write_words(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); | |
-static int cfi_sststd_write_buffers(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); | |
-static int cfi_sststd_erase_chip(struct mtd_info *, struct erase_info *); | |
-static int cfi_sststd_erase_varsize(struct mtd_info *, struct erase_info *); | |
-static int cfi_sststd_lock_varsize(struct mtd_info *, loff_t, size_t); | |
-static int cfi_sststd_unlock_varsize(struct mtd_info *, loff_t, size_t); | |
-static void cfi_sststd_sync (struct mtd_info *); | |
-static int cfi_sststd_suspend (struct mtd_info *); | |
-static void cfi_sststd_resume (struct mtd_info *); | |
-static int cfi_sststd_secsi_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *); | |
- | |
-static void cfi_sststd_destroy(struct mtd_info *); | |
- | |
-struct mtd_info *cfi_cmdset_0701(struct map_info *, int); | |
-static struct mtd_info *cfi_sststd_setup (struct map_info *); | |
- | |
- | |
-static struct mtd_chip_driver cfi_sststd_chipdrv = { | |
- .probe = NULL, /* Not usable directly */ | |
- .destroy = cfi_sststd_destroy, | |
- .name = "cfi_cmdset_0701", | |
- .module = THIS_MODULE | |
-}; | |
- | |
- | |
- | |
- | |
-struct mtd_info *cfi_cmdset_0701(struct map_info *map, int primary) | |
-{ | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- unsigned char bootloc; | |
- int i; | |
- | |
- if (cfi->cfi_mode==CFI_MODE_CFI){ | |
- cfi->cfiq->NumEraseRegions=1; | |
-#if 0 | |
- /* | |
- * It's a real CFI chip, not one for which the probe | |
- * routine faked a CFI structure. So we read the feature | |
- * table from it. | |
- */ | |
- __u16 adr = primary?cfi->cfiq->P_ADR:cfi->cfiq->A_ADR; | |
- struct cfi_pri_amdstd *extp; | |
- | |
- extp = (struct cfi_pri_amdstd*)cfi_read_pri(map, adr, sizeof(*extp), "Amd/Fujitsu"); | |
- if (!extp) | |
- return NULL; | |
- | |
- /* Install our own private info structure */ | |
- cfi->cmdset_priv = extp; | |
- | |
- | |
- bootloc = extp->TopBottom; | |
- if ((bootloc != 2) && (bootloc != 3)) { | |
- printk(KERN_WARNING "%s: CFI does not contain boot " | |
- "bank location. Assuming top.\n", map->name); | |
- bootloc = 2; | |
- } | |
- | |
- if (bootloc == 3 && cfi->cfiq->NumEraseRegions > 1) { | |
- printk(KERN_WARNING "%s: Swapping erase regions for broken CFI table.\n", map->name); | |
- | |
- for (i=0; i<cfi->cfiq->NumEraseRegions / 2; i++) { | |
- int j = (cfi->cfiq->NumEraseRegions-1)-i; | |
- __u32 swap; | |
- | |
- swap = cfi->cfiq->EraseRegionInfo[i]; | |
- cfi->cfiq->EraseRegionInfo[i] = cfi->cfiq->EraseRegionInfo[j]; | |
- cfi->cfiq->EraseRegionInfo[j] = swap; | |
- } | |
- } | |
-#endif | |
- /* | |
- * These might already be setup (more correctly) by | |
- * jedec_probe.c - still need it for cfi_probe.c path. | |
- */ | |
- if ( ! (cfi->addr_unlock1 && cfi->addr_unlock2) ) { | |
- switch (cfi->device_type) { | |
- case CFI_DEVICETYPE_X16: | |
- cfi->addr_unlock1 = 0x5555; | |
- cfi->addr_unlock2 = 0x2AAA; | |
- break; | |
- default: | |
- printk(KERN_WARNING | |
- "MTD %s(): Unsupported device type %d\n", | |
- __func__, cfi->device_type); | |
- return NULL; | |
- } | |
- } | |
- | |
- } /* CFI mode */ | |
- | |
- for (i=0; i< cfi->numchips; i++) { | |
- cfi->chips[i].word_write_time = 1<<cfi->cfiq->WordWriteTimeoutTyp; | |
- cfi->chips[i].buffer_write_time = 1<<cfi->cfiq->BufWriteTimeoutTyp; | |
- cfi->chips[i].erase_time = 1<<cfi->cfiq->BlockEraseTimeoutTyp; | |
- } | |
- | |
- map->fldrv = &cfi_sststd_chipdrv; | |
- | |
- return cfi_sststd_setup(map); | |
-} | |
- | |
- | |
-static struct mtd_info *cfi_sststd_setup(struct map_info *map) | |
-{ | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- struct mtd_info *mtd; | |
- unsigned long devsize = (1<<cfi->cfiq->DevSize) * cfi->interleave; | |
- unsigned long offset = 0; | |
- int i,j; | |
- | |
- | |
- mtd = kmalloc(sizeof(*mtd), GFP_KERNEL); | |
- printk(KERN_NOTICE "number of %s chips: %d\n", | |
- (cfi->cfi_mode == CFI_MODE_CFI)?"CFI":"JEDEC",cfi->numchips); | |
- | |
- if (!mtd) { | |
- printk(KERN_WARNING "Failed to allocate memory for MTD device\n"); | |
- goto setup_err; | |
- } | |
- | |
- memset(mtd, 0, sizeof(*mtd)); | |
- mtd->priv = map; | |
- mtd->type = MTD_NORFLASH; | |
- /* Also select the correct geometry setup too */ | |
- mtd->size = devsize * cfi->numchips; | |
- | |
- mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips; | |
- mtd->eraseregions = kmalloc(sizeof(struct mtd_erase_region_info) | |
- * mtd->numeraseregions, GFP_KERNEL); | |
- if (!mtd->eraseregions) { | |
- printk(KERN_WARNING "Failed to allocate memory for MTD erase region info\n"); | |
- goto setup_err; | |
- } | |
- | |
- for (i=0; i<cfi->cfiq->NumEraseRegions; i++) { | |
- unsigned long ernum, ersize; | |
- ersize = ((cfi->cfiq->EraseRegionInfo[i] >> 8) & ~0xff) * cfi->interleave; | |
- ernum = (cfi->cfiq->EraseRegionInfo[i] & 0xffff) + 1; | |
- | |
- if (mtd->erasesize < ersize) { | |
- mtd->erasesize = ersize; | |
- } | |
- for (j=0; j<cfi->numchips; j++) { | |
- mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].offset = (j*devsize)+offset; | |
- mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].erasesize = ersize; | |
- mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].numblocks = ernum; | |
- } | |
- offset += (ersize * ernum); | |
- } | |
- if (offset != devsize) { | |
- /* Argh */ | |
- printk(KERN_WARNING "Sum of regions (%lx) != total size of set of interleaved chips (%lx)\n", offset, devsize); | |
- goto setup_err; | |
- } | |
-#if 0 | |
- // debug | |
- for (i=0; i<mtd->numeraseregions;i++){ | |
- printk("%d: offset=0x%x,size=0x%x,blocks=%d\n", | |
- i,mtd->eraseregions[i].offset, | |
- mtd->eraseregions[i].erasesize, | |
- mtd->eraseregions[i].numblocks); | |
- } | |
-#endif | |
- | |
- if (mtd->numeraseregions == 1 | |
- && ((cfi->cfiq->EraseRegionInfo[0] & 0xffff) + 1) == 1) { | |
- mtd->erase = cfi_sststd_erase_chip; | |
- } else { | |
- mtd->erase = cfi_sststd_erase_varsize; | |
- mtd->lock = cfi_sststd_lock_varsize; | |
- mtd->unlock = cfi_sststd_unlock_varsize; | |
- } | |
- | |
- mtd->write = cfi_sststd_write_words; | |
- mtd->read = cfi_sststd_read; | |
- | |
- /* FIXME: erase-suspend-program is broken. See | |
- http://lists.infradead.org/pipermail/linux-mtd/2003-December/009001.html */ | |
- printk(KERN_NOTICE "cfi_cmdset_0701: Disabling erase-suspend-program due to code brokenness.\n"); | |
- | |
- | |
- mtd->sync = cfi_sststd_sync; | |
- mtd->suspend = cfi_sststd_suspend; | |
- mtd->resume = cfi_sststd_resume; | |
- mtd->flags = MTD_CAP_NORFLASH; | |
- map->fldrv = &cfi_sststd_chipdrv; | |
- mtd->name = map->name; | |
- __module_get(THIS_MODULE); | |
- return mtd; | |
- | |
- setup_err: | |
- if(mtd) { | |
- if(mtd->eraseregions) | |
- kfree(mtd->eraseregions); | |
- kfree(mtd); | |
- } | |
- kfree(cfi->cmdset_priv); | |
- kfree(cfi->cfiq); | |
- return NULL; | |
-} | |
- | |
-/* | |
- * Return true if the chip is ready. | |
- * | |
- * Ready is one of: read mode, query mode, erase-suspend-read mode (in any | |
- * non-suspended sector) and is indicated by no toggle bits toggling. | |
- * | |
- * Note that anything more complicated than checking if no bits are toggling | |
- * (including checking DQ5 for an error status) is tricky to get working | |
- * correctly and is therefore not done (particulary with interleaved chips | |
- * as each chip must be checked independantly of the others). | |
- */ | |
-static int chip_ready(struct map_info *map, unsigned long addr) | |
-{ | |
- map_word d, t; | |
- | |
- d = map_read(map, addr); | |
- t = map_read(map, addr); | |
- | |
- return map_word_equal(map, d, t); | |
-} | |
- | |
-static int get_chip(struct map_info *map, struct flchip *chip, unsigned long adr, int mode) | |
-{ | |
- DECLARE_WAITQUEUE(wait, current); | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- unsigned long timeo; | |
- struct cfi_pri_sststd *cfip = (struct cfi_pri_sststd *)cfi->cmdset_priv; | |
- | |
- resettime: | |
- timeo = jiffies + HZ; | |
- retry: | |
- switch (chip->state) { | |
- | |
- case FL_STATUS: | |
- for (;;) { | |
- if (chip_ready(map, adr)) | |
- break; | |
- | |
- if (time_after(jiffies, timeo)) { | |
- printk(KERN_ERR "Waiting for chip to be ready timed out.\n"); | |
- cfi_spin_unlock(chip->mutex); | |
- return -EIO; | |
- } | |
- cfi_spin_unlock(chip->mutex); | |
- cfi_udelay(1); | |
- cfi_spin_lock(chip->mutex); | |
- /* Someone else might have been playing with it. */ | |
- goto retry; | |
- } | |
- | |
- case FL_READY: | |
- case FL_CFI_QUERY: | |
- case FL_JEDEC_QUERY: | |
- return 0; | |
- | |
- case FL_ERASING: | |
- if (mode == FL_WRITING) /* FIXME: Erase-suspend-program appears broken. */ | |
- goto sleep; | |
-#if 0 | |
- if (!(mode == FL_READY || mode == FL_POINT | |
- || (mode == FL_WRITING && (cfip->EraseSuspend & 0x2)) | |
- || (mode == FL_WRITING && (cfip->EraseSuspend & 0x1)))) | |
- goto sleep; | |
-#endif | |
- /* 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. */ | |
- | |
- /* Erase suspend */ | |
- /* It's harmless to issue the Erase-Suspend and Erase-Resume | |
- * commands when the erase algorithm isn't in progress. */ | |
- map_write(map, CMD(0xB0), chip->in_progress_block_addr); | |
- chip->oldstate = FL_ERASING; | |
- chip->state = FL_ERASE_SUSPENDING; | |
- chip->erase_suspended = 1; | |
- for (;;) { | |
- if (chip_ready(map, adr)) | |
- break; | |
- | |
- if (time_after(jiffies, timeo)) { | |
- /* Should have suspended the erase by now. | |
- * Send an Erase-Resume command as either | |
- * there was an error (so leave the erase | |
- * routine to recover from it) or we trying to | |
- * use the erase-in-progress sector. */ | |
- map_write(map, CMD(0x30), chip->in_progress_block_addr); | |
- chip->state = FL_ERASING; | |
- chip->oldstate = FL_READY; | |
- printk(KERN_ERR "MTD %s(): chip not ready after erase suspend\n", __func__); | |
- return -EIO; | |
- } | |
- | |
- cfi_spin_unlock(chip->mutex); | |
- cfi_udelay(1); | |
- cfi_spin_lock(chip->mutex); | |
- /* Nobody will touch it while it's in state FL_ERASE_SUSPENDING. | |
- So we can just loop here. */ | |
- } | |
- chip->state = FL_READY; | |
- return 0; | |
- | |
- case FL_POINT: | |
- /* Only if there's no operation suspended... */ | |
- if (mode == FL_READY && chip->oldstate == FL_READY) | |
- return 0; | |
- | |
- default: | |
- sleep: | |
- set_current_state(TASK_UNINTERRUPTIBLE); | |
- add_wait_queue(&chip->wq, &wait); | |
- cfi_spin_unlock(chip->mutex); | |
- schedule(); | |
- remove_wait_queue(&chip->wq, &wait); | |
- cfi_spin_lock(chip->mutex); | |
- goto resettime; | |
- } | |
-} | |
- | |
- | |
-static void put_chip(struct map_info *map, struct flchip *chip, unsigned long adr) | |
-{ | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- | |
- switch(chip->oldstate) { | |
- case FL_ERASING: | |
- chip->state = chip->oldstate; | |
- map_write(map, CMD(0x30), chip->in_progress_block_addr); | |
- chip->oldstate = FL_READY; | |
- chip->state = FL_ERASING; | |
- break; | |
- | |
- case FL_READY: | |
- case FL_STATUS: | |
- /* We should really make set_vpp() count, rather than doing this */ | |
- DISABLE_VPP(map); | |
- break; | |
- default: | |
- printk(KERN_ERR "MTD: put_chip() called with oldstate %d!!\n", chip->oldstate); | |
- } | |
- wake_up(&chip->wq); | |
-} | |
- | |
- | |
-static inline int do_read_onechip(struct map_info *map, struct flchip *chip, loff_t adr, size_t len, u_char *buf) | |
-{ | |
- unsigned long cmd_addr; | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- int ret; | |
- | |
- adr += chip->start; | |
- | |
- /* Ensure cmd read/writes are aligned. */ | |
- cmd_addr = adr & ~(map_bankwidth(map)-1); | |
- | |
- cfi_spin_lock(chip->mutex); | |
- ret = get_chip(map, chip, cmd_addr, FL_READY); | |
- if (ret) { | |
- cfi_spin_unlock(chip->mutex); | |
- return ret; | |
- } | |
- | |
- if (chip->state != FL_POINT && chip->state != FL_READY) { | |
- map_write(map, CMD(0xf0), cmd_addr); | |
- chip->state = FL_READY; | |
- } | |
- | |
- map_copy_from(map, buf, adr, len); | |
- | |
- put_chip(map, chip, cmd_addr); | |
- | |
- cfi_spin_unlock(chip->mutex); | |
- return 0; | |
-} | |
- | |
- | |
-static int cfi_sststd_read (struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf) | |
-{ | |
- struct map_info *map = mtd->priv; | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- unsigned long ofs; | |
- int chipnum; | |
- int ret = 0; | |
- | |
- /* ofs: offset within the first chip that the first read should start */ | |
- | |
- chipnum = (from >> cfi->chipshift); | |
- ofs = from - (chipnum << cfi->chipshift); | |
- | |
- | |
- *retlen = 0; | |
- | |
- while (len) { | |
- unsigned long thislen; | |
- | |
- if (chipnum >= cfi->numchips) | |
- break; | |
- | |
- if ((len + ofs -1) >> cfi->chipshift) | |
- thislen = (1<<cfi->chipshift) - ofs; | |
- else | |
- thislen = len; | |
- | |
- ret = do_read_onechip(map, &cfi->chips[chipnum], ofs, thislen, buf); | |
- if (ret) | |
- break; | |
- | |
- *retlen += thislen; | |
- len -= thislen; | |
- buf += thislen; | |
- | |
- ofs = 0; | |
- chipnum++; | |
- } | |
- return ret; | |
-} | |
- | |
- | |
-static inline int do_read_secsi_onechip(struct map_info *map, struct flchip *chip, loff_t adr, size_t len, u_char *buf) | |
-{ | |
- DECLARE_WAITQUEUE(wait, current); | |
- unsigned long timeo = jiffies + HZ; | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- | |
- retry: | |
- cfi_spin_lock(chip->mutex); | |
- | |
- if (chip->state != FL_READY){ | |
-#if 0 | |
- printk(KERN_DEBUG "Waiting for chip to read, status = %d\n", chip->state); | |
-#endif | |
- set_current_state(TASK_UNINTERRUPTIBLE); | |
- add_wait_queue(&chip->wq, &wait); | |
- | |
- cfi_spin_unlock(chip->mutex); | |
- | |
- schedule(); | |
- remove_wait_queue(&chip->wq, &wait); | |
-#if 0 | |
- if(signal_pending(current)) | |
- return -EINTR; | |
-#endif | |
- timeo = jiffies + HZ; | |
- | |
- goto retry; | |
- } | |
- | |
- adr += chip->start; | |
- | |
- chip->state = FL_READY; | |
- | |
- /* should these be CFI_DEVICETYPE_X8 instead of cfi->device_type? */ | |
- 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(0x88, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL); | |
- | |
- map_copy_from(map, buf, adr, len); | |
- | |
- /* should these be CFI_DEVICETYPE_X8 instead of cfi->device_type? */ | |
- 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(0x90, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL); | |
- cfi_send_gen_cmd(0x00, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL); | |
- | |
- wake_up(&chip->wq); | |
- cfi_spin_unlock(chip->mutex); | |
- | |
- return 0; | |
-} | |
- | |
-static int cfi_sststd_secsi_read (struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf) | |
-{ | |
- struct map_info *map = mtd->priv; | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- unsigned long ofs; | |
- int chipnum; | |
- int ret = 0; | |
- | |
- | |
- /* ofs: offset within the first chip that the first read should start */ | |
- | |
- /* 8 secsi bytes per chip */ | |
- chipnum=from>>3; | |
- ofs=from & 7; | |
- | |
- | |
- *retlen = 0; | |
- | |
- while (len) { | |
- unsigned long thislen; | |
- | |
- if (chipnum >= cfi->numchips) | |
- break; | |
- | |
- if ((len + ofs -1) >> 3) | |
- thislen = (1<<3) - ofs; | |
- else | |
- thislen = len; | |
- | |
- ret = do_read_secsi_onechip(map, &cfi->chips[chipnum], ofs, thislen, buf); | |
- if (ret) | |
- break; | |
- | |
- *retlen += thislen; | |
- len -= thislen; | |
- buf += thislen; | |
- | |
- ofs = 0; | |
- chipnum++; | |
- } | |
- return ret; | |
-} | |
- | |
- | |
-static int do_write_oneword(struct map_info *map, struct flchip *chip, unsigned long adr, map_word datum) | |
-{ | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- unsigned long timeo = jiffies + HZ; | |
- /* | |
- * We use a 1ms + 1 jiffies generic timeout for writes (most devices | |
- * have a max write time of a few hundreds usec). However, we should | |
- * use the maximum timeout value given by the chip at probe time | |
- * instead. Unfortunately, struct flchip does have a field for | |
- * maximum timeout, only for typical which can be far too short | |
- * depending of the conditions. The ' + 1' is to avoid having a | |
- * timeout of 0 jiffies if HZ is smaller than 1000. | |
- */ | |
- unsigned long uWriteTimeout = ( HZ / 1000 ) + 1; | |
- int ret = 0; | |
- map_word oldd, curd; | |
- int retry_cnt = 0; | |
- | |
- adr += chip->start; | |
- | |
- cfi_spin_lock(chip->mutex); | |
- ret = get_chip(map, chip, adr, FL_WRITING); | |
- if (ret) { | |
- cfi_spin_unlock(chip->mutex); | |
- return ret; | |
- } | |
- | |
- DEBUG( MTD_DEBUG_LEVEL3, "MTD %s(): WRITE 0x%.8lx(0x%.8lx)\n", | |
- __func__, adr, datum.x[0] ); | |
- | |
- /* | |
- * Check for a NOP for the case when the datum to write is already | |
- * present - it saves time and works around buggy chips that corrupt | |
- * data at other locations when 0xff is written to a location that | |
- * already contains 0xff. | |
- */ | |
- oldd = map_read(map, adr); | |
- if (map_word_equal(map, oldd, datum)) { | |
- DEBUG( MTD_DEBUG_LEVEL3, "MTD %s(): NOP\n", | |
- __func__); | |
- goto op_done; | |
- } | |
- | |
- ENABLE_VPP(map); | |
- retry: | |
- /* | |
- * The CFI_DEVICETYPE_X8 argument is needed even when | |
- * cfi->device_type != CFI_DEVICETYPE_X8. The addresses for | |
- * command sequences don't scale even when the device is | |
- * wider. This is the case for many of the cfi_send_gen_cmd() | |
- * below. I'm not sure, however, why some use | |
- * cfi->device_type. | |
- */ | |
- cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X8, NULL); | |
- cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, CFI_DEVICETYPE_X8, NULL); | |
- cfi_send_gen_cmd(0xA0, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X8, NULL); | |
- map_write(map, datum, adr); | |
- chip->state = FL_WRITING; | |
- | |
- cfi_spin_unlock(chip->mutex); | |
- cfi_udelay(chip->word_write_time); | |
- cfi_spin_lock(chip->mutex); | |
- | |
- /* See comment above for timeout value. */ | |
- timeo = jiffies + uWriteTimeout; | |
- for (;;) { | |
- if (chip->state != FL_WRITING) { | |
- /* Someone's suspended the write. Sleep */ | |
- DECLARE_WAITQUEUE(wait, current); | |
- | |
- set_current_state(TASK_UNINTERRUPTIBLE); | |
- add_wait_queue(&chip->wq, &wait); | |
- cfi_spin_unlock(chip->mutex); | |
- schedule(); | |
- remove_wait_queue(&chip->wq, &wait); | |
- timeo = jiffies + (HZ / 2); /* FIXME */ | |
- cfi_spin_lock(chip->mutex); | |
- continue; | |
- } | |
- | |
- /* Test to see if toggling has stopped. */ | |
- oldd = map_read(map, adr); | |
- curd = map_read(map, adr); | |
- if (map_word_equal(map, curd, oldd)) { | |
- /* Do we have the correct value? */ | |
- if (map_word_equal(map, curd, datum)) { | |
- goto op_done; | |
- } | |
- /* Nope something has gone wrong. */ | |
- break; | |
- } | |
- | |
- if (time_after(jiffies, timeo)) { | |
- printk(KERN_WARNING "MTD %s(): software timeout\n", | |
- __func__ ); | |
- break; | |
- } | |
- | |
- /* Latency issues. Drop the lock, wait a while and retry */ | |
- cfi_spin_unlock(chip->mutex); | |
- cfi_udelay(1); | |
- cfi_spin_lock(chip->mutex); | |
- } | |
- | |
- /* reset on all failures. */ | |
- map_write( map, CMD(0xF0), chip->start ); | |
- /* FIXME - should have reset delay before continuing */ | |
- if (++retry_cnt <= MAX_WORD_RETRIES) | |
- goto retry; | |
- | |
- ret = -EIO; | |
- op_done: | |
- chip->state = FL_READY; | |
- put_chip(map, chip, adr); | |
- cfi_spin_unlock(chip->mutex); | |
- | |
- return ret; | |
-} | |
- | |
- | |
-static int cfi_sststd_write_words(struct mtd_info *mtd, loff_t to, size_t len, | |
- size_t *retlen, const u_char *buf) | |
-{ | |
- struct map_info *map = mtd->priv; | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- int ret = 0; | |
- int chipnum; | |
- unsigned long ofs, chipstart; | |
- DECLARE_WAITQUEUE(wait, current); | |
- | |
- *retlen = 0; | |
- if (!len) | |
- return 0; | |
- | |
- chipnum = to >> cfi->chipshift; | |
- ofs = to - (chipnum << cfi->chipshift); | |
- chipstart = cfi->chips[chipnum].start; | |
- | |
- /* If it's not bus-aligned, do the first byte write */ | |
- if (ofs & (map_bankwidth(map)-1)) { | |
- unsigned long bus_ofs = ofs & ~(map_bankwidth(map)-1); | |
- int i = ofs - bus_ofs; | |
- int n = 0; | |
- map_word tmp_buf; | |
- | |
- retry: | |
- cfi_spin_lock(cfi->chips[chipnum].mutex); | |
- | |
- if (cfi->chips[chipnum].state != FL_READY) { | |
-#if 0 | |
- printk(KERN_DEBUG "Waiting for chip to write, status = %d\n", cfi->chips[chipnum].state); | |
-#endif | |
- set_current_state(TASK_UNINTERRUPTIBLE); | |
- add_wait_queue(&cfi->chips[chipnum].wq, &wait); | |
- | |
- cfi_spin_unlock(cfi->chips[chipnum].mutex); | |
- | |
- schedule(); | |
- remove_wait_queue(&cfi->chips[chipnum].wq, &wait); | |
-#if 0 | |
- if(signal_pending(current)) | |
- return -EINTR; | |
-#endif | |
- goto retry; | |
- } | |
- | |
- /* Load 'tmp_buf' with old contents of flash */ | |
- tmp_buf = map_read(map, bus_ofs+chipstart); | |
- | |
- cfi_spin_unlock(cfi->chips[chipnum].mutex); | |
- | |
- /* Number of bytes to copy from buffer */ | |
- n = min_t(int, len, map_bankwidth(map)-i); | |
- | |
- tmp_buf = map_word_load_partial(map, tmp_buf, buf, i, n); | |
- | |
- ret = do_write_oneword(map, &cfi->chips[chipnum], | |
- bus_ofs, tmp_buf); | |
- if (ret) | |
- return ret; | |
- | |
- ofs += n; | |
- buf += n; | |
- (*retlen) += n; | |
- len -= n; | |
- | |
- if (ofs >> cfi->chipshift) { | |
- chipnum ++; | |
- ofs = 0; | |
- if (chipnum == cfi->numchips) | |
- return 0; | |
- } | |
- } | |
- | |
- /* We are now aligned, write as much as possible */ | |
- while(len >= map_bankwidth(map)) { | |
- map_word datum; | |
- | |
- datum = map_word_load(map, buf); | |
- | |
- ret = do_write_oneword(map, &cfi->chips[chipnum], | |
- ofs, datum); | |
- if (ret) | |
- return ret; | |
- | |
- ofs += map_bankwidth(map); | |
- buf += map_bankwidth(map); | |
- (*retlen) += map_bankwidth(map); | |
- len -= map_bankwidth(map); | |
- | |
- if (ofs >> cfi->chipshift) { | |
- chipnum ++; | |
- ofs = 0; | |
- if (chipnum == cfi->numchips) | |
- return 0; | |
- chipstart = cfi->chips[chipnum].start; | |
- } | |
- } | |
- | |
- /* Write the trailing bytes if any */ | |
- if (len & (map_bankwidth(map)-1)) { | |
- map_word tmp_buf; | |
- | |
- retry1: | |
- cfi_spin_lock(cfi->chips[chipnum].mutex); | |
- | |
- if (cfi->chips[chipnum].state != FL_READY) { | |
-#if 0 | |
- printk(KERN_DEBUG "Waiting for chip to write, status = %d\n", cfi->chips[chipnum].state); | |
-#endif | |
- set_current_state(TASK_UNINTERRUPTIBLE); | |
- add_wait_queue(&cfi->chips[chipnum].wq, &wait); | |
- | |
- cfi_spin_unlock(cfi->chips[chipnum].mutex); | |
- | |
- schedule(); | |
- remove_wait_queue(&cfi->chips[chipnum].wq, &wait); | |
-#if 0 | |
- if(signal_pending(current)) | |
- return -EINTR; | |
-#endif | |
- goto retry1; | |
- } | |
- | |
- tmp_buf = map_read(map, ofs + chipstart); | |
- | |
- cfi_spin_unlock(cfi->chips[chipnum].mutex); | |
- | |
- tmp_buf = map_word_load_partial(map, tmp_buf, buf, 0, len); | |
- | |
- ret = do_write_oneword(map, &cfi->chips[chipnum], | |
- ofs, tmp_buf); | |
- if (ret) | |
- return ret; | |
- | |
- (*retlen) += len; | |
- } | |
- | |
- return 0; | |
-} | |
- | |
- | |
- | |
-/* | |
- * Handle devices with one erase region, that only implement | |
- * the chip erase command. | |
- */ | |
-static inline int do_erase_chip(struct map_info *map, struct flchip *chip) | |
-{ | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- unsigned long timeo = jiffies + HZ; | |
- unsigned long int adr; | |
- DECLARE_WAITQUEUE(wait, current); | |
- int ret = 0; | |
- | |
- adr = cfi->addr_unlock1; | |
- | |
- cfi_spin_lock(chip->mutex); | |
- ret = get_chip(map, chip, adr, FL_WRITING); | |
- if (ret) { | |
- cfi_spin_unlock(chip->mutex); | |
- return ret; | |
- } | |
- | |
- DEBUG( MTD_DEBUG_LEVEL3, "MTD %s(): ERASE 0x%.8lx\n", | |
- __func__, chip->start ); | |
- | |
- ENABLE_VPP(map); | |
- cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X8, NULL); | |
- cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, CFI_DEVICETYPE_X8, NULL); | |
- cfi_send_gen_cmd(0x80, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X8, NULL); | |
- cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X8, NULL); | |
- cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, CFI_DEVICETYPE_X8, NULL); | |
- cfi_send_gen_cmd(0x10, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X8, NULL); | |
- | |
- chip->state = FL_ERASING; | |
- chip->erase_suspended = 0; | |
- chip->in_progress_block_addr = adr; | |
- | |
- cfi_spin_unlock(chip->mutex); | |
- set_current_state(TASK_UNINTERRUPTIBLE); | |
- schedule_timeout((chip->erase_time*HZ)/(2*1000)); | |
- cfi_spin_lock(chip->mutex); | |
- | |
- timeo = jiffies + (HZ*20); | |
- | |
- for (;;) { | |
- if (chip->state != FL_ERASING) { | |
- /* Someone's suspended the erase. Sleep */ | |
- set_current_state(TASK_UNINTERRUPTIBLE); | |
- add_wait_queue(&chip->wq, &wait); | |
- cfi_spin_unlock(chip->mutex); | |
- schedule(); | |
- remove_wait_queue(&chip->wq, &wait); | |
- cfi_spin_lock(chip->mutex); | |
- continue; | |
- } | |
- if (chip->erase_suspended) { | |
- /* This erase was suspended and resumed. | |
- Adjust the timeout */ | |
- timeo = jiffies + (HZ*20); /* FIXME */ | |
- chip->erase_suspended = 0; | |
- } | |
- | |
- if (chip_ready(map, adr)) | |
- goto op_done; | |
- | |
- if (time_after(jiffies, timeo)) | |
- break; | |
- | |
- /* Latency issues. Drop the lock, wait a while and retry */ | |
- cfi_spin_unlock(chip->mutex); | |
- set_current_state(TASK_UNINTERRUPTIBLE); | |
- schedule_timeout(1); | |
- cfi_spin_lock(chip->mutex); | |
- } | |
- | |
- printk(KERN_WARNING "MTD %s(): software timeout\n", | |
- __func__ ); | |
- | |
- /* reset on all failures. */ | |
- map_write( map, CMD(0xF0), chip->start ); | |
- /* FIXME - should have reset delay before continuing */ | |
- | |
- ret = -EIO; | |
- op_done: | |
- chip->state = FL_READY; | |
- put_chip(map, chip, adr); | |
- cfi_spin_unlock(chip->mutex); | |
- | |
- return ret; | |
-} | |
- | |
- | |
-typedef int (*frob_t)(struct map_info *map, struct flchip *chip, | |
- unsigned long adr, void *thunk); | |
- | |
- | |
-static int cfi_sststd_varsize_frob(struct mtd_info *mtd, frob_t frob, | |
- loff_t ofs, size_t len, void *thunk) | |
-{ | |
- struct map_info *map = mtd->priv; | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- unsigned long adr; | |
- int chipnum, ret = 0; | |
- int i, first; | |
- struct mtd_erase_region_info *regions = mtd->eraseregions; | |
- | |
- if (ofs > mtd->size) | |
- return -EINVAL; | |
- | |
- if ((len + ofs) > mtd->size) | |
- return -EINVAL; | |
- | |
- /* Check that both start and end of the requested erase are | |
- * aligned with the erasesize at the appropriate addresses. | |
- */ | |
- | |
- i = 0; | |
- | |
- /* Skip all erase regions which are ended before the start of | |
- the requested erase. Actually, to save on the calculations, | |
- we skip to the first erase region which starts after the | |
- start of the requested erase, and then go back one. | |
- */ | |
- | |
- while (i < mtd->numeraseregions && ofs >= regions[i].offset) | |
- i++; | |
- i--; | |
- | |
- /* OK, now i is pointing at the erase region in which this | |
- erase request starts. Check the start of the requested | |
- erase range is aligned with the erase size which is in | |
- effect here. | |
- */ | |
- | |
- if (ofs & (regions[i].erasesize-1)) | |
- return -EINVAL; | |
- | |
- /* Remember the erase region we start on */ | |
- first = i; | |
- | |
- /* Next, check that the end of the requested erase is aligned | |
- * with the erase region at that address. | |
- */ | |
- | |
- while (i<mtd->numeraseregions && (ofs + len) >= regions[i].offset) | |
- i++; | |
- | |
- /* As before, drop back one to point at the region in which | |
- the address actually falls | |
- */ | |
- i--; | |
- | |
- if ((ofs + len) & (regions[i].erasesize-1)) | |
- return -EINVAL; | |
- | |
- chipnum = ofs >> cfi->chipshift; | |
- adr = ofs - (chipnum << cfi->chipshift); | |
- | |
- i=first; | |
- | |
- while (len) { | |
- ret = (*frob)(map, &cfi->chips[chipnum], adr, thunk); | |
- | |
- if (ret) | |
- return ret; | |
- | |
- adr += regions[i].erasesize; | |
- len -= regions[i].erasesize; | |
- | |
- if (adr % (1<< cfi->chipshift) == ((regions[i].offset + (regions[i].erasesize * regions[i].numblocks)) %( 1<< cfi->chipshift))) | |
- i++; | |
- | |
- if (adr >> cfi->chipshift) { | |
- adr = 0; | |
- chipnum++; | |
- | |
- if (chipnum >= cfi->numchips) | |
- break; | |
- } | |
- } | |
- | |
- return 0; | |
-} | |
- | |
- | |
-static inline int do_erase_oneblock(struct map_info *map, struct flchip *chip, unsigned long adr, void *thunk) | |
-{ | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- unsigned long timeo = jiffies + HZ; | |
- DECLARE_WAITQUEUE(wait, current); | |
- int ret = 0; | |
- | |
- adr += chip->start; | |
- | |
- cfi_spin_lock(chip->mutex); | |
- ret = get_chip(map, chip, adr, FL_ERASING); | |
- if (ret) { | |
- cfi_spin_unlock(chip->mutex); | |
- return ret; | |
- } | |
- | |
- DEBUG( MTD_DEBUG_LEVEL3, "MTD %s(): ERASE 0x%.8lx\n", | |
- __func__, adr ); | |
- | |
- ENABLE_VPP(map); | |
- cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X8, NULL); | |
- cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, CFI_DEVICETYPE_X8, NULL); | |
- cfi_send_gen_cmd(0x80, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X8, NULL); | |
- cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X8, NULL); | |
- cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, CFI_DEVICETYPE_X8, NULL); | |
- map_write(map, CMD(0x30), adr); | |
- | |
- chip->state = FL_ERASING; | |
- chip->erase_suspended = 0; | |
- chip->in_progress_block_addr = adr; | |
- | |
- cfi_spin_unlock(chip->mutex); | |
- set_current_state(TASK_UNINTERRUPTIBLE); | |
- schedule_timeout((chip->erase_time*HZ)/(2*1000)); | |
- cfi_spin_lock(chip->mutex); | |
- | |
- timeo = jiffies + (HZ*20); | |
- | |
- for (;;) { | |
- if (chip->state != FL_ERASING) { | |
- /* Someone's suspended the erase. Sleep */ | |
- set_current_state(TASK_UNINTERRUPTIBLE); | |
- add_wait_queue(&chip->wq, &wait); | |
- cfi_spin_unlock(chip->mutex); | |
- schedule(); | |
- remove_wait_queue(&chip->wq, &wait); | |
- cfi_spin_lock(chip->mutex); | |
- continue; | |
- } | |
- if (chip->erase_suspended) { | |
- /* This erase was suspended and resumed. | |
- Adjust the timeout */ | |
- timeo = jiffies + (HZ*20); /* FIXME */ | |
- chip->erase_suspended = 0; | |
- } | |
- | |
- if (chip_ready(map, adr)) | |
- goto op_done; | |
- | |
- if (time_after(jiffies, timeo)) | |
- break; | |
- | |
- /* Latency issues. Drop the lock, wait a while and retry */ | |
- cfi_spin_unlock(chip->mutex); | |
- set_current_state(TASK_UNINTERRUPTIBLE); | |
- schedule_timeout(1); | |
- cfi_spin_lock(chip->mutex); | |
- } | |
- | |
- printk(KERN_WARNING "MTD %s(): software timeout\n", | |
- __func__ ); | |
- | |
- /* reset on all failures. */ | |
- map_write( map, CMD(0xF0), chip->start ); | |
- /* FIXME - should have reset delay before continuing */ | |
- | |
- ret = -EIO; | |
- op_done: | |
- chip->state = FL_READY; | |
- put_chip(map, chip, adr); | |
- cfi_spin_unlock(chip->mutex); | |
- return ret; | |
-} | |
- | |
- | |
-int cfi_sststd_erase_varsize(struct mtd_info *mtd, struct erase_info *instr) | |
-{ | |
- unsigned long ofs, len; | |
- int ret; | |
- | |
- ofs = instr->addr; | |
- len = instr->len; | |
- | |
- ret = cfi_sststd_varsize_frob(mtd, do_erase_oneblock, ofs, len, NULL); | |
- if (ret) | |
- return ret; | |
- | |
- instr->state = MTD_ERASE_DONE; | |
- mtd_erase_callback(instr); | |
- | |
- return 0; | |
-} | |
- | |
- | |
-static int cfi_sststd_erase_chip(struct mtd_info *mtd, struct erase_info *instr) | |
-{ | |
- struct map_info *map = mtd->priv; | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- int ret = 0; | |
- | |
- if (instr->addr != 0) | |
- return -EINVAL; | |
- | |
- if (instr->len != mtd->size) | |
- return -EINVAL; | |
- | |
- ret = do_erase_chip(map, &cfi->chips[0]); | |
- if (ret) | |
- return ret; | |
- | |
- instr->state = MTD_ERASE_DONE; | |
- mtd_erase_callback(instr); | |
- | |
- return 0; | |
-} | |
- | |
- | |
-static void cfi_sststd_sync (struct mtd_info *mtd) | |
-{ | |
- struct map_info *map = mtd->priv; | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- int i; | |
- struct flchip *chip; | |
- int ret = 0; | |
- DECLARE_WAITQUEUE(wait, current); | |
- | |
- for (i=0; !ret && i<cfi->numchips; i++) { | |
- chip = &cfi->chips[i]; | |
- | |
- retry: | |
- cfi_spin_lock(chip->mutex); | |
- | |
- switch(chip->state) { | |
- case FL_READY: | |
- case FL_STATUS: | |
- case FL_CFI_QUERY: | |
- case FL_JEDEC_QUERY: | |
- chip->oldstate = chip->state; | |
- chip->state = FL_SYNCING; | |
- /* No need to wake_up() on this state change - | |
- * as the whole point is that nobody can do anything | |
- * with the chip now anyway. | |
- */ | |
- case FL_SYNCING: | |
- cfi_spin_unlock(chip->mutex); | |
- break; | |
- | |
- default: | |
- /* Not an idle state */ | |
- add_wait_queue(&chip->wq, &wait); | |
- | |
- cfi_spin_unlock(chip->mutex); | |
- | |
- schedule(); | |
- | |
- remove_wait_queue(&chip->wq, &wait); | |
- | |
- goto retry; | |
- } | |
- } | |
- | |
- /* Unlock the chips again */ | |
- | |
- for (i--; i >=0; i--) { | |
- chip = &cfi->chips[i]; | |
- | |
- cfi_spin_lock(chip->mutex); | |
- | |
- if (chip->state == FL_SYNCING) { | |
- chip->state = chip->oldstate; | |
- wake_up(&chip->wq); | |
- } | |
- cfi_spin_unlock(chip->mutex); | |
- } | |
-} | |
- | |
- | |
-static int cfi_sststd_suspend(struct mtd_info *mtd) | |
-{ | |
- struct map_info *map = mtd->priv; | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- int i; | |
- struct flchip *chip; | |
- int ret = 0; | |
- | |
- for (i=0; !ret && i<cfi->numchips; i++) { | |
- chip = &cfi->chips[i]; | |
- | |
- cfi_spin_lock(chip->mutex); | |
- | |
- switch(chip->state) { | |
- case FL_READY: | |
- case FL_STATUS: | |
- case FL_CFI_QUERY: | |
- case FL_JEDEC_QUERY: | |
- chip->oldstate = chip->state; | |
- chip->state = FL_PM_SUSPENDED; | |
- /* No need to wake_up() on this state change - | |
- * as the whole point is that nobody can do anything | |
- * with the chip now anyway. | |
- */ | |
- case FL_PM_SUSPENDED: | |
- break; | |
- | |
- default: | |
- ret = -EAGAIN; | |
- break; | |
- } | |
- cfi_spin_unlock(chip->mutex); | |
- } | |
- | |
- /* Unlock the chips again */ | |
- | |
- if (ret) { | |
- for (i--; i >=0; i--) { | |
- chip = &cfi->chips[i]; | |
- | |
- cfi_spin_lock(chip->mutex); | |
- | |
- if (chip->state == FL_PM_SUSPENDED) { | |
- chip->state = chip->oldstate; | |
- wake_up(&chip->wq); | |
- } | |
- cfi_spin_unlock(chip->mutex); | |
- } | |
- } | |
- | |
- return ret; | |
-} | |
- | |
- | |
-static void cfi_sststd_resume(struct mtd_info *mtd) | |
-{ | |
- struct map_info *map = mtd->priv; | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- int i; | |
- struct flchip *chip; | |
- | |
- for (i=0; i<cfi->numchips; i++) { | |
- | |
- chip = &cfi->chips[i]; | |
- | |
- cfi_spin_lock(chip->mutex); | |
- | |
- if (chip->state == FL_PM_SUSPENDED) { | |
- chip->state = FL_READY; | |
- map_write(map, CMD(0xF0), chip->start); | |
- wake_up(&chip->wq); | |
- } | |
- else | |
- printk(KERN_ERR "Argh. Chip not in PM_SUSPENDED state upon resume()\n"); | |
- | |
- cfi_spin_unlock(chip->mutex); | |
- } | |
-} | |
- | |
- | |
-#ifdef DEBUG_LOCK_BITS | |
- | |
-static int do_printlockstatus_oneblock(struct map_info *map, | |
- struct flchip *chip, | |
- unsigned long adr, | |
- void *thunk) | |
-{ | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- int ofs_factor = cfi->interleave * cfi->device_type; | |
- | |
- cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL); | |
- printk(KERN_DEBUG "block status register for 0x%08lx is %x\n", | |
- adr, cfi_read_query(map, adr+(2*ofs_factor))); | |
- cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL); | |
- | |
- return 0; | |
-} | |
- | |
- | |
-#define debug_dump_locks(mtd, frob, ofs, len, thunk) \ | |
- cfi_sststd_varsize_frob((mtd), (frob), (ofs), (len), (thunk)) | |
- | |
-#else | |
- | |
-#define debug_dump_locks(...) | |
- | |
-#endif /* DEBUG_LOCK_BITS */ | |
- | |
- | |
-struct xxlock_thunk { | |
- uint8_t val; | |
- flstate_t state; | |
-}; | |
- | |
- | |
-#define DO_XXLOCK_ONEBLOCK_LOCK ((struct xxlock_thunk){0x01, FL_LOCKING}) | |
-#define DO_XXLOCK_ONEBLOCK_UNLOCK ((struct xxlock_thunk){0x00, FL_UNLOCKING}) | |
- | |
- | |
-/* | |
- * FIXME - this is *very* specific to a particular chip. It likely won't | |
- * work for all chips that require unlock. It also hasn't been tested | |
- * with interleaved chips. | |
- */ | |
-static int do_xxlock_oneblock(struct map_info *map, struct flchip *chip, unsigned long adr, void *thunk) | |
-{ | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- struct xxlock_thunk *xxlt = (struct xxlock_thunk *)thunk; | |
- int ret; | |
- | |
- /* | |
- * This is easy because these are writes to registers and not writes | |
- * to flash memory - that means that we don't have to check status | |
- * and timeout. | |
- */ | |
- | |
- adr += chip->start; | |
- /* | |
- * lock block registers: | |
- * - on 64k boundariesand | |
- * - bit 1 set high | |
- * - block lock registers are 4MiB lower - overflow subtract (danger) | |
- */ | |
- adr = ((adr & ~0xffff) | 0x2) + ~0x3fffff; | |
- | |
- cfi_spin_lock(chip->mutex); | |
- ret = get_chip(map, chip, adr, FL_LOCKING); | |
- if (ret) { | |
- cfi_spin_unlock(chip->mutex); | |
- return ret; | |
- } | |
- | |
- chip->state = xxlt->state; | |
- map_write(map, CMD(xxlt->val), adr); | |
- | |
- /* Done and happy. */ | |
- chip->state = FL_READY; | |
- put_chip(map, chip, adr); | |
- cfi_spin_unlock(chip->mutex); | |
- return 0; | |
-} | |
- | |
- | |
-static int cfi_sststd_lock_varsize(struct mtd_info *mtd, | |
- loff_t ofs, | |
- size_t len) | |
-{ | |
- int ret; | |
- | |
- DEBUG(MTD_DEBUG_LEVEL3, | |
- "%s: lock status before, ofs=0x%08llx, len=0x%08zX\n", | |
- __func__, ofs, len); | |
- debug_dump_locks(mtd, do_printlockstatus_oneblock, ofs, len, 0); | |
- | |
- ret = cfi_sststd_varsize_frob(mtd, do_xxlock_oneblock, ofs, len, | |
- (void *)&DO_XXLOCK_ONEBLOCK_LOCK); | |
- | |
- DEBUG(MTD_DEBUG_LEVEL3, | |
- "%s: lock status after, ret=%d\n", | |
- __func__, ret); | |
- | |
- debug_dump_locks(mtd, do_printlockstatus_oneblock, ofs, len, 0); | |
- | |
- return ret; | |
-} | |
- | |
- | |
-static int cfi_sststd_unlock_varsize(struct mtd_info *mtd, | |
- loff_t ofs, | |
- size_t len) | |
-{ | |
- int ret; | |
- | |
- DEBUG(MTD_DEBUG_LEVEL3, | |
- "%s: lock status before, ofs=0x%08llx, len=0x%08zX\n", | |
- __func__, ofs, len); | |
- debug_dump_locks(mtd, do_printlockstatus_oneblock, ofs, len, 0); | |
- | |
- ret = cfi_sststd_varsize_frob(mtd, do_xxlock_oneblock, ofs, len, | |
- (void *)&DO_XXLOCK_ONEBLOCK_UNLOCK); | |
- | |
- DEBUG(MTD_DEBUG_LEVEL3, | |
- "%s: lock status after, ret=%d\n", | |
- __func__, ret); | |
- debug_dump_locks(mtd, do_printlockstatus_oneblock, ofs, len, 0); | |
- | |
- return ret; | |
-} | |
- | |
- | |
-static void cfi_sststd_destroy(struct mtd_info *mtd) | |
-{ | |
- struct map_info *map = mtd->priv; | |
- struct cfi_private *cfi = map->fldrv_priv; | |
- kfree(cfi->cmdset_priv); | |
- kfree(cfi->cfiq); | |
- kfree(cfi); | |
- kfree(mtd->eraseregions); | |
-} | |
- | |
-static char im_name[]="cfi_cmdset_0701"; | |
- | |
- | |
-int __init cfi_sststd_init(void) | |
-{ | |
- inter_module_register(im_name, THIS_MODULE, &cfi_cmdset_0701); | |
- return 0; | |
-} | |
- | |
- | |
-static void __exit cfi_sststd_exit(void) | |
-{ | |
- inter_module_unregister(im_name); | |
-} | |
- | |
- | |
-module_init(cfi_sststd_init); | |
-module_exit(cfi_sststd_exit); | |
- | |
-MODULE_LICENSE("GPL"); | |
-MODULE_AUTHOR("Crossnet Co. <info@crossnet.co.jp> et al."); | |
-MODULE_DESCRIPTION("MTD chip driver for SST flash chips"); | |
Binary files DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/cfi_cmdset_0701.o and kernel/kernel/linux/drivers/mtd/chips/cfi_cmdset_0701.o differ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/.cfi_cmdset_0701.o.cmd kernel/kernel/linux/drivers/mtd/chips/.cfi_cmdset_0701.o.cmd | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/.cfi_cmdset_0701.o.cmd 2010-01-11 21:16:01.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/chips/.cfi_cmdset_0701.o.cmd 1969-12-31 16:00:00.000000000 -0800 | |
@@ -1,245 +0,0 @@ | |
-cmd_drivers/mtd/chips/cfi_cmdset_0701.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/chips/.cfi_cmdset_0701.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=cfi_cmdset_0701 -DKBUILD_MODNAME=cfi_cmdset_0701 -c -o drivers/mtd/chips/cfi_cmdset_0701.o drivers/mtd/chips/cfi_cmdset_0701.c | |
- | |
-deps_drivers/mtd/chips/cfi_cmdset_0701.o := \ | |
- drivers/mtd/chips/cfi_cmdset_0701.c \ | |
- include/linux/config.h \ | |
- $(wildcard include/config/h.h) \ | |
- include/linux/module.h \ | |
- $(wildcard include/config/modules.h) \ | |
- $(wildcard include/config/modversions.h) \ | |
- $(wildcard include/config/module/unload.h) \ | |
- $(wildcard include/config/kallsyms.h) \ | |
- include/linux/sched.h \ | |
- $(wildcard include/config/numa.h) \ | |
- $(wildcard include/config/smp.h) \ | |
- $(wildcard include/config/security.h) \ | |
- $(wildcard include/config/preempt.h) \ | |
- include/asm/param.h \ | |
- include/asm-mips/mach-generic/param.h \ | |
- $(wildcard include/config/mips/brcm.h) \ | |
- include/linux/capability.h \ | |
- include/linux/types.h \ | |
- $(wildcard include/config/uid16.h) \ | |
- include/linux/posix_types.h \ | |
- include/linux/stddef.h \ | |
- include/asm/posix_types.h \ | |
- include/asm/sgidefs.h \ | |
- include/asm/types.h \ | |
- $(wildcard include/config/highmem.h) \ | |
- $(wildcard include/config/64bit/phys/addr.h) \ | |
- $(wildcard include/config/mips64.h) \ | |
- $(wildcard include/config/lbd.h) \ | |
- include/linux/compiler.h \ | |
- include/linux/compiler-gcc3.h \ | |
- include/linux/compiler-gcc.h \ | |
- include/linux/spinlock.h \ | |
- $(wildcard include/config/debug/spinlock.h) \ | |
- include/linux/preempt.h \ | |
- include/linux/linkage.h \ | |
- include/asm/linkage.h \ | |
- include/linux/thread_info.h \ | |
- include/linux/bitops.h \ | |
- include/asm/bitops.h \ | |
- $(wildcard include/config/mips32.h) \ | |
- include/asm/byteorder.h \ | |
- include/linux/byteorder/big_endian.h \ | |
- include/linux/byteorder/swab.h \ | |
- include/linux/byteorder/generic.h \ | |
- include/asm/cpu-features.h \ | |
- include/asm/cpu.h \ | |
- include/asm/cpu-info.h \ | |
- $(wildcard include/config/sgi/ip27.h) \ | |
- include/linux/cache.h \ | |
- include/linux/kernel.h \ | |
- $(wildcard include/config/debug/spinlock/sleep.h) \ | |
- /opt/toolchains-neutral-6358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
- include/asm/bug.h \ | |
- include/asm/break.h \ | |
- include/asm/cache.h \ | |
- $(wildcard include/config/mips/l1/cache/shift.h) \ | |
- include/cpu-feature-overrides.h \ | |
- $(wildcard include/config/bcm96358.h) \ | |
- include/asm/war.h \ | |
- $(wildcard include/config/sgi/ip22.h) \ | |
- $(wildcard include/config/sni/rm200/pci.h) \ | |
- $(wildcard include/config/cpu/r5432.h) \ | |
- $(wildcard include/config/sb1/pass/1/workarounds.h) \ | |
- $(wildcard include/config/sb1/pass/2/workarounds.h) \ | |
- $(wildcard include/config/mips/malta.h) \ | |
- $(wildcard include/config/mips/atlas.h) \ | |
- $(wildcard include/config/mips/sead.h) \ | |
- $(wildcard include/config/cpu/tx49xx.h) \ | |
- $(wildcard include/config/momenco/jaguar/atx.h) \ | |
- $(wildcard include/config/pmc/yosemite.h) \ | |
- include/asm/system.h \ | |
- $(wildcard include/config/cpu/has/sync.h) \ | |
- $(wildcard include/config/cpu/has/wb.h) \ | |
- include/asm/addrspace.h \ | |
- $(wildcard include/config/bcm/endpoint/module.h) \ | |
- $(wildcard include/config/cpu/r4300.h) \ | |
- $(wildcard include/config/cpu/r4x00.h) \ | |
- $(wildcard include/config/cpu/r5000.h) \ | |
- $(wildcard include/config/cpu/nevada.h) \ | |
- $(wildcard include/config/cpu/mips64.h) \ | |
- $(wildcard include/config/cpu/r8000.h) \ | |
- $(wildcard include/config/cpu/r10000.h) \ | |
- include/asm-mips/mach-generic/spaces.h \ | |
- $(wildcard include/config/dma/noncoherent.h) \ | |
- include/asm/ptrace.h \ | |
- include/asm/isadep.h \ | |
- $(wildcard include/config/cpu/r3000.h) \ | |
- $(wildcard include/config/cpu/tx39xx.h) \ | |
- include/asm/hazards.h \ | |
- $(wildcard include/config/cpu/rm9000.h) \ | |
- $(wildcard include/config/cpu/mipsr2.h) \ | |
- include/asm/thread_info.h \ | |
- $(wildcard include/config/page/size/4kb.h) \ | |
- $(wildcard include/config/page/size/8kb.h) \ | |
- $(wildcard include/config/page/size/16kb.h) \ | |
- $(wildcard include/config/page/size/64kb.h) \ | |
- $(wildcard include/config/debug/stack/usage.h) \ | |
- include/asm/processor.h \ | |
- $(wildcard include/config/cpu/has/prefetch.h) \ | |
- include/linux/threads.h \ | |
- $(wildcard include/config/nr/cpus.h) \ | |
- include/asm/cachectl.h \ | |
- include/asm/mipsregs.h \ | |
- $(wildcard include/config/cpu/vr41xx.h) \ | |
- include/asm/prefetch.h \ | |
- include/linux/stringify.h \ | |
- include/linux/timex.h \ | |
- $(wildcard include/config/time/interpolation.h) \ | |
- include/asm/timex.h \ | |
- include/asm-mips/mach-generic/timex.h \ | |
- include/linux/time.h \ | |
- include/linux/seqlock.h \ | |
- include/asm/div64.h \ | |
- include/linux/jiffies.h \ | |
- include/linux/rbtree.h \ | |
- include/linux/cpumask.h \ | |
- $(wildcard include/config/hotplug/cpu.h) \ | |
- include/linux/bitmap.h \ | |
- include/linux/string.h \ | |
- include/asm/string.h \ | |
- include/asm/semaphore.h \ | |
- include/asm/atomic.h \ | |
- include/linux/wait.h \ | |
- include/linux/list.h \ | |
- include/linux/prefetch.h \ | |
- include/linux/rwsem.h \ | |
- $(wildcard include/config/rwsem/generic/spinlock.h) \ | |
- include/linux/rwsem-spinlock.h \ | |
- include/asm/page.h \ | |
- $(wildcard include/config/discontigmem.h) \ | |
- $(wildcard include/config/limited/dma.h) \ | |
- include/asm/mmu.h \ | |
- include/linux/smp.h \ | |
- include/linux/sem.h \ | |
- $(wildcard include/config/sysvipc.h) \ | |
- include/linux/ipc.h \ | |
- include/asm/ipcbuf.h \ | |
- include/asm/sembuf.h \ | |
- include/linux/signal.h \ | |
- include/asm/signal.h \ | |
- $(wildcard include/config/binfmt/irix.h) \ | |
- include/asm/sigcontext.h \ | |
- include/asm/siginfo.h \ | |
- $(wildcard include/config/compat.h) \ | |
- include/asm-generic/siginfo.h \ | |
- include/linux/securebits.h \ | |
- include/linux/fs_struct.h \ | |
- include/linux/completion.h \ | |
- include/linux/pid.h \ | |
- include/linux/percpu.h \ | |
- include/linux/slab.h \ | |
- $(wildcard include/config/.h) \ | |
- include/linux/gfp.h \ | |
- include/linux/mmzone.h \ | |
- $(wildcard include/config/force/max/zoneorder.h) \ | |
- include/linux/numa.h \ | |
- include/linux/topology.h \ | |
- include/asm/topology.h \ | |
- include/asm-mips/mach-generic/topology.h \ | |
- include/asm-generic/topology.h \ | |
- include/linux/kmalloc_sizes.h \ | |
- $(wildcard include/config/mmu.h) \ | |
- $(wildcard include/config/large/allocs.h) \ | |
- include/asm/percpu.h \ | |
- include/asm-generic/percpu.h \ | |
- include/linux/param.h \ | |
- include/linux/resource.h \ | |
- include/asm/resource.h \ | |
- include/linux/timer.h \ | |
- include/linux/aio.h \ | |
- include/linux/workqueue.h \ | |
- include/linux/aio_abi.h \ | |
- include/asm/current.h \ | |
- include/linux/stat.h \ | |
- include/asm/stat.h \ | |
- include/linux/kmod.h \ | |
- $(wildcard include/config/kmod.h) \ | |
- $(wildcard include/config/hotplug.h) \ | |
- include/linux/errno.h \ | |
- include/asm/errno.h \ | |
- include/asm-generic/errno-base.h \ | |
- include/linux/elf.h \ | |
- include/asm/elf.h \ | |
- include/linux/kobject.h \ | |
- include/linux/sysfs.h \ | |
- $(wildcard include/config/sysfs.h) \ | |
- include/linux/moduleparam.h \ | |
- include/linux/init.h \ | |
- include/asm/local.h \ | |
- include/asm/module.h \ | |
- include/asm/uaccess.h \ | |
- include/asm/io.h \ | |
- $(wildcard include/config/swap/io/space.h) \ | |
- include/asm/pgtable-bits.h \ | |
- $(wildcard include/config/cpu/sb1.h) \ | |
- $(wildcard include/config/mips/uncached.h) \ | |
- include/asm-mips/mach-generic/mangle-port.h \ | |
- include/linux/delay.h \ | |
- include/asm/delay.h \ | |
- include/linux/interrupt.h \ | |
- include/asm/hardirq.h \ | |
- include/linux/irq.h \ | |
- $(wildcard include/config/arch/s390.h) \ | |
- include/asm/irq.h \ | |
- $(wildcard include/config/i8259.h) \ | |
- include/asm-mips/mach-generic/irq.h \ | |
- include/asm/hw_irq.h \ | |
- include/linux/profile.h \ | |
- $(wildcard include/config/profiling.h) \ | |
- include/linux/irq_cpustat.h \ | |
- include/linux/mtd/compatmac.h \ | |
- include/linux/mtd/map.h \ | |
- $(wildcard include/config/mtd/map/bank/width/1.h) \ | |
- $(wildcard include/config/mtd/map/bank/width/2.h) \ | |
- $(wildcard include/config/mtd/map/bank/width/4.h) \ | |
- $(wildcard include/config/mtd/map/bank/width/8.h) \ | |
- $(wildcard include/config/mtd/map/bank/width/16.h) \ | |
- $(wildcard include/config/mtd/map/bank/width/32.h) \ | |
- $(wildcard include/config/mtd/complex/mappings.h) \ | |
- include/asm/unaligned.h \ | |
- include/linux/mtd/mtd.h \ | |
- $(wildcard include/config/mtd/partitions.h) \ | |
- $(wildcard include/config/mtd/debug.h) \ | |
- $(wildcard include/config/mtd/debug/verbose.h) \ | |
- include/linux/version.h \ | |
- include/linux/uio.h \ | |
- include/mtd/mtd-abi.h \ | |
- include/linux/mtd/cfi.h \ | |
- $(wildcard include/config/mtd/cfi/i1.h) \ | |
- $(wildcard include/config/mtd/cfi/i2.h) \ | |
- $(wildcard include/config/mtd/cfi/i4.h) \ | |
- $(wildcard include/config/mtd/cfi/i8.h) \ | |
- include/linux/mtd/flashchip.h \ | |
- include/linux/mtd/cfi_endian.h \ | |
- $(wildcard include/config/mtd/cfi/adv/options.h) \ | |
- $(wildcard include/config/mtd/cfi/noswap.h) \ | |
- $(wildcard include/config/mtd/cfi/le/byte/swap.h) \ | |
- $(wildcard include/config/mtd/cfi/be/byte/swap.h) \ | |
- | |
-drivers/mtd/chips/cfi_cmdset_0701.o: $(deps_drivers/mtd/chips/cfi_cmdset_0701.o) | |
- | |
-$(deps_drivers/mtd/chips/cfi_cmdset_0701.o): | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/cfi_probe.c kernel/kernel/linux/drivers/mtd/chips/cfi_probe.c | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/cfi_probe.c 2010-01-11 20:06:58.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/chips/cfi_probe.c 2008-07-03 02:44:45.000000000 -0700 | |
@@ -84,15 +84,8 @@ | |
cfi_send_gen_cmd(0xFF, 0, base, map, cfi, cfi->device_type, NULL); | |
cfi_send_gen_cmd(0x98, 0x55, base, map, cfi, cfi->device_type, NULL); | |
- if (!qry_present(map,base,cfi)){ | |
- /* rather broken SST cfi probe (requires SST unlock) */ | |
- cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL); | |
- cfi_send_gen_cmd(0xAA, 0x5555, base, map, cfi, cfi->device_type, NULL); | |
- cfi_send_gen_cmd(0x55, 0x2AAA, base, map, cfi, cfi->device_type, NULL); | |
- cfi_send_gen_cmd(0x98, 0x5555, base, map, cfi, cfi->device_type, NULL); | |
- if (!qry_present(map,base,cfi)) | |
- return 0; | |
- } | |
+ if (!qry_present(map,base,cfi)) | |
+ return 0; | |
if (!cfi->numchips) { | |
/* This is the first time we're called. Set up the CFI | |
Binary files DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/cfi_probe.o and kernel/kernel/linux/drivers/mtd/chips/cfi_probe.o differ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/.cfi_probe.o.cmd kernel/kernel/linux/drivers/mtd/chips/.cfi_probe.o.cmd | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/.cfi_probe.o.cmd 2010-01-11 21:16:00.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/chips/.cfi_probe.o.cmd 2008-07-09 04:20:52.000000000 -0700 | |
@@ -1,4 +1,4 @@ | |
-cmd_drivers/mtd/chips/cfi_probe.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/chips/.cfi_probe.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=cfi_probe -DKBUILD_MODNAME=cfi_probe -c -o drivers/mtd/chips/cfi_probe.o drivers/mtd/chips/cfi_probe.c | |
+cmd_drivers/mtd/chips/cfi_probe.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/chips/.cfi_probe.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=cfi_probe -DKBUILD_MODNAME=cfi_probe -c -o drivers/mtd/chips/cfi_probe.o drivers/mtd/chips/cfi_probe.c | |
deps_drivers/mtd/chips/cfi_probe.o := \ | |
drivers/mtd/chips/cfi_probe.c \ | |
@@ -52,13 +52,14 @@ | |
include/linux/cache.h \ | |
include/linux/kernel.h \ | |
$(wildcard include/config/debug/spinlock/sleep.h) \ | |
- /opt/toolchains-neutral-6358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
+ /opt/toolchains-96358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
include/asm/bug.h \ | |
include/asm/break.h \ | |
include/asm/cache.h \ | |
$(wildcard include/config/mips/l1/cache/shift.h) \ | |
include/cpu-feature-overrides.h \ | |
$(wildcard include/config/bcm96358.h) \ | |
+ $(wildcard include/config/bcm96368.h) \ | |
include/asm/war.h \ | |
$(wildcard include/config/sgi/ip22.h) \ | |
$(wildcard include/config/sni/rm200/pci.h) \ | |
@@ -75,7 +76,6 @@ | |
$(wildcard include/config/cpu/has/sync.h) \ | |
$(wildcard include/config/cpu/has/wb.h) \ | |
include/asm/addrspace.h \ | |
- $(wildcard include/config/bcm/endpoint/module.h) \ | |
$(wildcard include/config/cpu/r4300.h) \ | |
$(wildcard include/config/cpu/r4x00.h) \ | |
$(wildcard include/config/cpu/r5000.h) \ | |
@@ -97,6 +97,7 @@ | |
$(wildcard include/config/page/size/8kb.h) \ | |
$(wildcard include/config/page/size/16kb.h) \ | |
$(wildcard include/config/page/size/64kb.h) \ | |
+ $(wildcard include/config/klob.h) \ | |
$(wildcard include/config/debug/stack/usage.h) \ | |
include/asm/processor.h \ | |
$(wildcard include/config/cpu/has/prefetch.h) \ | |
@@ -153,6 +154,7 @@ | |
include/linux/percpu.h \ | |
include/linux/slab.h \ | |
$(wildcard include/config/.h) \ | |
+ $(wildcard include/config/kmalloc/accounting.h) \ | |
include/linux/gfp.h \ | |
include/linux/mmzone.h \ | |
$(wildcard include/config/force/max/zoneorder.h) \ | |
@@ -199,6 +201,7 @@ | |
$(wildcard include/config/mips/uncached.h) \ | |
include/asm-mips/mach-generic/mangle-port.h \ | |
include/linux/interrupt.h \ | |
+ $(wildcard include/config/oprofile.h) \ | |
include/asm/hardirq.h \ | |
include/linux/irq.h \ | |
$(wildcard include/config/arch/s390.h) \ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/cfi_util.c kernel/kernel/linux/drivers/mtd/chips/cfi_util.c | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/cfi_util.c 2010-01-11 20:06:58.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/chips/cfi_util.c 2008-07-03 02:44:45.000000000 -0700 | |
@@ -57,15 +57,15 @@ | |
((unsigned char *)extp)[i] = | |
cfi_read_query(map, base+((adr+i)*ofs_factor)); | |
} | |
- | |
- /* 2006.11.22 patch */ | |
- /* 2006.06.06 add to display CFI MajorVersion */ | |
+ /* 2006.11.22 patch */ | |
+ /* 2006.06.06 add to display CFI MajorVersion */ | |
update_cfi_MajorVersion(extp->MajorVersion); | |
- /* 2006.05.24 add to support SAMSUNG Flash */ | |
+ /* 2006.05.24 add to support SAMSUNG Flash */ | |
//Ron remove this to support SAMSUNG Flash | |
#if 0 | |
- if ((extp->MajorVersion != '1' && extp->MajorVersion != '3') || | |
+ | |
+ if (extp->MajorVersion != '1' || | |
(extp->MinorVersion < '0' || extp->MinorVersion > '3')) { | |
printk(KERN_WARNING " Unknown %s Extended Query " | |
"version %c.%c.\n", name, extp->MajorVersion, | |
Binary files DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/cfi_util.o and kernel/kernel/linux/drivers/mtd/chips/cfi_util.o differ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/.cfi_util.o.cmd kernel/kernel/linux/drivers/mtd/chips/.cfi_util.o.cmd | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/.cfi_util.o.cmd 2010-01-11 21:16:00.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/chips/.cfi_util.o.cmd 2008-07-09 04:20:52.000000000 -0700 | |
@@ -1,4 +1,4 @@ | |
-cmd_drivers/mtd/chips/cfi_util.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/chips/.cfi_util.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=cfi_util -DKBUILD_MODNAME=cfi_util -c -o drivers/mtd/chips/cfi_util.o drivers/mtd/chips/cfi_util.c | |
+cmd_drivers/mtd/chips/cfi_util.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/chips/.cfi_util.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=cfi_util -DKBUILD_MODNAME=cfi_util -c -o drivers/mtd/chips/cfi_util.o drivers/mtd/chips/cfi_util.c | |
deps_drivers/mtd/chips/cfi_util.o := \ | |
drivers/mtd/chips/cfi_util.c \ | |
@@ -52,13 +52,14 @@ | |
include/linux/cache.h \ | |
include/linux/kernel.h \ | |
$(wildcard include/config/debug/spinlock/sleep.h) \ | |
- /opt/toolchains-neutral-6358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
+ /opt/toolchains-96358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
include/asm/bug.h \ | |
include/asm/break.h \ | |
include/asm/cache.h \ | |
$(wildcard include/config/mips/l1/cache/shift.h) \ | |
include/cpu-feature-overrides.h \ | |
$(wildcard include/config/bcm96358.h) \ | |
+ $(wildcard include/config/bcm96368.h) \ | |
include/asm/war.h \ | |
$(wildcard include/config/sgi/ip22.h) \ | |
$(wildcard include/config/sni/rm200/pci.h) \ | |
@@ -75,7 +76,6 @@ | |
$(wildcard include/config/cpu/has/sync.h) \ | |
$(wildcard include/config/cpu/has/wb.h) \ | |
include/asm/addrspace.h \ | |
- $(wildcard include/config/bcm/endpoint/module.h) \ | |
$(wildcard include/config/cpu/r4300.h) \ | |
$(wildcard include/config/cpu/r4x00.h) \ | |
$(wildcard include/config/cpu/r5000.h) \ | |
@@ -97,6 +97,7 @@ | |
$(wildcard include/config/page/size/8kb.h) \ | |
$(wildcard include/config/page/size/16kb.h) \ | |
$(wildcard include/config/page/size/64kb.h) \ | |
+ $(wildcard include/config/klob.h) \ | |
$(wildcard include/config/debug/stack/usage.h) \ | |
include/asm/processor.h \ | |
$(wildcard include/config/cpu/has/prefetch.h) \ | |
@@ -153,6 +154,7 @@ | |
include/linux/percpu.h \ | |
include/linux/slab.h \ | |
$(wildcard include/config/.h) \ | |
+ $(wildcard include/config/kmalloc/accounting.h) \ | |
include/linux/gfp.h \ | |
include/linux/mmzone.h \ | |
$(wildcard include/config/force/max/zoneorder.h) \ | |
@@ -201,6 +203,7 @@ | |
include/linux/delay.h \ | |
include/asm/delay.h \ | |
include/linux/interrupt.h \ | |
+ $(wildcard include/config/oprofile.h) \ | |
include/asm/hardirq.h \ | |
include/linux/irq.h \ | |
$(wildcard include/config/arch/s390.h) \ | |
Binary files DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/chipreg.o and kernel/kernel/linux/drivers/mtd/chips/chipreg.o differ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/.chipreg.o.cmd kernel/kernel/linux/drivers/mtd/chips/.chipreg.o.cmd | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/.chipreg.o.cmd 2010-01-11 21:15:59.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/chips/.chipreg.o.cmd 2008-07-09 04:20:52.000000000 -0700 | |
@@ -1,10 +1,10 @@ | |
-cmd_drivers/mtd/chips/chipreg.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/chips/.chipreg.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=chipreg -DKBUILD_MODNAME=chipreg -c -o drivers/mtd/chips/chipreg.o drivers/mtd/chips/chipreg.c | |
+cmd_drivers/mtd/chips/chipreg.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/chips/.chipreg.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=chipreg -DKBUILD_MODNAME=chipreg -c -o drivers/mtd/chips/chipreg.o drivers/mtd/chips/chipreg.c | |
deps_drivers/mtd/chips/chipreg.o := \ | |
drivers/mtd/chips/chipreg.c \ | |
include/linux/kernel.h \ | |
$(wildcard include/config/debug/spinlock/sleep.h) \ | |
- /opt/toolchains-neutral-6358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
+ /opt/toolchains-96358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
include/linux/linkage.h \ | |
include/linux/config.h \ | |
$(wildcard include/config/h.h) \ | |
@@ -59,6 +59,7 @@ | |
$(wildcard include/config/mips/l1/cache/shift.h) \ | |
include/cpu-feature-overrides.h \ | |
$(wildcard include/config/bcm96358.h) \ | |
+ $(wildcard include/config/bcm96368.h) \ | |
include/asm/war.h \ | |
$(wildcard include/config/sgi/ip22.h) \ | |
$(wildcard include/config/sni/rm200/pci.h) \ | |
@@ -75,7 +76,6 @@ | |
$(wildcard include/config/cpu/has/sync.h) \ | |
$(wildcard include/config/cpu/has/wb.h) \ | |
include/asm/addrspace.h \ | |
- $(wildcard include/config/bcm/endpoint/module.h) \ | |
$(wildcard include/config/cpu/r4300.h) \ | |
$(wildcard include/config/cpu/r4x00.h) \ | |
$(wildcard include/config/cpu/r5000.h) \ | |
@@ -97,6 +97,7 @@ | |
$(wildcard include/config/page/size/8kb.h) \ | |
$(wildcard include/config/page/size/16kb.h) \ | |
$(wildcard include/config/page/size/64kb.h) \ | |
+ $(wildcard include/config/klob.h) \ | |
$(wildcard include/config/debug/stack/usage.h) \ | |
include/asm/processor.h \ | |
$(wildcard include/config/cpu/has/prefetch.h) \ | |
@@ -153,6 +154,7 @@ | |
include/linux/percpu.h \ | |
include/linux/slab.h \ | |
$(wildcard include/config/.h) \ | |
+ $(wildcard include/config/kmalloc/accounting.h) \ | |
include/linux/gfp.h \ | |
include/linux/mmzone.h \ | |
$(wildcard include/config/force/max/zoneorder.h) \ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/gen_probe.c kernel/kernel/linux/drivers/mtd/chips/gen_probe.c | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/gen_probe.c 2010-01-11 20:06:58.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/chips/gen_probe.c 2008-07-03 02:44:45.000000000 -0700 | |
@@ -235,20 +235,18 @@ | |
#endif | |
#ifdef CONFIG_MTD_CFI_AMDSTD | |
case 0x0002: | |
- /* 2006.11.22 patch */ | |
- /* Ron add for support winbond flash */ | |
- case 0x0006: | |
return cfi_cmdset_0002(map, primary); | |
+ /* 2006.11.22 patch */ | |
+ /* Ron add for support winbond flash */ | |
+ case 0x0006: | |
+ return cfi_cmdset_0002(map, primary); | |
#endif | |
#ifdef CONFIG_MTD_CFI_STAA | |
case 0x0020: | |
return cfi_cmdset_0020(map, primary); | |
#endif | |
-#ifdef CONFIG_MTD_CFI_SSTSTD | |
- case 0x0701: | |
- return cfi_cmdset_0701(map, primary); | |
-#endif | |
} | |
+ | |
return cfi_cmdset_unknown(map, primary); | |
} | |
Binary files DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/gen_probe.o and kernel/kernel/linux/drivers/mtd/chips/gen_probe.o differ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/.gen_probe.o.cmd kernel/kernel/linux/drivers/mtd/chips/.gen_probe.o.cmd | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/.gen_probe.o.cmd 2010-01-11 21:16:02.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/chips/.gen_probe.o.cmd 2008-07-09 04:20:53.000000000 -0700 | |
@@ -1,4 +1,4 @@ | |
-cmd_drivers/mtd/chips/gen_probe.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/chips/.gen_probe.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=gen_probe -DKBUILD_MODNAME=gen_probe -c -o drivers/mtd/chips/gen_probe.o drivers/mtd/chips/gen_probe.c | |
+cmd_drivers/mtd/chips/gen_probe.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/chips/.gen_probe.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=gen_probe -DKBUILD_MODNAME=gen_probe -c -o drivers/mtd/chips/gen_probe.o drivers/mtd/chips/gen_probe.c | |
deps_drivers/mtd/chips/gen_probe.o := \ | |
drivers/mtd/chips/gen_probe.c \ | |
@@ -6,10 +6,9 @@ | |
$(wildcard include/config/mtd/cfi/intelext.h) \ | |
$(wildcard include/config/mtd/cfi/amdstd.h) \ | |
$(wildcard include/config/mtd/cfi/staa.h) \ | |
- $(wildcard include/config/mtd/cfi/sststd.h) \ | |
include/linux/kernel.h \ | |
$(wildcard include/config/debug/spinlock/sleep.h) \ | |
- /opt/toolchains-neutral-6358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
+ /opt/toolchains-96358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
include/linux/linkage.h \ | |
include/linux/config.h \ | |
$(wildcard include/config/h.h) \ | |
@@ -36,6 +35,8 @@ | |
include/asm/break.h \ | |
include/linux/slab.h \ | |
$(wildcard include/config/.h) \ | |
+ $(wildcard include/config/kmalloc/accounting.h) \ | |
+ $(wildcard include/config/klob.h) \ | |
include/linux/gfp.h \ | |
$(wildcard include/config/numa.h) \ | |
include/linux/mmzone.h \ | |
@@ -60,6 +61,7 @@ | |
$(wildcard include/config/mips/l1/cache/shift.h) \ | |
include/cpu-feature-overrides.h \ | |
$(wildcard include/config/bcm96358.h) \ | |
+ $(wildcard include/config/bcm96368.h) \ | |
include/asm/war.h \ | |
$(wildcard include/config/sgi/ip22.h) \ | |
$(wildcard include/config/sni/rm200/pci.h) \ | |
@@ -76,7 +78,6 @@ | |
$(wildcard include/config/cpu/has/sync.h) \ | |
$(wildcard include/config/cpu/has/wb.h) \ | |
include/asm/addrspace.h \ | |
- $(wildcard include/config/bcm/endpoint/module.h) \ | |
$(wildcard include/config/cpu/r4300.h) \ | |
$(wildcard include/config/cpu/r4x00.h) \ | |
$(wildcard include/config/cpu/r5000.h) \ | |
@@ -227,6 +228,7 @@ | |
include/linux/delay.h \ | |
include/asm/delay.h \ | |
include/linux/interrupt.h \ | |
+ $(wildcard include/config/oprofile.h) \ | |
include/asm/hardirq.h \ | |
include/linux/irq.h \ | |
$(wildcard include/config/arch/s390.h) \ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/Kconfig kernel/kernel/linux/drivers/mtd/chips/Kconfig | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/Kconfig 2010-01-11 20:06:58.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/chips/Kconfig 2008-07-03 02:44:45.000000000 -0700 | |
@@ -202,14 +202,6 @@ | |
sets which a CFI-compliant chip may claim to implement. This code | |
provides support for one of those command sets. | |
-config MTD_CFI_SSTSTD | |
- tristate "Support for SST flash chips" | |
- depends on MTD_GEN_PROBE | |
- help | |
- The Common Flash Interface defines a number of different command | |
- sets which a CFI-compliant chip may claim to implement. This code | |
- provides support for one of those command sets. | |
- | |
config MTD_CFI_UTIL | |
tristate | |
default y if MTD_CFI_INTELEXT=y || MTD_CFI_AMDSTD=y || MTD_CFI_STAA=y | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/Makefile kernel/kernel/linux/drivers/mtd/chips/Makefile | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/chips/Makefile 2010-01-11 20:06:58.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/chips/Makefile 2008-07-03 02:44:45.000000000 -0700 | |
@@ -14,7 +14,6 @@ | |
obj-$(CONFIG_MTD_AMDSTD) += amd_flash.o | |
obj-$(CONFIG_MTD_CFI) += cfi_probe.o | |
obj-$(CONFIG_MTD_CFI_UTIL) += cfi_util.o | |
-obj-$(CONFIG_MTD_CFI_SSTSTD) += cfi_cmdset_0701.o | |
obj-$(CONFIG_MTD_CFI_STAA) += cfi_cmdset_0020.o | |
obj-$(CONFIG_MTD_CFI_AMDSTD) += cfi_cmdset_0002.o | |
obj-$(CONFIG_MTD_CFI_INTELEXT) += cfi_cmdset_0001.o | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/maps/bcm963xx.c kernel/kernel/linux/drivers/mtd/maps/bcm963xx.c | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/maps/bcm963xx.c 2010-01-11 20:06:57.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/maps/bcm963xx.c 2008-07-03 02:44:45.000000000 -0700 | |
@@ -23,8 +23,8 @@ | |
#define VERSION "1.0" | |
extern PFILE_TAG kerSysImageTagGet(void); | |
- | |
static struct mtd_info *mymtd; | |
+ | |
/* 2006.11.22 patch */ | |
#ifdef CONFIG_MTD_FLASH_2M | |
static struct mtd_partition brcm_partition_info[5];//follow JIM's way for POT | |
@@ -32,70 +32,74 @@ | |
static struct mtd_partition brcm_partition_info[6];//follow JIM's way for POT | |
#endif | |
#ifdef CONFIG_MTD_FLASH_8M | |
-#define CFE_ADDR 0xbf000000 | |
+#define CFE_ADDR 0xbf000000 | |
#else | |
-#define CFE_ADDR 0xbfc00000 | |
+#define CFE_ADDR 0xbfc00000 | |
#endif | |
-#define CFE_SIZE 64 << 10 | |
-#define NVRAM_SIZE 64 << 10 | |
-#define DPF_SIZE 64 << 10 | |
+#define CFE_SIZE (64 << 10) | |
+#define NVRAM_SIZE (64 << 10) | |
+#define DPF_SIZE (64 << 10) | |
#define TAG_SIZE 0x100 | |
+ | |
#ifdef CONFIG_MTD_FLASH_2M | |
-#define FLASH_SIZE 2048 << 10 | |
-#define FS_KERNEL_SIZE 0x1D0000 | |
-#define DPF_ADDR 0x1E0000 | |
-#define NVRAM_ADDR 0x1F0000 | |
+#define FLASH_SIZE (2048 << 10) | |
#endif | |
- | |
#ifdef CONFIG_MTD_FLASH_4M | |
-#define FLASH_SIZE 4096 << 10 | |
-#define FS_KERNEL_SIZE 0x3D0000 | |
-#define DPF_ADDR 0x3E0000 | |
-#define NVRAM_ADDR 0x3F0000 | |
+#define FLASH_SIZE (4096 << 10) | |
#endif | |
#ifdef CONFIG_MTD_FLASH_8M | |
-#define FLASH_SIZE 8192 << 10 | |
-#define FS_KERNEL_SIZE 0x7D0000 | |
-#define DPF_ADDR 0x7E0000 | |
-#define NVRAM_ADDR 0x7F0000 | |
+#define FLASH_SIZE (8192 << 10) | |
#endif | |
+#define FS_KERNEL_SIZE (FLASH_SIZE - FS_KERNEL_ADDR) | |
+ | |
+#define DPF_ADDR CFE_SIZE | |
+#define NVRAM_ADDR (DPF_ADDR + DPF_SIZE) | |
+#define FS_KERNEL_ADDR (NVRAM_ADDR + NVRAM_SIZE) | |
+ | |
/* end */ | |
+ | |
static map_word brcm_physmap_read16(struct map_info *map, unsigned long ofs) | |
{ | |
map_word val; | |
+#if 0 /* We added voluntary preemption and locks to flash driver, so everything should go to flash driver such that locks are in effect */ | |
/* If the requested flash address is in a memory mapped range, use | |
* __raw_readw. Otherwise, use kerSysReadFromFlash. | |
*/ | |
if(((map->map_priv_1 & ~0xfff00000) + ofs + sizeof(short)) < map->map_priv_2) | |
val.x[0] = __raw_readw(map->map_priv_1 + ofs); | |
else | |
- kerSysReadFromFlash( &val.x[0], map->map_priv_1 + ofs, sizeof(short) ); | |
- | |
+#endif | |
+// kerSysReadFromFlash( &val.x[0], map->map_priv_1 + ofs, sizeof(short) ); | |
+ val.x[0] = __raw_readw(map->map_priv_1 + ofs); | |
return val; | |
} | |
static void brcm_physmap_copy_from(struct map_info *map, void *to, unsigned long from, ssize_t len) | |
{ | |
+#if 0 /* We added voluntary preemption and locks to flash driver, so everything should go to flash driver such that locks are in effect */ | |
/* If the requested flash address is in a memory mapped range, use | |
* memcpy_fromio. Otherwise, use kerSysReadFromFlash. | |
*/ | |
if( ((map->map_priv_1 & ~0xfff00000) + from + len) < map->map_priv_2 ) | |
memcpy_fromio(to, map->map_priv_1 + from, len); | |
else | |
- kerSysReadFromFlash( to, map->map_priv_1 + from, len ); | |
+#endif | |
+// kerSysReadFromFlash( to, map->map_priv_1 + from, len ); | |
+ memcpy_fromio(to, map->map_priv_1 + from, len); | |
} | |
+ | |
/* 2006.11.22 patch */ | |
static void brcm_physmap_write16(struct map_info *map, __u16 d, unsigned long adr) | |
{ | |
- __raw_writew(d, map->map_priv_1 + adr); | |
- mb(); | |
+ __raw_writew(d, map->map_priv_1 + adr); | |
+ mb(); | |
} | |
void brcm_physmap_copy_to(struct map_info *map, unsigned long to, const void *from, ssize_t len) | |
{ | |
- memcpy_toio(map->map_priv_1 + to, from, len); | |
+ memcpy_toio(map->map_priv_1 + to, from, len); | |
} | |
/* end */ | |
@@ -107,13 +111,13 @@ | |
.copy_from = brcm_physmap_copy_from, | |
/* 2006.11.22 patch */ | |
.write = brcm_physmap_write16, | |
- .copy_to = brcm_physmap_copy_to | |
+ .copy_to = brcm_physmap_copy_to | |
}; | |
static int __init init_brcm_physmap(void) | |
{ | |
PFILE_TAG pTag = NULL; | |
- //u_int32_t rootfs_addr, kernel_addr; | |
+// u_int32_t rootfs_addr, kernel_addr; | |
/* 2006.11.22 patch */ | |
u_int32_t rootfs_addr, kernel_addr, fs_len, cfe_len; | |
@@ -127,16 +131,18 @@ | |
rootfs_addr = (u_int32_t) simple_strtoul(pTag->rootfsAddress, NULL, 10) + BOOT_OFFSET; | |
kernel_addr = (u_int32_t) simple_strtoul(pTag->kernelAddress, NULL, 10) + BOOT_OFFSET; | |
+ | |
/* 2006.11.22 patch */ | |
//brcm_physmap_map.size = kernel_addr - rootfs_addr; | |
brcm_physmap_map.size = FLASH_SIZE; | |
- | |
fs_len = kernel_addr - rootfs_addr; | |
- cfe_len=CFE_SIZE; | |
+ cfe_len=CFE_SIZE; | |
/* Ron mapping from fs */ | |
//brcm_physmap_map.map_priv_1 = (unsigned long)rootfs_addr; | |
brcm_physmap_map.map_priv_1 = (unsigned long)CFE_ADDR; | |
printk("kernel_addr == 0x%x rootfs_addr == 0x%x\n",kernel_addr,rootfs_addr); | |
+ | |
+ | |
/* Set map_priv_2 to the amount of flash memory that is memory mapped to | |
* the flash base address. On the BCM6338, serial flash parts are only | |
* memory mapped up to 1MB even though the flash part may be bigger. | |
@@ -152,6 +158,7 @@ | |
printk("Wrong rootfs size\n"); | |
return -EIO; | |
} | |
+ | |
/* 2006.11.22 patch */ | |
/*mymtd = do_map_probe("map_rom", &brcm_physmap_map); | |
if (mymtd) { | |
@@ -163,32 +170,34 @@ | |
return -ENXIO;*/ | |
mymtd = do_map_probe("cfi_probe", &brcm_physmap_map); | |
- if (!mymtd) | |
- return -EIO; | |
+ if (!mymtd) | |
+ return -EIO; | |
mymtd->owner = THIS_MODULE; | |
/* Ron file system */ | |
- brcm_partition_info[0].name = "fs"; | |
- brcm_partition_info[0].offset = (cfe_len + TAG_SIZE); | |
- brcm_partition_info[0].size = fs_len; | |
- brcm_partition_info[0].mask_flags = 0; | |
- | |
- /* Ron tag + file system + kernel */ | |
- brcm_partition_info[1].name = "tag+fs+kernel"; | |
- brcm_partition_info[1].offset = cfe_len; | |
- brcm_partition_info[1].size = FS_KERNEL_SIZE; | |
- brcm_partition_info[1].mask_flags = 0; | |
+ brcm_partition_info[0].name = "fs"; | |
+ //brcm_partition_info[0].offset = (cfe_len + TAG_SIZE); | |
+ brcm_partition_info[0].offset = (FS_KERNEL_ADDR + TAG_SIZE); | |
+ brcm_partition_info[0].size = fs_len; | |
+ brcm_partition_info[0].mask_flags = 0; | |
+ | |
+ /* Ron tag + file system + kernel */ | |
+ brcm_partition_info[1].name = "tag+fs+kernel"; | |
+ //brcm_partition_info[1].offset = cfe_len; | |
+ brcm_partition_info[1].offset = FS_KERNEL_ADDR; | |
+ brcm_partition_info[1].size = FS_KERNEL_SIZE; | |
+ brcm_partition_info[1].mask_flags = 0; | |
/* Ron bootloader */ | |
- brcm_partition_info[2].name = "bootloader"; | |
- brcm_partition_info[2].offset = 0x00; | |
- brcm_partition_info[2].size = cfe_len; | |
- brcm_partition_info[2].mask_flags = 0; | |
- | |
- /* Ron nvram */ | |
- brcm_partition_info[3].name = "nvram"; | |
- brcm_partition_info[3].offset = NVRAM_ADDR; | |
- brcm_partition_info[3].size = NVRAM_SIZE; | |
- brcm_partition_info[3].mask_flags = 0; | |
+ brcm_partition_info[2].name = "bootloader"; | |
+ brcm_partition_info[2].offset = 0x00; | |
+ brcm_partition_info[2].size = cfe_len; | |
+ brcm_partition_info[2].mask_flags = 0; | |
+ | |
+ /* Ron nvram */ | |
+ brcm_partition_info[3].name = "nvram"; | |
+ brcm_partition_info[3].offset = NVRAM_ADDR; | |
+ brcm_partition_info[3].size = NVRAM_SIZE; | |
+ brcm_partition_info[3].mask_flags = 0; | |
/* JIM add for mapping to bootloader */ | |
brcm_partition_info[4].name = "bootloader"; | |
@@ -201,12 +210,11 @@ | |
brcm_partition_info[5].offset = DPF_ADDR; | |
brcm_partition_info[5].size = DPF_SIZE; | |
brcm_partition_info[5].mask_flags = 0; | |
- | |
- | |
+ | |
add_mtd_partitions(mymtd, brcm_partition_info, 6);//follow JIM's way for POT | |
+ | |
+ return 0; | |
- | |
- return 0; | |
} | |
static void __exit cleanup_brcm_physmap(void) | |
Binary files DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/maps/bcm963xx.o and kernel/kernel/linux/drivers/mtd/maps/bcm963xx.o differ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/maps/.bcm963xx.o.cmd kernel/kernel/linux/drivers/mtd/maps/.bcm963xx.o.cmd | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/maps/.bcm963xx.o.cmd 2010-01-11 21:16:03.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/maps/.bcm963xx.o.cmd 2008-07-09 04:20:53.000000000 -0700 | |
@@ -1,4 +1,4 @@ | |
-cmd_drivers/mtd/maps/bcm963xx.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/maps/.bcm963xx.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -I/Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/bcmdrivers/opensource/include/bcm963xx -I/Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/shared/opensource/include/bcm963xx -DKBUILD_BASENAME=bcm963xx -DKBUILD_MODNAME=bcm963xx -c -o drivers/mtd/maps/bcm963xx.o drivers/mtd/maps/bcm963xx.c | |
+cmd_drivers/mtd/maps/bcm963xx.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/maps/.bcm963xx.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -I/svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/bcmdrivers/opensource/include/bcm963xx -I/svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/shared/opensource/include/bcm963xx -DKBUILD_BASENAME=bcm963xx -DKBUILD_MODNAME=bcm963xx -c -o drivers/mtd/maps/bcm963xx.o drivers/mtd/maps/bcm963xx.c | |
deps_drivers/mtd/maps/bcm963xx.o := \ | |
drivers/mtd/maps/bcm963xx.c \ | |
@@ -55,13 +55,14 @@ | |
include/linux/cache.h \ | |
include/linux/kernel.h \ | |
$(wildcard include/config/debug/spinlock/sleep.h) \ | |
- /opt/toolchains-neutral-6358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
+ /opt/toolchains-96358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
include/asm/bug.h \ | |
include/asm/break.h \ | |
include/asm/cache.h \ | |
$(wildcard include/config/mips/l1/cache/shift.h) \ | |
include/cpu-feature-overrides.h \ | |
$(wildcard include/config/bcm96358.h) \ | |
+ $(wildcard include/config/bcm96368.h) \ | |
include/asm/war.h \ | |
$(wildcard include/config/sgi/ip22.h) \ | |
$(wildcard include/config/sni/rm200/pci.h) \ | |
@@ -78,7 +79,6 @@ | |
$(wildcard include/config/cpu/has/sync.h) \ | |
$(wildcard include/config/cpu/has/wb.h) \ | |
include/asm/addrspace.h \ | |
- $(wildcard include/config/bcm/endpoint/module.h) \ | |
$(wildcard include/config/cpu/r4300.h) \ | |
$(wildcard include/config/cpu/r4x00.h) \ | |
$(wildcard include/config/cpu/r5000.h) \ | |
@@ -100,6 +100,7 @@ | |
$(wildcard include/config/page/size/8kb.h) \ | |
$(wildcard include/config/page/size/16kb.h) \ | |
$(wildcard include/config/page/size/64kb.h) \ | |
+ $(wildcard include/config/klob.h) \ | |
$(wildcard include/config/debug/stack/usage.h) \ | |
include/asm/processor.h \ | |
$(wildcard include/config/cpu/has/prefetch.h) \ | |
@@ -156,6 +157,7 @@ | |
include/linux/percpu.h \ | |
include/linux/slab.h \ | |
$(wildcard include/config/.h) \ | |
+ $(wildcard include/config/kmalloc/accounting.h) \ | |
include/linux/gfp.h \ | |
include/linux/mmzone.h \ | |
$(wildcard include/config/force/max/zoneorder.h) \ | |
@@ -219,17 +221,18 @@ | |
$(wildcard include/config/mtd/complex/mappings.h) \ | |
include/asm/unaligned.h \ | |
include/linux/mtd/partitions.h \ | |
- /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/bcmdrivers/opensource/include/bcm963xx/board.h \ | |
- $(wildcard include/config/bcm96348.h) \ | |
- /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/shared/opensource/include/bcm963xx/bcmTag.h \ | |
- /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/bcmdrivers/opensource/include/bcm963xx/bcm_map_part.h \ | |
+ /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/bcmdrivers/opensource/include/bcm963xx/board.h \ | |
+ /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/shared/opensource/include/bcm963xx/bcm_hwdefs.h \ | |
$(wildcard include/config/bcm96338.h) \ | |
- /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/shared/opensource/include/bcm963xx/6348_map_part.h \ | |
+ /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/shared/opensource/include/bcm963xx/bcmTag.h \ | |
+ /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/bcmdrivers/opensource/include/bcm963xx/bcm_map_part.h \ | |
+ $(wildcard include/config/bcm96348.h) \ | |
+ /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/shared/opensource/include/bcm963xx/6348_map_part.h \ | |
$(wildcard include/config/type.h) \ | |
$(wildcard include/config/timer.h) \ | |
$(wildcard include/config/timer/retry/mask.h) \ | |
$(wildcard include/config/timer/trdy/mask.h) \ | |
- /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/bcmdrivers/opensource/include/bcm963xx/bcmtypes.h \ | |
+ /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/bcmdrivers/opensource/include/bcm963xx/bcmtypes.h \ | |
drivers/mtd/maps/bcm963xx.o: $(deps_drivers/mtd/maps/bcm963xx.o) | |
Binary files DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/maps/built-in.o and kernel/kernel/linux/drivers/mtd/maps/built-in.o differ | |
Binary files DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/maps/map_funcs.o and kernel/kernel/linux/drivers/mtd/maps/map_funcs.o differ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/maps/.map_funcs.o.cmd kernel/kernel/linux/drivers/mtd/maps/.map_funcs.o.cmd | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/maps/.map_funcs.o.cmd 2010-01-11 21:16:03.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/maps/.map_funcs.o.cmd 2008-07-09 04:20:53.000000000 -0700 | |
@@ -1,11 +1,11 @@ | |
-cmd_drivers/mtd/maps/map_funcs.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/maps/.map_funcs.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -I/Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/bcmdrivers/opensource/include/bcm963xx -I/Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/shared/opensource/include/bcm963xx -DKBUILD_BASENAME=map_funcs -DKBUILD_MODNAME=map_funcs -c -o drivers/mtd/maps/map_funcs.o drivers/mtd/maps/map_funcs.c | |
+cmd_drivers/mtd/maps/map_funcs.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/maps/.map_funcs.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -I/svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/bcmdrivers/opensource/include/bcm963xx -I/svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/shared/opensource/include/bcm963xx -DKBUILD_BASENAME=map_funcs -DKBUILD_MODNAME=map_funcs -c -o drivers/mtd/maps/map_funcs.o drivers/mtd/maps/map_funcs.c | |
deps_drivers/mtd/maps/map_funcs.o := \ | |
drivers/mtd/maps/map_funcs.c \ | |
$(wildcard include/config/complex/mappings.h) \ | |
include/linux/kernel.h \ | |
$(wildcard include/config/debug/spinlock/sleep.h) \ | |
- /opt/toolchains-neutral-6358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
+ /opt/toolchains-96358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
include/linux/linkage.h \ | |
include/linux/config.h \ | |
$(wildcard include/config/h.h) \ | |
@@ -60,6 +60,7 @@ | |
$(wildcard include/config/mips/l1/cache/shift.h) \ | |
include/cpu-feature-overrides.h \ | |
$(wildcard include/config/bcm96358.h) \ | |
+ $(wildcard include/config/bcm96368.h) \ | |
include/asm/war.h \ | |
$(wildcard include/config/sgi/ip22.h) \ | |
$(wildcard include/config/sni/rm200/pci.h) \ | |
@@ -76,7 +77,6 @@ | |
$(wildcard include/config/cpu/has/sync.h) \ | |
$(wildcard include/config/cpu/has/wb.h) \ | |
include/asm/addrspace.h \ | |
- $(wildcard include/config/bcm/endpoint/module.h) \ | |
$(wildcard include/config/cpu/r4300.h) \ | |
$(wildcard include/config/cpu/r4x00.h) \ | |
$(wildcard include/config/cpu/r5000.h) \ | |
@@ -98,6 +98,7 @@ | |
$(wildcard include/config/page/size/8kb.h) \ | |
$(wildcard include/config/page/size/16kb.h) \ | |
$(wildcard include/config/page/size/64kb.h) \ | |
+ $(wildcard include/config/klob.h) \ | |
$(wildcard include/config/debug/stack/usage.h) \ | |
include/asm/processor.h \ | |
$(wildcard include/config/cpu/has/prefetch.h) \ | |
@@ -154,6 +155,7 @@ | |
include/linux/percpu.h \ | |
include/linux/slab.h \ | |
$(wildcard include/config/.h) \ | |
+ $(wildcard include/config/kmalloc/accounting.h) \ | |
include/linux/gfp.h \ | |
include/linux/mmzone.h \ | |
$(wildcard include/config/force/max/zoneorder.h) \ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/mtd_blkdevs.c kernel/kernel/linux/drivers/mtd/mtd_blkdevs.c | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/mtd_blkdevs.c 2010-01-11 20:06:58.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/mtd_blkdevs.c 2008-07-03 02:44:45.000000000 -0700 | |
@@ -22,6 +22,9 @@ | |
#include <asm/semaphore.h> | |
#include <asm/uaccess.h> | |
#include <linux/devfs_fs_kernel.h> | |
+#if defined(CONFIG_MIPS_BRCM) | |
+#include <linux/interrupt.h> | |
+#endif | |
static LIST_HEAD(blktrans_majors); | |
@@ -80,6 +83,14 @@ | |
struct mtd_blktrans_ops *tr = arg; | |
struct request_queue *rq = tr->blkcore_priv->rq; | |
+#if defined(CONFIG_MIPS_BRCM) | |
+#if BRCM_SOFTIRQD_RT | |
+ /* Need to be at the same priority as ksoftirqd so loading application from flash won't get blocked (by network traffic) */ | |
+ struct sched_param param = { .sched_priority = BRCM_SOFTIRQD_RTPRIO }; | |
+ sys_sched_setscheduler(current->pid, SCHED_RR, ¶m); | |
+#endif | |
+#endif | |
+ | |
/* we might get involved when memory gets low, so use PF_MEMALLOC */ | |
current->flags |= PF_MEMALLOC; | |
Binary files DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/mtd_blkdevs.o and kernel/kernel/linux/drivers/mtd/mtd_blkdevs.o differ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/.mtd_blkdevs.o.cmd kernel/kernel/linux/drivers/mtd/.mtd_blkdevs.o.cmd | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/.mtd_blkdevs.o.cmd 2010-01-11 21:15:59.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/.mtd_blkdevs.o.cmd 2008-07-09 04:20:51.000000000 -0700 | |
@@ -1,10 +1,11 @@ | |
-cmd_drivers/mtd/mtd_blkdevs.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/.mtd_blkdevs.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=mtd_blkdevs -DKBUILD_MODNAME=mtd_blkdevs -c -o drivers/mtd/mtd_blkdevs.o drivers/mtd/mtd_blkdevs.c | |
+cmd_drivers/mtd/mtd_blkdevs.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/.mtd_blkdevs.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=mtd_blkdevs -DKBUILD_MODNAME=mtd_blkdevs -c -o drivers/mtd/mtd_blkdevs.o drivers/mtd/mtd_blkdevs.c | |
deps_drivers/mtd/mtd_blkdevs.o := \ | |
drivers/mtd/mtd_blkdevs.c \ | |
+ $(wildcard include/config/mips/brcm.h) \ | |
include/linux/kernel.h \ | |
$(wildcard include/config/debug/spinlock/sleep.h) \ | |
- /opt/toolchains-neutral-6358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
+ /opt/toolchains-96358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
include/linux/linkage.h \ | |
include/linux/config.h \ | |
$(wildcard include/config/h.h) \ | |
@@ -31,6 +32,8 @@ | |
include/asm/break.h \ | |
include/linux/slab.h \ | |
$(wildcard include/config/.h) \ | |
+ $(wildcard include/config/kmalloc/accounting.h) \ | |
+ $(wildcard include/config/klob.h) \ | |
include/linux/gfp.h \ | |
$(wildcard include/config/numa.h) \ | |
include/linux/mmzone.h \ | |
@@ -47,7 +50,6 @@ | |
$(wildcard include/config/mips32.h) \ | |
include/asm/cpu-features.h \ | |
include/asm/cpu.h \ | |
- $(wildcard include/config/mips/brcm.h) \ | |
include/asm/cpu-info.h \ | |
$(wildcard include/config/sgi/ip27.h) \ | |
include/linux/cache.h \ | |
@@ -55,6 +57,7 @@ | |
$(wildcard include/config/mips/l1/cache/shift.h) \ | |
include/cpu-feature-overrides.h \ | |
$(wildcard include/config/bcm96358.h) \ | |
+ $(wildcard include/config/bcm96368.h) \ | |
include/asm/war.h \ | |
$(wildcard include/config/sgi/ip22.h) \ | |
$(wildcard include/config/sni/rm200/pci.h) \ | |
@@ -71,7 +74,6 @@ | |
$(wildcard include/config/cpu/has/sync.h) \ | |
$(wildcard include/config/cpu/has/wb.h) \ | |
include/asm/addrspace.h \ | |
- $(wildcard include/config/bcm/endpoint/module.h) \ | |
$(wildcard include/config/cpu/r4300.h) \ | |
$(wildcard include/config/cpu/r4x00.h) \ | |
$(wildcard include/config/cpu/r5000.h) \ | |
@@ -265,6 +267,18 @@ | |
include/linux/hdreg.h \ | |
include/linux/devfs_fs_kernel.h \ | |
$(wildcard include/config/devfs/fs.h) \ | |
+ include/linux/interrupt.h \ | |
+ $(wildcard include/config/oprofile.h) \ | |
+ include/asm/hardirq.h \ | |
+ include/linux/irq.h \ | |
+ $(wildcard include/config/arch/s390.h) \ | |
+ include/asm/irq.h \ | |
+ $(wildcard include/config/i8259.h) \ | |
+ include/asm-mips/mach-generic/irq.h \ | |
+ include/asm/hw_irq.h \ | |
+ include/linux/profile.h \ | |
+ $(wildcard include/config/profiling.h) \ | |
+ include/linux/irq_cpustat.h \ | |
drivers/mtd/mtd_blkdevs.o: $(deps_drivers/mtd/mtd_blkdevs.o) | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/mtdblock.c kernel/kernel/linux/drivers/mtd/mtdblock.c | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/mtdblock.c 2010-01-11 20:06:58.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/mtdblock.c 2008-07-03 02:44:45.000000000 -0700 | |
@@ -56,33 +56,36 @@ | |
/* | |
* First, let's erase the flash block. | |
*/ | |
- /* 2009.3.23 patch */ | |
- // POT {{ : not erase bootloader | |
- //printk ("erase_write: %d %s\n", mtd->index,mtd->name) ; | |
- if (mtd->index != 2 ){ | |
- init_waitqueue_head(&wait_q); | |
- erase.mtd = mtd; | |
- erase.callback = erase_callback; | |
- erase.addr = pos; | |
- erase.len = len; | |
- erase.priv = (u_long)&wait_q; | |
- | |
- set_current_state(TASK_INTERRUPTIBLE); | |
- add_wait_queue(&wait_q, &wait); | |
- | |
- ret = MTD_ERASE(mtd, &erase); | |
- if (ret) { | |
- set_current_state(TASK_RUNNING); | |
- remove_wait_queue(&wait_q, &wait); | |
- printk (KERN_WARNING "mtdblock: erase of region [0x%lx, 0x%x] " | |
- "on \"%s\" failed\n", | |
- pos, len, mtd->name); | |
- return ret; | |
- } | |
- | |
- schedule(); /* Wait for erase to finish. */ | |
+ // POT {{ : not erase bootloader | |
+ //printk ("erase_write: %d %s\n", mtd->index,mtd->name) ; | |
+ if ( mtd->index != 2 ) | |
+ { | |
+ | |
+ | |
+ init_waitqueue_head(&wait_q); | |
+ erase.mtd = mtd; | |
+ erase.callback = erase_callback; | |
+ erase.addr = pos; | |
+ erase.len = len; | |
+ erase.priv = (u_long)&wait_q; | |
+ | |
+ set_current_state(TASK_INTERRUPTIBLE); | |
+ add_wait_queue(&wait_q, &wait); | |
+ | |
+ ret = MTD_ERASE(mtd, &erase); | |
+ if (ret) { | |
+ set_current_state(TASK_RUNNING); | |
remove_wait_queue(&wait_q, &wait); | |
+ printk (KERN_WARNING "mtdblock: erase of region [0x%lx, 0x%x] " | |
+ "on \"%s\" failed\n", | |
+ pos, len, mtd->name); | |
+ return ret; | |
} | |
+ | |
+ schedule(); /* Wait for erase to finish. */ | |
+ remove_wait_queue(&wait_q, &wait); | |
+ } //POT}} | |
+ | |
/* | |
* Next, writhe data to flash. | |
*/ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/.mtdblock.o.cmd kernel/kernel/linux/drivers/mtd/.mtdblock.o.cmd | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/.mtdblock.o.cmd 2010-01-11 21:15:58.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/.mtdblock.o.cmd 2008-07-09 04:20:51.000000000 -0700 | |
@@ -1,4 +1,4 @@ | |
-cmd_drivers/mtd/mtdblock.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/.mtdblock.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=mtdblock -DKBUILD_MODNAME=mtdblock -c -o drivers/mtd/mtdblock.o drivers/mtd/mtdblock.c | |
+cmd_drivers/mtd/mtdblock.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/.mtdblock.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=mtdblock -DKBUILD_MODNAME=mtdblock -c -o drivers/mtd/mtdblock.o drivers/mtd/mtdblock.c | |
deps_drivers/mtd/mtdblock.o := \ | |
drivers/mtd/mtdblock.c \ | |
@@ -52,13 +52,14 @@ | |
include/linux/cache.h \ | |
include/linux/kernel.h \ | |
$(wildcard include/config/debug/spinlock/sleep.h) \ | |
- /opt/toolchains-neutral-6358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
+ /opt/toolchains-96358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
include/asm/bug.h \ | |
include/asm/break.h \ | |
include/asm/cache.h \ | |
$(wildcard include/config/mips/l1/cache/shift.h) \ | |
include/cpu-feature-overrides.h \ | |
$(wildcard include/config/bcm96358.h) \ | |
+ $(wildcard include/config/bcm96368.h) \ | |
include/asm/war.h \ | |
$(wildcard include/config/sgi/ip22.h) \ | |
$(wildcard include/config/sni/rm200/pci.h) \ | |
@@ -75,7 +76,6 @@ | |
$(wildcard include/config/cpu/has/sync.h) \ | |
$(wildcard include/config/cpu/has/wb.h) \ | |
include/asm/addrspace.h \ | |
- $(wildcard include/config/bcm/endpoint/module.h) \ | |
$(wildcard include/config/cpu/r4300.h) \ | |
$(wildcard include/config/cpu/r4x00.h) \ | |
$(wildcard include/config/cpu/r5000.h) \ | |
@@ -97,6 +97,7 @@ | |
$(wildcard include/config/page/size/8kb.h) \ | |
$(wildcard include/config/page/size/16kb.h) \ | |
$(wildcard include/config/page/size/64kb.h) \ | |
+ $(wildcard include/config/klob.h) \ | |
$(wildcard include/config/debug/stack/usage.h) \ | |
include/asm/processor.h \ | |
$(wildcard include/config/cpu/has/prefetch.h) \ | |
@@ -153,6 +154,7 @@ | |
include/linux/percpu.h \ | |
include/linux/slab.h \ | |
$(wildcard include/config/.h) \ | |
+ $(wildcard include/config/kmalloc/accounting.h) \ | |
include/linux/gfp.h \ | |
include/linux/mmzone.h \ | |
$(wildcard include/config/force/max/zoneorder.h) \ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/.mtdchar.o.cmd kernel/kernel/linux/drivers/mtd/.mtdchar.o.cmd | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/.mtdchar.o.cmd 2010-01-11 21:15:58.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/.mtdchar.o.cmd 2008-07-09 04:20:51.000000000 -0700 | |
@@ -1,4 +1,4 @@ | |
-cmd_drivers/mtd/mtdchar.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/.mtdchar.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=mtdchar -DKBUILD_MODNAME=mtdchar -c -o drivers/mtd/mtdchar.o drivers/mtd/mtdchar.c | |
+cmd_drivers/mtd/mtdchar.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/.mtdchar.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=mtdchar -DKBUILD_MODNAME=mtdchar -c -o drivers/mtd/mtdchar.o drivers/mtd/mtdchar.c | |
deps_drivers/mtd/mtdchar.o := \ | |
drivers/mtd/mtdchar.c \ | |
@@ -7,7 +7,7 @@ | |
$(wildcard include/config/h.h) \ | |
include/linux/kernel.h \ | |
$(wildcard include/config/debug/spinlock/sleep.h) \ | |
- /opt/toolchains-neutral-6358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
+ /opt/toolchains-96358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
include/linux/linkage.h \ | |
include/asm/linkage.h \ | |
include/linux/stddef.h \ | |
@@ -60,6 +60,7 @@ | |
$(wildcard include/config/mips/l1/cache/shift.h) \ | |
include/cpu-feature-overrides.h \ | |
$(wildcard include/config/bcm96358.h) \ | |
+ $(wildcard include/config/bcm96368.h) \ | |
include/asm/war.h \ | |
$(wildcard include/config/sgi/ip22.h) \ | |
$(wildcard include/config/sni/rm200/pci.h) \ | |
@@ -76,7 +77,6 @@ | |
$(wildcard include/config/cpu/has/sync.h) \ | |
$(wildcard include/config/cpu/has/wb.h) \ | |
include/asm/addrspace.h \ | |
- $(wildcard include/config/bcm/endpoint/module.h) \ | |
$(wildcard include/config/cpu/r4300.h) \ | |
$(wildcard include/config/cpu/r4x00.h) \ | |
$(wildcard include/config/cpu/r5000.h) \ | |
@@ -98,6 +98,7 @@ | |
$(wildcard include/config/page/size/8kb.h) \ | |
$(wildcard include/config/page/size/16kb.h) \ | |
$(wildcard include/config/page/size/64kb.h) \ | |
+ $(wildcard include/config/klob.h) \ | |
$(wildcard include/config/debug/stack/usage.h) \ | |
include/asm/processor.h \ | |
$(wildcard include/config/cpu/has/prefetch.h) \ | |
@@ -154,6 +155,7 @@ | |
include/linux/percpu.h \ | |
include/linux/slab.h \ | |
$(wildcard include/config/.h) \ | |
+ $(wildcard include/config/kmalloc/accounting.h) \ | |
include/linux/gfp.h \ | |
include/linux/mmzone.h \ | |
$(wildcard include/config/force/max/zoneorder.h) \ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/mtdcore.c kernel/kernel/linux/drivers/mtd/mtdcore.c | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/mtdcore.c 2010-01-11 20:06:58.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/mtdcore.c 2008-07-03 02:44:45.000000000 -0700 | |
@@ -338,6 +338,7 @@ | |
/* 2006.06.06 add to display CFI MajorVersion */ | |
static struct proc_dir_entry *proc_MajorVersion; | |
+ | |
static inline int mtd_proc_info (char *buf, int i) | |
{ | |
struct mtd_info *this = mtd_table[i]; | |
@@ -399,6 +400,7 @@ | |
return len; | |
} | |
+ | |
#endif /* CONFIG_PROC_FS */ | |
/*====================================================================*/ | |
@@ -409,10 +411,11 @@ | |
#ifdef CONFIG_PROC_FS | |
if ((proc_mtd = create_proc_entry( "mtd", 0, NULL ))) | |
proc_mtd->read_proc = mtd_read_proc; | |
- /* 2006.11.22 patch */ | |
- /* 2006.06.06 add to display CFI MajorVersion */ | |
+ /* 2006.11.22 patch */ | |
+ /* 2006.06.06 add to display CFI MajorVersion */ | |
if ((proc_MajorVersion = create_proc_entry( "MajorVersion", 0, NULL ))) | |
proc_MajorVersion->read_proc = MajorVersion_read_proc; | |
+ | |
#endif | |
#ifdef CONFIG_PM | |
@@ -433,10 +436,11 @@ | |
#ifdef CONFIG_PROC_FS | |
if (proc_mtd) | |
remove_proc_entry( "mtd", NULL); | |
- /* 2006.11.22 patch */ | |
- /* 2006.06.06 add to display CFI MajorVersion */ | |
+ /* 2006.11.22 patch */ | |
+ /* 2006.06.06 add to display CFI MajorVersion */ | |
if (proc_MajorVersion) | |
remove_proc_entry( "MajorVersion", NULL); | |
+ | |
#endif | |
} | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/.mtdcore.o.cmd kernel/kernel/linux/drivers/mtd/.mtdcore.o.cmd | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/.mtdcore.o.cmd 2010-01-11 21:15:57.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/.mtdcore.o.cmd 2008-07-09 04:20:50.000000000 -0700 | |
@@ -1,4 +1,4 @@ | |
-cmd_drivers/mtd/mtdcore.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/.mtdcore.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=mtdcore -DKBUILD_MODNAME=mtdcore -c -o drivers/mtd/mtdcore.o drivers/mtd/mtdcore.c | |
+cmd_drivers/mtd/mtdcore.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/.mtdcore.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=mtdcore -DKBUILD_MODNAME=mtdcore -c -o drivers/mtd/mtdcore.o drivers/mtd/mtdcore.c | |
deps_drivers/mtd/mtdcore.o := \ | |
drivers/mtd/mtdcore.c \ | |
@@ -54,13 +54,14 @@ | |
include/linux/cache.h \ | |
include/linux/kernel.h \ | |
$(wildcard include/config/debug/spinlock/sleep.h) \ | |
- /opt/toolchains-neutral-6358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
+ /opt/toolchains-96358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
include/asm/bug.h \ | |
include/asm/break.h \ | |
include/asm/cache.h \ | |
$(wildcard include/config/mips/l1/cache/shift.h) \ | |
include/cpu-feature-overrides.h \ | |
$(wildcard include/config/bcm96358.h) \ | |
+ $(wildcard include/config/bcm96368.h) \ | |
include/asm/war.h \ | |
$(wildcard include/config/sgi/ip22.h) \ | |
$(wildcard include/config/sni/rm200/pci.h) \ | |
@@ -77,7 +78,6 @@ | |
$(wildcard include/config/cpu/has/sync.h) \ | |
$(wildcard include/config/cpu/has/wb.h) \ | |
include/asm/addrspace.h \ | |
- $(wildcard include/config/bcm/endpoint/module.h) \ | |
$(wildcard include/config/cpu/r4300.h) \ | |
$(wildcard include/config/cpu/r4x00.h) \ | |
$(wildcard include/config/cpu/r5000.h) \ | |
@@ -99,6 +99,7 @@ | |
$(wildcard include/config/page/size/8kb.h) \ | |
$(wildcard include/config/page/size/16kb.h) \ | |
$(wildcard include/config/page/size/64kb.h) \ | |
+ $(wildcard include/config/klob.h) \ | |
$(wildcard include/config/debug/stack/usage.h) \ | |
include/asm/processor.h \ | |
$(wildcard include/config/cpu/has/prefetch.h) \ | |
@@ -155,6 +156,7 @@ | |
include/linux/percpu.h \ | |
include/linux/slab.h \ | |
$(wildcard include/config/.h) \ | |
+ $(wildcard include/config/kmalloc/accounting.h) \ | |
include/linux/gfp.h \ | |
include/linux/mmzone.h \ | |
$(wildcard include/config/force/max/zoneorder.h) \ | |
Binary files DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/mtdpart.o and kernel/kernel/linux/drivers/mtd/mtdpart.o differ | |
diff -urN DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/.mtdpart.o.cmd kernel/kernel/linux/drivers/mtd/.mtdpart.o.cmd | |
--- DG834GV4_V5.01.16_src/kernel/kernel/linux/drivers/mtd/.mtdpart.o.cmd 2010-01-11 21:15:57.000000000 -0800 | |
+++ kernel/kernel/linux/drivers/mtd/.mtdpart.o.cmd 2008-07-09 04:20:51.000000000 -0700 | |
@@ -1,4 +1,4 @@ | |
-cmd_drivers/mtd/mtdpart.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/.mtdpart.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /Platform/DG834V4/Neutral/Kernel/bcm963xx_3.06L.06V_voice_src/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=mtdpart -DKBUILD_MODNAME=mtdpart -c -o drivers/mtd/mtdpart.o drivers/mtd/mtdpart.c | |
+cmd_drivers/mtd/mtdpart.o := /opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/mips-linux-uclibc-gcc -Wp,-MD,drivers/mtd/.mtdpart.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -I /svk/home/derek_huang/DGN2000/GPL/DGN2000_V1.1.1_src/kernel/kernel/linux/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap -Iinclude/asm-mips/mach-bcm963xx -Iinclude/asm-mips/mach-generic -Os -fomit-frame-pointer -Wdeclaration-after-statement -DKBUILD_BASENAME=mtdpart -DKBUILD_MODNAME=mtdpart -c -o drivers/mtd/mtdpart.o drivers/mtd/mtdpart.c | |
deps_drivers/mtd/mtdpart.o := \ | |
drivers/mtd/mtdpart.c \ | |
@@ -53,13 +53,14 @@ | |
include/linux/cache.h \ | |
include/linux/kernel.h \ | |
$(wildcard include/config/debug/spinlock/sleep.h) \ | |
- /opt/toolchains-neutral-6358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
+ /opt/toolchains-96358/uclibc-crosstools_gcc-3.4.2_uclibc-20050502/bin/../lib/gcc/mips-linux-uclibc/3.4.2/include/stdarg.h \ | |
include/asm/bug.h \ | |
include/asm/break.h \ | |
include/asm/cache.h \ | |
$(wildcard include/config/mips/l1/cache/shift.h) \ | |
include/cpu-feature-overrides.h \ | |
$(wildcard include/config/bcm96358.h) \ | |
+ $(wildcard include/config/bcm96368.h) \ | |
include/asm/war.h \ | |
$(wildcard include/config/sgi/ip22.h) \ | |
$(wildcard include/config/sni/rm200/pci.h) \ | |
@@ -76,7 +77,6 @@ | |
$(wildcard include/config/cpu/has/sync.h) \ | |
$(wildcard include/config/cpu/has/wb.h) \ | |
include/asm/addrspace.h \ | |
- $(wildcard include/config/bcm/endpoint/module.h) \ | |
$(wildcard include/config/cpu/r4300.h) \ | |
$(wildcard include/config/cpu/r4x00.h) \ | |
$(wildcard include/config/cpu/r5000.h) \ | |
@@ -98,6 +98,7 @@ | |
$(wildcard include/config/page/size/8kb.h) \ | |
$(wildcard include/config/page/size/16kb.h) \ | |
$(wildcard include/config/page/size/64kb.h) \ | |
+ $(wildcard include/config/klob.h) \ | |
$(wildcard include/config/debug/stack/usage.h) \ | |
include/asm/processor.h \ | |
$(wildcard include/config/cpu/has/prefetch.h) \ | |
@@ -154,6 +155,7 @@ | |
include/linux/percpu.h \ | |
include/linux/slab.h \ | |
$(wildcard include/config/.h) \ | |
+ $(wildcard include/config/kmalloc/accounting.h) \ | |
include/linux/gfp.h \ | |
include/linux/mmzone.h \ | |
$(wildcard include/config/force/max/zoneorder.h) \ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment