summaryrefslogtreecommitdiff
path: root/packages/linux/openslug-kernel-2.6.11.2
diff options
context:
space:
mode:
Diffstat (limited to 'packages/linux/openslug-kernel-2.6.11.2')
-rw-r--r--packages/linux/openslug-kernel-2.6.11.2/.mtn2git_empty0
-rw-r--r--packages/linux/openslug-kernel-2.6.11.2/ixp4xx_copy_from.patch27
-rw-r--r--packages/linux/openslug-kernel-2.6.11.2/nslu2-part.c120
-rw-r--r--packages/linux/openslug-kernel-2.6.11.2/nslu2-pci.c87
-rw-r--r--packages/linux/openslug-kernel-2.6.11.2/nslu2.h43
-rw-r--r--packages/linux/openslug-kernel-2.6.11.2/nslu2_2.6.11.patch159
-rw-r--r--packages/linux/openslug-kernel-2.6.11.2/usbnet.patch17
7 files changed, 453 insertions, 0 deletions
diff --git a/packages/linux/openslug-kernel-2.6.11.2/.mtn2git_empty b/packages/linux/openslug-kernel-2.6.11.2/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/openslug-kernel-2.6.11.2/.mtn2git_empty
diff --git a/packages/linux/openslug-kernel-2.6.11.2/ixp4xx_copy_from.patch b/packages/linux/openslug-kernel-2.6.11.2/ixp4xx_copy_from.patch
index e69de29bb2..8d0f187d44 100644
--- a/packages/linux/openslug-kernel-2.6.11.2/ixp4xx_copy_from.patch
+++ b/packages/linux/openslug-kernel-2.6.11.2/ixp4xx_copy_from.patch
@@ -0,0 +1,27 @@
+--- linux-2.6.11/drivers/mtd/maps/ixp4xx.c.orig 2005-03-05 20:00:28.000000000 +0100
++++ linux-2.6.11/drivers/mtd/maps/ixp4xx.c 2005-03-05 22:10:48.000000000 +0100
+@@ -29,6 +29,8 @@
+ #include <asm/mach-types.h>
+ #include <asm/mach/flash.h>
+
++#include <asm/unaligned.h>
++
+ #include <linux/reboot.h>
+
+ #ifndef __ARMEB__
+@@ -60,13 +62,13 @@ static void ixp4xx_copy_from(struct map_
+ u16 data;
+
+ for (i = 0; i < (len / 2); i++) {
+- data = src[i];
++ data = get_unaligned((u16*)(src + i));
+ dest[i * 2] = BYTE0(data);
+ dest[i * 2 + 1] = BYTE1(data);
+ }
+
+ if (len & 1)
+- dest[len - 1] = BYTE0(src[i]);
++ dest[len - 1] = BYTE0(get_unaligned((u16*)(src + i)));
+ }
+
+ /*
diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2-part.c b/packages/linux/openslug-kernel-2.6.11.2/nslu2-part.c
index e69de29bb2..6fbf952e2a 100644
--- a/packages/linux/openslug-kernel-2.6.11.2/nslu2-part.c
+++ b/packages/linux/openslug-kernel-2.6.11.2/nslu2-part.c
@@ -0,0 +1,120 @@
+/*
+ * nslu2-part.c
+ *
+ * Maintainers: http://www.nslu2-linux.org/
+ * Initial port: Mark Rakes <mrakes AT mac.com>
+ *
+ * "Parse" the fixed partition table of the Linksys NSLU2 and
+ * produce a Linux partition array to match.
+ */
+
+#include <linux/kernel.h>
+#include <linux/slab.h>
+#include <linux/init.h>
+#include <linux/vmalloc.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+
+/* info we know about the NSLU2's flash setup:
+ *
+ * Num Partition offset size
+ * --- --------- ---------- -----------
+ * 0 RedBoot 0x00000000 0x00040000
+ * 1 System Configuration 0x00040000 0x00020000
+ * 2 Kernel 0x00060000 0x00100000
+ * 3 Ramdisk 0x00160000 0x006a0000
+ */
+ #define NSLU2_NUM_FLASH_PARTITIONS 4
+ #define NSLU2_FLASH_PART0_NAME "RedBoot"
+ #define NSLU2_FLASH_PART0_OFFSET 0x00000000
+ #define NSLU2_FLASH_PART0_SIZE 0x00040000
+ #define NSLU2_FLASH_PART1_NAME "System Configuration"
+ #define NSLU2_FLASH_PART1_OFFSET (NSLU2_FLASH_PART0_OFFSET + NSLU2_FLASH_PART0_SIZE)
+ #define NSLU2_FLASH_PART1_SIZE 0x00020000
+ #define NSLU2_FLASH_PART2_NAME "Kernel"
+ #define NSLU2_FLASH_PART2_OFFSET (NSLU2_FLASH_PART1_OFFSET + NSLU2_FLASH_PART1_SIZE)
+ #define NSLU2_FLASH_PART2_SIZE 0x00100000
+ #define NSLU2_FLASH_PART3_NAME "Ramdisk"
+ #define NSLU2_FLASH_PART3_OFFSET (NSLU2_FLASH_PART2_OFFSET + NSLU2_FLASH_PART2_SIZE)
+ #define NSLU2_FLASH_PART3_SIZE 0x006a0000
+
+static int parse_nslu2_partitions(struct mtd_info *master,
+ struct mtd_partition **pparts,
+ unsigned long flash_start)
+{
+ struct mtd_partition *parts;
+ int ret = 0, namelen = 0;
+ char *names;
+
+ namelen = strlen(NSLU2_FLASH_PART0_NAME) +
+ strlen(NSLU2_FLASH_PART1_NAME) +
+ strlen(NSLU2_FLASH_PART2_NAME) +
+ strlen(NSLU2_FLASH_PART3_NAME) +
+ NSLU2_NUM_FLASH_PARTITIONS; /*4 strings + each terminator */
+
+ parts = kmalloc(sizeof(*parts)*NSLU2_NUM_FLASH_PARTITIONS + namelen, GFP_KERNEL);
+ if (!parts) {
+ ret = -ENOMEM;
+ goto out;
+ }
+
+ memset(parts, 0, sizeof(*parts)*NSLU2_NUM_FLASH_PARTITIONS + namelen);
+ names = (char *)&parts[NSLU2_NUM_FLASH_PARTITIONS];
+
+ /* RedBoot partition */
+ parts[0].size = NSLU2_FLASH_PART0_SIZE;
+ parts[0].offset = NSLU2_FLASH_PART0_OFFSET;
+ parts[0].name = NSLU2_FLASH_PART0_NAME;
+ parts[0].mask_flags = MTD_WRITEABLE; /* readonly */
+ strcpy(names, NSLU2_FLASH_PART0_NAME);
+ names += strlen(names)+1;
+ /* System Configuration */
+ parts[1].size = NSLU2_FLASH_PART1_SIZE;
+ parts[1].offset = NSLU2_FLASH_PART1_OFFSET;
+ parts[1].name = NSLU2_FLASH_PART1_NAME;
+ parts[1].mask_flags = MTD_WRITEABLE; /* readonly */
+ strcpy(names, NSLU2_FLASH_PART1_NAME);
+ names += strlen(names)+1;
+ /* Kernel */
+ parts[2].size = NSLU2_FLASH_PART2_SIZE;
+ parts[2].offset = NSLU2_FLASH_PART2_OFFSET;
+ parts[2].name = NSLU2_FLASH_PART2_NAME;
+ parts[2].mask_flags = MTD_WRITEABLE; /* readonly */
+ strcpy(names, NSLU2_FLASH_PART2_NAME);
+ names += strlen(names)+1;
+ /* Ramdisk */
+ parts[3].size = NSLU2_FLASH_PART3_SIZE;
+ parts[3].offset = NSLU2_FLASH_PART3_OFFSET;
+ parts[3].name = NSLU2_FLASH_PART3_NAME;
+ parts[3].mask_flags = MTD_WRITEABLE; /* readonly */
+ strcpy(names, NSLU2_FLASH_PART3_NAME);
+ names += strlen(names)+1;
+
+ ret = NSLU2_NUM_FLASH_PARTITIONS;
+ *pparts = parts;
+ out:
+ return ret;
+}
+
+static struct mtd_part_parser nslu2_parser = {
+ .owner = THIS_MODULE,
+ .parse_fn = parse_nslu2_partitions,
+ .name = "NSLU2",
+};
+
+static int __init nslu2_parser_init(void)
+{
+ return register_mtd_parser(&nslu2_parser);
+}
+
+static void __exit nslu2_parser_exit(void)
+{
+ deregister_mtd_parser(&nslu2_parser);
+}
+
+module_init(nslu2_parser_init);
+module_exit(nslu2_parser_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Mark Rakes");
+MODULE_DESCRIPTION("Parsing code for NSLU2 flash tables");
diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2-pci.c b/packages/linux/openslug-kernel-2.6.11.2/nslu2-pci.c
index e69de29bb2..7327c65a4f 100644
--- a/packages/linux/openslug-kernel-2.6.11.2/nslu2-pci.c
+++ b/packages/linux/openslug-kernel-2.6.11.2/nslu2-pci.c
@@ -0,0 +1,87 @@
+/*
+ * arch/arm/mach-ixp4xx/nslu2-pci.c
+ *
+ * NSLU2 board-level PCI initialization
+ *
+ * based on ixdp425-pci.c:
+ * Copyright (C) 2002 Intel Corporation.
+ * Copyright (C) 2003-2004 MontaVista Software, Inc.
+ *
+ * Maintainer: 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.
+ *
+ */
+// GPIO 8 is used as the power input so is not free for use as a PCI IRQ
+// However, all the common PCI setup code presumes the standard 4 PCI
+// interrupts are available. So we compromise...we don't enable the
+// IRQ on Pin 8 but we let
+
+#include <linux/config.h>
+#include <linux/pci.h>
+#include <linux/init.h>
+#include <linux/delay.h>
+
+#include <asm/mach/pci.h>
+#include <asm/irq.h>
+#include <asm/hardware.h>
+#include <asm/mach-types.h>
+
+void __init nslu2_pci_preinit(void)
+{
+ gpio_line_config(NSLU2_PCI_INTA_PIN,
+ IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW);
+ gpio_line_config(NSLU2_PCI_INTB_PIN,
+ IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW);
+ gpio_line_config(NSLU2_PCI_INTC_PIN,
+ IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW);
+// gpio_line_config(NSLU2_PCI_INTD_PIN,
+// IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW);
+
+ gpio_line_isr_clear(NSLU2_PCI_INTA_PIN);
+ gpio_line_isr_clear(NSLU2_PCI_INTB_PIN);
+ gpio_line_isr_clear(NSLU2_PCI_INTC_PIN);
+// gpio_line_isr_clear(NSLU2_PCI_INTD_PIN);
+
+ ixp4xx_pci_preinit();
+}
+
+static int __init nslu2_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
+{
+ static int pci_irq_table[NSLU2_PCI_IRQ_LINES] = {
+ IRQ_NSLU2_PCI_INTA,
+ IRQ_NSLU2_PCI_INTB,
+ IRQ_NSLU2_PCI_INTC,
+// IRQ_NSLU2_PCI_INTD
+ };
+
+ int irq = -1;
+
+ if (slot >= 1 && slot <= NSLU2_PCI_MAX_DEV &&
+ pin >= 1 && pin <= NSLU2_PCI_IRQ_LINES) {
+ irq = pci_irq_table[(slot + pin - 2) % 3]; // ! % 4 kas11
+ }
+
+ return irq;
+}
+
+struct hw_pci __initdata nslu2_pci = {
+ .nr_controllers = 1,
+ .preinit = nslu2_pci_preinit,
+ .swizzle = pci_std_swizzle,
+ .setup = ixp4xx_setup,
+ .scan = ixp4xx_scan_bus,
+ .map_irq = nslu2_map_irq,
+};
+
+int __init nslu2_pci_init(void) //monkey see, monkey do
+{
+ if (machine_is_nslu2())
+ pci_common_init(&nslu2_pci);
+ return 0;
+}
+
+subsys_initcall(nslu2_pci_init);
+
diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2.h b/packages/linux/openslug-kernel-2.6.11.2/nslu2.h
index e69de29bb2..bb79aaa007 100644
--- a/packages/linux/openslug-kernel-2.6.11.2/nslu2.h
+++ b/packages/linux/openslug-kernel-2.6.11.2/nslu2.h
@@ -0,0 +1,43 @@
+/*
+ * include/asm-arm/arch-ixp4xx/nslu2.h
+ *
+ * NSLU2 platform specific definitions
+ *
+ * Author: Mark Rakes <mrakes AT mac.com>
+ * Maintainers: http://www.nslu2-linux.org
+ *
+ * based on ixdp425.h:
+ * Copyright 2004 (c) MontaVista, Software, Inc.
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2. This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+// GPIO 8 is used as the power input so is not free for use as a PCI IRQ
+// kas11 11-2-04
+
+#ifndef __ASM_ARCH_HARDWARE_H__
+#error "Do not include this directly, instead #include <asm/hardware.h>"
+#endif
+
+#define NSLU2_FLASH_BASE IXP4XX_EXP_BUS_CS0_BASE_PHYS
+#define NSLU2_FLASH_SIZE IXP4XX_EXP_BUS_CSX_REGION_SIZE
+
+#define NSLU2_SDA_PIN 7
+#define NSLU2_SCL_PIN 6
+
+/*
+ * NSLU2 PCI IRQs
+ */
+#define NSLU2_PCI_MAX_DEV 3
+#define NSLU2_PCI_IRQ_LINES 3
+
+
+/* PCI controller GPIO to IRQ pin mappings */
+#define NSLU2_PCI_INTA_PIN 11
+#define NSLU2_PCI_INTB_PIN 10
+#define NSLU2_PCI_INTC_PIN 9
+//#define NSLU2_PCI_INTD_PIN 8
+
+
diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2_2.6.11.patch b/packages/linux/openslug-kernel-2.6.11.2/nslu2_2.6.11.patch
index e69de29bb2..bff8400396 100644
--- a/packages/linux/openslug-kernel-2.6.11.2/nslu2_2.6.11.patch
+++ b/packages/linux/openslug-kernel-2.6.11.2/nslu2_2.6.11.patch
@@ -0,0 +1,159 @@
+diff -urN linux-2.6.11.orig/arch/arm/boot/compressed/head.S linux-2.6.11/arch/arm/boot/compressed/head.S
+--- linux-2.6.11.orig/arch/arm/boot/compressed/head.S 2005-03-01 21:38:25.000000000 -1000
++++ linux-2.6.11/arch/arm/boot/compressed/head.S 2005-03-03 00:55:05.000000000 -1000
+@@ -79,6 +79,14 @@
+ .endm
+ .macro writeb, rb
+ str \rb, [r3, #0]
++ .endm
++#elif defined(CONFIG_ARCH_NSLU2)
++ .macro loadsp, rb
++ mov \rb, #0xc8000000
++ .endm
++ .macro writeb, rb
++ str \rb, [r3, #0]
++ .endm
+ #elif defined(CONFIG_ARCH_IXP2000)
+ .macro loadsp, rb
+ mov \rb, #0xc0000000
+diff -urN linux-2.6.11.orig/arch/arm/boot/compressed/head-xscale.S linux-2.6.11/arch/arm/boot/compressed/head-xscale.S
+--- linux-2.6.11.orig/arch/arm/boot/compressed/head-xscale.S 2005-03-01 21:37:52.000000000 -1000
++++ linux-2.6.11/arch/arm/boot/compressed/head-xscale.S 2005-03-02 01:41:31.000000000 -1000
+@@ -47,3 +47,8 @@
+ orr r7, r7, #(MACH_TYPE_GTWX5715 & 0xff00)
+ #endif
+
++#ifdef CONFIG_ARCH_NSLU2
++ mov r7, #(MACH_TYPE_NSLU2 & 0xff)
++ orr r7, r7, #(MACH_TYPE_NSLU2 & 0xff00)
++#endif
++
+diff -urN linux-2.6.11.orig/arch/arm/mach-ixp4xx/Kconfig linux-2.6.11/arch/arm/mach-ixp4xx/Kconfig
+--- linux-2.6.11.orig/arch/arm/mach-ixp4xx/Kconfig 2005-03-01 21:37:49.000000000 -1000
++++ linux-2.6.11/arch/arm/mach-ixp4xx/Kconfig 2005-03-02 01:43:42.000000000 -1000
+@@ -43,6 +43,12 @@
+ IXDP465 Development Platform (Also known as BMP).
+ For more information on this platform, see Documentation/arm/IXP4xx.
+
++config ARCH_NSLU2
++ bool "NSLU2"
++ help
++ Say 'Y' here if you want your kernel to support Linksys's
++ NSLU2 NAS device. For more information on this platform,
++ see http://www.nslu2-linux.org
+
+ #
+ # IXCDP1100 is the exact same HW as IXDP425, but with a different machine
+diff -urN linux-2.6.11.orig/arch/arm/mach-ixp4xx/Makefile linux-2.6.11/arch/arm/mach-ixp4xx/Makefile
+--- linux-2.6.11.orig/arch/arm/mach-ixp4xx/Makefile 2005-03-01 21:37:49.000000000 -1000
++++ linux-2.6.11/arch/arm/mach-ixp4xx/Makefile 2005-03-02 01:44:16.000000000 -1000
+@@ -9,4 +9,4 @@
+ obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o
+ obj-$(CONFIG_ARCH_PRPMC1100) += prpmc1100-pci.o prpmc1100-setup.o
+ obj-$(CONFIG_MACH_GTWX5715) += gtwx5715-pci.o gtwx5715-setup.o
+-
++obj-$(CONFIG_ARCH_NSLU2) += nslu2-pci.o nslu2-setup.o nslu2-part.o nslu2-io.o
+diff -urN linux-2.6.11.orig/arch/arm/tools/mach-types linux-2.6.11/arch/arm/tools/mach-types
+--- linux-2.6.11.orig/arch/arm/tools/mach-types 2005-03-01 21:38:08.000000000 -1000
++++ linux-2.6.11/arch/arm/tools/mach-types 2005-03-02 01:44:50.000000000 -1000
+@@ -604,7 +604,7 @@
+ roverp7 MACH_ROVERP7 ROVERP7 594
+ pr818s MACH_PR818S PR818S 595
+ trxpro MACH_TRXPRO TRXPRO 596
+-nslu2 MACH_NSLU2 NSLU2 597
++nslu2 ARCH_NSLU2 NSLU2 597
+ e400 MACH_E400 E400 598
+ trab MACH_TRAB TRAB 599
+ cmc_pu2 MACH_CMC_PU2 CMC_PU2 600
+diff -urN linux-2.6.11.orig/drivers/i2c/chips/Kconfig linux-2.6.11/drivers/i2c/chips/Kconfig
+--- linux-2.6.11.orig/drivers/i2c/chips/Kconfig 2005-03-01 21:38:10.000000000 -1000
++++ linux-2.6.11/drivers/i2c/chips/Kconfig 2005-03-02 01:45:28.000000000 -1000
+@@ -370,5 +370,14 @@
+
+ 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
+
+ endmenu
+diff -urN linux-2.6.11.orig/drivers/i2c/chips/Makefile linux-2.6.11/drivers/i2c/chips/Makefile
+--- linux-2.6.11.orig/drivers/i2c/chips/Makefile 2005-03-01 21:38:34.000000000 -1000
++++ linux-2.6.11/drivers/i2c/chips/Makefile 2005-03-02 01:45:54.000000000 -1000
+@@ -35,6 +35,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
+diff -urN linux-2.6.11.orig/drivers/mtd/maps/ixp4xx.c linux-2.6.11/drivers/mtd/maps/ixp4xx.c
+--- linux-2.6.11.orig/drivers/mtd/maps/ixp4xx.c 2005-03-01 21:37:30.000000000 -1000
++++ linux-2.6.11/drivers/mtd/maps/ixp4xx.c 2005-03-02 01:46:40.000000000 -1000
+@@ -94,7 +94,11 @@
+ struct resource *res;
+ };
+
++#ifdef CONFIG_ARCH_NSLU2
++static const char *probes[] = { "cmdlinepart", "RedBoot", "NSLU2", NULL };
++#else
+ static const char *probes[] = { "RedBoot", "cmdlinepart", NULL };
++#endif
+
+ static int ixp4xx_flash_remove(struct device *_dev)
+ {
+diff -urN linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/hardware.h linux-2.6.11/include/asm-arm/arch-ixp4xx/hardware.h
+--- linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/hardware.h 2005-03-01 21:37:51.000000000 -1000
++++ linux-2.6.11/include/asm-arm/arch-ixp4xx/hardware.h 2005-03-02 17:34:46.000000000 -1000
+@@ -44,5 +44,6 @@
+ #include "ixdp425.h"
+ #include "coyote.h"
+ #include "prpmc1100.h"
++#include "nslu2.h"
+
+ #endif /* _ASM_ARCH_HARDWARE_H */
+diff -urN linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/irqs.h linux-2.6.11/include/asm-arm/arch-ixp4xx/irqs.h
+--- linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/irqs.h 2005-03-01 21:38:12.000000000 -1000
++++ linux-2.6.11/include/asm-arm/arch-ixp4xx/irqs.h 2005-03-02 01:49:27.000000000 -1000
+@@ -93,4 +93,11 @@
+ #define IRQ_COYOTE_PCI_SLOT1 IRQ_IXP4XX_GPIO11
+ #define IRQ_COYOTE_IDE IRQ_IXP4XX_GPIO5
+
++/*
++ * NSLU2 board IRQs
++ */
++#define IRQ_NSLU2_PCI_INTA IRQ_IXP4XX_GPIO11
++#define IRQ_NSLU2_PCI_INTB IRQ_IXP4XX_GPIO10
++#define IRQ_NSLU2_PCI_INTC IRQ_IXP4XX_GPIO9
++
+ #endif
+diff -urN linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h linux-2.6.11/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
+--- linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h 2005-03-01 21:37:49.000000000 -1000
++++ linux-2.6.11/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h 2005-03-03 02:26:29.231822000 -1000
+@@ -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 -urN linux-2.6.11.orig/include/linux/i2c-id.h linux-2.6.11/include/linux/i2c-id.h
+--- linux-2.6.11.orig/include/linux/i2c-id.h 2005-03-01 21:38:34.000000000 -1000
++++ linux-2.6.11/include/linux/i2c-id.h 2005-03-02 01:50:14.000000000 -1000
+@@ -110,6 +110,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 */
diff --git a/packages/linux/openslug-kernel-2.6.11.2/usbnet.patch b/packages/linux/openslug-kernel-2.6.11.2/usbnet.patch
index e69de29bb2..1b3cf3fcb8 100644
--- a/packages/linux/openslug-kernel-2.6.11.2/usbnet.patch
+++ b/packages/linux/openslug-kernel-2.6.11.2/usbnet.patch
@@ -0,0 +1,17 @@
+--- linux-2.6.11/drivers/usb/net/usbnet.c_orig 2005-03-03 13:50:54.053237416 -0500
++++ linux-2.6.11/drivers/usb/net/usbnet.c 2005-03-03 13:53:19.415139048 -0500
+@@ -2404,12 +2404,13 @@
+ #endif
+ size = (sizeof (struct ethhdr) + dev->net->mtu);
+
+- if ((skb = alloc_skb (size, flags)) == NULL) {
++ if ((skb = alloc_skb (size + NET_IP_ALIGN, flags)) == NULL) {
+ devdbg (dev, "no rx skb");
+ defer_kevent (dev, EVENT_RX_MEMORY);
+ usb_free_urb (urb);
+ return;
+ }
++ skb_reserve (skb, NET_IP_ALIGN);
+
+ entry = (struct skb_data *) skb->cb;
+ entry->urb = urb;