summaryrefslogtreecommitdiff
path: root/packages/obsolete/nslu2/nslu2-kernel/2.6
diff options
context:
space:
mode:
Diffstat (limited to 'packages/obsolete/nslu2/nslu2-kernel/2.6')
-rw-r--r--packages/obsolete/nslu2/nslu2-kernel/2.6/.mtn2git_empty0
-rw-r--r--packages/obsolete/nslu2/nslu2-kernel/2.6/40-scsi-idle.patch44
-rw-r--r--packages/obsolete/nslu2/nslu2-kernel/2.6/91-maclist.patch377
-rw-r--r--packages/obsolete/nslu2/nslu2-kernel/2.6/92-nslu2-maclist.patch80
-rw-r--r--packages/obsolete/nslu2/nslu2-kernel/2.6/compile-switches.patch58
-rw-r--r--packages/obsolete/nslu2/nslu2-kernel/2.6/ixp4xx-regs.patch11
-rw-r--r--packages/obsolete/nslu2/nslu2-kernel/2.6/nslu2-io_rpbutton.patch139
-rw-r--r--packages/obsolete/nslu2/nslu2-kernel/2.6/thumb-swi.patch19
-rw-r--r--packages/obsolete/nslu2/nslu2-kernel/2.6/timer.patch24
-rw-r--r--packages/obsolete/nslu2/nslu2-kernel/2.6/x1205-rtc.patch38
10 files changed, 0 insertions, 790 deletions
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/.mtn2git_empty b/packages/obsolete/nslu2/nslu2-kernel/2.6/.mtn2git_empty
deleted file mode 100644
index e69de29bb2..0000000000
--- a/packages/obsolete/nslu2/nslu2-kernel/2.6/.mtn2git_empty
+++ /dev/null
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/40-scsi-idle.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/40-scsi-idle.patch
deleted file mode 100644
index e04996e2a8..0000000000
--- a/packages/obsolete/nslu2/nslu2-kernel/2.6/40-scsi-idle.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -ur linux-2.6.12.2/drivers/scsi/sd.c linux-2.6.12.2_scsi-idle/drivers/scsi/sd.c
---- linux-2.6.12.2/drivers/scsi/sd.c 2005-08-27 06:12:31.000000000 +0200
-+++ linux-2.6.12.2_scsi-idle/drivers/scsi/sd.c 2005-08-27 06:26:50.000000000 +0200
-@@ -266,6 +266,9 @@
- "count=%d\n", disk->disk_name,
- (unsigned long long)block, this_count));
-
-+ /* Update idle-since time */
-+ sdp->idle = jiffies;
-+
- if (!sdp || !scsi_device_online(sdp) ||
- block + rq->nr_sectors > get_capacity(disk)) {
- SCSI_LOG_HLQUEUE(2, printk("Finishing %ld sectors\n",
-@@ -600,6 +603,8 @@
- case SCSI_IOCTL_GET_IDLUN:
- case SCSI_IOCTL_GET_BUS_NUMBER:
- return scsi_ioctl(sdp, cmd, p);
-+ case SCSI_IOCTL_IDLE:
-+ return (jiffies - sdp->idle) / HZ + 1;
- default:
- error = scsi_cmd_ioctl(filp, disk, cmd, p);
- if (error != -ENOTTY)
-diff -ur linux-2.6.12.2/include/scsi/scsi_device.h linux-2.6.12.2_scsi-idle/include/scsi/scsi_device.h
---- linux-2.6.12.2/include/scsi/scsi_device.h 2005-08-27 06:12:44.000000000 +0200
-+++ linux-2.6.12.2_scsi-idle/include/scsi/scsi_device.h 2005-08-27 06:27:09.000000000 +0200
-@@ -125,6 +125,7 @@
- atomic_t ioerr_cnt;
-
- int timeout;
-+ unsigned long idle; /* scsi idle time in jiffers */
-
- struct device sdev_gendev;
- struct class_device sdev_classdev;
-diff -ur linux-2.6.12.2/include/scsi/scsi_ioctl.h linux-2.6.12.2_scsi-idle/include/scsi/scsi_ioctl.h
---- linux-2.6.12.2/include/scsi/scsi_ioctl.h 2005-08-27 06:12:44.000000000 +0200
-+++ linux-2.6.12.2_scsi-idle/include/scsi/scsi_ioctl.h 2005-08-28 17:32:17.000000000 +0200
-@@ -7,6 +7,7 @@
- #define SCSI_IOCTL_SYNC 4 /* Request synchronous parameters */
- #define SCSI_IOCTL_START_UNIT 5
- #define SCSI_IOCTL_STOP_UNIT 6
-+#define SCSI_IOCTL_IDLE 4746 /* get idle time in jiffies */
- /* The door lock/unlock constants are compatible with Sun constants for
- the cdrom */
- #define SCSI_IOCTL_DOORLOCK 0x5380 /* lock the eject mechanism */
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/91-maclist.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/91-maclist.patch
deleted file mode 100644
index 27af1ea639..0000000000
--- a/packages/obsolete/nslu2/nslu2-kernel/2.6/91-maclist.patch
+++ /dev/null
@@ -1,377 +0,0 @@
---- linux-2.6.15/include/net/maclist.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/include/net/maclist.h 1970-01-01 00:00:00.000000000 +0000
-@@ -0,0 +1,23 @@
-+#ifndef _MACLIST_H
-+#define _MACLIST_H 1
-+/*
-+ * Interfaces to the MAC repository
-+ */
-+/*
-+ * Add a single entry, returns 0 on success else an error
-+ * code. Must *not* be called from an interrupt handler.
-+ */
-+extern int maclist_add(const u8 id_to_add[6]);
-+
-+/*
-+ * Return the current entry count (valid in any context).
-+ */
-+extern int maclist_count(void);
-+
-+/*
-+ * Return the ID from the n'th entry (valid in any context),
-+ * returns 0 on success, -EINVAL if 'n' is out of range.
-+ */
-+extern int maclist_read(u8 (*buffer_for_id)[6], int index_of_id_to_return);
-+
-+#endif /*_MACLIST_H*/
---- linux-2.6.15/drivers/net/maclist.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/drivers/net/maclist.c 1970-01-01 00:00:00.000000000 +0000
-@@ -0,0 +1,314 @@
-+/*
-+ * drivers/net/maclist.c
-+ *
-+ * a simple driver to remember ethernet MAC values
-+ *
-+ * Some Ethernet hardware implementations have no built-in
-+ * storage for allocated MAC values - an example is the Intel
-+ * IXP420 chip which has support for Ethernet but no defined
-+ * way of storing allocated MAC values. With such hardware
-+ * different board level implementations store the allocated
-+ * MAC (or MACs) in different ways. Rather than put board
-+ * level code into a specific Ethernet driver this driver
-+ * provides a generally accessible repository for the MACs
-+ * which can be written by board level code and read by the
-+ * driver.
-+ *
-+ * The implementation also allows user level programs to
-+ * access the MAC information in /proc/net/maclist. This is
-+ * useful as it allows user space code to use the MAC if it
-+ * is not used by a built-in driver.
-+ *
-+ * Copyright (C) 2005 John Bowler
-+ * Author: John Bowler <jbowler@acm.org>
-+ * Maintainers: http://www.nslu2-linux.org/
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * version 2 as published by the Free Software Foundation.
-+ *
-+ * External interfaces:
-+ * Interfaces to linux kernel (and modules)
-+ * maclist_add: add a single MAC
-+ * maclist_count: total number of MACs stored
-+ * maclist_read: read a MAC 0..(maclist_count-1)
-+ */
-+#include <linux/module.h>
-+#include <linux/moduleparam.h>
-+#include <linux/etherdevice.h>
-+#include <linux/proc_fs.h>
-+#include <linux/errno.h>
-+
-+#include <net/maclist.h>
-+
-+#define MACLIST_NAME "maclist"
-+
-+MODULE_AUTHOR("John Bowler <jbowler@acm.org>");
-+MODULE_DESCRIPTION("MAC list repository");
-+MODULE_LICENSE("GPL");
-+
-+typedef struct maclist_entry {
-+ struct maclist_entry *next; /* Linked list, first first */
-+ u8 id[6]; /* 6 byte Ethernet MAC */
-+} maclist_entry_t;
-+
-+/* Access to this list is possible at any time - entries in
-+ * the list are never destroyed. Modification of the list is
-+ * safe only from the init code (i.e. modification must be
-+ * single threaded), but read from an interrupt at the same
-+ * time is possible and safe.
-+ */
-+static maclist_entry_t *maclist_list = 0;
-+
-+/*
-+ * External interfaces.
-+ *
-+ * Add a single entry, returns 0 on success else an error
-+ * code. Must be single threaded.
-+ */
-+int maclist_add(const u8 new_id[6]) {
-+ maclist_entry_t *new_entry, **tail;
-+
-+ if (new_id == 0 || !is_valid_ether_addr(new_id)) {
-+ printk(KERN_ERR MACLIST_NAME ": invalid ethernet address\n");
-+ return -EINVAL;
-+ }
-+ new_entry = kmalloc(sizeof *new_entry, GFP_KERNEL);
-+ if (new_entry == 0)
-+ return -ENOMEM;
-+ new_entry->next = 0;
-+ memcpy(new_entry->id, new_id, sizeof new_entry->id);
-+
-+ tail = &maclist_list;
-+ while (*tail != 0)
-+ tail = &(*tail)->next;
-+ *tail = new_entry;
-+ return 0;
-+}
-+EXPORT_SYMBOL(maclist_add);
-+
-+/*
-+ * Return the current entry count (valid in any context).
-+ */
-+int maclist_count(void) {
-+ maclist_entry_t *tail = maclist_list;
-+ int count = 0;
-+
-+ while (tail != 0) {
-+ tail = tail->next;
-+ ++count;
-+ }
-+
-+ return count;
-+}
-+EXPORT_SYMBOL(maclist_count);
-+
-+/*
-+ * Return the ID from the n'th entry (valid in any context),
-+ * returns 0 on success, -EINVAL if 'n' is out of range.
-+ */
-+int maclist_read(u8 (*id)[6], int n) {
-+ maclist_entry_t *entry = maclist_list;
-+
-+ while (n > 0 && entry != 0) {
-+ --n;
-+ entry = entry->next;
-+ }
-+
-+ if (n == 0 && entry != 0) {
-+ memcpy(id, entry->id, sizeof *id);
-+ return 0;
-+ }
-+
-+ printk(KERN_ERR MACLIST_NAME ": id does not exist\n");
-+ return -EINVAL;
-+}
-+EXPORT_SYMBOL(maclist_read);
-+
-+/*
-+ * Parameter parsing. The option string is a list of MAC
-+ * addresses, comma separated. (The parsing really should
-+ * be somewhere central...)
-+ */
-+static int __init maclist_setup(char *param) {
-+ int bytes = 0, seen_a_digit = 0;
-+ u8 id[6];
-+
-+ memset(id, 0, sizeof id);
-+
-+ if (param) do {
-+ int digit = -1;
-+ switch (*param) {
-+ case '0': digit = 0; break;
-+ case '1': digit = 1; break;
-+ case '2': digit = 2; break;
-+ case '3': digit = 3; break;
-+ case '4': digit = 4; break;
-+ case '5': digit = 5; break;
-+ case '6': digit = 6; break;
-+ case '7': digit = 7; break;
-+ case '8': digit = 8; break;
-+ case '9': digit = 9; break;
-+ case 'a': case 'A': digit = 10; break;
-+ case 'b': case 'B': digit = 11; break;
-+ case 'c': case 'C': digit = 12; break;
-+ case 'd': case 'D': digit = 13; break;
-+ case 'e': case 'E': digit = 14; break;
-+ case 'f': case 'F': digit = 15; break;
-+ case ':':
-+ if (seen_a_digit)
-+ bytes = (bytes+1) & ~1;
-+ else
-+ bytes += 2; /* i.e. ff::ff is ff:00:ff */
-+ seen_a_digit = 0;
-+ break;
-+ case 0:
-+ if (bytes == 0) /* nothing new seen so far */
-+ return 0;
-+ /*fall through*/
-+ case ',': case ';':
-+ if (bytes > 0)
-+ bytes = 12; /* i.e. all trailing bytes 0 */
-+ break;
-+ default:
-+ printk(KERN_ERR MACLIST_NAME ": invalid character <%c[%d]>\n",
-+ *param, *param);
-+ return -EINVAL;
-+ }
-+
-+ if (digit >= 0) {
-+ id[bytes>>1] = (id[bytes>>1] << 4) + digit; break;
-+ ++bytes;
-+ seen_a_digit = 1;
-+ }
-+
-+ if (bytes >= 12) {
-+ int rc = maclist_add(id);
-+ if (rc)
-+ return rc;
-+ bytes = 0;
-+ seen_a_digit = 0;
-+ memset(id, 0, sizeof id);
-+ if (*param == 0)
-+ return 0;
-+ }
-+ ++param;
-+ } while (1);
-+
-+ return 0;
-+}
-+
-+/*
-+ * procfs support, if compiled in.
-+ */
-+#ifdef CONFIG_PROC_FS
-+/*
-+ * Character device read
-+ */
-+static int maclist_getchar(off_t n) {
-+ static char xdigit[16] = "0123456789abcdef";
-+ maclist_entry_t *head = maclist_list;
-+ int b;
-+
-+ do {
-+ if (head == 0)
-+ return -1;
-+ if (n < 18)
-+ break;
-+ head = head->next;
-+ n -= 18;
-+ } while (1);
-+
-+ if (n == 17)
-+ return '\n';
-+
-+ b = n/3;
-+ switch (n - b*3) {
-+ case 0: return xdigit[head->id[b] >> 4];
-+ case 1: return xdigit[head->id[b] & 0xf];
-+ default: return ':';
-+ }
-+}
-+
-+/*
-+ * The extensively undocumented proc_read_t callback is implemented here.
-+ * Go look in fs/proc/generic.c:
-+ *
-+ * Prototype:
-+ * int f(char *buffer, char **start, off_t offset,
-+ * int count, int *peof, void *dat)
-+ *
-+ * Assume that the buffer is "count" bytes in size.
-+ *
-+ * 2) Set *start = an address within the buffer.
-+ * Put the data of the requested offset at *start.
-+ * Return the number of bytes of data placed there.
-+ * If this number is greater than zero and you
-+ * didn't signal eof and the reader is prepared to
-+ * take more data you will be called again with the
-+ * requested offset advanced by the number of bytes
-+ * absorbed.
-+ */
-+static int maclist_proc_read(char *buffer, char **start, off_t offset,
-+ int count, int *peof, void *dat) {
-+ int total;
-+
-+ *start = buffer;
-+ total = 0;
-+
-+ while (total < count) {
-+ int ch = maclist_getchar(offset++);
-+ if (ch == -1) {
-+ *peof = 1;
-+ break;
-+ }
-+ *buffer++ = ch;
-+ ++total;
-+ }
-+
-+ return total;
-+}
-+#endif
-+
-+/*
-+ * Finally, the init/exit functions.
-+ */
-+static void __exit maclist_exit(void)
-+{
-+ maclist_entry_t *list;
-+
-+ remove_proc_entry(MACLIST_NAME, proc_net);
-+
-+ list = maclist_list;
-+ maclist_list = 0;
-+
-+ while (list != 0) {
-+ maclist_entry_t *head = list;
-+ list = head->next;
-+ kfree(head);
-+ }
-+}
-+
-+#ifdef MODULE
-+static char ids[256];
-+module_param_string(ids, ids, sizeof ids, 0);
-+MODULE_PARM_DESC(ids, "comma separated list of MAC ids\n");
-+#else
-+__setup("maclist_ids=", maclist_setup);
-+#endif
-+
-+static int __init maclist_init(void)
-+{
-+# ifdef MODULE
-+ if (ids[0])
-+ maclist_setup(ids);
-+# endif
-+
-+ /* Ignore failure, the module will still work. */
-+ (void)create_proc_read_entry(MACLIST_NAME, S_IRUGO, proc_net, maclist_proc_read, NULL);
-+
-+ return 0;
-+}
-+
-+module_init(maclist_init);
-+module_exit(maclist_exit);
---- linux-2.6.15/drivers/net/Makefile 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/drivers/net/Makefile 1970-01-01 00:00:00.000000000 +0000
-@@ -70,6 +70,7 @@ obj-$(CONFIG_RIONET) += rionet.o
- # end link order section
- #
-
-+obj-$(CONFIG_MACLIST) += maclist.o
- obj-$(CONFIG_MII) += mii.o
- obj-$(CONFIG_PHYLIB) += phy/
-
---- linux-2.6.15/drivers/net/Kconfig 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/drivers/net/Kconfig 1970-01-01 00:00:00.000000000 +0000
-@@ -166,6 +166,21 @@ config NET_ETHERNET
- kernel: saying N will just cause the configurator to skip all
- the questions about Ethernet network cards. If unsure, say N.
-
-+config MACLIST
-+ tristate "Ethernet MAC repository"
-+ depends on NET_ETHERNET
-+ help
-+ Some ethernet controllers have no built-in way of obtaining an
-+ appropriate Ethernet MAC address. Such controllers have to be
-+ initialised in a board-specific way, depending on how the allocated
-+ MAC is stored. The MAC repository provides a set of APIs and a
-+ proc entry (/proc/net/maclist) to store MAC values from the board
-+ so that such drivers can obtain a MAC address without board-specific
-+ code. You do not need to enable this device - it will be selected
-+ automatically by any device which requires it. It is only useful
-+ to enable it manually when building a device driver independently
-+ of the kernel build.
-+
- config MII
- tristate "Generic Media Independent Interface device support"
- depends on NET_ETHERNET
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/92-nslu2-maclist.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/92-nslu2-maclist.patch
deleted file mode 100644
index c8b8a9bede..0000000000
--- a/packages/obsolete/nslu2/nslu2-kernel/2.6/92-nslu2-maclist.patch
+++ /dev/null
@@ -1,80 +0,0 @@
---- linux-2.6.15/arch/arm/mach-ixp4xx/Kconfig 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/arch/arm/mach-ixp4xx/Kconfig 1970-01-01 00:00:00.000000000 +0000
-@@ -11,8 +11,8 @@ comment "IXP4xx Platforms"
- # This entry is placed on top because otherwise it would have
- # been shown as a submenu.
- config MACH_NSLU2
-- bool
-- prompt "NSLU2" if !(MACH_IXDP465 || MACH_IXDPG425 || ARCH_IXDP425 || ARCH_ADI_COYOTE || ARCH_AVILA || ARCH_IXCDP1100 || ARCH_PRPMC1100 || MACH_GTWX5715)
-+ bool "NSLU2"
-+ select MACLIST
- help
- Say 'Y' here if you want your kernel to support Linksys's
- NSLU2 NAS device. For more information on this platform,
---- linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-setup.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-setup.c 1970-01-01 00:00:00.000000000 +0000
-@@ -16,11 +16,14 @@
- #include <linux/kernel.h>
- #include <linux/serial.h>
- #include <linux/serial_8250.h>
-+#include <linux/mtd/mtd.h>
-
- #include <asm/mach-types.h>
- #include <asm/mach/arch.h>
- #include <asm/mach/flash.h>
-
-+#include <net/maclist.h>
-+
- static struct flash_platform_data nslu2_flash_data = {
- .map_name = "cfi_probe",
- .width = 2,
-@@ -112,6 +115,37 @@ static void nslu2_power_off(void)
- gpio_line_set(NSLU2_PO_GPIO, IXP4XX_GPIO_HIGH);
- }
-
-+/*
-+ * When the RedBoot partition is added the MAC address is read from
-+ * it.
-+ */
-+void flash_add(struct mtd_info *mtd) {
-+ if (strcmp(mtd->name, "RedBoot") == 0) {
-+ size_t retlen;
-+ u_char mac[6];
-+
-+ /* The MAC is at a known offset... */
-+ if (mtd->read(mtd, 0x3FFB0, 6, &retlen, mac) == 0 && retlen == 6) {
-+ printk(KERN_INFO "NSLU2 MAC: %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",
-+ mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
-+ maclist_add(mac);
-+ } else {
-+ printk(KERN_ERR "NSLU2 MAC: read failed\n");
-+ }
-+ }
-+}
-+
-+/*
-+ * Nothing to do on remove at present.
-+ */
-+void flash_remove(struct mtd_info *mtd) {
-+}
-+
-+struct mtd_notifier flash_notifier = {
-+ .add = flash_add,
-+ .remove = flash_remove,
-+};
-+
- static void __init nslu2_init(void)
- {
- /* The NSLU2 has a 33MHz crystal on board - 1.01% different
-@@ -119,6 +153,11 @@ static void __init nslu2_init(void)
- */
- ixp4xx_set_board_tick_rate(66000000);
-
-+ /* The flash has an ethernet MAC embedded in it which we need,
-+ * that is all this notifier does.
-+ */
-+ register_mtd_user(&flash_notifier);
-+
- ixp4xx_sys_init();
-
- pm_power_off = nslu2_power_off;
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/compile-switches.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/compile-switches.patch
deleted file mode 100644
index 4b7a688313..0000000000
--- a/packages/obsolete/nslu2/nslu2-kernel/2.6/compile-switches.patch
+++ /dev/null
@@ -1,58 +0,0 @@
---- linux-2.6.11/arch/arm/Makefile.orig 2005-03-20 15:02:07.587138712 -0800
-+++ linux-2.6.11/arch/arm/Makefile 2005-03-20 15:10:36.546765088 -0800
-@@ -33,6 +33,12 @@
- AFLAGS += -mlittle-endian
- endif
-
-+ifeq ($(CONFIG_ARM_THUMB_INTERWORK),y)
-+CFLAGS += -mthumb-interwork
-+else
-+CFLAGS += -mno-thumb-interwork
-+endif
-+
- comma = ,
-
- # This selects which instruction set is used.
-@@ -43,6 +49,8 @@
- arch-$(CONFIG_CPU_32v5) :=-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4)
- arch-$(CONFIG_CPU_32v4) :=-D__LINUX_ARM_ARCH__=4 -march=armv4
- arch-$(CONFIG_CPU_32v3) :=-D__LINUX_ARM_ARCH__=3 -march=armv3
-+# The following overrides the CPU_32v5 setting if specified
-+arch-$(CONFIG_ARCH_XSCALE) :=-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=xscale,-march=armv5te)
-
- # This selects how we optimise for the processor.
- tune-$(CONFIG_CPU_ARM610) :=-mtune=arm610
---- linux-2.6.11/arch/arm/mm/Kconfig.orig 2005-03-20 14:54:07.927058128 -0800
-+++ linux-2.6.11/arch/arm/mm/Kconfig 2005-03-20 15:01:26.727350344 -0800
-@@ -366,6 +366,31 @@
-
- If you don't know what this all is, saying Y is a safe choice.
-
-+config ARM_THUMB_INTERWORK
-+ bool "Support Thumb code within the kernel"
-+ depends on CPU_ARM720T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || CPU_XSCALE || CPU_V6
-+ default n
-+ help
-+ Say Y to compile the whole kernel with support for the interworking
-+ of the 16 bit thumb instruction set and 32 bit ARM instruction set.
-+
-+ You only need this if some parts of the kernel will be compiled
-+ as thumb code, this is not usual. It increases the total kernel
-+ size by about 3%.
-+
-+config ARCH_XSCALE
-+ bool "Use -march=xscale in preference to -march=armv5te"
-+ depends on CPU_XSCALE
-+ default y
-+ help
-+ Say yes to ask gcc to use the xscale architecture (instruction set)
-+ in preference to armv5te. This allows gcc to use the extra xscale
-+ instructions but means the code will not run on a standard (non-xscale)
-+ armv5te. At present this makes no difference - gcc 3.4.3 does not
-+ generate any xscale specific instructions - however gcc 3.4.3 does
-+ generate slightly more optimal instructions if this is specified (this
-+ is an error inside gcc 3.4.3 which should be fixed in 4.1.)
-+
- config CPU_BIG_ENDIAN
- bool "Build big-endian kernel"
- depends on ARCH_SUPPORTS_BIG_ENDIAN
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/ixp4xx-regs.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/ixp4xx-regs.patch
deleted file mode 100644
index 32f7e3ccb8..0000000000
--- a/packages/obsolete/nslu2/nslu2-kernel/2.6/ixp4xx-regs.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- linux-2.6.11/.pc/2.6.patch/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h 2005-03-01 23:37:49.000000000 -0800
-+++ linux-2.6.11/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h 2005-06-17 17:51:32.569981939 -0700
-@@ -52,7 +52,7 @@
- * Expansion BUS Configuration registers
- */
- #define IXP4XX_EXP_CFG_BASE_PHYS (0xC4000000)
--#define IXP4XX_EXP_CFG_BASE_VIRT (0xFFBFD000)
-+#define IXP4XX_EXP_CFG_BASE_VIRT (0xFFBFE000)
- #define IXP4XX_EXP_CFG_REGION_SIZE (0x00001000)
-
- /*
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/nslu2-io_rpbutton.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/nslu2-io_rpbutton.patch
deleted file mode 100644
index b5ce101d68..0000000000
--- a/packages/obsolete/nslu2/nslu2-kernel/2.6/nslu2-io_rpbutton.patch
+++ /dev/null
@@ -1,139 +0,0 @@
---- nslu2-io.c.old 2da1d3f5c0aa0804c5769588337077ddcb35c5e9
-+++ linux-2.6.12.2/arch/arm/mach-ixp4xx/nslu2-io.c e895da638b4aae16a11fafe52ae0b063645a9a12
-@@ -158,6 +158,8 @@
- #define LED_DISK2 3
- #define LED_ALL 4
-
-+static int nslu2_shutdown_in_progress = 0;
-+
- static unsigned long init_jiffy = 0; //jiffies at init time
- static unsigned long rb_presses = 0; //number of reset button presses
- static unsigned long ontime = 50;
-@@ -503,40 +505,20 @@
- static irqreturn_t n2pb_handler (int irq, void *dev_id, struct pt_regs *regs)
- {
- void *ret;
--
-- wake_up(&n2pb_waitq);
-- remove_proc_entry(PWR_OFF_STR, NULL); //no parent
-- n2_buzz(N2_BEEP_PITCH_MED, N2_BEEP_DUR_MED);
-- ret = create_proc_entry(PWR_OFF_STR, 0, NULL);
-- nslu2_io_debug((KERN_DEBUG "cpe ret = %p\n", ret));
--
--// WARNING: This is RUDE...it unconditionally pulls the power plug.
--// Your data will be at risk...since this is just a test system
--// I am leaving it enabled...eventually userland needs to get the
--// message, do an orderly shutdown and use an ioctl or something in
--// /proc/powerdowm to actually have us pull the plug.
--
-- machine_power_off();
--
-+ if (!nslu2_shutdown_in_progress++) {
-+ wake_up(&n2pb_waitq);
-+ remove_proc_entry(PWR_OFF_STR, NULL); //no parent
-+ n2_buzz(N2_BEEP_PITCH_HIGH, N2_BEEP_DUR_SHORT); // Short, high-pitched "OK"
-+ ret = create_proc_entry(PWR_OFF_STR, 0, NULL);
-+ nslu2_io_debug((KERN_DEBUG "Powerbutton pressed. Shutting down. cpe ret = %p\n", ret));
-+ kill_proc(1,SIGINT,1); // Signal init to shut down
-+ } else {
-+ n2_buzz(N2_BEEP_PITCH_LOW, N2_BEEP_DUR_MED); // Make a scary noise!
-+ nslu2_io_debug((KERN_DEBUG "Powerbutton pressed while already in shutdown")); // Whine!
-+ }
- return IRQ_HANDLED;
- }
-
--//==================================================================================================
--//
--//static void do_rb_timeout(unsigned long data)
--//{
--// int i;
--//
--// for (i = 0; i < rb_presses; i++)
--// n2_buzz(N2_BEEP_PITCH_MED,N2_BEEP_DUR_SHORT);
--// return;
--//}
--//
--//==================================================================================================
--// does nothing -- waiting for userland to define
--// This thing is sorta braindead...edge triggered IRQs aren't available in the drivers yet...so
--// we hang in a loop until the button is no longer pressed
--
- struct testr {
- int ctl;
- long param;
-@@ -544,72 +526,11 @@
-
- static irqreturn_t n2rb_handler (int irq, void *dev_id, struct pt_regs *regs)
- {
-+// This doesn't reset the NSLU2. It powers it off. Close enough, since reset is unreliable
-
-- static struct testr test[] = {
-- { N2LM_ALL_OFF,0 },
-- { N2LM_ON,0 },
-- { N2LM_OFF,0 },
-- { N2LM_ON,1 },
-- { N2LM_ALL_OFF,1 },
-- { N2LM_ON,2 },
-- { N2LM_OFF,2 },
-- { N2LM_ON,3 },
-- { N2LM_OFF,3 },
-- { N2LM_BLINK,0 },
-- { N2LM_OFF,0 },
-- { N2LM_BLINK,1 },
-- { N2LM_OFF,1 },
-- { N2LM_BLINK,2 },
-- { N2LM_OFF,2 },
-- { N2LM_BLINK,3 },
-- { N2LM_OFF,3 },
-- { N2LM_ALL_OFF,0 },
-- { N2LM_ALT,1 },
-- { N2LM_OFF,1 },
-- { N2LM_ALL_ON,0 }
-- };
--
-- nslu2_io_debug(("Reset Entry IRQ =%d Presses = %d Jiffies = %08lx\tIO = %x\tIOW = %x\n", irq, rb_presses, jiffies, (int)_IO('M',rb_presses), (int)_IOW('M',rb_presses,long)));
--
- wake_up(&n2rb_waitq);
-- while ((*IXP4XX_GPIO_GPINR & GPIO_RB_BM) == 0)
-- ; //wait for button release
--
-- if (rb_presses > 20)
-- rb_presses = 0;
-- tone = (rb_presses * 50) + 200;
-- ontime = (rb_presses*10) + 100;
-- offtime = 500 - (rb_presses*20);
-- nslu2_io_debug(("Ontime = %d\tOfftime = %d\tTone = %d\n",ontime,offtime,tone));
-- rb_presses++;
--
-- n2bz_ioctl(NULL,NULL, N2BZ_BEEPS, rb_presses);
-- n2lm_ioctl(NULL,NULL, test[rb_presses].ctl, test[rb_presses].param);
--// if (rb_presses == 0) {
--// init_jiffy = jiffies;
--// init_timer (&n2rb_timer);
--// n2rb_timer.function = do_rb_timeout;
--// };
--//
--// if (rb_presses == 8)
--// rb_presses = 0;
--// if (rb_presses & 1)
--// n2lm_ledon(test[rb_presses]);
--// else
--// n2lm_ledoff(test[rb_presses]);
--//
--// n2rb_timer.expires = (jiffies + RB_DELAY);
--// add_timer (&n2rb_timer);
--// if (rb_presses < 5) {
--// if (rb_presses > 0)
--// n2lm_ledoff(rb_presses);
--// n2lm_ledon(++rb_presses);
--// n2lm_timer_start(rb_presses);
--// };
--
-- nslu2_io_debug((KERN_DEBUG "Reset Exit IRQ=%d Presses= %d Jiffies= %08lx\n", irq, rb_presses, jiffies));
-- return IRQ_HANDLED;
--
-+ machine_power_off();
-+ return IRQ_HANDLED; // So we don't get a nobody cared error :-P
- }
-
- //==================================================================================================
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/thumb-swi.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/thumb-swi.patch
deleted file mode 100644
index 2e73bb103f..0000000000
--- a/packages/obsolete/nslu2/nslu2-kernel/2.6/thumb-swi.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-# This patch changes the thumb swi handling for any thumb swi with
-# an immediate value != 0, those swis are mapped into the arm
-# specific swis. This implements a thumb breakpoint swi.
---- linux-2.6.12.2/arch/arm/kernel/entry-common.S.orig 2005-09-19 12:48:42.323365573 -0700
-+++ linux-2.6.12.2/arch/arm/kernel/entry-common.S 2005-09-19 13:31:19.004247358 -0700
-@@ -137,8 +137,11 @@
- */
- #ifdef CONFIG_ARM_THUMB
- tst r8, #PSR_T_BIT @ this is SPSR from save_user_regs
-- addne scno, r7, #__NR_SYSCALL_BASE @ put OS number in
-- ldreq scno, [lr, #-4]
-+ ldrneh ip, [lr, #-2] @ thumb swi instruction
-+ ldreq scno, [lr, #-4] @ arm swi instruction
-+ addne scno, r7, #__NR_SYSCALL_BASE @ put OS number in to thumb r7 value
-+ bicnes ip, ip, #0xff00 @ clear thumb swi bits
-+ addne scno, ip, #__ARM_NR_BASE @ thumb swi0->r7, swi!0->arm swi
- #else
- ldr scno, [lr, #-4] @ get SWI instruction
- #endif
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/timer.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/timer.patch
deleted file mode 100644
index 6279746e64..0000000000
--- a/packages/obsolete/nslu2/nslu2-kernel/2.6/timer.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-# Fix for the NSLU2 timer problem (tickadj 10101.01 when it should be 10000)
-# Also contains a fix for the more generate problem on the ixp4xx in that the
-# Intel spec says to use a 33.33MHz crystal, not 33.333333Mhz
-
---- linux-2.6.12.2/include/asm-arm/arch-ixp4xx/timex.h.orig 2005-08-05 11:02:09.872690723 -0700
-+++ linux-2.6.12.2/include/asm-arm/arch-ixp4xx/timex.h 2005-08-05 11:45:08.786971567 -0700
-@@ -7,7 +7,14 @@
-
- /*
- * We use IXP425 General purpose timer for our timer needs, it runs at
-- * 66.66... MHz
-+ * 66.66 MHz (exactly) by the Intel specification.
- */
--#define CLOCK_TICK_RATE (66666666)
--
-+#if 0
-+#define CLOCK_TICK_RATE (66660000)
-+#else
-+/*
-+ * Unfortunately the NSLU2 has a 33MHz crystal, so the rate is not the
-+ * specified one.
-+ */
-+#define CLOCK_TICK_RATE (66000000)
-+#endif
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/x1205-rtc.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/x1205-rtc.patch
deleted file mode 100644
index 913f44e2ae..0000000000
--- a/packages/obsolete/nslu2/nslu2-kernel/2.6/x1205-rtc.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- linux-2.6.11/.pc/2.6.patch/drivers/i2c/chips/Kconfig 2005-06-17 17:51:28.635578329 -0700
-+++ linux-2.6.11/drivers/i2c/chips/Kconfig 2005-06-17 17:51:32.565982545 -0700
-@@ -430,6 +430,15 @@
-
- This driver can also be built as a module. If so, the module
- will be called isp1301_omap.
-+config SENSORS_X1205
-+ tristate "Xicor X1205 RTC chip"
-+ depends on I2C && EXPERIMENTAL
-+ select I2C_SENSOR
-+ help
-+ If you say yes here you get support for the Xicor x1205 RTC chip.
-+
-+ This driver can also be built as a module. If so, the module
-+ will be called x1205-rtc
-
- config SENSORS_M41T00
- tristate "ST M41T00 RTC chip"
---- linux-2.6.11/.pc/2.6.patch/drivers/i2c/chips/Makefile 2005-06-17 17:51:28.636578177 -0700
-+++ linux-2.6.11/drivers/i2c/chips/Makefile 2005-06-17 17:51:32.566982394 -0700
-@@ -41,6 +41,7 @@
- obj-$(CONFIG_SENSORS_VIA686A) += via686a.o
- obj-$(CONFIG_SENSORS_W83L785TS) += w83l785ts.o
- obj-$(CONFIG_ISP1301_OMAP) += isp1301_omap.o
-+obj-$(CONFIG_SENSORS_X1205) += x1205-rtc.o
-
- ifeq ($(CONFIG_I2C_DEBUG_CHIP),y)
- EXTRA_CFLAGS += -DDEBUG
---- linux-2.6.11/.pc/2.6.patch/include/linux/i2c-id.h 2005-06-17 17:51:31.358165630 -0700
-+++ linux-2.6.11/include/linux/i2c-id.h 2005-06-17 17:51:32.569981939 -0700
-@@ -108,6 +108,7 @@
- #define I2C_DRIVERID_TDA7313 62 /* TDA7313 audio processor */
- #define I2C_DRIVERID_MAX6900 63 /* MAX6900 real-time clock */
- #define I2C_DRIVERID_SAA7114H 64 /* video decoder */
-+#define I2C_DRIVERID_X1205 0xF0
-
-
- #define I2C_DRIVERID_EXP0 0xF0 /* experimental use id's */