summaryrefslogtreecommitdiff
path: root/target/linux/patches/2.6.39/cris.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/patches/2.6.39/cris.patch')
-rw-r--r--target/linux/patches/2.6.39/cris.patch7493
1 files changed, 18 insertions, 7475 deletions
diff --git a/target/linux/patches/2.6.39/cris.patch b/target/linux/patches/2.6.39/cris.patch
index f58391a5d..3bdc0acb8 100644
--- a/target/linux/patches/2.6.39/cris.patch
+++ b/target/linux/patches/2.6.39/cris.patch
@@ -1,6 +1,6 @@
diff -Nur linux-2.6.39.orig/arch/cris/arch-v10/drivers/axisflashmap.c linux-2.6.39/arch/cris/arch-v10/drivers/axisflashmap.c
--- linux-2.6.39.orig/arch/cris/arch-v10/drivers/axisflashmap.c 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/arch/cris/arch-v10/drivers/axisflashmap.c 2011-07-28 16:16:35.633425525 +0200
++++ linux-2.6.39/arch/cris/arch-v10/drivers/axisflashmap.c 2011-08-22 08:58:55.057980882 +0200
@@ -113,7 +113,7 @@
/* If no partition-table was found, we use this default-set. */
@@ -146,443 +146,9 @@ diff -Nur linux-2.6.39.orig/arch/cris/arch-v10/drivers/axisflashmap.c linux-2.6.
return err;
}
-diff -Nur linux-2.6.39.orig/arch/cris/arch-v10/drivers/axisflashmap.c.orig linux-2.6.39/arch/cris/arch-v10/drivers/axisflashmap.c.orig
---- linux-2.6.39.orig/arch/cris/arch-v10/drivers/axisflashmap.c.orig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/cris/arch-v10/drivers/axisflashmap.c.orig 2011-05-19 06:06:34.000000000 +0200
-@@ -0,0 +1,430 @@
-+/*
-+ * Physical mapping layer for MTD using the Axis partitiontable format
-+ *
-+ * Copyright (c) 2001, 2002 Axis Communications AB
-+ *
-+ * This file is under the GPL.
-+ *
-+ * First partition is always sector 0 regardless of if we find a partitiontable
-+ * or not. In the start of the next sector, there can be a partitiontable that
-+ * tells us what other partitions to define. If there isn't, we use a default
-+ * partition split defined below.
-+ *
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/types.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/slab.h>
-+
-+#include <linux/mtd/concat.h>
-+#include <linux/mtd/map.h>
-+#include <linux/mtd/mtd.h>
-+#include <linux/mtd/mtdram.h>
-+#include <linux/mtd/partitions.h>
-+
-+#include <asm/axisflashmap.h>
-+#include <asm/mmu.h>
-+#include <arch/sv_addr_ag.h>
-+
-+#ifdef CONFIG_CRIS_LOW_MAP
-+#define FLASH_UNCACHED_ADDR KSEG_8
-+#define FLASH_CACHED_ADDR KSEG_5
-+#else
-+#define FLASH_UNCACHED_ADDR KSEG_E
-+#define FLASH_CACHED_ADDR KSEG_F
-+#endif
-+
-+#if CONFIG_ETRAX_FLASH_BUSWIDTH==1
-+#define flash_data __u8
-+#elif CONFIG_ETRAX_FLASH_BUSWIDTH==2
-+#define flash_data __u16
-+#elif CONFIG_ETRAX_FLASH_BUSWIDTH==4
-+#define flash_data __u32
-+#endif
-+
-+/* From head.S */
-+extern unsigned long romfs_start, romfs_length, romfs_in_flash;
-+
-+/* The master mtd for the entire flash. */
-+struct mtd_info* axisflash_mtd = NULL;
-+
-+/* Map driver functions. */
-+
-+static map_word flash_read(struct map_info *map, unsigned long ofs)
-+{
-+ map_word tmp;
-+ tmp.x[0] = *(flash_data *)(map->map_priv_1 + ofs);
-+ return tmp;
-+}
-+
-+static void flash_copy_from(struct map_info *map, void *to,
-+ unsigned long from, ssize_t len)
-+{
-+ memcpy(to, (void *)(map->map_priv_1 + from), len);
-+}
-+
-+static void flash_write(struct map_info *map, map_word d, unsigned long adr)
-+{
-+ *(flash_data *)(map->map_priv_1 + adr) = (flash_data)d.x[0];
-+}
-+
-+/*
-+ * The map for chip select e0.
-+ *
-+ * We run into tricky coherence situations if we mix cached with uncached
-+ * accesses to we only use the uncached version here.
-+ *
-+ * The size field is the total size where the flash chips may be mapped on the
-+ * chip select. MTD probes should find all devices there and it does not matter
-+ * if there are unmapped gaps or aliases (mirrors of flash devices). The MTD
-+ * probes will ignore them.
-+ *
-+ * The start address in map_priv_1 is in virtual memory so we cannot use
-+ * MEM_CSE0_START but must rely on that FLASH_UNCACHED_ADDR is the start
-+ * address of cse0.
-+ */
-+static struct map_info map_cse0 = {
-+ .name = "cse0",
-+ .size = MEM_CSE0_SIZE,
-+ .bankwidth = CONFIG_ETRAX_FLASH_BUSWIDTH,
-+ .read = flash_read,
-+ .copy_from = flash_copy_from,
-+ .write = flash_write,
-+ .map_priv_1 = FLASH_UNCACHED_ADDR
-+};
-+
-+/*
-+ * The map for chip select e1.
-+ *
-+ * If there was a gap between cse0 and cse1, map_priv_1 would get the wrong
-+ * address, but there isn't.
-+ */
-+static struct map_info map_cse1 = {
-+ .name = "cse1",
-+ .size = MEM_CSE1_SIZE,
-+ .bankwidth = CONFIG_ETRAX_FLASH_BUSWIDTH,
-+ .read = flash_read,
-+ .copy_from = flash_copy_from,
-+ .write = flash_write,
-+ .map_priv_1 = FLASH_UNCACHED_ADDR + MEM_CSE0_SIZE
-+};
-+
-+/* If no partition-table was found, we use this default-set. */
-+#define MAX_PARTITIONS 7
-+#define NUM_DEFAULT_PARTITIONS 3
-+
-+/*
-+ * Default flash size is 2MB. CONFIG_ETRAX_PTABLE_SECTOR is most likely the
-+ * size of one flash block and "filesystem"-partition needs 5 blocks to be able
-+ * to use JFFS.
-+ */
-+static struct mtd_partition axis_default_partitions[NUM_DEFAULT_PARTITIONS] = {
-+ {
-+ .name = "boot firmware",
-+ .size = CONFIG_ETRAX_PTABLE_SECTOR,
-+ .offset = 0
-+ },
-+ {
-+ .name = "kernel",
-+ .size = 0x200000 - (6 * CONFIG_ETRAX_PTABLE_SECTOR),
-+ .offset = CONFIG_ETRAX_PTABLE_SECTOR
-+ },
-+ {
-+ .name = "filesystem",
-+ .size = 5 * CONFIG_ETRAX_PTABLE_SECTOR,
-+ .offset = 0x200000 - (5 * CONFIG_ETRAX_PTABLE_SECTOR)
-+ }
-+};
-+
-+/* Initialize the ones normally used. */
-+static struct mtd_partition axis_partitions[MAX_PARTITIONS] = {
-+ {
-+ .name = "part0",
-+ .size = CONFIG_ETRAX_PTABLE_SECTOR,
-+ .offset = 0
-+ },
-+ {
-+ .name = "part1",
-+ .size = 0,
-+ .offset = 0
-+ },
-+ {
-+ .name = "part2",
-+ .size = 0,
-+ .offset = 0
-+ },
-+ {
-+ .name = "part3",
-+ .size = 0,
-+ .offset = 0
-+ },
-+ {
-+ .name = "part4",
-+ .size = 0,
-+ .offset = 0
-+ },
-+ {
-+ .name = "part5",
-+ .size = 0,
-+ .offset = 0
-+ },
-+ {
-+ .name = "part6",
-+ .size = 0,
-+ .offset = 0
-+ },
-+};
-+
-+#ifdef CONFIG_ETRAX_AXISFLASHMAP_MTD0WHOLE
-+/* Main flash device */
-+static struct mtd_partition main_partition = {
-+ .name = "main",
-+ .size = 0,
-+ .offset = 0
-+};
-+#endif
-+
-+/*
-+ * Probe a chip select for AMD-compatible (JEDEC) or CFI-compatible flash
-+ * chips in that order (because the amd_flash-driver is faster).
-+ */
-+static struct mtd_info *probe_cs(struct map_info *map_cs)
-+{
-+ struct mtd_info *mtd_cs = NULL;
-+
-+ printk(KERN_INFO
-+ "%s: Probing a 0x%08lx bytes large window at 0x%08lx.\n",
-+ map_cs->name, map_cs->size, map_cs->map_priv_1);
-+
-+#ifdef CONFIG_MTD_CFI
-+ mtd_cs = do_map_probe("cfi_probe", map_cs);
-+#endif
-+#ifdef CONFIG_MTD_JEDECPROBE
-+ if (!mtd_cs)
-+ mtd_cs = do_map_probe("jedec_probe", map_cs);
-+#endif
-+
-+ return mtd_cs;
-+}
-+
-+/*
-+ * Probe each chip select individually for flash chips. If there are chips on
-+ * both cse0 and cse1, the mtd_info structs will be concatenated to one struct
-+ * so that MTD partitions can cross chip boundries.
-+ *
-+ * The only known restriction to how you can mount your chips is that each
-+ * chip select must hold similar flash chips. But you need external hardware
-+ * to do that anyway and you can put totally different chips on cse0 and cse1
-+ * so it isn't really much of a restriction.
-+ */
-+static struct mtd_info *flash_probe(void)
-+{
-+ struct mtd_info *mtd_cse0;
-+ struct mtd_info *mtd_cse1;
-+ struct mtd_info *mtd_cse;
-+
-+ mtd_cse0 = probe_cs(&map_cse0);
-+ mtd_cse1 = probe_cs(&map_cse1);
-+
-+ if (!mtd_cse0 && !mtd_cse1) {
-+ /* No chip found. */
-+ return NULL;
-+ }
-+
-+ if (mtd_cse0 && mtd_cse1) {
-+ struct mtd_info *mtds[] = { mtd_cse0, mtd_cse1 };
-+
-+ /* Since the concatenation layer adds a small overhead we
-+ * could try to figure out if the chips in cse0 and cse1 are
-+ * identical and reprobe the whole cse0+cse1 window. But since
-+ * flash chips are slow, the overhead is relatively small.
-+ * So we use the MTD concatenation layer instead of further
-+ * complicating the probing procedure.
-+ */
-+ mtd_cse = mtd_concat_create(mtds, ARRAY_SIZE(mtds),
-+ "cse0+cse1");
-+ if (!mtd_cse) {
-+ printk(KERN_ERR "%s and %s: Concatenation failed!\n",
-+ map_cse0.name, map_cse1.name);
-+
-+ /* The best we can do now is to only use what we found
-+ * at cse0.
-+ */
-+ mtd_cse = mtd_cse0;
-+ map_destroy(mtd_cse1);
-+ }
-+ } else {
-+ mtd_cse = mtd_cse0? mtd_cse0 : mtd_cse1;
-+ }
-+
-+ return mtd_cse;
-+}
-+
-+/*
-+ * Probe the flash chip(s) and, if it succeeds, read the partition-table
-+ * and register the partitions with MTD.
-+ */
-+static int __init init_axis_flash(void)
-+{
-+ struct mtd_info *mymtd;
-+ int err = 0;
-+ int pidx = 0;
-+ struct partitiontable_head *ptable_head = NULL;
-+ struct partitiontable_entry *ptable;
-+ int use_default_ptable = 1; /* Until proven otherwise. */
-+ const char pmsg[] = " /dev/flash%d at 0x%08x, size 0x%08x\n";
-+
-+ if (!(mymtd = flash_probe())) {
-+ /* There's no reason to use this module if no flash chip can
-+ * be identified. Make sure that's understood.
-+ */
-+ printk(KERN_INFO "axisflashmap: Found no flash chip.\n");
-+ } else {
-+ printk(KERN_INFO "%s: 0x%08x bytes of flash memory.\n",
-+ mymtd->name, mymtd->size);
-+ axisflash_mtd = mymtd;
-+ }
-+
-+ if (mymtd) {
-+ mymtd->owner = THIS_MODULE;
-+ ptable_head = (struct partitiontable_head *)(FLASH_CACHED_ADDR +
-+ CONFIG_ETRAX_PTABLE_SECTOR +
-+ PARTITION_TABLE_OFFSET);
-+ }
-+ pidx++; /* First partition is always set to the default. */
-+
-+ if (ptable_head && (ptable_head->magic == PARTITION_TABLE_MAGIC)
-+ && (ptable_head->size <
-+ (MAX_PARTITIONS * sizeof(struct partitiontable_entry) +
-+ PARTITIONTABLE_END_MARKER_SIZE))
-+ && (*(unsigned long*)((void*)ptable_head + sizeof(*ptable_head) +
-+ ptable_head->size -
-+ PARTITIONTABLE_END_MARKER_SIZE)
-+ == PARTITIONTABLE_END_MARKER)) {
-+ /* Looks like a start, sane length and end of a
-+ * partition table, lets check csum etc.
-+ */
-+ int ptable_ok = 0;
-+ struct partitiontable_entry *max_addr =
-+ (struct partitiontable_entry *)
-+ ((unsigned long)ptable_head + sizeof(*ptable_head) +
-+ ptable_head->size);
-+ unsigned long offset = CONFIG_ETRAX_PTABLE_SECTOR;
-+ unsigned char *p;
-+ unsigned long csum = 0;
-+
-+ ptable = (struct partitiontable_entry *)
-+ ((unsigned long)ptable_head + sizeof(*ptable_head));
-+
-+ /* Lets be PARANOID, and check the checksum. */
-+ p = (unsigned char*) ptable;
-+
-+ while (p <= (unsigned char*)max_addr) {
-+ csum += *p++;
-+ csum += *p++;
-+ csum += *p++;
-+ csum += *p++;
-+ }
-+ ptable_ok = (csum == ptable_head->checksum);
-+
-+ /* Read the entries and use/show the info. */
-+ printk(KERN_INFO " Found a%s partition table at 0x%p-0x%p.\n",
-+ (ptable_ok ? " valid" : "n invalid"), ptable_head,
-+ max_addr);
-+
-+ /* We have found a working bootblock. Now read the
-+ * partition table. Scan the table. It ends when
-+ * there is 0xffffffff, that is, empty flash.
-+ */
-+ while (ptable_ok
-+ && ptable->offset != 0xffffffff
-+ && ptable < max_addr
-+ && pidx < MAX_PARTITIONS) {
-+
-+ axis_partitions[pidx].offset = offset + ptable->offset;
-+ axis_partitions[pidx].size = ptable->size;
-+
-+ printk(pmsg, pidx, axis_partitions[pidx].offset,
-+ axis_partitions[pidx].size);
-+ pidx++;
-+ ptable++;
-+ }
-+ use_default_ptable = !ptable_ok;
-+ }
-+
-+ if (romfs_in_flash) {
-+ /* Add an overlapping device for the root partition (romfs). */
-+
-+ axis_partitions[pidx].name = "romfs";
-+ axis_partitions[pidx].size = romfs_length;
-+ axis_partitions[pidx].offset = romfs_start - FLASH_CACHED_ADDR;
-+ axis_partitions[pidx].mask_flags |= MTD_WRITEABLE;
-+
-+ printk(KERN_INFO
-+ " Adding readonly flash partition for romfs image:\n");
-+ printk(pmsg, pidx, axis_partitions[pidx].offset,
-+ axis_partitions[pidx].size);
-+ pidx++;
-+ }
-+
-+#ifdef CONFIG_ETRAX_AXISFLASHMAP_MTD0WHOLE
-+ if (mymtd) {
-+ main_partition.size = mymtd->size;
-+ err = add_mtd_partitions(mymtd, &main_partition, 1);
-+ if (err)
-+ panic("axisflashmap: Could not initialize "
-+ "partition for whole main mtd device!\n");
-+ }
-+#endif
-+
-+ if (mymtd) {
-+ if (use_default_ptable) {
-+ printk(KERN_INFO " Using default partition table.\n");
-+ err = add_mtd_partitions(mymtd, axis_default_partitions,
-+ NUM_DEFAULT_PARTITIONS);
-+ } else {
-+ err = add_mtd_partitions(mymtd, axis_partitions, pidx);
-+ }
-+
-+ if (err)
-+ panic("axisflashmap could not add MTD partitions!\n");
-+ }
-+
-+ if (!romfs_in_flash) {
-+ /* Create an RAM device for the root partition (romfs). */
-+
-+#if !defined(CONFIG_MTD_MTDRAM) || (CONFIG_MTDRAM_TOTAL_SIZE != 0) || (CONFIG_MTDRAM_ABS_POS != 0)
-+ /* No use trying to boot this kernel from RAM. Panic! */
-+ printk(KERN_EMERG "axisflashmap: Cannot create an MTD RAM "
-+ "device due to kernel (mis)configuration!\n");
-+ panic("This kernel cannot boot from RAM!\n");
-+#else
-+ struct mtd_info *mtd_ram;
-+
-+ mtd_ram = kmalloc(sizeof(struct mtd_info), GFP_KERNEL);
-+ if (!mtd_ram)
-+ panic("axisflashmap couldn't allocate memory for "
-+ "mtd_info!\n");
-+
-+ printk(KERN_INFO " Adding RAM partition for romfs image:\n");
-+ printk(pmsg, pidx, (unsigned)romfs_start,
-+ (unsigned)romfs_length);
-+
-+ err = mtdram_init_device(mtd_ram,
-+ (void *)romfs_start,
-+ romfs_length,
-+ "romfs");
-+ if (err)
-+ panic("axisflashmap could not initialize MTD RAM "
-+ "device!\n");
-+#endif
-+ }
-+ return err;
-+}
-+
-+/* This adds the above to the kernels init-call chain. */
-+module_init(init_axis_flash);
-+
-+EXPORT_SYMBOL(axisflash_mtd);
diff -Nur linux-2.6.39.orig/arch/cris/arch-v10/drivers/ds1302.c linux-2.6.39/arch/cris/arch-v10/drivers/ds1302.c
--- linux-2.6.39.orig/arch/cris/arch-v10/drivers/ds1302.c 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/arch/cris/arch-v10/drivers/ds1302.c 2011-07-28 16:16:35.863415658 +0200
++++ linux-2.6.39/arch/cris/arch-v10/drivers/ds1302.c 2011-08-22 08:58:55.157980341 +0200
@@ -22,6 +22,7 @@
#include <linux/mutex.h>
#include <linux/bcd.h>
@@ -617,7 +183,7 @@ diff -Nur linux-2.6.39.orig/arch/cris/arch-v10/drivers/ds1302.c linux-2.6.39/arc
}
diff -Nur linux-2.6.39.orig/arch/cris/arch-v10/drivers/gpio.c linux-2.6.39/arch/cris/arch-v10/drivers/gpio.c
--- linux-2.6.39.orig/arch/cris/arch-v10/drivers/gpio.c 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/arch/cris/arch-v10/drivers/gpio.c 2011-07-28 16:16:36.023425394 +0200
++++ linux-2.6.39/arch/cris/arch-v10/drivers/gpio.c 2011-08-22 08:58:55.227980067 +0200
@@ -20,6 +20,7 @@
#include <linux/poll.h>
#include <linux/init.h>
@@ -653,7 +219,7 @@ diff -Nur linux-2.6.39.orig/arch/cris/arch-v10/drivers/gpio.c linux-2.6.39/arch/
CRIS_LED_NETWORK_SET(0);
diff -Nur linux-2.6.39.orig/arch/cris/arch-v10/lib/hw_settings.S linux-2.6.39/arch/cris/arch-v10/lib/hw_settings.S
--- linux-2.6.39.orig/arch/cris/arch-v10/lib/hw_settings.S 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/arch/cris/arch-v10/lib/hw_settings.S 2011-07-28 16:16:36.163758404 +0200
++++ linux-2.6.39/arch/cris/arch-v10/lib/hw_settings.S 2011-08-22 08:58:55.287980084 +0200
@@ -58,3 +58,5 @@
.dword R_PORT_PB_SET
.dword PB_SET_VALUE
@@ -662,7 +228,7 @@ diff -Nur linux-2.6.39.orig/arch/cris/arch-v10/lib/hw_settings.S linux-2.6.39/ar
+ .dword 0xdeadc0de
diff -Nur linux-2.6.39.orig/arch/cris/arch-v10/mm/init.c linux-2.6.39/arch/cris/arch-v10/mm/init.c
--- linux-2.6.39.orig/arch/cris/arch-v10/mm/init.c 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/arch/cris/arch-v10/mm/init.c 2011-07-28 16:16:36.313421347 +0200
++++ linux-2.6.39/arch/cris/arch-v10/mm/init.c 2011-08-22 08:58:55.347981214 +0200
@@ -184,6 +184,9 @@
free_area_init_node(0, zones_size, PAGE_OFFSET >> PAGE_SHIFT, 0);
@@ -675,7 +241,7 @@ diff -Nur linux-2.6.39.orig/arch/cris/arch-v10/mm/init.c linux-2.6.39/arch/cris/
* is called before any driver is initialized.
diff -Nur linux-2.6.39.orig/arch/cris/boot/compressed/Makefile linux-2.6.39/arch/cris/boot/compressed/Makefile
--- linux-2.6.39.orig/arch/cris/boot/compressed/Makefile 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/arch/cris/boot/compressed/Makefile 2011-07-28 16:16:36.453421314 +0200
++++ linux-2.6.39/arch/cris/boot/compressed/Makefile 2011-08-22 08:58:55.427980567 +0200
@@ -18,7 +18,7 @@
OBJECTS-$(CONFIG_ETRAX_ARCH_V32) = $(obj)/head_v32.o
OBJECTS-$(CONFIG_ETRAX_ARCH_V10) = $(obj)/head_v10.o
@@ -687,7 +253,7 @@ diff -Nur linux-2.6.39.orig/arch/cris/boot/compressed/Makefile linux-2.6.39/arch
cmd_image = cat $(obj)/decompress.bin $(obj)/piggy.gz > $@
diff -Nur linux-2.6.39.orig/arch/cris/boot/Makefile linux-2.6.39/arch/cris/boot/Makefile
--- linux-2.6.39.orig/arch/cris/boot/Makefile 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/arch/cris/boot/Makefile 2011-07-28 16:16:36.573671907 +0200
++++ linux-2.6.39/arch/cris/boot/Makefile 2011-08-22 08:58:55.507980367 +0200
@@ -5,7 +5,7 @@
objcopyflags-$(CONFIG_ETRAX_ARCH_V10) += -R .note -R .comment
objcopyflags-$(CONFIG_ETRAX_ARCH_V32) += --remove-section=.bss --remove-section=.note.gnu.build-id
@@ -707,7 +273,7 @@ diff -Nur linux-2.6.39.orig/arch/cris/boot/Makefile linux-2.6.39/arch/cris/boot/
@cp $< $@
diff -Nur linux-2.6.39.orig/arch/cris/Kconfig linux-2.6.39/arch/cris/Kconfig
--- linux-2.6.39.orig/arch/cris/Kconfig 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/arch/cris/Kconfig 2011-07-28 16:16:36.713417234 +0200
++++ linux-2.6.39/arch/cris/Kconfig 2011-08-22 08:58:55.587980284 +0200
@@ -168,6 +168,12 @@
help
Size of DRAM (decimal in MB) typically 2, 8 or 16.
@@ -751,703 +317,9 @@ diff -Nur linux-2.6.39.orig/arch/cris/Kconfig linux-2.6.39/arch/cris/Kconfig
source "drivers/usb/Kconfig"
source "drivers/uwb/Kconfig"
-diff -Nur linux-2.6.39.orig/arch/cris/Kconfig.orig linux-2.6.39/arch/cris/Kconfig.orig
---- linux-2.6.39.orig/arch/cris/Kconfig.orig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/cris/Kconfig.orig 2011-05-19 06:06:34.000000000 +0200
-@@ -0,0 +1,690 @@
-+config MMU
-+ bool
-+ default y
-+
-+config ZONE_DMA
-+ bool
-+ default y
-+
-+config RWSEM_GENERIC_SPINLOCK
-+ bool
-+ default y
-+
-+config RWSEM_XCHGADD_ALGORITHM
-+ bool
-+
-+config GENERIC_CMOS_UPDATE
-+ def_bool y
-+
-+config ARCH_USES_GETTIMEOFFSET
-+ def_bool n
-+
-+config GENERIC_IOMAP
-+ bool
-+ default y
-+
-+config ARCH_HAS_ILOG2_U32
-+ bool
-+ default n
-+
-+config ARCH_HAS_ILOG2_U64
-+ bool
-+ default n
-+
-+config GENERIC_FIND_NEXT_BIT
-+ bool
-+ default y
-+
-+config GENERIC_HWEIGHT
-+ bool
-+ default y
-+
-+config GENERIC_CALIBRATE_DELAY
-+ bool
-+ default y
-+
-+config NO_IOPORT
-+ def_bool y
-+
-+config FORCE_MAX_ZONEORDER
-+ int
-+ default 6
-+
-+config CRIS
-+ bool
-+ default y
-+ select HAVE_IDE
-+ select HAVE_GENERIC_HARDIRQS
-+ select GENERIC_IRQ_SHOW
-+
-+config HZ
-+ int
-+ default 100
-+
-+source "init/Kconfig"
-+
-+source "kernel/Kconfig.freezer"
-+
-+menu "General setup"
-+
-+source "fs/Kconfig.binfmt"
-+
-+config ETRAX_CMDLINE
-+ string "Kernel command line"
-+ default "root=/dev/mtdblock3"
-+ help
-+ Pass additional commands to the kernel.
-+
-+config ETRAX_WATCHDOG
-+ bool "Enable ETRAX watchdog"
-+ help
-+ Enable the built-in watchdog timer support on ETRAX based embedded
-+ network computers.
-+
-+config ETRAX_WATCHDOG_NICE_DOGGY
-+ bool "Disable watchdog during Oops printouts"
-+ depends on ETRAX_WATCHDOG
-+ help
-+ By enabling this you make sure that the watchdog does not bite while
-+ printing oopses. Recommended for development systems but not for
-+ production releases.
-+
-+config ETRAX_FAST_TIMER
-+ bool "Enable ETRAX fast timer API"
-+ help
-+ This options enables the API to a fast timer implementation using
-+ timer1 to get sub jiffie resolution timers (primarily one-shot
-+ timers).
-+ This is needed if CONFIG_ETRAX_SERIAL_FAST_TIMER is enabled.
-+
-+config ETRAX_KMALLOCED_MODULES
-+ bool "Enable module allocation with kmalloc"
-+ help
-+ Enable module allocation with kmalloc instead of vmalloc.
-+
-+config OOM_REBOOT
-+ bool "Enable reboot at out of memory"
-+
-+source "kernel/Kconfig.preempt"
-+
-+source mm/Kconfig
-+
-+endmenu
-+
-+menu "Hardware setup"
-+
-+choice
-+ prompt "Processor type"
-+ default ETRAX100LX
-+
-+config ETRAX100LX
-+ bool "ETRAX-100LX-v1"
-+ select ARCH_USES_GETTIMEOFFSET
-+ help
-+ Support version 1 of the ETRAX 100LX.
-+
-+config ETRAX100LX_V2
-+ bool "ETRAX-100LX-v2"
-+ select ARCH_USES_GETTIMEOFFSET
-+ help
-+ Support version 2 of the ETRAX 100LX.
-+
-+config SVINTO_SIM
-+ bool "ETRAX-100LX-for-xsim-simulator"
-+ select ARCH_USES_GETTIMEOFFSET
-+ help
-+ Support the xsim ETRAX Simulator.
-+
-+config ETRAXFS
-+ bool "ETRAX-FS-V32"
-+ help
-+ Support CRIS V32.
-+
-+config CRIS_MACH_ARTPEC3
-+ bool "ARTPEC-3"
-+ help
-+ Support Axis ARTPEC-3.
-+
-+endchoice
-+
-+config ETRAX_VCS_SIM
-+ bool "VCS Simulator"
-+ help
-+ Setup hardware to be run in the VCS simulator.
-+
-+config ETRAX_ARCH_V10
-+ bool
-+ default y if ETRAX100LX || ETRAX100LX_V2
-+ default n if !(ETRAX100LX || ETRAX100LX_V2)
-+
-+config ETRAX_ARCH_V32
-+ bool
-+ default y if (ETRAXFS || CRIS_MACH_ARTPEC3)
-+ default n if !(ETRAXFS || CRIS_MACH_ARTPEC3)
-+
-+config ETRAX_DRAM_SIZE
-+ int "DRAM size (dec, in MB)"
-+ default "8"
-+ help
-+ Size of DRAM (decimal in MB) typically 2, 8 or 16.
-+
-+config ETRAX_VMEM_SIZE
-+ int "Video memory size (dec, in MB)"
-+ depends on ETRAX_ARCH_V32 && !ETRAXFS
-+ default 8 if !ETRAXFS
-+ help
-+ Size of Video accessible memory (decimal, in MB).
-+
-+config ETRAX_FLASH_BUSWIDTH
-+ int "Buswidth of NOR flash in bytes"
-+ default "2"
-+ help
-+ Width in bytes of the NOR Flash bus (1, 2 or 4). Is usually 2.
-+
-+config ETRAX_NANDFLASH_BUSWIDTH
-+ int "Buswidth of NAND flash in bytes"
-+ default "1"
-+ help
-+ Width in bytes of the NAND flash (1 or 2).
-+
-+config ETRAX_FLASH1_SIZE
-+ int "FLASH1 size (dec, in MB. 0 = Unknown)"
-+ default "0"
-+
-+choice
-+ prompt "Product debug-port"
-+ default ETRAX_DEBUG_PORT0
-+
-+config ETRAX_DEBUG_PORT0
-+ bool "Serial-0"
-+ help
-+ Choose a serial port for the ETRAX debug console. Default to
-+ port 0.
-+
-+config ETRAX_DEBUG_PORT1
-+ bool "Serial-1"
-+ help
-+ Use serial port 1 for the console.
-+
-+config ETRAX_DEBUG_PORT2
-+ bool "Serial-2"
-+ help
-+ Use serial port 2 for the console.
-+
-+config ETRAX_DEBUG_PORT3
-+ bool "Serial-3"
-+ help
-+ Use serial port 3 for the console.
-+
-+config ETRAX_DEBUG_PORT_NULL
-+ bool "disabled"
-+ help
-+ Disable serial-port debugging.
-+
-+endchoice
-+
-+choice
-+ prompt "Kernel GDB port"
-+ depends on ETRAX_KGDB
-+ default ETRAX_KGDB_PORT0
-+ help
-+ Choose a serial port for kernel debugging. NOTE: This port should
-+ not be enabled under Drivers for built-in interfaces (as it has its
-+ own initialization code) and should not be the same as the debug port.
-+
-+config ETRAX_KGDB_PORT0
-+ bool "Serial-0"
-+ help
-+ Use serial port 0 for kernel debugging.
-+
-+config ETRAX_KGDB_PORT1
-+ bool "Serial-1"
-+ help
-+ Use serial port 1 for kernel debugging.
-+
-+config ETRAX_KGDB_PORT2
-+ bool "Serial-2"
-+ help
-+ Use serial port 2 for kernel debugging.
-+
-+config ETRAX_KGDB_PORT3
-+ bool "Serial-3"
-+ help
-+ Use serial port 3 for kernel debugging.
-+
-+endchoice
-+
-+source arch/cris/arch-v10/Kconfig
-+source arch/cris/arch-v32/Kconfig
-+
-+endmenu
-+
-+source "net/Kconfig"
-+
-+# bring in ETRAX built-in drivers
-+menu "Drivers for built-in interfaces"
-+source arch/cris/arch-v10/drivers/Kconfig
-+source arch/cris/arch-v32/drivers/Kconfig
-+
-+config ETRAX_AXISFLASHMAP
-+ bool "Axis flash-map support"
-+ select MTD
-+ select MTD_CFI
-+ select MTD_CFI_AMDSTD
-+ select MTD_JEDECPROBE if ETRAX_ARCH_V32
-+ select MTD_CHAR
-+ select MTD_BLOCK
-+ select MTD_PARTITIONS
-+ select MTD_COMPLEX_MAPPINGS
-+ help
-+ This option enables MTD mapping of flash devices. Needed to use
-+ flash memories. If unsure, say Y.
-+
-+config ETRAX_RTC
-+ bool "Real Time Clock support"
-+ depends on ETRAX_I2C
-+ help
-+ Enables drivers for the Real-Time Clock battery-backed chips on
-+ some products. The kernel reads the time when booting, and
-+ the date can be set using ioctl(fd, RTC_SET_TIME, &rt) with rt a
-+ rtc_time struct (see <file:include/asm-cris/rtc.h>) on the /dev/rtc
-+ device. You can check the time with cat /proc/rtc, but
-+ normal time reading should be done using libc function time and
-+ friends.
-+
-+choice
-+ prompt "RTC chip"
-+ depends on ETRAX_RTC
-+ default ETRAX_DS1302
-+
-+config ETRAX_DS1302
-+ depends on ETRAX_ARCH_V10
-+ bool "DS1302"
-+ help
-+ Enables the driver for the DS1302 Real-Time Clock battery-backed
-+ chip on some products.
-+
-+config ETRAX_PCF8563
-+ bool "PCF8563"
-+ help
-+ Enables the driver for the PCF8563 Real-Time Clock battery-backed
-+ chip on some products.
-+
-+endchoice
-+
-+config ETRAX_SYNCHRONOUS_SERIAL
-+ bool "Synchronous serial-port support"
-+ help
-+ Select this to enable the synchronous serial port driver.
-+
-+config ETRAX_SYNCHRONOUS_SERIAL_PORT0
-+ bool "Synchronous serial port 0 enabled"
-+ depends on ETRAX_SYNCHRONOUS_SERIAL
-+ help
-+ Enabled synchronous serial port 0.
-+
-+config ETRAX_SYNCHRONOUS_SERIAL0_DMA
-+ bool "Enable DMA on synchronous serial port 0."
-+ depends on ETRAX_SYNCHRONOUS_SERIAL_PORT0
-+ help
-+ A synchronous serial port can run in manual or DMA mode.
-+ Selecting this option will make it run in DMA mode.
-+
-+config ETRAX_SYNCHRONOUS_SERIAL_PORT1
-+ bool "Synchronous serial port 1 enabled"
-+ depends on ETRAX_SYNCHRONOUS_SERIAL && (ETRAXFS || ETRAX_ARCH_V10)
-+ help
-+ Enabled synchronous serial port 1.
-+
-+config ETRAX_SYNCHRONOUS_SERIAL1_DMA
-+ bool "Enable DMA on synchronous serial port 1."
-+ depends on ETRAX_SYNCHRONOUS_SERIAL_PORT1
-+ help
-+ A synchronous serial port can run in manual or DMA mode.
-+ Selecting this option will make it run in DMA mode.
-+
-+choice
-+ prompt "Network LED behavior"
-+ depends on ETRAX_ETHERNET
-+ default ETRAX_NETWORK_LED_ON_WHEN_ACTIVITY
-+
-+config ETRAX_NETWORK_LED_ON_WHEN_LINK
-+ bool "LED_on_when_link"
-+ help
-+ Selecting LED_on_when_link will light the LED when there is a
-+ connection and will flash off when there is activity.
-+
-+ Selecting LED_on_when_activity will light the LED only when
-+ there is activity.
-+
-+ This setting will also affect the behaviour of other activity LEDs
-+ e.g. Bluetooth.
-+
-+config ETRAX_NETWORK_LED_ON_WHEN_ACTIVITY
-+ bool "LED_on_when_activity"
-+ help
-+ Selecting LED_on_when_link will light the LED when there is a
-+ connection and will flash off when there is activity.
-+
-+ Selecting LED_on_when_activity will light the LED only when
-+ there is activity.
-+
-+ This setting will also affect the behaviour of other activity LEDs
-+ e.g. Bluetooth.
-+
-+endchoice
-+
-+choice
-+ prompt "Ser0 DMA out channel"
-+ depends on ETRAX_SERIAL_PORT0
-+ default ETRAX_SERIAL_PORT0_DMA6_OUT if ETRAX_ARCH_V32
-+ default ETRAX_SERIAL_PORT0_NO_DMA_OUT if ETRAX_ARCH_V10
-+
-+config ETRAX_SERIAL_PORT0_NO_DMA_OUT
-+ bool "Ser0 uses no DMA for output"
-+ help
-+ Do not use DMA for ser0 output.
-+
-+config ETRAX_SERIAL_PORT0_DMA6_OUT
-+ bool "Ser0 uses DMA6 for output"
-+ depends on ETRAXFS
-+ help
-+ Enables the DMA6 output channel for ser0 (ttyS0).
-+ If you do not enable DMA, an interrupt for each character will be
-+ used when transmitting data.
-+ Normally you want to use DMA, unless you use the DMA channel for
-+ something else.
-+
-+config ETRAX_SERIAL_PORT0_DMA0_OUT
-+ bool "Ser0 uses DMA0 for output"
-+ depends on CRIS_MACH_ARTPEC3
-+ help
-+ Enables the DMA0 output channel for ser0 (ttyS0).
-+ If you do not enable DMA, an interrupt for each character will be
-+ used when transmitting data.
-+ Normally you want to use DMA, unless you use the DMA channel for
-+ something else.
-+
-+endchoice
-+
-+choice
-+ prompt "Ser0 DMA in channel "
-+ depends on ETRAX_SERIAL_PORT0
-+ default ETRAX_SERIAL_PORT0_NO_DMA_IN if ETRAX_ARCH_V32
-+ default ETRAX_SERIAL_PORT0_DMA7_IN if ETRAX_ARCH_V10
-+ help
-+ What DMA channel to use for ser0.
-+
-+config ETRAX_SERIAL_PORT0_NO_DMA_IN
-+ bool "Ser0 uses no DMA for input"
-+ help
-+ Do not use DMA for ser0 input.
-+
-+config ETRAX_SERIAL_PORT0_DMA7_IN
-+ bool "Ser0 uses DMA7 for input"
-+ depends on ETRAXFS
-+ help
-+ Enables the DMA7 input channel for ser0 (ttyS0).
-+ If you do not enable DMA, an interrupt for each character will be
-+ used when receiving data.
-+ Normally you want to use DMA, unless you use the DMA channel for
-+ something else.
-+
-+config ETRAX_SERIAL_PORT0_DMA1_IN
-+ bool "Ser0 uses DMA1 for input"
-+ depends on CRIS_MACH_ARTPEC3
-+ help
-+ Enables the DMA1 input channel for ser0 (ttyS0).
-+ If you do not enable DMA, an interrupt for each character will be
-+ used when receiving data.
-+ Normally you want to use DMA, unless you use the DMA channel for
-+ something else.
-+
-+endchoice
-+
-+choice
-+ prompt "Ser1 DMA in channel "
-+ depends on ETRAX_SERIAL_PORT1
-+ default ETRAX_SERIAL_PORT1_NO_DMA_IN if ETRAX_ARCH_V32
-+ default ETRAX_SERIAL_PORT1_DMA9_IN if ETRAX_ARCH_V10
-+ help
-+ What DMA channel to use for ser1.
-+
-+config ETRAX_SERIAL_PORT1_NO_DMA_IN
-+ bool "Ser1 uses no DMA for input"
-+ help
-+ Do not use DMA for ser1 input.
-+
-+config ETRAX_SERIAL_PORT1_DMA5_IN
-+ bool "Ser1 uses DMA5 for input"
-+ depends on ETRAX_ARCH_V32
-+ help
-+ Enables the DMA5 input channel for ser1 (ttyS1).
-+ If you do not enable DMA, an interrupt for each character will be
-+ used when receiving data.
-+ Normally you want this on, unless you use the DMA channel for
-+ something else.
-+
-+config ETRAX_SERIAL_PORT1_DMA9_IN
-+ depends on ETRAX_ARCH_V10
-+ bool "Ser1 uses DMA9 for input"
-+
-+endchoice
-+
-+
-+choice
-+ prompt "Ser1 DMA out channel"
-+ depends on ETRAX_SERIAL_PORT1
-+ default ETRAX_SERIAL_PORT1_NO_DMA_OUT if ETRAX_ARCH_V32
-+ default ETRAX_SERIAL_PORT1_DMA8_OUT if ETRAX_ARCH_V10
-+ help
-+ What DMA channel to use for ser1.
-+
-+config ETRAX_SERIAL_PORT1_NO_DMA_OUT
-+ bool "Ser1 uses no DMA for output"
-+ help
-+ Do not use DMA for ser1 output.
-+
-+config ETRAX_SERIAL_PORT1_DMA8_OUT
-+ depends on ETRAX_ARCH_V10
-+ bool "Ser1 uses DMA8 for output"
-+
-+config ETRAX_SERIAL_PORT1_DMA4_OUT
-+ depends on ETRAX_ARCH_V32
-+ bool "Ser1 uses DMA4 for output"
-+ help
-+ Enables the DMA4 output channel for ser1 (ttyS1).
-+ If you do not enable DMA, an interrupt for each character will be
-+ used when transmitting data.
-+ Normally you want this on, unless you use the DMA channel for
-+ something else.
-+
-+endchoice
-+
-+choice
-+ prompt "Ser2 DMA out channel"
-+ depends on ETRAX_SERIAL_PORT2
-+ default ETRAX_SERIAL_PORT2_NO_DMA_OUT if ETRAX_ARCH_V32
-+ default ETRAX_SERIAL_PORT2_DMA2_OUT if ETRAX_ARCH_V10
-+
-+config ETRAX_SERIAL_PORT2_NO_DMA_OUT
-+ bool "Ser2 uses no DMA for output"
-+ help
-+ Do not use DMA for ser2 output.
-+
-+config ETRAX_SERIAL_PORT2_DMA2_OUT
-+ bool "Ser2 uses DMA2 for output"
-+ depends on ETRAXFS || ETRAX_ARCH_V10
-+ help
-+ Enables the DMA2 output channel for ser2 (ttyS2).
-+ If you do not enable DMA, an interrupt for each character will be
-+ used when transmitting data.
-+ Normally you want to use DMA, unless you use the DMA channel for
-+ something else.
-+
-+config ETRAX_SERIAL_PORT2_DMA6_OUT
-+ bool "Ser2 uses DMA6 for output"
-+ depends on CRIS_MACH_ARTPEC3
-+ help
-+ Enables the DMA6 output channel for ser2 (ttyS2).
-+ If you do not enable DMA, an interrupt for each character will be
-+ used when transmitting data.
-+ Normally you want to use DMA, unless you use the DMA channel for
-+ something else.
-+
-+endchoice
-+
-+choice
-+ prompt "Ser2 DMA in channel"
-+ depends on ETRAX_SERIAL_PORT2
-+ default ETRAX_SERIAL_PORT2_NO_DMA_IN if ETRAX_ARCH_V32
-+ default ETRAX_SERIAL_PORT2_DMA3_IN if ETRAX_ARCH_V10
-+ help
-+ What DMA channel to use for ser2.
-+
-+config ETRAX_SERIAL_PORT2_NO_DMA_IN
-+ bool "Ser2 uses no DMA for input"
-+ help
-+ Do not use DMA for ser2 input.
-+
-+config ETRAX_SERIAL_PORT2_DMA3_IN
-+ bool "Ser2 uses DMA3 for input"
-+ depends on ETRAXFS || ETRAX_ARCH_V10
-+ help
-+ Enables the DMA3 input channel for ser2 (ttyS2).
-+ If you do not enable DMA, an interrupt for each character will be
-+ used when receiving data.
-+ Normally you want to use DMA, unless you use the DMA channel for
-+ something else.
-+
-+config ETRAX_SERIAL_PORT2_DMA7_IN
-+ bool "Ser2 uses DMA7 for input"
-+ depends on CRIS_MACH_ARTPEC3
-+ help
-+ Enables the DMA7 input channel for ser2 (ttyS2).
-+ If you do not enable DMA, an interrupt for each character will be
-+ used when receiving data.
-+ Normally you want to use DMA, unless you use the DMA channel for
-+ something else.
-+
-+endchoice
-+
-+choice
-+ prompt "Ser3 DMA in channel"
-+ depends on ETRAX_SERIAL_PORT3
-+ default ETRAX_SERIAL_PORT3_NO_DMA_IN if ETRAX_ARCH_V32
-+ default ETRAX_SERIAL_PORT3_DMA5_IN if ETRAX_ARCH_V10
-+ help
-+ What DMA channel to use for ser3.
-+
-+config ETRAX_SERIAL_PORT3_NO_DMA_IN
-+ bool "Ser3 uses no DMA for input"
-+ help
-+ Do not use DMA for ser3 input.
-+
-+config ETRAX_SERIAL_PORT3_DMA5_IN
-+ depends on ETRAX_ARCH_V10
-+ bool "DMA 5"
-+
-+config ETRAX_SERIAL_PORT3_DMA9_IN
-+ bool "Ser3 uses DMA9 for input"
-+ depends on ETRAXFS
-+ help
-+ Enables the DMA9 input channel for ser3 (ttyS3).
-+ If you do not enable DMA, an interrupt for each character will be
-+ used when receiving data.
-+ Normally you want to use DMA, unless you use the DMA channel for
-+ something else.
-+
-+config ETRAX_SERIAL_PORT3_DMA3_IN
-+ bool "Ser3 uses DMA3 for input"
-+ depends on CRIS_MACH_ARTPEC3
-+ help
-+ Enables the DMA3 input channel for ser3 (ttyS3).
-+ If you do not enable DMA, an interrupt for each character will be
-+ used when receiving data.
-+ Normally you want to use DMA, unless you use the DMA channel for
-+ something else.
-+
-+endchoice
-+
-+choice
-+ prompt "Ser3 DMA out channel"
-+ depends on ETRAX_SERIAL_PORT3
-+ default ETRAX_SERIAL_PORT3_NO_DMA_OUT if ETRAX_ARCH_V32
-+ default ETRAX_SERIAL_PORT3_DMA4_OUT if ETRAX_ARCH_V10
-+
-+config ETRAX_SER