diff options
author | Rod Whitby <rod@whitby.id.au> | 2007-01-23 05:01:14 +0000 |
---|---|---|
committer | Rod Whitby <rod@whitby.id.au> | 2007-01-23 05:01:14 +0000 |
commit | 73ec7248a6afa80e2db3c4560ae86d85464a71c8 (patch) | |
tree | 36c724e868ababbbabdf12bddc768e6b25b7465b /packages/linux/nslu2-kernel/2.6 | |
parent | a26989c694c564990b73d96270654f44c2fc8d3c (diff) |
nslu2-kernel: Moved to obsolete - replaced long ago by ixp4xx-kernel.
Diffstat (limited to 'packages/linux/nslu2-kernel/2.6')
-rw-r--r-- | packages/linux/nslu2-kernel/2.6/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/linux/nslu2-kernel/2.6/40-scsi-idle.patch | 44 | ||||
-rw-r--r-- | packages/linux/nslu2-kernel/2.6/91-maclist.patch | 377 | ||||
-rw-r--r-- | packages/linux/nslu2-kernel/2.6/92-nslu2-maclist.patch | 80 | ||||
-rw-r--r-- | packages/linux/nslu2-kernel/2.6/compile-switches.patch | 58 | ||||
-rw-r--r-- | packages/linux/nslu2-kernel/2.6/ixp4xx-regs.patch | 11 | ||||
-rw-r--r-- | packages/linux/nslu2-kernel/2.6/nslu2-io_rpbutton.patch | 139 | ||||
-rw-r--r-- | packages/linux/nslu2-kernel/2.6/thumb-swi.patch | 19 | ||||
-rw-r--r-- | packages/linux/nslu2-kernel/2.6/timer.patch | 24 | ||||
-rw-r--r-- | packages/linux/nslu2-kernel/2.6/x1205-rtc.patch | 38 |
10 files changed, 0 insertions, 790 deletions
diff --git a/packages/linux/nslu2-kernel/2.6/.mtn2git_empty b/packages/linux/nslu2-kernel/2.6/.mtn2git_empty deleted file mode 100644 index e69de29bb2..0000000000 --- a/packages/linux/nslu2-kernel/2.6/.mtn2git_empty +++ /dev/null diff --git a/packages/linux/nslu2-kernel/2.6/40-scsi-idle.patch b/packages/linux/nslu2-kernel/2.6/40-scsi-idle.patch deleted file mode 100644 index e04996e2a8..0000000000 --- a/packages/linux/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/linux/nslu2-kernel/2.6/91-maclist.patch b/packages/linux/nslu2-kernel/2.6/91-maclist.patch deleted file mode 100644 index 27af1ea639..0000000000 --- a/packages/linux/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/linux/nslu2-kernel/2.6/92-nslu2-maclist.patch b/packages/linux/nslu2-kernel/2.6/92-nslu2-maclist.patch deleted file mode 100644 index c8b8a9bede..0000000000 --- a/packages/linux/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/linux/nslu2-kernel/2.6/compile-switches.patch b/packages/linux/nslu2-kernel/2.6/compile-switches.patch deleted file mode 100644 index 4b7a688313..0000000000 --- a/packages/linux/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/linux/nslu2-kernel/2.6/ixp4xx-regs.patch b/packages/linux/nslu2-kernel/2.6/ixp4xx-regs.patch deleted file mode 100644 index 32f7e3ccb8..0000000000 --- a/packages/linux/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/linux/nslu2-kernel/2.6/nslu2-io_rpbutton.patch b/packages/linux/nslu2-kernel/2.6/nslu2-io_rpbutton.patch deleted file mode 100644 index b5ce101d68..0000000000 --- a/packages/linux/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/linux/nslu2-kernel/2.6/thumb-swi.patch b/packages/linux/nslu2-kernel/2.6/thumb-swi.patch deleted file mode 100644 index 2e73bb103f..0000000000 --- a/packages/linux/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/linux/nslu2-kernel/2.6/timer.patch b/packages/linux/nslu2-kernel/2.6/timer.patch deleted file mode 100644 index 6279746e64..0000000000 --- a/packages/linux/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/linux/nslu2-kernel/2.6/x1205-rtc.patch b/packages/linux/nslu2-kernel/2.6/x1205-rtc.patch deleted file mode 100644 index 913f44e2ae..0000000000 --- a/packages/linux/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 */ |