ixp4xx-kernel: update to latest patch set, add NSLU2 support in 2.6.15
authorJohn Bowler <jbowler@nslu2-linux.org>
Wed, 11 Jan 2006 22:00:55 +0000 (22:00 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Wed, 11 Jan 2006 22:00:55 +0000 (22:00 +0000)
13 files changed:
packages/linux/ixp4xx-kernel.inc
packages/linux/ixp4xx-kernel/2.6.15/10-mtdpart-redboot-fis-byteswap.patch
packages/linux/ixp4xx-kernel/2.6.15/40-rtc-class.patch
packages/linux/ixp4xx-kernel/2.6.15/55-rtc-pcf8563.patch [new file with mode: 0644]
packages/linux/ixp4xx-kernel/2.6.15/60-nas100d-rtc.patch [new file with mode: 0644]
packages/linux/ixp4xx-kernel/2.6.15/60-nslu2-beeper.patch
packages/linux/ixp4xx-kernel/2.6.15/75-nslu2-leds.patch
packages/linux/ixp4xx-kernel/2.6.15/80-nslu2-io.patch
packages/linux/ixp4xx-kernel/2.6.15/85-timer.patch
packages/linux/ixp4xx-kernel/2.6.15/92-nas100d-maclist.patch
packages/linux/ixp4xx-kernel/2.6.15/92-nslu2-maclist.patch
packages/linux/ixp4xx-kernel/2.6.15/defconfig
packages/linux/ixp4xx-kernel_2.6.15.bb

index 54679eb..bae5e96 100644 (file)
@@ -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
index 077aa00..3fa0535 100644 (file)
@@ -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;
index feea3f2..8e0380b 100644 (file)
 +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 (file)
index 0000000..d154b6a
--- /dev/null
@@ -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 (file)
index 0000000..18ee72c
--- /dev/null
@@ -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)
index 12fdc4d..6cd1025 100644 (file)
@@ -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
index 7497409..b0dc4b8 100644 (file)
@@ -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
  
index 26031f6..7a5b2d5 100644 (file)
@@ -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
index 3d4a03f..e813144 100644 (file)
 -
 --- 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)
  {
index 3143850..20ccbd5 100644 (file)
@@ -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];
 +/*
 + * 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();
  
index c8b8a9b..1b7e611 100644 (file)
@@ -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];
 +/*
 + * 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();
  
index 5e782ba..ff69ccc 100644 (file)
@@ -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
@@ -413,6 +409,11 @@ CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 CONFIG_FW_LOADER=m
 
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+# CONFIG_CONNECTOR is not set
+
 #
 # Memory Technology Devices (MTD)
 #
@@ -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
@@ -1340,6 +1344,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
 #
@@ -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
index 5b8451a..7722ef6 100644 (file)
@@ -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"