From af8ec74a677aa9e7e5411ecc341a82480622ee74 Mon Sep 17 00:00:00 2001 From: John Bowler Date: Mon, 28 Nov 2005 07:17:55 +0000 Subject: nslu2-kernel: bug fix release 2.6.14.3 --- packages/linux/nslu2-kernel_2.6.14.2.bb | 40 --------------------------------- packages/linux/nslu2-kernel_2.6.14.3.bb | 40 +++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 40 deletions(-) delete mode 100644 packages/linux/nslu2-kernel_2.6.14.2.bb create mode 100644 packages/linux/nslu2-kernel_2.6.14.3.bb (limited to 'packages/linux') diff --git a/packages/linux/nslu2-kernel_2.6.14.2.bb b/packages/linux/nslu2-kernel_2.6.14.2.bb deleted file mode 100644 index 12b4bc7cb5..0000000000 --- a/packages/linux/nslu2-kernel_2.6.14.2.bb +++ /dev/null @@ -1,40 +0,0 @@ -# Kernel for NSLU2 -# -# Increment PR_CONFIG for changes to the nslu2-kernel specific -# defconfig (do *NOT* increment anything in here for changes -# to other kernel configs!) -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}" - -include nslu2-kernel.inc - -# N2K_PATCHES - full list of patches to apply -N2K_PATCHES = "\ - file://90-ixp4xx-pci-le.patch;patch=1 \ - file://10-ixp4xx-copy-from.patch;patch=1 \ - file://10-ixp4xx-le.patch;patch=1 \ - file://10-mtdpart-redboot-fis-byteswap.patch;patch=1 \ - file://15-ixp4xx-writesb-l-w.patch;patch=1 \ - file://18-ixp4xx-io-h-addr.patch;patch=1 \ - file://19-jffs2-force-be.patch;patch=1 \ - file://29-ipv4-route-c-spinlock.patch;patch=1 \ - file://30-i2c-x1205.patch;patch=1 \ - file://50-nslu2-arch.patch;patch=1 \ - file://55-nslu2-rtc.patch;patch=1 \ - file://60-nslu2-beeper.patch;patch=1 \ - file://70-nslu2-io.patch;patch=1 \ - file://75-nslu2-leds.patch;patch=1 \ - file://90-pegasus.patch;patch=1 \ - file://20-timer.patch;patch=1 \ - file://anonymiser.patch;patch=1 \ -" - -# 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 nslu2-kernel.inc) -CMDLINE_KERNEL_OPTIONS = "x1205.hctosys=1" diff --git a/packages/linux/nslu2-kernel_2.6.14.3.bb b/packages/linux/nslu2-kernel_2.6.14.3.bb new file mode 100644 index 0000000000..eca0862724 --- /dev/null +++ b/packages/linux/nslu2-kernel_2.6.14.3.bb @@ -0,0 +1,40 @@ +# Kernel for NSLU2 +# +# Increment PR_CONFIG for changes to the nslu2-kernel specific +# defconfig (do *NOT* increment anything in here for changes +# to other kernel configs!) +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 = "r0.${PR_CONFIG}" + +include nslu2-kernel.inc + +# N2K_PATCHES - full list of patches to apply +N2K_PATCHES = "\ + file://90-ixp4xx-pci-le.patch;patch=1 \ + file://10-ixp4xx-copy-from.patch;patch=1 \ + file://10-ixp4xx-le.patch;patch=1 \ + file://10-mtdpart-redboot-fis-byteswap.patch;patch=1 \ + file://15-ixp4xx-writesb-l-w.patch;patch=1 \ + file://18-ixp4xx-io-h-addr.patch;patch=1 \ + file://19-jffs2-force-be.patch;patch=1 \ + file://29-ipv4-route-c-spinlock.patch;patch=1 \ + file://30-i2c-x1205.patch;patch=1 \ + file://50-nslu2-arch.patch;patch=1 \ + file://55-nslu2-rtc.patch;patch=1 \ + file://60-nslu2-beeper.patch;patch=1 \ + file://70-nslu2-io.patch;patch=1 \ + file://75-nslu2-leds.patch;patch=1 \ + file://90-pegasus.patch;patch=1 \ + file://20-timer.patch;patch=1 \ + file://anonymiser.patch;patch=1 \ +" + +# 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 nslu2-kernel.inc) +CMDLINE_KERNEL_OPTIONS = "x1205.hctosys=1" -- cgit v1.2.3 From cd717aef3dec762fa68bd59a189d03bfcadc4182 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 28 Nov 2005 13:27:29 +0000 Subject: linux-oz-2.6: dev kernel tosa updates from Dirk, ohci fix, add collie mtd update patch and remove the pm_legacy dependency from arm apm --- packages/linux/linux-openzaurus.inc | 2 +- .../linux/linux-openzaurus_2.6.14+2.6.15-rc2.bb | 33 +++++++++++++--------- 2 files changed, 20 insertions(+), 15 deletions(-) (limited to 'packages/linux') diff --git a/packages/linux/linux-openzaurus.inc b/packages/linux/linux-openzaurus.inc index c95bc7396e..4bd71d7601 100644 --- a/packages/linux/linux-openzaurus.inc +++ b/packages/linux/linux-openzaurus.inc @@ -3,7 +3,7 @@ SECTION = "kernel" MAINTAINER = "Richard Purdie , Michael 'Mickey' Lauer " LICENSE = "GPL" -DOSRC = "http://www.do13.in-berlin.de/openzaurus/patches" +DOSRC = "http://www.do13.de/openzaurus/patches" RPSRC = "http://www.rpsys.net/openzaurus/patches" JLSRC = "http://www.cs.wisc.edu/~lenz/zaurus/files" BASRC = "http://www.orca.cx/zaurus/patches" diff --git a/packages/linux/linux-openzaurus_2.6.14+2.6.15-rc2.bb b/packages/linux/linux-openzaurus_2.6.14+2.6.15-rc2.bb index 31797313e5..9687967d92 100644 --- a/packages/linux/linux-openzaurus_2.6.14+2.6.15-rc2.bb +++ b/packages/linux/linux-openzaurus_2.6.14+2.6.15-rc2.bb @@ -1,6 +1,6 @@ include linux-openzaurus.inc -PR = "r1" +PR = "r2" #DEFAULT_PREFERENCE = "-1" @@ -17,6 +17,7 @@ PR = "r1" SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.15-rc2.tar.bz2 \ ${RPSRC}/pxa_ohci_platform-r5.patch;patch=1 \ ${RPSRC}/pxa_ohci_suspend-r5.patch;patch=1 \ + ${RPSRC}/pxa_ohci_fixes-r0.patch;patch=1 \ ${RPSRC}/spitz_ohci-r0.patch;patch=1 \ ${RPSRC}/enable_iwmmxt-r0.patch;patch=1 \ ${RPSRC}/pxa_i2c_fixes-r4.patch;patch=1 \ @@ -31,6 +32,8 @@ SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.15-rc2. ${RPSRC}/pxa_timerfix-r0.patch;patch=1 \ ${RPSRC}/pxa_rtc-r2.patch;patch=1 \ ${RPSRC}/input_power-r4.patch;patch=1 \ + ${RPSRC}/arm_apm_pm_legacy-r1.patch;patch=1 \ + ${RPSRC}/collie_mtd_sharp-r0.patch;patch=1 \ ${RPSRC}/jffs2_longfilename-r0.patch;patch=1 \ ${RPSRC}/pxa25x_cpufreq-r0.patch;patch=1 \ ${RPSRC}/ipaq/hx2750_base-r24.patch;patch=1 \ @@ -39,15 +42,23 @@ SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.15-rc2. ${RPSRC}/ipaq/pxa_keys-r5.patch;patch=1 \ ${RPSRC}/ipaq/tsc2101-r12.patch;patch=1 \ ${RPSRC}/ipaq/hx2750_test1-r3.patch;patch=1 \ - ${DOSRC}/tc6393-device-r5.patch;patch=1 \ - ${DOSRC}/tc6393_nand-r6.patch;patch=1 \ - ${DOSRC}/tosa-keyboard-r6.patch;patch=1 \ + ${DOSRC}/tosa-platform-device-r0.patch;patch=1 \ + ${DOSRC}/tc6393-device-r8.patch;patch=1 \ + ${DOSRC}/tc6393_nand-r7.patch;patch=1 \ + ${DOSRC}/tosa-keyboard-r9.patch;patch=1 \ + ${DOSRC}/tosa-pxaac97-r5.patch;patch=1 \ + ${DOSRC}/tosa-tc6393-r1.patch;patch=1 \ + ${DOSRC}/tosa-power-r9.patch;patch=1 \ + ${DOSRC}/tc6393fb-r9.patch;patch=1 \ + ${DOSRC}/tosa-lcd-r6.patch;patch=1 \ + ${DOSRC}/tosa-bl-r9.patch;patch=1 \ + ${DOSRC}/tosa-bluetooth-r2.patch;patch=1 \ ${RPSRC}/pcmcia_dev_ids-r2.patch;patch=1 \ ${RPSRC}/mmc_timeout-r0.patch;patch=1 \ ${RPSRC}/pxa_cf_initorder_hack-r1.patch;patch=1 \ ${RPSRC}/alsa/alsa-soc-0.7.patch;patch=1 \ - ${RPSRC}/alsa_snd_corgi-r1.patch;patch=1 \ - ${RPSRC}/soc_platform_upd-r0.patch;patch=1 \ + ${RPSRC}/alsa_snd_corgi-r2.patch;patch=1 \ + ${RPSRC}/soc_platform_upd-r1.patch;patch=1 \ file://add-oz-release-string.patch;patch=1 \ file://pxa-serial-hack.patch;patch=1 \ ${RPSRC}/jl1/pxa-linking-bug.patch;patch=1 \ @@ -76,14 +87,8 @@ SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.15-rc2. # ${JLSRC}/zaurus-leds-2.6.11.diff.gz;patch=1 \ SRC_URI_append_tosa = "${DOSRC}/nand-readid-r1.patch;patch=1 \ - ${RPSRC}/temp/tc6393fb-r7.patch;patch=1 \ - ${DOSRC}/tosa-power-r6.patch;patch=1 \ - ${DOSRC}/tosa-lcd-r3.patch;patch=1 \ - ${RPSRC}/temp/tosa-bl-r7.patch;patch=1 \ - ${DOSRC}/pxa-ac97-suspend-r0.patch;patch=1 \ ${DOSRC}/ac97codec-rename-revert-r0.patch;patch=1 \ - ${DOSRC}/wm9712-ts-r3.patch;patch=1 \ - ${DOSRC}/tosa-pxaac97-r4.patch;patch=1 \ - ${DOSRC}/tosa-bluetooth-r0.patch;patch=1 " + ${DOSRC}/wm97xx-touch-lg2-r0.patch;patch=1 \ + ${DOSRC}/wm9712-pm-r0.patch;patch=1 " S = "${WORKDIR}/linux-2.6.15-rc2" -- cgit v1.2.3 From 82b057a809f2082409f2689cf07de70058087b07 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 28 Nov 2005 20:59:38 +0000 Subject: linux-oz-2.6: dev branch LED code improvements. Refactor sharpsl_pm as requested by mainline to assist adaption to collie --- .../linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-c7x0 | 3 ++- .../linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-cxx00 | 3 ++- packages/linux/linux-openzaurus_2.6.14+2.6.15-rc2.bb | 16 +++++++++------- 3 files changed, 13 insertions(+), 9 deletions(-) (limited to 'packages/linux') diff --git a/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-c7x0 b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-c7x0 index 20b44b7197..0f42642e7f 100644 --- a/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-c7x0 +++ b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-c7x0 @@ -228,7 +228,7 @@ CONFIG_BINFMT_MISC=m # Power management options # CONFIG_PM=y -CONFIG_PM_LEGACY=y +# CONFIG_PM_LEGACY is not set # CONFIG_PM_DEBUG is not set CONFIG_APM=y @@ -840,6 +840,7 @@ CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_NEWTON is not set CONFIG_KEYBOARD_CORGI=y +# CONFIG_KEYBOARD_TOSA is not set # CONFIG_KEYBOARD_SPITZ is not set # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set diff --git a/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-cxx00 b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-cxx00 index b1748c9268..ad44de256e 100644 --- a/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-cxx00 +++ b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-cxx00 @@ -216,7 +216,7 @@ CONFIG_BINFMT_MISC=m # Power management options # CONFIG_PM=y -CONFIG_PM_LEGACY=y +# CONFIG_PM_LEGACY is not set # CONFIG_PM_DEBUG is not set CONFIG_APM=y @@ -829,6 +829,7 @@ CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_CORGI is not set CONFIG_KEYBOARD_SPITZ=y +# CONFIG_KEYBOARD_TOSA is not set # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set CONFIG_INPUT_TOUCHSCREEN=y diff --git a/packages/linux/linux-openzaurus_2.6.14+2.6.15-rc2.bb b/packages/linux/linux-openzaurus_2.6.14+2.6.15-rc2.bb index 9687967d92..3f90f81705 100644 --- a/packages/linux/linux-openzaurus_2.6.14+2.6.15-rc2.bb +++ b/packages/linux/linux-openzaurus_2.6.14+2.6.15-rc2.bb @@ -1,6 +1,6 @@ include linux-openzaurus.inc -PR = "r2" +PR = "r3" #DEFAULT_PREFERENCE = "-1" @@ -22,13 +22,15 @@ SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.15-rc2. ${RPSRC}/enable_iwmmxt-r0.patch;patch=1 \ ${RPSRC}/pxa_i2c_fixes-r4.patch;patch=1 \ ${RPSRC}/ide_not_removable-r0.patch;patch=1 \ - ${RPSRC}/led_core-r0.patch;patch=1 \ - ${RPSRC}/led_triggers-r0.patch;patch=1 \ + ${RPSRC}/sharpsl_pm_move-r0.patch;patch=1 \ + ${RPSRC}/led_core-r1.patch;patch=1 \ + ${RPSRC}/led_triggers-r1.patch;patch=1 \ ${RPSRC}/led_trig_timer-r0.patch;patch=1 \ - ${RPSRC}/led_zaurus-r0.patch;patch=1 \ - ${RPSRC}/led_locomo-r0.patch;patch=1 \ - ${RPSRC}/led_ide-r0.patch;patch=1 \ - ${RPSRC}/led_nand-r0.patch;patch=1 \ + ${RPSRC}/led_trig_sharpsl_pm-r0.patch;patch=1 \ + ${RPSRC}/led_zaurus-r2.patch;patch=1 \ + ${RPSRC}/led_locomo-r1.patch;patch=1 \ + ${RPSRC}/led_ide-r1.patch;patch=1 \ + ${RPSRC}/led_nand-r1.patch;patch=1 \ ${RPSRC}/pxa_timerfix-r0.patch;patch=1 \ ${RPSRC}/pxa_rtc-r2.patch;patch=1 \ ${RPSRC}/input_power-r4.patch;patch=1 \ -- cgit v1.2.3 From 78d2ca44a8dd2bad6a4314772ad9c9ac6e30bf46 Mon Sep 17 00:00:00 2001 From: John Bowler Date: Tue, 29 Nov 2005 03:02:31 +0000 Subject: nslu2-kernel: add maclist proc entry to 2.6.14.3 and 2.6.15-rc2 --- packages/linux/nslu2-kernel/2.6.14/defconfig | 18 +- packages/linux/nslu2-kernel/2.6.15/defconfig | 12 +- packages/linux/nslu2-kernel/2.6/91-maclist.patch | 377 +++++++++++++++++++++++ packages/linux/nslu2-kernel_2.6.14.3.bb | 3 +- packages/linux/nslu2-kernel_2.6.15-rc2.bb | 3 +- 5 files changed, 402 insertions(+), 11 deletions(-) create mode 100644 packages/linux/nslu2-kernel/2.6/91-maclist.patch (limited to 'packages/linux') diff --git a/packages/linux/nslu2-kernel/2.6.14/defconfig b/packages/linux/nslu2-kernel/2.6.14/defconfig index 8d0d751738..83b25213ac 100644 --- a/packages/linux/nslu2-kernel/2.6.14/defconfig +++ b/packages/linux/nslu2-kernel/2.6.14/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.14-rc4 -# Fri Oct 21 16:13:58 2005 +# Linux kernel version: 2.6.14 +# Mon Nov 28 18:53:25 2005 # CONFIG_ARM=y CONFIG_MMU=y @@ -93,12 +93,12 @@ CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y # # IXP4xx Platforms # +CONFIG_MACH_NSLU2=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_MACH_NSLU2=y # CONFIG_ARCH_PRPMC1100 is not set # CONFIG_MACH_GTWX5715 is not set @@ -169,7 +169,6 @@ CONFIG_CMDLINE="root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init= # At least one emulation must be selected # CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set # CONFIG_FPE_FASTFPE is not set # @@ -574,7 +573,13 @@ CONFIG_SCSI_MULTI_LUN=y # CONFIG_SCSI_IPR is not set # CONFIG_SCSI_QLOGIC_FC is not set # CONFIG_SCSI_QLOGIC_1280 is not set -CONFIG_SCSI_QLA2XXX=n +CONFIG_SCSI_QLA2XXX=y +# CONFIG_SCSI_QLA21XX is not set +# CONFIG_SCSI_QLA22XX is not set +# CONFIG_SCSI_QLA2300 is not set +# CONFIG_SCSI_QLA2322 is not set +# CONFIG_SCSI_QLA6312 is not set +# CONFIG_SCSI_QLA24XX is not set # CONFIG_SCSI_LPFC is not set # CONFIG_SCSI_DC395x is not set # CONFIG_SCSI_DC390T is not set @@ -642,6 +647,7 @@ CONFIG_TUN=m # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y +CONFIG_MACLIST=y CONFIG_MII=y # CONFIG_HAPPYMEAL is not set # CONFIG_SUNGEM is not set @@ -1120,7 +1126,6 @@ CONFIG_USB=y CONFIG_USB_DEVICEFS=y # CONFIG_USB_BANDWIDTH is not set # CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_SUSPEND is not set # CONFIG_USB_OTG is not set # @@ -1369,7 +1374,6 @@ CONFIG_RAMFS=y # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set -# CONFIG_ASFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set diff --git a/packages/linux/nslu2-kernel/2.6.15/defconfig b/packages/linux/nslu2-kernel/2.6.15/defconfig index 9a9bc34c7d..7074421cd7 100644 --- a/packages/linux/nslu2-kernel/2.6.15/defconfig +++ b/packages/linux/nslu2-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 +# Mon Nov 28 13:10:38 2005 # CONFIG_ARM=y CONFIG_MMU=y @@ -410,6 +410,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) # @@ -673,6 +678,7 @@ CONFIG_TUN=m # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y +CONFIG_MACLIST=y CONFIG_MII=y # CONFIG_HAPPYMEAL is not set # CONFIG_SUNGEM is not set @@ -1029,6 +1035,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 @@ -1273,6 +1281,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 @@ -1292,7 +1301,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 diff --git a/packages/linux/nslu2-kernel/2.6/91-maclist.patch b/packages/linux/nslu2-kernel/2.6/91-maclist.patch new file mode 100644 index 0000000000..27af1ea639 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6/91-maclist.patch @@ -0,0 +1,377 @@ +--- 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 ++ * 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 ++#include ++#include ++#include ++#include ++ ++#include ++ ++#define MACLIST_NAME "maclist" ++ ++MODULE_AUTHOR("John Bowler "); ++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.14.3.bb b/packages/linux/nslu2-kernel_2.6.14.3.bb index eca0862724..71282bbea2 100644 --- a/packages/linux/nslu2-kernel_2.6.14.3.bb +++ b/packages/linux/nslu2-kernel_2.6.14.3.bb @@ -8,7 +8,7 @@ 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 = "r0.${PR_CONFIG}" +PR = "r1.${PR_CONFIG}" include nslu2-kernel.inc @@ -30,6 +30,7 @@ N2K_PATCHES = "\ file://75-nslu2-leds.patch;patch=1 \ file://90-pegasus.patch;patch=1 \ file://20-timer.patch;patch=1 \ + file://91-maclist.patch;patch=1 \ file://anonymiser.patch;patch=1 \ " diff --git a/packages/linux/nslu2-kernel_2.6.15-rc2.bb b/packages/linux/nslu2-kernel_2.6.15-rc2.bb index d2b55c8e7b..79f382713c 100644 --- a/packages/linux/nslu2-kernel_2.6.15-rc2.bb +++ b/packages/linux/nslu2-kernel_2.6.15-rc2.bb @@ -8,7 +8,7 @@ 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 = "r0.${PR_CONFIG}" +PR = "r1.${PR_CONFIG}" include nslu2-kernel.inc @@ -25,6 +25,7 @@ N2K_PATCHES = "\ file://81-nslu2-class-device-create.patch;patch=1 \ file://90-ixp4xx-nslu2.patch;patch=1 \ file://20-timer.patch;patch=1 \ + file://91-maclist.patch;patch=1 \ file://anonymiser.patch;patch=1 \ " -- cgit v1.2.3 From 828a00a6508ced61f02bde7a527052d1f38a2aff Mon Sep 17 00:00:00 2001 From: John Bowler Date: Tue, 29 Nov 2005 07:57:27 +0000 Subject: nslu2-kernel: change board setup to call maclist in 2.6.14.3, 2.6.15-rc2 --- .../linux/nslu2-kernel/2.6/92-nslu2-maclist.patch | 80 ++++++++++++++++++++++ packages/linux/nslu2-kernel_2.6.14.3.bb | 3 +- packages/linux/nslu2-kernel_2.6.15-rc2.bb | 3 +- 3 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 packages/linux/nslu2-kernel/2.6/92-nslu2-maclist.patch (limited to 'packages/linux') diff --git a/packages/linux/nslu2-kernel/2.6/92-nslu2-maclist.patch b/packages/linux/nslu2-kernel/2.6/92-nslu2-maclist.patch new file mode 100644 index 0000000000..c8b8a9bede --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6/92-nslu2-maclist.patch @@ -0,0 +1,80 @@ +--- 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 + #include + #include ++#include + + #include + #include + #include + ++#include ++ + 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.14.3.bb b/packages/linux/nslu2-kernel_2.6.14.3.bb index 71282bbea2..3868757ffb 100644 --- a/packages/linux/nslu2-kernel_2.6.14.3.bb +++ b/packages/linux/nslu2-kernel_2.6.14.3.bb @@ -8,7 +8,7 @@ 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 nslu2-kernel.inc @@ -31,6 +31,7 @@ N2K_PATCHES = "\ file://90-pegasus.patch;patch=1 \ file://20-timer.patch;patch=1 \ file://91-maclist.patch;patch=1 \ + file://92-nslu2-maclist.patch;patch=1 \ file://anonymiser.patch;patch=1 \ " diff --git a/packages/linux/nslu2-kernel_2.6.15-rc2.bb b/packages/linux/nslu2-kernel_2.6.15-rc2.bb index 79f382713c..9bb7e75346 100644 --- a/packages/linux/nslu2-kernel_2.6.15-rc2.bb +++ b/packages/linux/nslu2-kernel_2.6.15-rc2.bb @@ -8,7 +8,7 @@ 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 nslu2-kernel.inc @@ -26,6 +26,7 @@ N2K_PATCHES = "\ file://90-ixp4xx-nslu2.patch;patch=1 \ file://20-timer.patch;patch=1 \ file://91-maclist.patch;patch=1 \ + file://92-nslu2-maclist.patch;patch=1 \ file://anonymiser.patch;patch=1 \ " -- cgit v1.2.3