summaryrefslogtreecommitdiff
path: root/packages/linux
diff options
context:
space:
mode:
authorJohn Bowler <jbowler@nslu2-linux.org>2006-01-11 22:00:55 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2006-01-11 22:00:55 +0000
commit6f7bd413184fad59110c5252d0dc3fc059fe7c02 (patch)
treedf787b185e2843cd9d8e7c0789935c18b4f69320 /packages/linux
parent36750351a1f8d5c700c4542ea5a095ec929fa6b2 (diff)
ixp4xx-kernel: update to latest patch set, add NSLU2 support in 2.6.15
Diffstat (limited to 'packages/linux')
-rw-r--r--packages/linux/ixp4xx-kernel.inc103
-rw-r--r--packages/linux/ixp4xx-kernel/2.6.15/10-mtdpart-redboot-fis-byteswap.patch7
-rw-r--r--packages/linux/ixp4xx-kernel/2.6.15/40-rtc-class.patch2
-rw-r--r--packages/linux/ixp4xx-kernel/2.6.15/55-rtc-pcf8563.patch174
-rw-r--r--packages/linux/ixp4xx-kernel/2.6.15/60-nas100d-rtc.patch21
-rw-r--r--packages/linux/ixp4xx-kernel/2.6.15/60-nslu2-beeper.patch4
-rw-r--r--packages/linux/ixp4xx-kernel/2.6.15/75-nslu2-leds.patch2
-rw-r--r--packages/linux/ixp4xx-kernel/2.6.15/80-nslu2-io.patch3
-rw-r--r--packages/linux/ixp4xx-kernel/2.6.15/85-timer.patch2
-rw-r--r--packages/linux/ixp4xx-kernel/2.6.15/92-nas100d-maclist.patch12
-rw-r--r--packages/linux/ixp4xx-kernel/2.6.15/92-nslu2-maclist.patch12
-rw-r--r--packages/linux/ixp4xx-kernel/2.6.15/defconfig67
-rw-r--r--packages/linux/ixp4xx-kernel_2.6.15.bb41
13 files changed, 361 insertions, 89 deletions
diff --git a/packages/linux/ixp4xx-kernel.inc b/packages/linux/ixp4xx-kernel.inc
index 54679ebfdf..bae5e96bd1 100644
--- a/packages/linux/ixp4xx-kernel.inc
+++ b/packages/linux/ixp4xx-kernel.inc
@@ -7,15 +7,22 @@
# Define the following *before* including this file as
# required:
#
-# IXP4XX_PATCHES - full list of patches to apply
-#
+# IXP4XX_PATCHES - full list of patches to apply, to add files
+# generate a patch against /dev/null
# IXP4XX_SUFFIX - the suffix to add after 'zImage-' in the
-# deploy/images directory - defaults to "ixp4xx"
+# deploy/images directory, should identify the image config
#
-# --------------------------------------------------------------
+# DEFAULT_PREFERENCE is set automagically in this file as
+# follows:
+#
+# 10 For *released* kernels
+# 8 For mm or ac patched versions of released kernels
+# 6 For rc patched kernels (release candidates)
+# 4 For mm or ac patched rc (release candidate) kernels
+# 2 For pre or bk versions
+# 0 For mm or ac patched pre or bk versions
#
-# Within this file bitbake variables local to the file are
-# named N1K_FOO
+# --------------------------------------------------------------
#
SECTION = "kernel"
DESCRIPTION = "Linux kernel for the Intel IXP4xx device"
@@ -130,17 +137,20 @@ python () {
# FILESPATH: this list is in order last-searched-first, therefore
# the first entry is the *latest* and/or most specific
-FILESPATH = "${IXP4XX_FILESPATH}:${FILE_DIRNAME}/ixp4xx-kernel/"
+FILESPATH = "${FILE_DIRNAME}/${P}:${IXP4XX_FILESPATH}"
# The working directory will be the 'base' version (which may not be the
# same as implied by the PV variable because it corresponds to the prior
# minor version for rc and pre patched versions).
S = "${WORKDIR}/linux-${IXP4XX_SRCVER}"
-# IXP4XX_PATCHES is a list of additional patches to apply
+# IXP4XX_PATCHES is the list of patches.
IXP4XX_PATCHES ?= ""
-IXP4XX_SUFFIX ?= "ixp4xx"
+# Image suffix - actually set in conf/machine/ixp4xx.conf as it is also
+# used by anything which needs to know the name of the generated image.
+# Should be overridden in the distro if patches or defconfig are changed.
+IXP4XX_SUFFIX ?= "ixp4xx${ARCH_BYTE_SEX}"
SRC_URI = "${IXP4XX_SRCURI}"
SRC_URI += "${IXP4XX_PATCHES}"
@@ -152,13 +162,29 @@ inherit kernel
ARCH = "arm"
KERNEL_IMAGETYPE = "zImage"
+
# To specify the console set KERNEL_CONSOLE in the .bb file.
# CMDLINE_ROOT contains the boot options, CMDLINE_KERNEL_OPTIONS
# contains the things for a specific kernel.
-# CMDLINE_KERNEL_OPTIONS ?= "reboot=s"
-CMDLINE_KERNEL_OPTIONS ?=
-CMDLINE_ROOT = "root=/dev/mtdblock2 rw rootfstype=jffs2 mem=64M@0x00000000 init=/linuxrc"
-CMDLINE_DEBUG =
+#
+# These are set from MACHINE specific defaults below, but an override
+# in local.conf will still take precedence.
+#
+# CMDLINE_KERNEL_OPTIONS: overridable in local.conf
+MACH_KERNEL_OPTIONS = "x1205.hctosys=1 x1205.probe=0,0x6f pcf8563.hctosys=1"
+MACH_KERNEL_OPTIONS_nas100d = "pcf8563.hctosys=1"
+MACH_KERNEL_OPTIONS_nslu2 = "rtc-x1205.hctosys=1 rtc-x1205.probe=0,0x6f"
+CMDLINE_KERNEL_OPTIONS ?= "${MACH_KERNEL_OPTIONS}"
+
+# CMDLINE_ROOT: machine specific, do not override
+CMDLINE_ROOT = "init=/linuxrc"
+CMDLINE_ROOT_loft = "root=/dev/mtdblock2 rw rootfstype=jffs2 mem=64M@0x00000000 init=/linuxrc"
+CMDLINE_ROOT_nas100d = "root=/dev/mtdblock2 rw rootfstype=jffs2 mem=64M@0x00000000 init=/linuxrc"
+CMDLINE_ROOT_nslu2 = "root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc"
+
+# CMDLINE_DEBUG: debug options such as noirqdebug, defaults to empty
+# override in local.conf etc
+CMDLINE_DEBUG ?= ""
CMDLINE = "${CMDLINE_ROOT} ${CMDLINE_KERNEL_OPTIONS} ${CMDLINE_DEBUG} ${CMDLINE_CONSOLE}"
# Add the architecture compiler flags to KERNEL_CC and KERNEL_LD as
@@ -177,6 +203,9 @@ EXTRA_OEMAKE += "MAKEFLAGS='--no-print-directory'"
# Override KERNEL_RELEASE from kernel.bbclass to match:
KERNEL_RELEASE = "${KERNEL_VERSION}"
+# Set the correct CONFIG_CPU_xxx_ENDIAN and CONFIG_CMDLINE at the head
+# of the .config file and remove any settings in defconfig then append
+# defconfig to .config
do_configure_prepend() {
rm -f ${S}/.config
echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >>'${S}/.config'
@@ -189,10 +218,56 @@ do_configure_prepend() {
${S}/include/asm-arm/.proc ${S}/include/asm-arm/.arch
}
+# This function adds the required prefix to the image to deal with two
+# problems on NSLU2.
+#
+# 1) The machine type set by RedBoot is wrong - the type for an ixdp425, not an IXP4XX
+# e3a01c02 e3811055
+# 2) For LE kernels it is necessary to prefix change-to-le code to the kernel image:
+# ee110f10 e3c00080 ee010f10
+# and to byte swap the (LE) image to match the BE flash layout
+#
+# The argument to the function is the destination directory
+redboot_fixup_armeb() {
+ rm -f "$1".new
+ devio '<<arch/${ARCH}/boot/${KERNEL_IMAGETYPE}' >"$1".new \
+ 'wb 0xe3a01c02,4' \
+ 'wb 0xe3811055,4' \
+ 'cp$'
+ mv "$1".new "$1"
+}
+
+redboot_fixup_arm() {
+ rm -f "$1".new
+ devio '<<arch/${ARCH}/boot/${KERNEL_IMAGETYPE}' >"$1".new \
+ 'wb 0xe3a01c02,4' \
+ 'wb 0xe3811055,4' \
+ 'wb 0xee110f10,4' \
+ 'wb 0xe3c00080,4' \
+ 'wb 0xee010f10,4' \
+ 'xp $,4' || {
+ echo 'ERROR: arch/${ARCH}/boot/${KERNEL_IMAGETYPE}: failed to byteswap zImage' >&2
+ return 1
+ }
+ mv "$1".new "$1"
+}
+
+do_install_append_nslu2() {
+ redboot_fixup '${STAGING_KERNEL_DIR}/${KERNEL_IMAGETYPE}'
+}
+
+deploy_image_nslu2() {
+ redboot_fixup '${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${IXP4XX_SUFFIX}'
+}
+
+deploy_image() {
+ install -m 644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${IXP4XX_SUFFIX}
+}
+
do_deploy[dirs] = "${S}"
do_deploy() {
install -d ${DEPLOY_DIR}/images
- install -m 644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${IXP4XX_SUFFIX}
+ deploy_image
}
addtask deploy before do_build after do_compile
diff --git a/packages/linux/ixp4xx-kernel/2.6.15/10-mtdpart-redboot-fis-byteswap.patch b/packages/linux/ixp4xx-kernel/2.6.15/10-mtdpart-redboot-fis-byteswap.patch
index 077aa00816..3fa0535abf 100644
--- a/packages/linux/ixp4xx-kernel/2.6.15/10-mtdpart-redboot-fis-byteswap.patch
+++ b/packages/linux/ixp4xx-kernel/2.6.15/10-mtdpart-redboot-fis-byteswap.patch
@@ -32,13 +32,6 @@ retrieving revision 1.19
diff -u -p -r1.18 -r1.19
--- linux-2.6.15/drivers/mtd/redboot.c 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.15/drivers/mtd/redboot.c 1970-01-01 00:00:00.000000000 +0000
-@@ -1,5 +1,5 @@
- /*
-- * $Id: redboot.c,v 1.18 2005/11/07 11:14:21 gleixner Exp $
-+ * $Id: redboot.c,v 1.19 2005/12/01 10:03:51 dwmw2 Exp $
- *
- * Parse RedBoot-style Flash Image System (FIS) tables and
- * produce a Linux partition array to match.
@@ -89,8 +89,32 @@ static int parse_redboot_partitions(stru
i = numslots;
break;
diff --git a/packages/linux/ixp4xx-kernel/2.6.15/40-rtc-class.patch b/packages/linux/ixp4xx-kernel/2.6.15/40-rtc-class.patch
index feea3f2f8b..8e0380bfe5 100644
--- a/packages/linux/ixp4xx-kernel/2.6.15/40-rtc-class.patch
+++ b/packages/linux/ixp4xx-kernel/2.6.15/40-rtc-class.patch
@@ -653,7 +653,7 @@
+EXPORT_SYMBOL(rtc_tm_to_time);
--- linux-nslu2.orig/arch/arm/Kconfig 2006-01-04 01:27:04.000000000 +0100
+++ linux-nslu2/arch/arm/Kconfig 2006-01-04 01:27:31.000000000 +0100
-@@ -750,6 +750,8 @@ source "drivers/usb/Kconfig"
+@@ -748,6 +748,8 @@ source "drivers/usb/Kconfig"
source "drivers/mmc/Kconfig"
diff --git a/packages/linux/ixp4xx-kernel/2.6.15/55-rtc-pcf8563.patch b/packages/linux/ixp4xx-kernel/2.6.15/55-rtc-pcf8563.patch
new file mode 100644
index 0000000000..d154b6ac11
--- /dev/null
+++ b/packages/linux/ixp4xx-kernel/2.6.15/55-rtc-pcf8563.patch
@@ -0,0 +1,174 @@
+ drivers/char/Kconfig | 8 ++
+ drivers/char/Makefile | 1
+ drivers/char/pcf8563-rtc.c | 135 +++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 143 insertions(+), 1 deletion(-)
+
+--- linux-nas100d.orig/drivers/char/Kconfig 2005-11-16 22:29:03.000000000 +0100
++++ linux-nas100d/drivers/char/Kconfig 2005-11-30 23:04:56.000000000 +0100
+@@ -783,6 +783,13 @@ config RTC_VR41XX
+ tristate "NEC VR4100 series Real Time Clock Support"
+ depends on CPU_VR41XX
+
++config RTC_PCF8563
++ tristate "PCF8563 I2C RTC Support"
++ depends on I2C && RTC_PCF8563_I2C
++ help
++ This driver enables the kernel to use the PCF8563
++ I2C real time clock as the system clock.
++
+ config COBALT_LCD
+ bool "Support for Cobalt LCD"
+ depends on MIPS_COBALT
+@@ -1014,4 +1021,3 @@ config TELCLOCK
+ files for controlling the behavior of this hardware.
+
+ endmenu
+-
+--- linux-nas100d.orig/drivers/char/Makefile 2005-11-16 22:29:03.000000000 +0100
++++ linux-nas100d/drivers/char/Makefile 2005-11-30 23:01:35.000000000 +0100
+@@ -65,6 +65,7 @@ obj-$(CONFIG_SGI_IP27_RTC) += ip27-rtc.o
+ obj-$(CONFIG_DS1302) += ds1302.o
+ obj-$(CONFIG_S3C2410_RTC) += s3c2410-rtc.o
+ obj-$(CONFIG_RTC_VR41XX) += vr41xx_rtc.o
++obj-$(CONFIG_RTC_PCF8563) += pcf8563-rtc.o
+ ifeq ($(CONFIG_GENERIC_NVRAM),y)
+ obj-$(CONFIG_NVRAM) += generic_nvram.o
+ else
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-nas100d/drivers/char/pcf8563-rtc.c 2005-11-30 23:06:53.000000000 +0100
+@@ -0,0 +1,135 @@
++/*
++ * drivers/char/pcf8563-rtc.c
++ *
++ * PCF8563 RTC platform driver
++ *
++ * Copyright (C) 2005 Tower Technologies
++ *
++ * Author: Alessandro Zummo <a.zummo@towertech.it>
++ * 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.
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/device.h>
++#include <linux/time.h>
++#include <linux/rtc.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++
++#include <linux/i2c.h>
++#include <linux/pcf8563.h>
++
++#include <asm/rtc.h>
++
++#define DRV_VERSION "0.9"
++
++extern int (*set_rtc)(void);
++
++static int pcf8563_set_rtc(void)
++{
++ int err;
++
++ struct rtc_time new_tm, old_tm;
++ unsigned long cur_secs = xtime.tv_sec;
++
++ if ((err = pcf8563_do_command(PCF8563_CMD_GETDATETIME, &old_tm) == 0))
++ return err;
++
++ /* FIXME xtime.tv_nsec = old_tm.tm_sec * 10000000; */
++ new_tm.tm_sec = cur_secs % 60;
++ cur_secs /= 60;
++ new_tm.tm_min = cur_secs % 60;
++ cur_secs /= 60;
++ new_tm.tm_hour = cur_secs % 24;
++
++ /*
++ * avoid writing when we're going to change the day
++ * of the month. We will retry in the next minute.
++ * This basically means that if the RTC must not drift
++ * by more than 1 minute in 11 minutes.
++ */
++ if ((old_tm.tm_hour == 23 && old_tm.tm_min == 59) ||
++ (new_tm.tm_hour == 23 && new_tm.tm_min == 59))
++ return 1;
++
++ return pcf8563_do_command(PCF8563_CMD_SETTIME, &new_tm);
++}
++
++static int pcf8563_rtc_read_time(struct rtc_time *tm)
++{
++ return pcf8563_do_command(PCF8563_CMD_GETDATETIME, tm);
++}
++
++static int pcf8563_rtc_set_time(struct rtc_time *tm)
++{
++ return pcf8563_do_command(PCF8563_CMD_SETDATETIME, tm);
++}
++
++static int pcf8563_rtc_proc(char *buf)
++{
++ char *p = buf;
++
++ p += sprintf(p, "24hr\t\t: yes\n");
++
++ return p - buf;
++}
++
++static struct rtc_ops pcf8563_rtc_ops = {
++ .owner = THIS_MODULE,
++ .proc = pcf8563_rtc_proc,
++ .read_time = pcf8563_rtc_read_time,
++ .set_time = pcf8563_rtc_set_time,
++};
++
++static int pcf8563_rtc_probe(struct device *dev)
++{
++ int ret;
++
++ if ((ret = register_rtc(&pcf8563_rtc_ops)) != 0)
++ return ret;
++
++ set_rtc = pcf8563_set_rtc;
++
++ printk(KERN_INFO "pcf8563-rtc: real time clock\n");
++
++ return 0;
++}
++
++static int pcf8563_rtc_remove(struct device *dev)
++{
++ set_rtc = NULL;
++
++ unregister_rtc(&pcf8563_rtc_ops);
++
++ return 0;
++}
++
++static struct device_driver pcf8563_rtc_driver = {
++ .name = "pcf8563-rtc",
++ .bus = &platform_bus_type,
++ .probe = pcf8563_rtc_probe,
++ .remove = pcf8563_rtc_remove,
++};
++
++static int __init pcf8563_rtc_init(void)
++{
++ return driver_register(&pcf8563_rtc_driver);
++}
++
++static void __exit pcf8563_rtc_exit(void)
++{
++ driver_unregister(&pcf8563_rtc_driver);
++}
++
++module_init(pcf8563_rtc_init);
++module_exit(pcf8563_rtc_exit);
++
++MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
++MODULE_DESCRIPTION("Xicor PCF8563 RTC platform driver");
++MODULE_LICENSE("GPL");
++MODULE_VERSION(DRV_VERSION);
diff --git a/packages/linux/ixp4xx-kernel/2.6.15/60-nas100d-rtc.patch b/packages/linux/ixp4xx-kernel/2.6.15/60-nas100d-rtc.patch
new file mode 100644
index 0000000000..18ee72c497
--- /dev/null
+++ b/packages/linux/ixp4xx-kernel/2.6.15/60-nas100d-rtc.patch
@@ -0,0 +1,21 @@
+ arch/arm/mach-ixp4xx/nas100d-setup.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- linux-nas100d.orig/arch/arm/mach-ixp4xx/nas100d-setup.c 2005-11-21 22:01:22.000000000 +0100
++++ linux-nas100d/arch/arm/mach-ixp4xx/nas100d-setup.c 2005-11-30 23:04:07.000000000 +0100
+@@ -94,10 +94,15 @@ static struct platform_device nas100d_ua
+ .resource = nas100d_uart_resources,
+ };
+
++static struct platform_device nas100d_rtc = {
++ .name = "pcf8563-rtc",
++};
++
+ static struct platform_device *nas100d_devices[] __initdata = {
+ &nas100d_i2c_controller,
+ &nas100d_flash,
+ &nas100d_uart,
++ &nas100d_rtc,
+ };
+
+ static void nas100d_power_off(void)
diff --git a/packages/linux/ixp4xx-kernel/2.6.15/60-nslu2-beeper.patch b/packages/linux/ixp4xx-kernel/2.6.15/60-nslu2-beeper.patch
index 12fdc4d96e..6cd1025d38 100644
--- a/packages/linux/ixp4xx-kernel/2.6.15/60-nslu2-beeper.patch
+++ b/packages/linux/ixp4xx-kernel/2.6.15/60-nslu2-beeper.patch
@@ -5,7 +5,7 @@
--- linux-2.6.15/drivers/input/misc/Kconfig 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.15/drivers/input/misc/Kconfig 1970-01-01 00:00:00.000000000 +0000
-@@ -40,6 +40,18 @@ config INPUT_M68K_BEEP
+@@ -50,6 +50,18 @@ config INPUT_M68K_BEEP
tristate "M68k Beeper support"
depends on M68K
@@ -26,7 +26,7 @@
help
--- linux-2.6.15/drivers/input/misc/Makefile 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.15/drivers/input/misc/Makefile 1970-01-01 00:00:00.000000000 +0000
-@@ -10,3 +10,4 @@ obj-$(CONFIG_INPUT_M68K_BEEP) += m68ksp
+@@ -11,3 +11,4 @@ obj-$(CONFIG_INPUT_M68K_BEEP) += m68ksp
obj-$(CONFIG_INPUT_98SPKR) += 98spkr.o
obj-$(CONFIG_INPUT_UINPUT) += uinput.o
obj-$(CONFIG_HP_SDC_RTC) += hp_sdc_rtc.o
diff --git a/packages/linux/ixp4xx-kernel/2.6.15/75-nslu2-leds.patch b/packages/linux/ixp4xx-kernel/2.6.15/75-nslu2-leds.patch
index 7497409e77..b0dc4b8c34 100644
--- a/packages/linux/ixp4xx-kernel/2.6.15/75-nslu2-leds.patch
+++ b/packages/linux/ixp4xx-kernel/2.6.15/75-nslu2-leds.patch
@@ -36,7 +36,7 @@
If you say Y here, the red LED will be used to give a good real
--- linux-2.6.15/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.15/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000
-@@ -10,3 +10,7 @@ obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-
+@@ -11,3 +11,7 @@ obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-
obj-$(CONFIG_MACH_GTWX5715) += gtwx5715-pci.o gtwx5715-setup.o
obj-$(CONFIG_MACH_NSLU2) += nslu2-pci.o nslu2-setup.o nslu2-power.o
diff --git a/packages/linux/ixp4xx-kernel/2.6.15/80-nslu2-io.patch b/packages/linux/ixp4xx-kernel/2.6.15/80-nslu2-io.patch
index 26031f6f00..7a5b2d51cb 100644
--- a/packages/linux/ixp4xx-kernel/2.6.15/80-nslu2-io.patch
+++ b/packages/linux/ixp4xx-kernel/2.6.15/80-nslu2-io.patch
@@ -1,11 +1,12 @@
--- linux-2.6.15/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.15/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000
-@@ -8,5 +8,5 @@ obj-$(CONFIG_ARCH_IXDP4XX) += ixdp425-pc
+@@ -8,6 +8,6 @@ obj-$(CONFIG_ARCH_IXDP4XX) += ixdp425-pc
obj-$(CONFIG_MACH_IXDPG425) += ixdpg425-pci.o coyote-setup.o
obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o
obj-$(CONFIG_MACH_GTWX5715) += gtwx5715-pci.o gtwx5715-setup.o
-obj-$(CONFIG_MACH_NSLU2) += nslu2-pci.o nslu2-setup.o nslu2-power.o
+obj-$(CONFIG_MACH_NSLU2) += nslu2-pci.o nslu2-setup.o nslu2-power.o nslu2-io.o
+ obj-$(CONFIG_MACH_NAS100D) += nas100d-pci.o nas100d-setup.o nas100d-power.o
--- linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-io.c 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-io.c 1970-01-01 00:00:00.000000000 +0000
diff --git a/packages/linux/ixp4xx-kernel/2.6.15/85-timer.patch b/packages/linux/ixp4xx-kernel/2.6.15/85-timer.patch
index 3d4a03f616..e8131447c8 100644
--- a/packages/linux/ixp4xx-kernel/2.6.15/85-timer.patch
+++ b/packages/linux/ixp4xx-kernel/2.6.15/85-timer.patch
@@ -215,7 +215,7 @@
-
--- 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
-@@ -119,6 +119,11 @@ static void nslu2_power_off(void)
+@@ -114,6 +114,11 @@ static void nslu2_power_off(void)
static void __init nslu2_init(void)
{
diff --git a/packages/linux/ixp4xx-kernel/2.6.15/92-nas100d-maclist.patch b/packages/linux/ixp4xx-kernel/2.6.15/92-nas100d-maclist.patch
index 3143850b22..20ccbd56a6 100644
--- a/packages/linux/ixp4xx-kernel/2.6.15/92-nas100d-maclist.patch
+++ b/packages/linux/ixp4xx-kernel/2.6.15/92-nas100d-maclist.patch
@@ -33,7 +33,7 @@
+ * When the RedBoot config partition is added the MAC address is read from
+ * it.
+ */
-+void flash_add(struct mtd_info *mtd) {
++static void nas100d_flash_add(struct mtd_info *mtd) {
+ if (strcmp(mtd->name, "RedBoot config") == 0) {
+ size_t retlen;
+ u_char mac[6];
@@ -52,12 +52,12 @@
+/*
+ * Nothing to do on remove at present.
+ */
-+void flash_remove(struct mtd_info *mtd) {
++static void nas100d_flash_remove(struct mtd_info *mtd) {
+}
+
-+struct mtd_notifier flash_notifier = {
-+ .add = flash_add,
-+ .remove = flash_remove,
++static struct mtd_notifier nas100d_flash_notifier = {
++ .add = nas100d_flash_add,
++ .remove = nas100d_flash_remove,
+};
+
static void __init nas100d_init(void)
@@ -65,7 +65,7 @@
+ /* The flash has an ethernet MAC embedded in it which we need,
+ * that is all this notifier does.
+ */
-+ register_mtd_user(&flash_notifier);
++ register_mtd_user(&nas100d_flash_notifier);
+
ixp4xx_sys_init();
diff --git a/packages/linux/ixp4xx-kernel/2.6.15/92-nslu2-maclist.patch b/packages/linux/ixp4xx-kernel/2.6.15/92-nslu2-maclist.patch
index c8b8a9bede..1b7e611690 100644
--- a/packages/linux/ixp4xx-kernel/2.6.15/92-nslu2-maclist.patch
+++ b/packages/linux/ixp4xx-kernel/2.6.15/92-nslu2-maclist.patch
@@ -36,7 +36,7 @@
+ * When the RedBoot partition is added the MAC address is read from
+ * it.
+ */
-+void flash_add(struct mtd_info *mtd) {
++static void nslu2_flash_add(struct mtd_info *mtd) {
+ if (strcmp(mtd->name, "RedBoot") == 0) {
+ size_t retlen;
+ u_char mac[6];
@@ -55,12 +55,12 @@
+/*
+ * Nothing to do on remove at present.
+ */
-+void flash_remove(struct mtd_info *mtd) {
++static void nslu2_flash_remove(struct mtd_info *mtd) {
+}
+
-+struct mtd_notifier flash_notifier = {
-+ .add = flash_add,
-+ .remove = flash_remove,
++static struct mtd_notifier nslu2_flash_notifier = {
++ .add = nslu2_flash_add,
++ .remove = nslu2_flash_remove,
+};
+
static void __init nslu2_init(void)
@@ -73,7 +73,7 @@
+ /* The flash has an ethernet MAC embedded in it which we need,
+ * that is all this notifier does.
+ */
-+ register_mtd_user(&flash_notifier);
++ register_mtd_user(&nslu2_flash_notifier);
+
ixp4xx_sys_init();
diff --git a/packages/linux/ixp4xx-kernel/2.6.15/defconfig b/packages/linux/ixp4xx-kernel/2.6.15/defconfig
index 5e782ba8f3..ff69ccc6f1 100644
--- a/packages/linux/ixp4xx-kernel/2.6.15/defconfig
+++ b/packages/linux/ixp4xx-kernel/2.6.15/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.15
-# Mon Nov 14 10:44:43 2005
+# Sun Jan 8 02:47:26 2006
#
CONFIG_ARM=y
CONFIG_MMU=y
@@ -32,6 +32,7 @@ CONFIG_HOTPLUG=y
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_EMBEDDED=y
# CONFIG_KALLSYMS is not set
CONFIG_PRINTK=y
@@ -39,7 +40,6 @@ CONFIG_BUG=y
# CONFIG_BASE_FULL is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
@@ -111,22 +111,20 @@ CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
#
# IXP4xx Platforms
#
-# CONFIG_ARCH_AVILA is not set
-CONFIG_ARCH_ADI_COYOTE=y
CONFIG_MACH_NSLU2=y
-CONFIG_MACH_NAS100D=y
-CONFIG_ARCH_IXDP425=y
+# CONFIG_ARCH_AVILA is not set
+# CONFIG_ARCH_ADI_COYOTE is not set
+# CONFIG_ARCH_IXDP425 is not set
# CONFIG_MACH_IXDPG425 is not set
# CONFIG_MACH_IXDP465 is not set
-CONFIG_ARCH_IXCDP1100=y
-CONFIG_ARCH_PRPMC1100=y
-CONFIG_ARCH_IXDP4XX=y
+# CONFIG_ARCH_PRPMC1100 is not set
+CONFIG_MACH_NAS100D=y
# CONFIG_MACH_GTWX5715 is not set
#
# IXP4xx Options
#
-# CONFIG_IXP4XX_INDIRECT_PCI is not set
+CONFIG_IXP4XX_INDIRECT_PCI=y
#
# Processor Type
@@ -172,7 +170,6 @@ CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4096
-# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
#
@@ -180,7 +177,7 @@ CONFIG_ALIGNMENT_TRAP=y
#
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc x1205.hctosys=1 x1205.probe=0,0x6f noirqdebug console=ttyS0,115200n8"
+CONFIG_CMDLINE="root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc rtc-x1205.hctosys=1 rtc-x1205.probe=0,0x6f noirqdebug console=ttyS0,115200n8"
# CONFIG_XIP_KERNEL is not set
#
@@ -333,7 +330,6 @@ CONFIG_IP_NF_TARGET_CLASSIFY=m
#
# CONFIG_IP6_NF_QUEUE is not set
# CONFIG_IP6_NF_IPTABLES is not set
-# CONFIG_IP6_NF_TARGET_NFQUEUE is not set
#
# Bridge: Netfilter Configuration
@@ -414,6 +410,11 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=m
#
+# Connector - unified userspace <-> kernelspace linker
+#
+# CONFIG_CONNECTOR is not set
+
+#
# Memory Technology Devices (MTD)
#
CONFIG_MTD=y
@@ -876,7 +877,7 @@ CONFIG_IXP4XX_WATCHDOG=y
# CONFIG_USBPCWATCHDOG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
-CONFIG_RTC_X1205=n
+CONFIG_RTC_PCF8563=y
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
@@ -944,12 +945,12 @@ CONFIG_SENSORS_EEPROM=y
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_RTC8564 is not set
# CONFIG_SENSORS_MAX6875 is not set
-CONFIG_RTC_X1205_I2C=y
+# CONFIG_RTC_X1205_I2C is not set
+CONFIG_RTC_PCF8563_I2C=y
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
-CONFIG_RTC_PCF8563_I2C=y
#
# Hardware Monitoring support
@@ -1027,6 +1028,7 @@ CONFIG_VIDEO_ZORAN_DC30=m
CONFIG_VIDEO_ZORAN_LML33=m
CONFIG_VIDEO_ZORAN_LML33R10=m
CONFIG_VIDEO_SAA7134=m
+# CONFIG_VIDEO_SAA7134_ALSA is not set
CONFIG_VIDEO_MXB=m
CONFIG_VIDEO_DPC=m
CONFIG_VIDEO_HEXIUM_ORION=m
@@ -1034,6 +1036,8 @@ CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_CX88=m
# CONFIG_VIDEO_EM28XX is not set
CONFIG_VIDEO_OVCAMCHIP=m
+# CONFIG_VIDEO_AUDIO_DECODER is not set
+# CONFIG_VIDEO_DECODER is not set
#
# Radio Adapters
@@ -1278,6 +1282,7 @@ CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
# CONFIG_USB_SERIAL_AIRPRIME is not set
+# CONFIG_USB_SERIAL_ANYDATA is not set
CONFIG_USB_SERIAL_BELKIN=m
CONFIG_USB_SERIAL_WHITEHEAT=m
CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
@@ -1297,7 +1302,6 @@ CONFIG_USB_SERIAL_KEYSPAN_PDA=m
CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_KOBIL_SCT=m
CONFIG_USB_SERIAL_MCT_U232=m
-# CONFIG_USB_SERIAL_NOKIA_DKU2 is not set
CONFIG_USB_SERIAL_PL2303=m
# CONFIG_USB_SERIAL_HP4X is not set
CONFIG_USB_SERIAL_SAFE=m
@@ -1341,6 +1345,25 @@ CONFIG_USB_EZUSB=y
# CONFIG_MMC is not set
#
+# Real Time Clock
+#
+CONFIG_RTC_CLASS=y
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+
+#
+# RTC drivers
+#
+CONFIG_RTC_DRV_X1205=y
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
# File systems
#
CONFIG_EXT2_FS=m
@@ -1594,13 +1617,3 @@ CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
-
-CONFIG_RTC_CLASS=y
-# RTC interfaces
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# RTC drivers
-CONFIG_RTC_DRV_X1205=y
-CONFIG_RTC_DRV_DS1672=n
-CONFIG_RTC_DRV_TEST=n
diff --git a/packages/linux/ixp4xx-kernel_2.6.15.bb b/packages/linux/ixp4xx-kernel_2.6.15.bb
index 5b8451a3e0..7722ef62c8 100644
--- a/packages/linux/ixp4xx-kernel_2.6.15.bb
+++ b/packages/linux/ixp4xx-kernel_2.6.15.bb
@@ -8,31 +8,26 @@ PR_CONFIG = "0"
# Increment the number below (i.e. the digits after PR) when
# making changes within this file or for changes to the patches
# applied to the kernel.
-PR = "r1.${PR_CONFIG}"
+PR = "r2.${PR_CONFIG}"
include ixp4xx-kernel.inc
-# file://60-nas100d-i2c.patch;patch=1 \
-# file://60-nas100d-ide.patch;patch=1 \
-# file://75-nslu2-leds.patch;patch=1 \
-# file://80-nslu2-io.patch;patch=1 \
-# file://92-nslu2-maclist.patch;patch=1 \
-
# IXP4XX_PATCHES - full list of patches to apply
-IXP4XX_PATCHES = "\
- file://00-memory-h-page-shift.patch;patch=1 \
- file://10-mtdpart-redboot-fis-byteswap.patch;patch=1 \
- file://15-jffs2-endian-config.patch;patch=1 \
- file://40-rtc-class.patch;patch=1 \
- file://50-nas100d-arch.patch;patch=1 \
- file://60-nslu2-beeper.patch;patch=1 \
- file://85-timer.patch;patch=1 \
- file://91-maclist.patch;patch=1 \
- file://92-nas100d-maclist.patch;patch=1 \
-"
+IXP4XX_PATCHES = ""
-# These options get added to the kernel command line, only put things
-# specific to the bootstrap of *this* kernel in here - DISTRO specfic
-# config must be in CMDLINE_ROOT (see the full definition of CMDLINE
-# in ixp4xx-kernel.inc)
-CMDLINE_KERNEL_OPTIONS = "x1205.hctosys=1 x1205.probe=0,0x6f pcf8563.hctosys=1"
+IXP4XX_PATCHES += "file://00-memory-h-page-shift.patch;patch=1"
+IXP4XX_PATCHES += "file://10-mtdpart-redboot-fis-byteswap.patch;patch=1"
+IXP4XX_PATCHES += "file://15-jffs2-endian-config.patch;patch=1"
+IXP4XX_PATCHES += "file://40-rtc-class.patch;patch=1"
+IXP4XX_PATCHES += "file://50-nas100d-arch.patch;patch=1"
+IXP4XX_PATCHES += "file://55-rtc-pcf8563.patch;patch=1"
+IXP4XX_PATCHES += "file://60-nas100d-i2c.patch;patch=1"
+# IXP4XX_PATCHES += "file://60-nas100d-ide.patch;patch=1"
+IXP4XX_PATCHES += "file://60-nas100d-rtc.patch;patch=1"
+IXP4XX_PATCHES += "file://60-nslu2-beeper.patch;patch=1"
+# IXP4XX_PATCHES += "file://75-nslu2-leds.patch;patch=1"
+IXP4XX_PATCHES += "file://80-nslu2-io.patch;patch=1"
+IXP4XX_PATCHES += "file://85-timer.patch;patch=1"
+IXP4XX_PATCHES += "file://91-maclist.patch;patch=1"
+IXP4XX_PATCHES += "file://92-nas100d-maclist.patch;patch=1"
+IXP4XX_PATCHES += "file://92-nslu2-maclist.patch;patch=1"