Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jessenic/cf6050c6db5b985b0cdf to your computer and use it in GitHub Desktop.
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
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, &param);
+#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