summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/bonnie/bonnie++.inc29
-rw-r--r--packages/bonnie/bonnie++_1.03a.bb30
-rw-r--r--packages/bonnie/bonnie++_1.03c.bb1
-rw-r--r--packages/dbus-java/dbus-java_2.3.bb1
-rw-r--r--packages/fuse/fuse-2.7.2/.mtn2git_empty0
-rw-r--r--packages/fuse/fuse-2.7.2/not-run-updaterc.d-on-host.patch15
-rw-r--r--packages/fuse/fuse-module-2.5.3/.mtn2git_empty0
-rw-r--r--packages/fuse/fuse-module-2.5.3/preserve_CC_with_2_4_kernel.patch11
-rw-r--r--packages/fuse/fuse-module_2.5.3.bb31
-rw-r--r--packages/fuse/fuse-module_2.7.2.bb29
-rw-r--r--packages/fuse/fuse_2.7.2.bb27
-rw-r--r--packages/gcc/gcc-4.2.2/arm-softfloat.patch2
-rw-r--r--packages/gcc/gcc-4.2.2/arm-thumb.patch2
-rw-r--r--packages/glibc/files/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch20
-rw-r--r--packages/glibc/glibc_2.6.1.bb1
-rw-r--r--packages/gstreamer/gst-plugins-base_0.10.17.bb12
-rw-r--r--packages/gstreamer/gstreamer_0.10.17.bb3
-rw-r--r--packages/kobodeluxe/.mtn2git_empty0
-rw-r--r--packages/kobodeluxe/files/.mtn2git_empty0
-rw-r--r--packages/kobodeluxe/files/debian-kobo.patch72
-rw-r--r--packages/kobodeluxe/files/default-config70
-rw-r--r--packages/kobodeluxe/files/kobodeluxe-dimension-autoswap.patch236
-rw-r--r--packages/kobodeluxe/files/kobodeluxe-menu-pointer.patch266
-rw-r--r--packages/kobodeluxe/files/kobodeluxe-putenv.patch69
-rw-r--r--packages/kobodeluxe/files/kobodeluxe-sysconf-support.patch84
-rw-r--r--packages/kobodeluxe/kobodeluxe_0.5.1.bb51
-rw-r--r--packages/libmatthew/libmatthew_0.5.bb1
-rw-r--r--packages/linux/linux-2.6.24/mpc8313e-rdb/.mtn2git_empty0
-rw-r--r--packages/linux/linux-2.6.24/mpc8313e-rdb/defconfig1938
-rw-r--r--packages/linux/linux-davinci/davinci-nand.patch905
-rw-r--r--packages/linux/linux-davinci/davinci-sffsdr/defconfig85
-rw-r--r--packages/linux/linux-davinci_2.6.x+git-davinci.bb1
-rw-r--r--packages/linux/linux-ixp4xx/nslu2/defconfig-2.6.241
-rw-r--r--packages/linux/linux-ixp4xx_2.6.24.bb2
-rw-r--r--packages/linux/linux.inc6
-rw-r--r--packages/linux/linux_2.6.24.bb19
-rw-r--r--packages/logic-analyzer/files/scrolling-capture-dialog.patch21
-rw-r--r--packages/logic-analyzer/logic-analyzer_0.8.bb6
-rw-r--r--packages/madwifi/files/30-define-ioreadwrite32be-for-little-endian-too.patch13
-rw-r--r--packages/madwifi/madwifi-ng_r3314-20080131.bb17
-rw-r--r--packages/meta/slugos-packages.bb13
-rw-r--r--packages/netbase/netbase/slugos/if-pre-up.d/test-nfsroot10
-rw-r--r--packages/netbase/netbase_4.21.bb2
-rw-r--r--packages/python/python-gst/python-path.patch35
-rw-r--r--packages/python/python-gst_0.10.10.bb (renamed from packages/python/python-gst_0.10.8.bb)2
-rw-r--r--packages/python/python-pyqt_4.3.3.bb1
-rw-r--r--packages/python/python-sqlalchemy_0.4.2p3.bb12
-rw-r--r--packages/rxtx/rxtx_2.1-7r2.bb1
-rw-r--r--packages/slugos-init/files/boot/network2
-rw-r--r--packages/slugos-init/slugos-init_4.8.bb2
-rw-r--r--packages/tasks/task-python-everything.bb3
-rw-r--r--packages/tasks/task-slugos.bb4
-rw-r--r--packages/udev/files/slugos/mount.sh77
-rw-r--r--packages/udev/udev_100.bb3
-rw-r--r--packages/xorg-driver/xf86-input-acecad_1.2.2.bb5
-rw-r--r--packages/xorg-driver/xf86-video-trident_1.2.4.bb5
-rw-r--r--packages/xorg-driver/xorg-driver-common.inc2
-rw-r--r--packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb3
-rw-r--r--packages/xorg-xserver/xserver-kdrive/fix-picturestr-include-order.patch15
59 files changed, 4146 insertions, 128 deletions
diff --git a/packages/bonnie/bonnie++.inc b/packages/bonnie/bonnie++.inc
new file mode 100644
index 0000000000..dabe6dc1f7
--- /dev/null
+++ b/packages/bonnie/bonnie++.inc
@@ -0,0 +1,29 @@
+# bonnie OE build file
+# Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
+
+DESCRIPTION="Tests large file IO and creation/deletion of small files."
+LICENSE="GPL"
+
+
+SRC_URI="http://www.coker.com.au/bonnie++/${PN}-${PV}.tgz"
+
+inherit autotools
+
+EXES="bonnie++ zcav"
+SCRIPTS="bon_csv2html bon_csv2txt"
+
+PACKAGES += "bonnie-scripts"
+
+FILES_${PN} = "/sbin"
+FILES_bonnie-scripts="/bin"
+
+S="${WORKDIR}/${PN}-${PV}"
+
+do_install () {
+ install -d ${D}/bin
+ install -d ${D}/sbin
+
+ install -m 0755 ${EXES} ${D}/sbin
+ install -m 0755 ${SCRIPTS} ${D}/bin
+}
diff --git a/packages/bonnie/bonnie++_1.03a.bb b/packages/bonnie/bonnie++_1.03a.bb
index 46d259af78..3934aff43e 100644
--- a/packages/bonnie/bonnie++_1.03a.bb
+++ b/packages/bonnie/bonnie++_1.03a.bb
@@ -1,29 +1 @@
-# bonnie OE build file
-# Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved
-# Released under the MIT license (see packages/COPYING)
-
-DESCRIPTION="Tests large file IO and creation/deletion of small files."
-LICENSE="GPL"
-
-
-SRC_URI="${SOURCEFORGE_MIRROR}/bonnie/${PN}-${PV}.tgz"
-
-inherit autotools
-
-EXES="bonnie++ zcav"
-SCRIPTS="bon_csv2html bon_csv2txt"
-
-PACKAGES += "bonnie-scripts"
-
-FILES_${PN} = "/sbin"
-FILES_bonnie-scripts="/bin"
-
-S="${WORKDIR}/${PN}-${PV}"
-
-do_install () {
- install -d ${D}/bin
- install -d ${D}/sbin
-
- install -m 0755 ${EXES} ${D}/sbin
- install -m 0755 ${SCRIPTS} ${D}/bin
-}
+require bonnie++.inc
diff --git a/packages/bonnie/bonnie++_1.03c.bb b/packages/bonnie/bonnie++_1.03c.bb
new file mode 100644
index 0000000000..3934aff43e
--- /dev/null
+++ b/packages/bonnie/bonnie++_1.03c.bb
@@ -0,0 +1 @@
+require bonnie++.inc
diff --git a/packages/dbus-java/dbus-java_2.3.bb b/packages/dbus-java/dbus-java_2.3.bb
index 72d99c3854..1c30fc7fe4 100644
--- a/packages/dbus-java/dbus-java_2.3.bb
+++ b/packages/dbus-java/dbus-java_2.3.bb
@@ -4,7 +4,6 @@ DESCRIPTION_dbus-java-bin = "${DESCRIPTION} (Binaries)"
LICENSE = "GPLv2 AFL"
SECTION = "libs"
-MAINTAINER = "Fabian Koester, tarent GmbH Bonn <f.koester@tarent.de>"
HOMEPAGE = "http://jalimo.org"
AUTHOR = "Matthew Johnson <dbus@matthew.ath.cx>"
diff --git a/packages/fuse/fuse-2.7.2/.mtn2git_empty b/packages/fuse/fuse-2.7.2/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/fuse/fuse-2.7.2/.mtn2git_empty
diff --git a/packages/fuse/fuse-2.7.2/not-run-updaterc.d-on-host.patch b/packages/fuse/fuse-2.7.2/not-run-updaterc.d-on-host.patch
new file mode 100644
index 0000000000..903a8baa9e
--- /dev/null
+++ b/packages/fuse/fuse-2.7.2/not-run-updaterc.d-on-host.patch
@@ -0,0 +1,15 @@
+Index: fuse-2.7.2/util/Makefile.am
+===================================================================
+--- fuse-2.7.2.orig/util/Makefile.am 2007-04-26 01:36:47.000000000 +0930
++++ fuse-2.7.2/util/Makefile.am 2008-02-10 16:43:19.000000000 +1030
+@@ -33,10 +33,6 @@
+ $(INSTALL_PROGRAM) $(srcdir)/mount.fuse $(DESTDIR)$(MOUNT_FUSE_PATH)/mount.fuse
+ $(mkdir_p) $(DESTDIR)$(INIT_D_PATH)
+ $(INSTALL_PROGRAM) $(srcdir)/init_script $(DESTDIR)$(INIT_D_PATH)/fuse
+- @if test -x /usr/sbin/update-rc.d; then \
+- echo "/usr/sbin/update-rc.d fuse start 34 S . start 41 0 6 . || true"; \
+- /usr/sbin/update-rc.d fuse start 34 S . start 41 0 6 . || true; \
+- fi
+
+ install-data-local:
+ $(mkdir_p) $(DESTDIR)$(UDEV_RULES_PATH)
diff --git a/packages/fuse/fuse-module-2.5.3/.mtn2git_empty b/packages/fuse/fuse-module-2.5.3/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/fuse/fuse-module-2.5.3/.mtn2git_empty
diff --git a/packages/fuse/fuse-module-2.5.3/preserve_CC_with_2_4_kernel.patch b/packages/fuse/fuse-module-2.5.3/preserve_CC_with_2_4_kernel.patch
new file mode 100644
index 0000000000..05619d557c
--- /dev/null
+++ b/packages/fuse/fuse-module-2.5.3/preserve_CC_with_2_4_kernel.patch
@@ -0,0 +1,11 @@
+--- fuse-2.5.3/kernel/Makefile.in.orig 2008-01-05 20:43:00.000000000 -0600
++++ fuse-2.5.3/kernel/Makefile.in 2008-01-05 20:43:25.000000000 -0600
+@@ -54,8 +54,6 @@
+
+ ifeq ($(majver), 2.4)
+
+-CC = gcc
+-LD = ld
+ CFLAGS = -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -pipe @KERNELCFLAGS@
+ CPPFLAGS = -I@kernelsrc@/include -I. -D__KERNEL__ -DMODULE -D_LOOSE_KERNEL_NAMES -DFUSE_VERSION=\"$(VERSION)\" @KERNELCPPFLAGS@
+
diff --git a/packages/fuse/fuse-module_2.5.3.bb b/packages/fuse/fuse-module_2.5.3.bb
new file mode 100644
index 0000000000..f707888c94
--- /dev/null
+++ b/packages/fuse/fuse-module_2.5.3.bb
@@ -0,0 +1,31 @@
+require fuse.inc
+
+PR = "r0"
+
+SRC_URI += "file://preserve_CC_with_2_4_kernel.patch;patch=1"
+
+S = "${WORKDIR}/fuse-${PV}"
+
+FILES_${PN} = "${base_libdir}/modules"
+
+EXTRA_OECONF = " --enable-kernel-module --with-kernel=${STAGING_KERNEL_DIR}"
+
+inherit module
+
+do_configure() {
+ cd ${S}
+ oe_runconf
+}
+
+do_compile(){
+ LDFLAGS=""
+ cd ${S}/kernel
+ oe_runmake
+}
+
+fakeroot do_install() {
+ LDFLAGS=""
+ cd ${S}/kernel
+ oe_runmake install DESTDIR=${D}
+}
+
diff --git a/packages/fuse/fuse-module_2.7.2.bb b/packages/fuse/fuse-module_2.7.2.bb
new file mode 100644
index 0000000000..48cc33a338
--- /dev/null
+++ b/packages/fuse/fuse-module_2.7.2.bb
@@ -0,0 +1,29 @@
+require fuse.inc
+
+RRECOMMENDS = "fuse"
+PR = "r0"
+
+S = "${WORKDIR}/fuse-${PV}"
+FILES_${PN} = "/dev ${base_libdir}/modules ${sysconfdir}"
+EXTRA_OECONF = " --enable-kernel-module --with-kernel=${STAGING_KERNEL_DIR}"
+
+inherit module
+
+do_configure() {
+ cd ${S} ; oe_runconf
+}
+
+do_compile(){
+ LDFLAGS=""
+ cd ${S}/kernel
+ oe_runmake
+}
+
+fakeroot do_install() {
+ LDFLAGS=""
+ install -d ${D}${sysconfdir}/udev/rules.d/
+ install -m 644 util/udev.rules ${D}${sysconfdir}/udev/rules.d/
+ cd ${S}/kernel
+ oe_runmake install DESTDIR=${D}
+}
+
diff --git a/packages/fuse/fuse_2.7.2.bb b/packages/fuse/fuse_2.7.2.bb
new file mode 100644
index 0000000000..a1795e7f0c
--- /dev/null
+++ b/packages/fuse/fuse_2.7.2.bb
@@ -0,0 +1,27 @@
+require fuse.inc
+
+PR = "r0"
+
+SRC_URI += "file://not-run-updaterc.d-on-host.patch;patch=1"
+
+EXTRA_OECONF = " --disable-kernel-module"
+
+#package utils in a sperate package and stop debian.bbclass renaming it to libfuse-utils, we want it to be fuse-utils
+PACKAGES =+ "fuse-utils-dbg fuse-utils libulockmgr libulockmgr-dev libulockmgr-dbg"
+FILES_${PN} += "${libdir}/libfuse.so.*"
+FILES_${PN}-dev += "${libdir}/libfuse*.la"
+
+FILES_libulockmgr = "${libdir}/libulockmgr.so.*"
+FILES_libulockmgr-dev += "${libdir}/libulock*.la"
+FILES_libulockmgr-dbg += "${libdir}/.debug/libulock*"
+
+FILES_fuse-utils = "${bindir} ${base_sbindir}"
+FILES_fuse-utils-dbg = "${bindir}/.debug ${base_sbindir}/.debug"
+DEBIAN_NOAUTONAME_fuse-utils = "1"
+DEBIAN_NOAUTONAME_fuse-utils-dbg = "1"
+
+fakeroot do_stage() {
+ autotools_stage_all
+}
+
+
diff --git a/packages/gcc/gcc-4.2.2/arm-softfloat.patch b/packages/gcc/gcc-4.2.2/arm-softfloat.patch
index c86c83ed15..5e1edd9208 100644
--- a/packages/gcc/gcc-4.2.2/arm-softfloat.patch
+++ b/packages/gcc/gcc-4.2.2/arm-softfloat.patch
@@ -10,7 +10,7 @@ Index: gcc-4.0.2/gcc/config/arm/t-linux
+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
-+ _fixsfsi _fixunssfsi _floatdidf _floatdisf
++ _fixsfsi _fixunssfsi _floatdidf _floatdisf _floatundisf _floatundidf
# MULTILIB_OPTIONS = mhard-float/msoft-float
# MULTILIB_DIRNAMES = hard-float soft-float
diff --git a/packages/gcc/gcc-4.2.2/arm-thumb.patch b/packages/gcc/gcc-4.2.2/arm-thumb.patch
index 69e2f68cf2..016a7a550b 100644
--- a/packages/gcc/gcc-4.2.2/arm-thumb.patch
+++ b/packages/gcc/gcc-4.2.2/arm-thumb.patch
@@ -59,6 +59,6 @@
_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
+ _call_via_rX \
- _fixsfsi _fixunssfsi _floatdidf _floatdisf
+ _fixsfsi _fixunssfsi _floatdidf _floatdisf _floatundisf _floatundidf
# MULTILIB_OPTIONS = mhard-float/msoft-float
diff --git a/packages/glibc/files/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch b/packages/glibc/files/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch
new file mode 100644
index 0000000000..33d5282b90
--- /dev/null
+++ b/packages/glibc/files/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch
@@ -0,0 +1,20 @@
+Submitted By: Joe Ciccone <jciccone@linuxfromscratch.org>
+Date: 07-02-2007
+Initial Package Version: 2.6
+Origin: http://sourceware.org/ml/libc-ports/2007-05/msg00051.html
+Upstream Status: Unknown
+Description: Defines RTLD_SINGLE_THREAD_P for arm.
+
+diff -Naur glibc-2.6.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h glibc-2.6/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
+--- glibc-2.6.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2007-07-02 17:39:22.000000000 -0400
++++ glibc-2.6/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2007-07-02 17:39:36.000000000 -0400
+@@ -126,3 +126,9 @@
+ # define NO_CANCELLATION 1
+
+ #endif
++
++#ifndef __ASSEMBLER__
++# define RTLD_SINGLE_THREAD_P \
++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
++ header.multiple_threads) == 0, 1)
++#endif
diff --git a/packages/glibc/glibc_2.6.1.bb b/packages/glibc/glibc_2.6.1.bb
index d2816f83b1..705fab6715 100644
--- a/packages/glibc/glibc_2.6.1.bb
+++ b/packages/glibc/glibc_2.6.1.bb
@@ -55,6 +55,7 @@ SRC_URI = "\
file://generic-bits_time.h \
file://etc/ld.so.conf \
file://generate-supported.mk \
+ file://glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch;patch=1 \
"
# Build fails on sh3 and sh4 without additional patches
diff --git a/packages/gstreamer/gst-plugins-base_0.10.17.bb b/packages/gstreamer/gst-plugins-base_0.10.17.bb
new file mode 100644
index 0000000000..33b189a0ff
--- /dev/null
+++ b/packages/gstreamer/gst-plugins-base_0.10.17.bb
@@ -0,0 +1,12 @@
+require gst-plugins.inc
+
+PROVIDES += "gst-plugins"
+
+# gst-plugins-base only builds the alsa plugin
+# if alsa has been built and is present. You will
+# not get an error if this is not present, just
+# a missing alsa plugin
+DEPENDS += "alsa-lib"
+
+PR = "r2"
+
diff --git a/packages/gstreamer/gstreamer_0.10.17.bb b/packages/gstreamer/gstreamer_0.10.17.bb
new file mode 100644
index 0000000000..9e9ae62cb1
--- /dev/null
+++ b/packages/gstreamer/gstreamer_0.10.17.bb
@@ -0,0 +1,3 @@
+require gstreamer.inc
+
+PR = "r0"
diff --git a/packages/kobodeluxe/.mtn2git_empty b/packages/kobodeluxe/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/kobodeluxe/.mtn2git_empty
diff --git a/packages/kobodeluxe/files/.mtn2git_empty b/packages/kobodeluxe/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/kobodeluxe/files/.mtn2git_empty
diff --git a/packages/kobodeluxe/files/debian-kobo.patch b/packages/kobodeluxe/files/debian-kobo.patch
new file mode 100644
index 0000000000..90b1d84080
--- /dev/null
+++ b/packages/kobodeluxe/files/debian-kobo.patch
@@ -0,0 +1,72 @@
+--- kobodeluxe-0.5.1.orig/kobo.cpp
++++ kobodeluxe-0.5.1/kobo.cpp
+@@ -141,21 +141,21 @@
+ * Graphics data
+ */
+ /* Current dir; from within the build tree */
+- fmap->addpath("GFX", "./data/gfx");
++ //fmap->addpath("GFX", "./data/gfx");
+ /* Real data dir */
+ fmap->addpath("GFX", "DATA>>gfx");
+ /* Current dir */
+- fmap->addpath("GFX", "./gfx");
++ //fmap->addpath("GFX", "./gfx");
+
+ /*
+ * Sound data
+ */
+ /* Current dir; from within the build tree */
+- fmap->addpath("SFX", "./data/sfx");
++ //fmap->addpath("SFX", "./data/sfx");
+ /* Real data dir */
+ fmap->addpath("SFX", "DATA>>sfx");
+ /* Current dir */
+- fmap->addpath("SFX", "./sfx");
++ //fmap->addpath("SFX", "./sfx");
+
+ /*
+ * Score files (user and global)
+@@ -173,7 +173,7 @@
+ /* System local */
+ fmap->addpath("CONFIG", SYSCONF_DIR);
+ /* In current dir (last resort) */
+- fmap->addpath("CONFIG", "./");
++ //fmap->addpath("CONFIG", "./");
+ }
+
+
+--- kobodeluxe-0.5.1.orig/graphics/window.cpp
++++ kobodeluxe-0.5.1/graphics/window.cpp
+@@ -331,7 +331,7 @@
+ }
+
+
+-void window_t::center_token(int _x, int _y, const char *txt, char token)
++void window_t::center_token(int _x, int _y, const char *txt, signed char token)
+ {
+ center_token_fxp(PIXEL2CS(_x), PIXEL2CS(_y), txt, token);
+ }
+@@ -374,7 +374,7 @@
+ }
+
+
+-void window_t::center_token_fxp(int _x, int _y, const char *txt, char token)
++void window_t::center_token_fxp(int _x, int _y, const char *txt, signed char token)
+ {
+ _x = CS2PIXEL((_x * xs + 128) >> 8);
+ _y = CS2PIXEL((_y * ys + 128) >> 8);
+--- kobodeluxe-0.5.1.orig/graphics/window.h
++++ kobodeluxe-0.5.1/graphics/window.h
+@@ -265,10 +265,10 @@
+ void font(int fnt);
+ void string(int _x, int _y, const char *txt);
+ void center(int _y, const char *txt);
+- void center_token(int _x, int _y, const char *txt, char token = 0);
++ void center_token(int _x, int _y, const char *txt, signed char token = 0);
+ void string_fxp(int _x, int _y, const char *txt);
+ void center_fxp(int _y, const char *txt);
+- void center_token_fxp(int _x, int _y, const char *txt, char token = 0);
++ void center_token_fxp(int _x, int _y, const char *txt, signed char token = 0);
+ int textwidth(const char *txt, int min = 0, int max = 255);
+ int textwidth_fxp(const char *txt, int min = 0, int max = 255);
+ int fontheight();
diff --git a/packages/kobodeluxe/files/default-config b/packages/kobodeluxe/files/default-config
new file mode 100644
index 0000000000..4a8f5f7a96
--- /dev/null
+++ b/packages/kobodeluxe/files/default-config
@@ -0,0 +1,70 @@
+#--------------------------------------------
+# Kobo Deluxe 0.5.1 Configuration File
+#--------------------------------------------
+# Switches - [no]<switch>
+# Values - <key> [<value>|"<string>"]
+#--------------------------------------------
+#--- System options --------------------------
+nologfile
+logformat 0
+logverbosity 2
+#--- Input options --------------------------
+nojoystick
+joystick_no 0
+mouse
+mousemode 1
+nobroken_numdia
+dia_emphasis 0
+noalways_fire
+mousecapture
+#--- Game options ---------------------------
+scrollradar 2
+filter
+timefilter 50
+countdown 5
+starfield 2
+stars 250
+overheatloud 100
+cannonloud 100
+#--- Sound settings -------------------------
+nosound
+music
+nocached_sounds
+samplerate 8000
+latency 50
+mixquality 1
+vol 100
+intro_vol 100
+sfx_vol 100
+music_vol 30
+reverb 100
+vol_boost 0
+#--- Video settings -------------------------
+fullscreen
+videodriver 0
+width WIDTH_HERE
+height HEIGHT_HERE
+autoswap
+aspect 1
+depth 0
+maxfps 100
+maxfpsstrict 0
+buffer 0
+shadow
+videomode -1
+vsync
+videopages -1
+#--- Graphics settings ----------------------
+scalemode 0
+nodither
+dither_type 2
+nobroken_rgba8
+alpha
+brightness 100
+contrast 100
+#--- File paths -----------------------------
+files ""
+gfx ""
+sfx ""
+scores ""
+wait 30
diff --git a/packages/kobodeluxe/files/kobodeluxe-dimension-autoswap.patch b/packages/kobodeluxe/files/kobodeluxe-dimension-autoswap.patch
new file mode 100644
index 0000000000..273e523103
--- /dev/null
+++ b/packages/kobodeluxe/files/kobodeluxe-dimension-autoswap.patch
@@ -0,0 +1,236 @@
+Index: KoboDeluxe-0.5.1/graphics/gfxengine.cpp
+===================================================================
+--- KoboDeluxe-0.5.1.orig/graphics/gfxengine.cpp 2008-02-11 13:17:27.000000000 +0100
++++ KoboDeluxe-0.5.1/graphics/gfxengine.cpp 2008-02-11 15:27:57.000000000 +0100
+@@ -135,11 +135,13 @@
+
+ _width = w;
+ _height = h;
++
+ if(csengine)
+ cs_engine_set_size(csengine, w, h);
+
+ if(was_showing)
+ show();
++
+ }
+
+ void gfxengine_t::centered(int c)
+@@ -759,33 +761,13 @@
+ Display show/hide
+ ----------------------------------------------------------*/
+
+-int gfxengine_t::show()
++/** Helper method that returns the flags value needed for
++ * SDL_SetVideoMode() and SDL_VideoModeOK().
++ */
++int gfxengine_t::video_flags()
+ {
+ int flags = 0;
+
+- if(!is_open)
+- return -1;
+-
+- if(is_showing)
+- return 0;
+-
+- if(_centered && !_fullscreen)
+-#if HAVE_DECL_SDL_PUTENV
+- SDL_putenv("SDL_VIDEO_CENTERED=1");
+-#elif defined(HAVE_PUTENV)
+- putenv("SDL_VIDEO_CENTERED=1");
+-#else
+- #error Neither SDL_putenv() nor putenv() are available. Fix it!
+-#endif
+-
+- log_printf(DLOG, "Opening screen...\n");
+- if(!SDL_WasInit(SDL_INIT_VIDEO))
+- if(SDL_InitSubSystem(SDL_INIT_VIDEO) == -1)
+- {
+- log_printf(ELOG, "Failed to initialize SDL!\n");
+- return -2;
+- }
+-
+ switch(_driver)
+ {
+ case GFX_DRIVER_SDL2D:
+@@ -830,11 +812,72 @@
+ glSDL_VSync(_vsync);
+ flags |= xflags;
+
++ return flags;
++}
++
++bool gfxengine_t::check_mode_autoswap(int *w, int *h)
++{
++ log_printf(VLOG, "Trying display modes %dx%d and %dx%d if the first fails.\n", *w, *h, *h, *w);
++
++ int flags = video_flags();
++
++ SDL_Surface *test_surface = NULL;
++
++ // On some platforms SDL_VideoModeOK() cannot be trusted unfortunately.
++ if(!(test_surface = SDL_SetVideoMode(*w, *h, _depth, flags)))
++ {
++ if(!(test_surface = SDL_SetVideoMode(*h, *w, _depth, flags)))
++ {
++ log_printf(ELOG, "Failed with both display mode. Giving up!\n");
++ return false;
++ }
++
++ int temp = *w;
++ *w = *h;
++ *h = temp;
++
++ log_printf(VLOG, "Display dimensions swapped. Using %dx%d!\n", *w, *h);
++ }
++ else
++ log_printf(VLOG, "Stored display dimension worked. Using %dx%d!\n", *w, *h);
++
++ SDL_FreeSurface(test_surface);
++
++ return true;
++}
++
++int gfxengine_t::show()
++{
++ if(!is_open)
++ return -1;
++
++ if(is_showing)
++ return 0;
++
++ if(_centered && !_fullscreen)
++#if HAVE_DECL_SDL_PUTENV
++ SDL_putenv("SDL_VIDEO_CENTERED=1");
++#elif defined(HAVE_PUTENV)
++ putenv("SDL_VIDEO_CENTERED=1");
++#else
++ #error Neither SDL_putenv() nor putenv() are available. Fix it!
++#endif
++
++ log_printf(DLOG, "Opening screen...\n");
++ if(!SDL_WasInit(SDL_INIT_VIDEO))
++ if(SDL_InitSubSystem(SDL_INIT_VIDEO) == -1)
++ {
++ log_printf(ELOG, "Failed to initialize SDL!\n");
++ return -2;
++ }
++
++ int flags = video_flags();
++
+ screen_surface = SDL_SetVideoMode(_width, _height, _depth, flags);
+ if(!screen_surface)
+ {
+- log_printf(ELOG, "Failed to open display!\n");
+- return -3;
++ log_printf(ELOG, "Failed to open display with %dx%d! Giving up.\n", _width, _height);
++ return -3;
+ }
+
+ if(_driver != GFX_DRIVER_GLSDL)
+Index: KoboDeluxe-0.5.1/graphics/gfxengine.h
+===================================================================
+--- KoboDeluxe-0.5.1.orig/graphics/gfxengine.h 2008-02-11 13:24:51.000000000 +0100
++++ KoboDeluxe-0.5.1/graphics/gfxengine.h 2008-02-11 15:15:50.000000000 +0100
+@@ -54,6 +54,9 @@
+ class gfxengine_t
+ {
+ friend class window_t;
++
++ int video_flags();
++
+ public:
+ gfxengine_t();
+ virtual ~gfxengine_t();
+@@ -135,6 +138,7 @@
+ void title(const char *win, const char *icon);
+
+ /* Display show/hide */
++ bool check_mode_autoswap(int *, int *);
+ int show();
+ void hide();
+
+Index: KoboDeluxe-0.5.1/kobo.cpp
+===================================================================
+--- KoboDeluxe-0.5.1.orig/kobo.cpp 2008-02-11 13:16:24.000000000 +0100
++++ KoboDeluxe-0.5.1/kobo.cpp 2008-02-11 14:57:29.000000000 +0100
+@@ -641,8 +641,27 @@
+ gengine->title("Kobo Deluxe " VERSION, "kobodl");
+ gengine->driver((gfx_drivers_t)p->videodriver);
+
++ // Initializes gfxengine with all kinds of display properties.
++ // We need this at this point to make the autoswap check work
++ // properly. Since these properties are independent of other
++ // values that is no problem.
++ gengine->mode(0, p->fullscreen);
++ gengine->doublebuffer(p->doublebuf);
++ gengine->pages(p->pages);
++ gengine->vsync(p->vsync);
++ gengine->shadow(p->shadow);
++ gengine->cursor(0);
++
++ // Do the auto swap dance only if configured so.
++ if (prefs->autoswap)
++ {
++ if (!gengine->check_mode_autoswap(&p->width, &p->height))
++ return -1;
++ }
++
+ dw = p->width;
+ dh = p->height;
++
+ if(p->fullscreen)
+ {
+ // This game assumes 1:1 pixel aspect ratio, or 4:3
+@@ -696,13 +715,6 @@
+ yoffs = (int)((dh - gh) / 2 / gengine->yscale());
+ gengine->size(dw, dh);
+
+- gengine->mode(0, p->fullscreen);
+- gengine->doublebuffer(p->doublebuf);
+- gengine->pages(p->pages);
+- gengine->vsync(p->vsync);
+- gengine->shadow(p->shadow);
+- gengine->cursor(0);
+-
+ gengine->period(game.speed);
+ sound.period(game.speed);
+ gengine->timefilter(p->timefilter * 0.01f);
+Index: KoboDeluxe-0.5.1/prefs.cpp
+===================================================================
+--- KoboDeluxe-0.5.1.orig/prefs.cpp 2008-02-11 14:28:01.000000000 +0100
++++ KoboDeluxe-0.5.1/prefs.cpp 2008-02-11 14:30:15.000000000 +0100
+@@ -86,6 +86,7 @@
+ desc("Display Driver");
+ key("width", width, 640); desc("Horizontal Resolution");
+ key("height", height, 480); desc("Vertical Resolution");
++ yesno("autoswap", autoswap, 0); desc("Automatically swap display dimension");
+ key("aspect", aspect, 1000); desc("Pixel Aspect Ratio");
+ key("depth", depth, 0); desc("Display Depth");
+ key("maxfps", max_fps, 100); desc("Maximum fps");
+Index: KoboDeluxe-0.5.1/prefs.h
+===================================================================
+--- KoboDeluxe-0.5.1.orig/prefs.h 2008-02-11 14:28:01.000000000 +0100
++++ KoboDeluxe-0.5.1/prefs.h 2008-02-11 14:31:24.000000000 +0100
+@@ -76,6 +76,7 @@
+ int videodriver; //Internal video driver
+ int width; //Screen/window width
+ int height; //Screen/window height
++ int autoswap; // Automatically swap dimensions if initialization fails
+ int aspect; //Pixel aspect ratio * 1000
+ int depth; //Bits per pixel
+ int max_fps; //Maximum fps
+Index: KoboDeluxe-0.5.1/states.cpp
+===================================================================
+--- KoboDeluxe-0.5.1.orig/states.cpp 2008-02-11 14:32:13.000000000 +0100
++++ KoboDeluxe-0.5.1/states.cpp 2008-02-11 15:00:13.000000000 +0100
+@@ -117,6 +117,8 @@
+ switch (button)
+ {
+ case BTN_EXIT:
++ gsm.push(&st_ask_exit);
++ break;
+ case BTN_CLOSE:
+ gsm.push(&st_main_menu);
+ break;
diff --git a/packages/kobodeluxe/files/kobodeluxe-menu-pointer.patch b/packages/kobodeluxe/files/kobodeluxe-menu-pointer.patch
new file mode 100644
index 0000000000..160d3ce896
--- /dev/null
+++ b/packages/kobodeluxe/files/kobodeluxe-menu-pointer.patch
@@ -0,0 +1,266 @@
+Index: KoboDeluxe-0.5.1/README
+===================================================================
+--- KoboDeluxe-0.5.1.orig/README 2008-02-11 01:10:23.000000000 +0100
++++ KoboDeluxe-0.5.1/README 2008-02-11 01:17:30.000000000 +0100
+@@ -39,6 +39,12 @@
+ key diagonals. Escape enters the meny system, from where it is possi-
+ ble to change settings, start a new game or exit the game.
+
++ In case the touchscreen support has been compiled in the menu can be
++ controlled by clicking the frame borders. Touching the inner part of
++ the screen is like a button press. In the game mode a click in the
++ upper right corner activates pause mode and the lower right corner es-
++ capes to the menu.
++
+ OPTIONS
+ Note that all relevant options can be also configured in the config
+ file, which can be edited directly, or using the options menus in the
+Index: KoboDeluxe-0.5.1/config.h
+===================================================================
+--- KoboDeluxe-0.5.1.orig/config.h 2008-02-11 00:23:20.000000000 +0100
++++ KoboDeluxe-0.5.1/config.h 2008-02-11 02:01:17.000000000 +0100
+@@ -95,6 +95,15 @@
+ #define MARGIN 8
+
+ /*
++ * Fraction of the screen size in which clicks are not considered
++ * clicks but movements in that direction (as regarded from the
++ * center of the screen) or other special things (pause & exit).
++ *
++ * Used only in touchscreen mode.
++ */
++#define POINTER_MARGIN_PERCENT 10
++
++/*
+ * (In XKobo, WSIZE was used where this is
+ * used now; in the game logic code.)
+ *
+Index: KoboDeluxe-0.5.1/configure.in
+===================================================================
+--- KoboDeluxe-0.5.1.orig/configure.in 2008-02-11 00:37:18.000000000 +0100
++++ KoboDeluxe-0.5.1/configure.in 2008-02-11 00:48:59.000000000 +0100
+@@ -195,6 +195,16 @@
+ CXXFLAGS="$CXXFLAGS -DHAVE_OPENGL"
+ fi
+
++AC_ARG_ENABLE(
++ touchscreen,
++ [AS_HELP_STRING(
++ [--enable-touchscreen],
++ [Compile menu control support suitable for touchscreens (default is no)])],
++ AC_DEFINE(
++ [ENABLE_TOUCHSCREEN],
++ [1],
++ [Set to 1 if the menusystem should support touchscreen input]),
++ [])
+
+ dnl-------------------------------------------------------
+ dnl Checks for header files.
+Index: KoboDeluxe-0.5.1/kobo.cpp
+===================================================================
+--- KoboDeluxe-0.5.1.orig/kobo.cpp 2008-02-11 00:24:57.000000000 +0100
++++ KoboDeluxe-0.5.1/kobo.cpp 2008-02-11 16:02:23.000000000 +0100
+@@ -28,6 +28,8 @@
+ // Use this to benchmark and create a new percentage table!
+ #undef TIME_PROGRESS
+
++#include <aconfig.h>
++
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+@@ -671,6 +673,10 @@
+ gh = dh;
+ }
+
++#if ENABLE_TOUCHSCREEN
++ gengine->setup_pointer_margin(dw, dh);
++#endif
++
+ // Scaling has 16ths granularity, so tiles scale properly!
+ gengine->scale((int)((gw * 16 + 8) / SCREEN_WIDTH) / 16.f,
+ (int)((gh * 16 + 8) / SCREEN_HEIGHT) / 16.f);
+@@ -1599,6 +1605,23 @@
+ {
+ }
+
++#ifdef ENABLE_TOUCHSCREEN
++void kobo_gfxengine_t::setup_pointer_margin(int dw, int dh)
++{
++ // Precalculates the border ranges. Mouse clicks outside these are handled
++ // specially.
++ pointer_margin_width_min = dw * POINTER_MARGIN_PERCENT / 100;
++ pointer_margin_width_max = dw - dw * POINTER_MARGIN_PERCENT / 100;
++ pointer_margin_height_min = dh * POINTER_MARGIN_PERCENT / 100;
++ pointer_margin_height_max = dh - dh * POINTER_MARGIN_PERCENT / 100;
++
++ log_printf(VLOG, "Pointer margin range [%d, %d, %d, %d]\n",
++ pointer_margin_width_min,
++ pointer_margin_width_max,
++ pointer_margin_height_min,
++ pointer_margin_height_max);
++}
++#endif
+
+ void kobo_gfxengine_t::frame()
+ {
+@@ -1800,11 +1823,57 @@
+ mouse_y - MARGIN - WSIZE/2);
+ break;
+ case SDL_MOUSEBUTTONDOWN:
+- mouse_x = (int)(ev.motion.x / gengine->xscale()) - km.xoffs;
+- mouse_y = (int)(ev.motion.y / gengine->yscale()) - km.yoffs;
+- gsm.press(BTN_FIRE);
++ mouse_x = (int)(ev.button.x / gengine->xscale()) - km.xoffs;
++ mouse_y = (int)(ev.button.y / gengine->yscale()) - km.yoffs;
+ if(prefs->use_mouse)
+ {
++#if ENABLE_TOUCHSCREEN
++ if (ev.motion.x <= pointer_margin_width_min)
++ {
++ gsm.press(BTN_LEFT);
++ pointer_margin_used = true;
++ } else if (ev.motion.x >= pointer_margin_width_max)
++ {
++ // Upper right corner invokes pause.
++ // Lower right corner invokes exit.
++ // Otherwise it is just 'right'. :)
++ if (ev.motion.y <= pointer_margin_height_min)
++ {
++ gsm.press(BTN_PAUSE);
++ gamecontrol.press(BTN_PAUSE);
++ }
++ else
++ gsm.press((ev.motion.y >= pointer_margin_height_max
++ ? BTN_EXIT
++ : BTN_RIGHT));
++
++ pointer_margin_used = true;
++
++ }
++
++ if (ev.motion.y <= pointer_margin_height_min)
++ {
++ // Handle as 'up' only if it was not in the 'pause' area.
++ // Still handle as clicked, so 'fire' will not kick in.
++ if (ev.motion.x < pointer_margin_width_max)
++ gsm.press(BTN_UP);
++ pointer_margin_used = true;
++ } else if (ev.motion.y >= pointer_margin_height_max)
++ {
++ // Handle as 'down' only if it was not in the 'exit' area.
++ // Still handle as clicked, so 'fire' will not kick in.
++ if (ev.motion.x < pointer_margin_width_max)
++ gsm.press(BTN_DOWN);
++
++ pointer_margin_used = true;
++ }
++
++ if (!pointer_margin_used)
++ gsm.press(BTN_FIRE);
++#else
++ gsm.press(BTN_FIRE);
++#endif
++
+ gamecontrol.mouse_position(
+ mouse_x - 8 - MARGIN - WSIZE/2,
+ mouse_y - MARGIN - WSIZE/2);
+@@ -1824,10 +1893,24 @@
+ }
+ break;
+ case SDL_MOUSEBUTTONUP:
+- mouse_x = (int)(ev.motion.x / gengine->xscale()) - km.xoffs;
+- mouse_y = (int)(ev.motion.y / gengine->yscale()) - km.yoffs;
++ mouse_x = (int)(ev.button.x / gengine->xscale()) - km.xoffs;
++ mouse_y = (int)(ev.button.y / gengine->yscale()) - km.yoffs;
+ if(prefs->use_mouse)
+ {
++#if ENABLE_TOUCHSCREEN
++ // Resets all kinds of buttons that might have been activated by
++ // clicking in the pointer margin.
++ if (pointer_margin_used)
++ {
++ gsm.release(BTN_EXIT);
++ gsm.release(BTN_LEFT);
++ gsm.release(BTN_RIGHT);
++ gsm.release(BTN_UP);
++ gsm.release(BTN_DOWN);
++ pointer_margin_used = false;
++ }
++#endif
++
+ gamecontrol.mouse_position(
+ mouse_x - 8 - MARGIN - WSIZE/2,
+ mouse_y - MARGIN - WSIZE/2);
+@@ -2078,6 +2161,19 @@
+ int main(int argc, char *argv[])
+ {
+ int cmd_exit = 0;
++
++ printf(PACKAGE " - " VERSION " (touchscreen support: %s)\n",
++ (ENABLE_TOUCHSCREEN ? "yes" : "no"));
++ puts("Copyright (c) 1995, 1996 Akira Higuchi\n"
++ "Copyright (C) 1997 Masanao Izumo\n"
++ "Copyright (C) 1999-2001 Simon Peter\n"
++ "Copyright (C) 2002 Florian Schulze\n"
++ "Copyright (C) 2002 Jeremy Sheeley\n"
++ "Copyright (C) 2005 Erik Auerswald\n"
++ "Copyright (c) 1999-2007 David Olofson\n"
++ "This is free software; see the source for copying conditions. There is NO\n"
++ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n");
++
+ atexit(emergency_close);
+ signal(SIGTERM, breakhandler);
+ signal(SIGINT, breakhandler);
+Index: KoboDeluxe-0.5.1/kobo.h
+===================================================================
+--- KoboDeluxe-0.5.1.orig/kobo.h 2008-02-11 00:31:23.000000000 +0100
++++ KoboDeluxe-0.5.1/kobo.h 2008-02-11 02:19:29.000000000 +0100
+@@ -23,6 +23,8 @@
+ #ifndef _KOBO_H_
+ #define _KOBO_H_
+
++#include <aconfig.h>
++
+ #include "gfxengine.h"
+ #include "window.h"
+ #include "display.h"
+@@ -45,11 +47,25 @@
+
+ class kobo_gfxengine_t : public gfxengine_t
+ {
++#if ENABLE_TOUCHSCREEN
++ bool pointer_margin_used;
++
++ int pointer_margin_width_min;
++ int pointer_margin_width_max;
++ int pointer_margin_height_min;
++ int pointer_margin_height_max;
++#endif
++
+ void frame();
+ void pre_render();
+ void post_render();
+ public:
+ kobo_gfxengine_t();
++
++#if ENABLE_TOUCHSCREEN
++ void setup_pointer_margin(int, int);
++#endif
++
+ };
+
+ extern kobo_gfxengine_t *gengine;
+Index: KoboDeluxe-0.5.1/states.cpp
+===================================================================
+--- KoboDeluxe-0.5.1.orig/states.cpp 2008-02-11 03:06:41.000000000 +0100
++++ KoboDeluxe-0.5.1/states.cpp 2008-02-11 15:42:55.000000000 +0100
+@@ -963,8 +963,6 @@
+ break;
+
+ case BTN_FIRE:
+- if(!prefs->use_joystick)
+- break;
+ case BTN_START:
+ case BTN_SELECT:
+ sound.ui_ok();
diff --git a/packages/kobodeluxe/files/kobodeluxe-putenv.patch b/packages/kobodeluxe/files/kobodeluxe-putenv.patch
new file mode 100644
index 0000000000..05f7c72f81
--- /dev/null
+++ b/packages/kobodeluxe/files/kobodeluxe-putenv.patch
@@ -0,0 +1,69 @@
+Index: KoboDeluxe-0.5.1/configure.in
+===================================================================
+--- KoboDeluxe-0.5.1.orig/configure.in 2008-02-10 12:27:11.000000000 +0100
++++ KoboDeluxe-0.5.1/configure.in 2008-02-10 15:50:11.000000000 +0100
+@@ -159,7 +159,6 @@
+ )
+ LIBS="$LIBS -lSDL_image"
+
+-
+ dnl-------------------------------------------------------
+ dnl Checks for OpenGL
+ dnl-------------------------------------------------------
+@@ -214,13 +213,18 @@
+ dnl-------------------------------------------------------
+ dnl Checks for library functions.
+ dnl-------------------------------------------------------
++dnl SDL_putenv may not be available in all SDL ports
++AC_CHECK_DECLS(SDL_putenv,,,[#include <SDL.h>])
++
+ AC_CHECK_FUNCS(strdup strstr strchr strrchr)
+ AC_CHECK_FUNCS(snprintf _snprintf vsnprintf _vsnprintf)
+ AC_CHECK_FUNCS(pow sqrt)
+ AC_CHECK_FUNCS(munmap mkdir select stat)
+ AC_CHECK_FUNCS(atexit floor memmove memset memcmp)
+-AC_CHECK_FUNCS(gettimeofday)
++AC_CHECK_FUNCS(gettimeofday putenv)
+ AC_CHECK_FUNCS(getegid setgid)
++
++
+ AC_FUNC_MEMCMP
+ AC_FUNC_STRTOD
+ AC_FUNC_VPRINTF
+Index: KoboDeluxe-0.5.1/graphics/gfxengine.cpp
+===================================================================
+--- KoboDeluxe-0.5.1.orig/graphics/gfxengine.cpp 2008-02-10 12:41:31.000000000 +0100
++++ KoboDeluxe-0.5.1/graphics/gfxengine.cpp 2008-02-10 15:58:06.000000000 +0100
+@@ -21,10 +21,15 @@
+
+ #define DBG(x) x
+
++#include <aconfig.h>
++
+ #include "logger.h"
+
+ #include <string.h>
+ #include <math.h>
++#if not (HAVE_DECL_SDL_PUTENV) and defined (HAVE_PUTENV)
++#include <stdlib.h>
++#endif
+
+ #include "gfxengine.h"
+ #include "filters.h"
+@@ -764,8 +769,14 @@
+ if(is_showing)
+ return 0;
+
+- if(_centered && !_fullscreen)
+- SDL_putenv((char *)"SDL_VIDEO_CENTERED=1");
++ if(_centered && !_fullscreen)
++#if HAVE_DECL_SDL_PUTENV
++ SDL_putenv("SDL_VIDEO_CENTERED=1");
++#elif defined(HAVE_PUTENV)
++ putenv("SDL_VIDEO_CENTERED=1");
++#else
++ #error Neither SDL_putenv() nor putenv() are available. Fix it!
++#endif
+
+ log_printf(DLOG, "Opening screen...\n");
+ if(!SDL_WasInit(SDL_INIT_VIDEO))
diff --git a/packages/kobodeluxe/files/kobodeluxe-sysconf-support.patch b/packages/kobodeluxe/files/kobodeluxe-sysconf-support.patch
new file mode 100644
index 0000000000..1f62b31d71
--- /dev/null
+++ b/packages/kobodeluxe/files/kobodeluxe-sysconf-support.patch
@@ -0,0 +1,84 @@
+Index: KoboDeluxe-0.5.1/configure.in
+===================================================================
+--- KoboDeluxe-0.5.1.orig/configure.in 2008-02-10 20:51:37.000000000 +0100
++++ KoboDeluxe-0.5.1/configure.in 2008-02-10 21:40:09.000000000 +0100
+@@ -36,6 +36,7 @@
+ SCOREDIR='$(sharedstatedir)/kobo-deluxe/scores'
+ CONFIGDIR='HOME>>'
+ CONFIGFILE='.kobodlrc'
++USE_SYSCONF=1
+ EXEFILE=kobodl
+ case "$target_os" in
+ linux*)
+@@ -57,6 +58,7 @@
+ SCOREDIR='EXE>>scores'
+ CONFIGDIR='EXE>>'
+ CONFIGFILE='kobodl.cfg'
++ USE_SYSCONF=0
+ EXEFILE=kobodl.exe
+ MATHLIB=""
+ ;;
+@@ -68,6 +70,7 @@
+ SCOREDIR='EXE>>scores'
+ CONFIGDIR='EXE>>'
+ CONFIGFILE='kobodl.cfg'
++ USE_SYSCONF=0
+ EXEFILE=kobodl.exe
+ MATHLIB=""
+ ;;
+@@ -105,10 +108,12 @@
+ AM_CONDITIONAL(BUILD_MACOSX_BUNDLE, test x$build_macosx_bundle = xyes)
+ AM_CONDITIONAL(BUILD_SIMPLE_BUNDLE, test x$build_simple_bundle = xyes)
+ AM_CONDITIONAL(UNIX_SCOREDIR, test x$unix_scoredir = xyes)
++AC_DEFINE_UNQUOTED([USE_SYSCONF], [$USE_SYSCONF], [Define to 1 to use Unix-style sysconf dir for default configuration.])
+ AC_SUBST(DATADIR)
+ AC_SUBST(SCOREDIR)
+ AC_SUBST(CONFIGDIR)
+ AC_SUBST(CONFIGFILE)
++AC_SUBST(KOBO_SYSCONF)
+ AC_SUBST(EXEFILE)
+ AC_SUBST(MATHLIB)
+
+Index: KoboDeluxe-0.5.1/kobo.cpp
+===================================================================
+--- KoboDeluxe-0.5.1.orig/kobo.cpp 2008-02-10 20:57:32.000000000 +0100
++++ KoboDeluxe-0.5.1/kobo.cpp 2008-02-10 21:27:22.000000000 +0100
+@@ -1293,9 +1293,38 @@
+ FILE *f = fmap->fopen(KOBO_CONFIG_DIR "/" KOBO_CONFIG_FILE, "r");
+ if(f)
+ {
++ log_puts(VLOG, "Loading personal configuration from: "\
++ KOBO_CONFIG_DIR "/" KOBO_CONFIG_FILE "\n");
+ p->read(f);
+ fclose(f);
+ }
++#if USE_SYSCONF
++ /* On Unixen, where they have SYSCONF_DIR (usually /etc) try to get
++ * the default configuration from a file stored there before
++ * giving up.
++ *
++ * This gives packagers a chance to provide a proper default
++ * (playable) configuration for all those little Linux-based
++ * gadgets that are flying around.
++ */
++ else
++ {
++ f = fmap->fopen(SYSCONF_DIR "/kobo-deluxe/default-config", "r");
++ if(f)
++ {
++ log_puts(VLOG, "Loading configuration defaults from: "\
++ SYSCONF_DIR "/kobo-deluxe/default-config\n");
++
++ p->read(f);
++ fclose(f);
++ }
++ else
++ log_puts(VLOG, "Using built-in configuration defaults.\n");
++
++ }
++#else
++ log_puts(VLOG, "Using built-in configuration defaults.\n");
++#endif
+ }
+
+
diff --git a/packages/kobodeluxe/kobodeluxe_0.5.1.bb b/packages/kobodeluxe/kobodeluxe_0.5.1.bb
new file mode 100644
index 0000000000..cc3f85bd19
--- /dev/null
+++ b/packages/kobodeluxe/kobodeluxe_0.5.1.bb
@@ -0,0 +1,51 @@
+DESCRIPTION = "Fast-paced 2D top-down shooter where you have to destroy space station"
+SECTION = "games"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "David Olofson <david@olofson.net>"
+HOMEPAGE = "http://olofson.net/kobodl"
+
+PR = "r3"
+
+DEPENDS = "libsdl-image virtual/libsdl"
+
+RDEPENDS_${PN} = "${PN}-data"
+
+SRC_URI = "http://olofson.net/kobodl/download/KoboDeluxe-${PV}.tar.bz2 \
+ file://debian-kobo.patch;patch=1 \
+ file://kobodeluxe-putenv.patch;patch=1 \
+ file://kobodeluxe-sysconf-support.patch;patch=1 \
+ file://kobodeluxe-menu-pointer.patch;patch=1 \
+ file://kobodeluxe-dimension-autoswap.patch;patch=1 \
+ file://default-config \
+ "
+
+S = "${WORKDIR}/KoboDeluxe-${PV}"
+
+inherit autotools
+
+export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config"
+
+EXTRA_OECONF = "--disable-opengl --disable-sdltest --enable-touchscreen"
+
+do_configure_prepend() {
+ sed -i \
+ -e "s|width WIDTH_HERE|width ${MACHINE_DISPLAY_WIDTH_PIXELS}|" \
+ -e "s|height HEIGHT_HERE|height ${MACHINE_DISPLAY_HEIGHT_PIXELS}|" \
+ ${WORKDIR}/default-config
+}
+
+do_install_append() {
+ # Provide a default (working) configuration file
+ install -d ${D}${sysconfdir}/kobo-deluxe
+ install -m 755 ${WORKDIR}/default-config ${D}${sysconfdir}/kobo-deluxe
+}
+
+PACKAGES += "${PN}-data"
+
+FILES_${PN} += "${sysconfdir}"
+CONFFILES_${PN} = "${sysconfdir}/kobo-deluxe/default-config"
+
+FILES_${PN}-data = "${datadir}"
+
+PACKAGE_ARCH_${PN}-data = "all"
diff --git a/packages/libmatthew/libmatthew_0.5.bb b/packages/libmatthew/libmatthew_0.5.bb
index 23ee04ed26..7a1b05478b 100644
--- a/packages/libmatthew/libmatthew_0.5.bb
+++ b/packages/libmatthew/libmatthew_0.5.bb
@@ -1,7 +1,6 @@
DESCRIPTION = "Unix socket, debug and hexdump libraries"
LICENSE = "LGPL"
SECTION = "libs"
-MAINTAINER = "Fabian Koester, tarent GmbH Bonn <f.koester@tarent.de>"
HOMEPAGE = "http://jalimo.org"
AUTHOR = "Matthew Johnson <web@matthew.ath.cx>"
diff --git a/packages/linux/linux-2.6.24/mpc8313e-rdb/.mtn2git_empty b/packages/linux/linux-2.6.24/mpc8313e-rdb/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-2.6.24/mpc8313e-rdb/.mtn2git_empty
diff --git a/packages/linux/linux-2.6.24/mpc8313e-rdb/defconfig b/packages/linux/linux-2.6.24/mpc8313e-rdb/defconfig
new file mode 100644
index 0000000000..3cc17679c1
--- /dev/null
+++ b/packages/linux/linux-2.6.24/mpc8313e-rdb/defconfig
@@ -0,0 +1,1938 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.23
+# Mon Dec 17 17:18:08 2007
+#
+# CONFIG_PPC64 is not set
+
+#
+# Processor support
+#
+CONFIG_6xx=y
+# CONFIG_PPC_85xx is not set
+# CONFIG_PPC_8xx is not set
+# CONFIG_40x is not set
+# CONFIG_44x is not set
+# CONFIG_E200 is not set
+CONFIG_83xx=y
+CONFIG_PPC_FPU=y
+CONFIG_PPC_STD_MMU=y
+CONFIG_PPC_STD_MMU_32=y
+# CONFIG_PPC_MM_SLICES is not set
+# CONFIG_SMP is not set
+CONFIG_PPC32=y
+CONFIG_PPC_MERGE=y
+CONFIG_MMU=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_IRQ_PER_CPU=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_ILOG2_U32=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
+CONFIG_PPC=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_GENERIC_NVRAM=y
+CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_PPC_OF=y
+CONFIG_OF=y
+CONFIG_PPC_UDBG_16550=y
+# CONFIG_GENERIC_TBSYNC is not set
+CONFIG_AUDIT_ARCH=y
+CONFIG_GENERIC_BUG=y
+CONFIG_DEFAULT_UIMAGE=y
+# CONFIG_PPC_DCR_NATIVE is not set
+# CONFIG_PPC_DCR_MMIO is not set
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_USER_NS is not set
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_SYSFS_DEPRECATED=y
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_KALLSYMS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+# CONFIG_EPOLL is not set
+CONFIG_SIGNALFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+
+#
+# Platform support
+#
+# CONFIG_PPC_MULTIPLATFORM is not set
+# CONFIG_EMBEDDED6xx is not set
+# CONFIG_PPC_82xx is not set
+CONFIG_PPC_83xx=y
+# CONFIG_PPC_86xx is not set
+# CONFIG_PPC_MPC52xx is not set
+# CONFIG_PPC_MPC5200 is not set
+# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PQ2ADS is not set
+CONFIG_MPC8313_RDB=y
+# CONFIG_MPC832x_MDS is not set
+# CONFIG_MPC832x_RDB is not set
+# CONFIG_MPC834x_MDS is not set
+# CONFIG_MPC834x_ITX is not set
+# CONFIG_MPC836x_MDS is not set
+CONFIG_PPC_MPC831x=y
+# CONFIG_MPIC is not set
+# CONFIG_MPIC_WEIRD is not set
+# CONFIG_PPC_I8259 is not set
+# CONFIG_PPC_RTAS is not set
+# CONFIG_MMIO_NVRAM is not set
+# CONFIG_PPC_MPC106 is not set
+# CONFIG_PPC_970_NAP is not set
+# CONFIG_PPC_INDIRECT_IO is not set
+# CONFIG_GENERIC_IOMAP is not set
+# CONFIG_CPU_FREQ is not set
+# CONFIG_CPM2 is not set
+# CONFIG_FSL_ULI1575 is not set
+
+#
+# Kernel options
+#
+# CONFIG_HIGHMEM is not set
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_PROC_DEVICETREE=y
+# CONFIG_CMDLINE_BOOL is not set
+# CONFIG_PM is not set
+CONFIG_SUSPEND_UP_POSSIBLE=y
+CONFIG_HIBERNATION_UP_POSSIBLE=y
+CONFIG_SECCOMP=y
+CONFIG_WANT_DEVICE_TREE=y
+CONFIG_DEVICE_TREE=""
+CONFIG_ISA_DMA_API=y
+
+#
+# Bus options
+#
+CONFIG_ZONE_DMA=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_PPC_INDIRECT_PCI=y
+CONFIG_FSL_SOC=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_SYSCALL=y
+# CONFIG_PCIEPORTBUS is not set
+CONFIG_ARCH_SUPPORTS_MSI=y
+# CONFIG_PCI_MSI is not set
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Advanced setup
+#
+# CONFIG_ADVANCED_OPTIONS is not set
+
+#
+# Default settings for advanced configuration options are used
+#
+CONFIG_HIGHMEM_START=0xfe000000
+CONFIG_LOWMEM_SIZE=0x30000000
+CONFIG_KERNEL_START=0xc0000000
+CONFIG_TASK_SIZE=0x80000000
+CONFIG_BOOT_LOAD=0x00800000
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_ASK_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_TUNNEL=m
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK_ENABLED=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+# CONFIG_NF_CONNTRACK_EVENTS is not set
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_RAW=m
+
+#
+# Bridge: Netfilter Configuration
+#
+# CONFIG_BRIDGE_NF_EBTABLES is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+CONFIG_WAN_ROUTER=m
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_FIFO=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RR=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+# CONFIG_NET_CLS_POLICE is not set
+CONFIG_NET_CLS_IND=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIUSB=m
+CONFIG_BT_HCIUSB_SCO=y
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIVHCI=m
+# CONFIG_AF_RXRPC is not set
+CONFIG_FIB_RULES=y
+
+#
+# Wireless
+#
+CONFIG_CFG80211=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_MAC80211=m
+# CONFIG_MAC80211_LEDS is not set
+# CONFIG_MAC80211_DEBUG is not set
+CONFIG_IEEE80211=m
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_IEEE80211_CRYPT_WEP=m
+CONFIG_IEEE80211_CRYPT_CCMP=m
+CONFIG_IEEE80211_CRYPT_TKIP=m
+CONFIG_IEEE80211_SOFTMAC=m
+# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
+CONFIG_RFKILL=m
+CONFIG_RFKILL_INPUT=m
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=m
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_CFI_INTELEXT is not set
+CONFIG_MTD_CFI_AMDSTD=y
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_PHYSMAP_START=0xfe000000
+CONFIG_MTD_PHYSMAP_LEN=0x0800000
+CONFIG_MTD_PHYSMAP_BANKWIDTH=2
+# CONFIG_MTD_PHYSMAP_OF is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_CAFE is not set
+CONFIG_MTD_NAND_FSL_ELBC=y
+# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+CONFIG_OF_DEVICE=y
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=32768
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+# CONFIG_CDROM_PKTCDVD is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_MISC_DEVICES=y
+# CONFIG_PHANTOM is not set
+CONFIG_EEPROM_93CX6=m
+# CONFIG_SGI_IOC4 is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+CONFIG_CHR_DEV_SG=y
+# CONFIG_CHR_DEV_SCH is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=y
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+CONFIG_SCSI_LOWLEVEL=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_AIC94XX is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_ARCMSR is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_MEGARAID_SAS is not set
+# CONFIG_SCSI_HPTIOP is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_STEX is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLA_FC is not set
+# CONFIG_SCSI_QLA_ISCSI is not set
+# CONFIG_SCSI_LPFC is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_SRP is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+# CONFIG_FUSION_SPI is not set
+# CONFIG_FUSION_FC is not set
+# CONFIG_FUSION_SAS is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_IEEE1394 is not set
+# CONFIG_I2O is not set
+# CONFIG_MACINTOSH_DRIVERS is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
+# CONFIG_IFB is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_ARCNET is not set
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+CONFIG_CICADA_PHY=y
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_FIXED_PHY is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_NET_TULIP is not set
+# CONFIG_HP100 is not set
+CONFIG_NET_PCI=y
+# CONFIG_PCNET32 is not set
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_ADAPTEC_STARFIRE is not set
+# CONFIG_B44 is not set
+# CONFIG_FORCEDETH is not set
+# CONFIG_DGRS is not set
+# CONFIG_EEPRO100 is not set
+CONFIG_E100=y
+# CONFIG_FEALNX is not set
+# CONFIG_NATSEMI is not set
+# CONFIG_NE2K_PCI is not set
+# CONFIG_8139CP is not set
+# CONFIG_8139TOO is not set
+# CONFIG_SIS900 is not set
+# CONFIG_EPIC100 is not set
+# CONFIG_SUNDANCE is not set
+# CONFIG_TLAN is not set
+# CONFIG_VIA_RHINE is not set
+# CONFIG_SC92031 is not set
+CONFIG_NETDEV_1000=y
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_R8169 is not set
+# CONFIG_SIS190 is not set
+# CONFIG_SKGE is not set
+# CONFIG_SKY2 is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_VIA_VELOCITY is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2 is not set
+CONFIG_GIANFAR=y
+CONFIG_GFAR_NAPI=y
+# CONFIG_QLA3XXX is not set
+# CONFIG_ATL1 is not set
+CONFIG_NETDEV_10000=y
+# CONFIG_CHELSIO_T1 is not set
+# CONFIG_CHELSIO_T3 is not set
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
+# CONFIG_MYRI10GE is not set
+# CONFIG_NETXEN_NIC is not set
+# CONFIG_MLX4_CORE is not set
+# CONFIG_TR is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+CONFIG_WLAN_80211=y
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_RTL8187=m
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_HOSTAP_FIRMWARE_NVRAM=y
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_BCM43XX=m
+CONFIG_BCM43XX_DEBUG=y
+CONFIG_BCM43XX_DMA=y
+CONFIG_BCM43XX_PIO=y
+CONFIG_BCM43XX_DMA_AND_PIO_MODE=y
+# CONFIG_BCM43XX_DMA_MODE is not set
+# CONFIG_BCM43XX_PIO_MODE is not set
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET_MII is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_WAN is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+# CONFIG_ATM_TCP is not set
+# CONFIG_ATM_LANAI is not set
+# CONFIG_ATM_ENI is not set
+# CONFIG_ATM_FIRESTREAM is not set
+# CONFIG_ATM_ZATM is not set
+# CONFIG_ATM_NICSTAR is not set
+# CONFIG_ATM_IDT77252 is not set
+# CONFIG_ATM_AMBASSADOR is not set
+# CONFIG_ATM_HORIZON is not set
+# CONFIG_ATM_IA is not set
+# CONFIG_ATM_FORE200E_MAYBE is not set
+# CONFIG_ATM_HE is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
+CONFIG_PPPOATM=m
+CONFIG_PPPOL2TP=m
+# CONFIG_SLIP is not set
+CONFIG_SLHC=m
+# CONFIG_NET_FC is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+CONFIG_ISDN=m
+CONFIG_ISDN_I4L=m
+# CONFIG_ISDN_PPP is not set
+# CONFIG_ISDN_AUDIO is not set
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DRV_LOOP=m
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+# CONFIG_HISAX_DEBUG is not set
+
+#
+# HiSax PCMCIA card service modules
+#
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+CONFIG_HISAX_HDLC=y
+
+#
+# Active cards
+#
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_GIGASET_UNDOCREQ=y
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_CAPI_TRACE=y
+# CONFIG_ISDN_CAPI_MIDDLEWARE is not set
+CONFIG_ISDN_CAPI_CAPI20=m
+# CONFIG_ISDN_CAPI_CAPIDRV is not set
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+# CONFIG_ISDN_DRV_AVMB1_B1PCIV4 is not set
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_UARTLITE is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+# CONFIG_SERIAL_OF_PLATFORM is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+CONFIG_83xx_WDT=y
+
+#
+# PCI-based Watchdog Cards
+#
+# CONFIG_PCIPCWATCHDOG is not set
+# CONFIG_WDTPCI is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_NVRAM is not set
+# CONFIG_GEN_RTC is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_DEVPORT=y
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=y
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_I810 is not set
+# CONFIG_I2C_PIIX4 is not set
+CONFIG_I2C_MPC=y
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_PROSAVAGE is not set
+# CONFIG_I2C_SAVAGE4 is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_TINY_USB is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+# CONFIG_I2C_VOODOO3 is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+# CONFIG_SENSORS_DS1374 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_M41T00 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# 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
+
+#
+# SPI support
+#
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_BITBANG=y
+CONFIG_SPI_MPC83xx=y
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_AT25=m
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_SENSORS_ABITUGURU is not set
+# CONFIG_SENSORS_ABITUGURU3 is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ASB100 is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_FSCHER is not set
+# CONFIG_SENSORS_FSCPOS is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM70 is not set
+CONFIG_SENSORS_LM75=m
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_VT8231 is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_DAB=y
+# CONFIG_USB_DABUSB is not set
+
+#
+# Graphics support
+#
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+# CONFIG_FB is not set
+# CONFIG_FB_IBM_GXT4500 is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=m
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# PCI devices
+#
+# CONFIG_SND_AD1889 is not set
+# CONFIG_SND_ALS300 is not set
+# CONFIG_SND_ALS4000 is not set
+# CONFIG_SND_ALI5451 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CS5530 is not set
+# CONFIG_SND_DARLA20 is not set
+# CONFIG_SND_GINA20 is not set
+# CONFIG_SND_LAYLA20 is not set
+# CONFIG_SND_DARLA24 is not set
+# CONFIG_SND_GINA24 is not set
+# CONFIG_SND_LAYLA24 is not set
+# CONFIG_SND_MONA is not set
+# CONFIG_SND_MIA is not set
+# CONFIG_SND_ECHO3G is not set
+# CONFIG_SND_INDIGO is not set
+# CONFIG_SND_INDIGOIO is not set
+# CONFIG_SND_INDIGODJ is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_HDA_INTEL is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_HDSPM is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_PCXHR is not set
+# CONFIG_SND_RIPTIDE is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_YMFPCI is not set
+
+#
+# ALSA PowerMac devices
+#
+
+#
+# ALSA PowerPC devices
+#
+
+#
+# USB devices
+#
+CONFIG_SND_USB_AUDIO=m
+# CONFIG_SND_USB_USX2Y is not set
+# CONFIG_SND_USB_CAIAQ is not set
+
+#
+# System on Chip audio support
+#
+# CONFIG_SND_SOC is not set
+
+#
+# SoC Audio support for SuperH
+#
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
+
+#
+# USB Input Devices
+#
+# CONFIG_USB_HID is not set
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_DEVICE_CLASS=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_SPLIT_ISO=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_EHCI_FSL=y
+# CONFIG_USB_ISP116X_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PPC_OF=y
+CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
+# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
+CONFIG_USB_OHCI_HCD_PCI=y
+CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
+CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=y
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+CONFIG_USB_MON=y
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_BERRY_CHARGE is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGET is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_SISUSBVGA is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+
+#
+# USB DSL modem support
+#
+# CONFIG_USB_ATM is not set
+
+#
+# USB Gadget Support
+#
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_NET2280=y
+# CONFIG_USB_GADGET_PXA2XX is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_ETH=y
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_MIDI_GADGET is not set
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_BOUNCE=y
+
+#
+# MMC/SD Host Controller Drivers
+#
+# CONFIG_MMC_SDHCI is not set
+# CONFIG_MMC_WBSD is not set
+# CONFIG_MMC_TIFM_SD is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+CONFIG_LEDS_MPC8313E_RDB=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_CPU_ACTIVITY=m
+# CONFIG_INFINIBAND is not set
+# CONFIG_EDAC is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=y
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+
+#
+# DMA Engine support
+#
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+
+#
+# DMA Devices
+#
+CONFIG_INTEL_IOATDMA=y
+
+#
+# Userspace I/O
+#
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+CONFIG_AUTOFS4_FS=y
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=y
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V4=y
+# CONFIG_NFS_DIRECTIO is not set
+CONFIG_NFSD=m
+# CONFIG_NFSD_V3 is not set
+CONFIG_NFSD_TCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+# CONFIG_SUNRPC_BIND34 is not set
+CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_WEAK_PW_HASH is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+CONFIG_NLS_CODEPAGE_932=y
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+CONFIG_NLS_ISO8859_8=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Distributed Lock Manager
+#
+# CONFIG_DLM is not set
+# CONFIG_UCC_SLOW is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+
+#
+# Instrumentation Support
+#
+CONFIG_PROFILING=y
+CONFIG_OPROFILE=m
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_MUST_CHECK=y
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_KERNEL is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_PPC_EARLY_DEBUG is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ABLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_HW=y
diff --git a/packages/linux/linux-davinci/davinci-nand.patch b/packages/linux/linux-davinci/davinci-nand.patch
new file mode 100644
index 0000000000..33e53cf095
--- /dev/null
+++ b/packages/linux/linux-davinci/davinci-nand.patch
@@ -0,0 +1,905 @@
+Index: linux-davinci/drivers/mtd/nand/davinci_nand.c
+===================================================================
+--- /dev/null
++++ linux-davinci/drivers/mtd/nand/davinci_nand.c
+@@ -0,0 +1,638 @@
++/*
++ * linux/drivers/mtd/nand/davinci_nand.c
++ *
++ * NAND Flash Driver
++ *
++ * Copyright (C) 2006 Texas Instruments.
++ *
++ * ported to 2.6.23 (C) 2008 by
++ * Sander Huijsen <Shuijsen@optelecom-nkf.com>
++ * Troy Kisky <troy.kisky@boundarydevices.com>
++ * Dirk Behme <Dirk.Behme@gmail.com>
++ *
++ * --------------------------------------------------------------------------
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ * --------------------------------------------------------------------------
++ *
++ * Overview:
++ * This is a device driver for the NAND flash device found on the
++ * DaVinci board which utilizes the Samsung k9k2g08 part.
++ *
++ * Modifications:
++ * ver. 1.0: Feb 2005, Vinod/Sudhakar
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/err.h>
++#include <linux/clk.h>
++#include <linux/io.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/nand.h>
++#include <linux/mtd/partitions.h>
++
++#include <asm/arch/hardware.h>
++#include <asm/arch/nand.h>
++#include <asm/arch/mux.h>
++
++#include <asm/mach/flash.h>
++
++#ifdef CONFIG_NAND_FLASH_HW_ECC
++#define DAVINCI_NAND_ECC_MODE NAND_ECC_HW3_512
++#else
++#define DAVINCI_NAND_ECC_MODE NAND_ECC_SOFT
++#endif
++
++#define DRIVER_NAME "davinci_nand"
++
++static struct clk *nand_clock;
++static void __iomem *nand_vaddr;
++
++/*
++ * MTD structure for DaVinici board
++ */
++static struct mtd_info *nand_davinci_mtd;
++
++#ifdef CONFIG_MTD_PARTITIONS
++const char *part_probes[] = { "cmdlinepart", NULL };
++#endif
++
++static uint8_t scan_ff_pattern[] = { 0xff, 0xff };
++
++/* BB marker is byte 5 in OOB of page 0 */
++static struct nand_bbt_descr davinci_memorybased_small = {
++ .options = NAND_BBT_SCAN2NDPAGE,
++ .offs = 5,
++ .len = 1,
++ .pattern = scan_ff_pattern
++};
++
++/* BB marker is bytes 0-1 in OOB of page 0 */
++static struct nand_bbt_descr davinci_memorybased_large = {
++ .options = 0,
++ .offs = 0,
++ .len = 2,
++ .pattern = scan_ff_pattern
++};
++
++inline unsigned int davinci_nand_readl(int offset)
++{
++ return davinci_readl(DAVINCI_ASYNC_EMIF_CNTRL_BASE + offset);
++}
++
++inline void davinci_nand_writel(unsigned long value, int offset)
++{
++ davinci_writel(value, DAVINCI_ASYNC_EMIF_CNTRL_BASE + offset);
++}
++
++/*
++ * Hardware specific access to control-lines
++ */
++static void nand_davinci_hwcontrol(struct mtd_info *mtd, int cmd,
++ unsigned int ctrl)
++{
++ struct nand_chip *chip = mtd->priv;
++ u32 IO_ADDR_W = (u32)chip->IO_ADDR_W;
++
++ /* Did the control lines change? */
++ if (ctrl & NAND_CTRL_CHANGE) {
++ IO_ADDR_W &= ~(MASK_ALE|MASK_CLE);
++
++ if ((ctrl & NAND_CTRL_CLE) == NAND_CTRL_CLE)
++ IO_ADDR_W |= MASK_CLE;
++ else if ((ctrl & NAND_CTRL_ALE) == NAND_CTRL_ALE)
++ IO_ADDR_W |= MASK_ALE;
++
++ chip->IO_ADDR_W = (void __iomem *)IO_ADDR_W;
++ }
++
++ if (cmd != NAND_CMD_NONE)
++ writeb(cmd, chip->IO_ADDR_W);
++}
++
++static void nand_davinci_select_chip(struct mtd_info *mtd, int chip)
++{
++ /* do nothing */
++}
++
++#ifdef CONFIG_NAND_FLASH_HW_ECC
++static void nand_davinci_enable_hwecc(struct mtd_info *mtd, int mode)
++{
++ u32 retval;
++
++ /* Reset ECC hardware */
++ retval = davinci_nand_readl(NANDF1ECC_OFFSET);
++
++ /* Restart ECC hardware */
++ retval = davinci_nand_readl(NANDFCR_OFFSET);
++ retval |= (1 << 8);
++ davinci_nand_writel(retval, NANDFCR_OFFSET);
++}
++
++/*
++ * Read DaVinci ECC register
++ */
++static u32 nand_davinci_readecc(struct mtd_info *mtd)
++{
++ /* Read register ECC and clear it */
++ return davinci_nand_readl(NANDF1ECC_OFFSET);
++}
++
++/*
++ * Read DaVinci ECC registers and rework into MTD format
++ */
++static int nand_davinci_calculate_ecc(struct mtd_info *mtd,
++ const u_char *dat, u_char *ecc_code)
++{
++ unsigned int ecc_val = nand_davinci_readecc(mtd);
++ /* squeeze 0 middle bits out so that it fits in 3 bytes */
++ unsigned int tmp = (ecc_val&0x0fff)|((ecc_val&0x0fff0000)>>4);
++ /* invert so that erased block ecc is correct */
++ tmp = ~tmp;
++ ecc_code[0] = (u_char)(tmp);
++ ecc_code[1] = (u_char)(tmp >> 8);
++ ecc_code[2] = (u_char)(tmp >> 16);
++
++ return 0;
++}
++
++static int nand_davinci_correct_data(struct mtd_info *mtd, u_char *dat,
++ u_char *read_ecc, u_char *calc_ecc)
++{
++ struct nand_chip *chip = mtd->priv;
++ u_int32_t eccNand = read_ecc[0] | (read_ecc[1] << 8) |
++ (read_ecc[2] << 16);
++ u_int32_t eccCalc = calc_ecc[0] | (calc_ecc[1] << 8) |
++ (calc_ecc[2] << 16);
++ u_int32_t diff = eccCalc ^ eccNand;
++
++ if (diff) {
++ if ((((diff>>12)^diff) & 0xfff) == 0xfff) {
++ /* Correctable error */
++ if ((diff>>(12+3)) < chip->ecc.size) {
++ dat[diff>>(12+3)] ^= (1 << ((diff>>12)&7));
++ return 1;
++ } else {
++ return -1;
++ }
++ } else if (!(diff & (diff-1))) {
++ /* Single bit ECC error in the ECC itself,
++ nothing to fix */
++ return 1;
++ } else {
++ /* Uncorrectable error */
++ return -1;
++ }
++
++ }
++ return 0;
++}
++#endif
++
++/*
++ * Read OOB data from flash.
++ */
++static int read_oob_and_check(struct mtd_info *mtd, loff_t offs, uint8_t *buf,
++ struct nand_bbt_descr *bd)
++{
++ int i, ret;
++ int page;
++ struct nand_chip *chip = mtd->priv;
++
++ /* Calculate page address from offset */
++ page = (int)(offs >> chip->page_shift);
++ page &= chip->pagemask;
++
++ /* Read OOB data from flash */
++ ret = chip->ecc.read_oob(mtd, chip, page, 1);
++ if (ret < 0)
++ return ret;
++
++ /* Copy read OOB data to the buffer*/
++ memcpy(buf, chip->oob_poi, mtd->oobsize);
++
++ /* Check pattern against BBM in OOB area */
++ for (i = 0; i < bd->len; i++) {
++ if (buf[bd->offs + i] != bd->pattern[i])
++ return 1;
++ }
++ return 0;
++}
++
++/*
++ * Fill in the memory based Bad Block Table (BBT).
++ */
++static int nand_davinci_memory_bbt(struct mtd_info *mtd,
++ struct nand_bbt_descr *bd)
++{
++ int i, numblocks;
++ int startblock = 0;
++ loff_t from = 0;
++ struct nand_chip *chip = mtd->priv;
++ int blocksize = 1 << chip->bbt_erase_shift;
++ uint8_t *buf = chip->buffers->databuf;
++ int len = bd->options & NAND_BBT_SCAN2NDPAGE ? 2 : 1;
++
++ /* -numblocks- is 2 times the actual number of eraseblocks */
++ numblocks = mtd->size >> (chip->bbt_erase_shift - 1);
++
++ /* Now loop through all eraseblocks in the flash */
++ for (i = startblock; i < numblocks; i += 2) {
++ int j, ret;
++ int offs = from;
++
++ /* If NAND_BBT_SCAN2NDPAGE flag is set in bd->options,
++ * also each 2nd page of an eraseblock is checked
++ * for a Bad Block Marker. In that case, len equals 2.
++ */
++ for (j = 0; j < len; j++) {
++ /* Read OOB data and check pattern */
++ ret = read_oob_and_check(mtd, from, buf, bd);
++ if (ret < 0)
++ return ret;
++
++ /* Check pattern for bad block markers */
++ if (ret) {
++ /* Mark bad block by writing 0b11 in the
++ table */
++ chip->bbt[i >> 3] |= 0x03 << (i & 0x6);
++
++ printk(KERN_WARNING "Bad eraseblock %d at " \
++ "0x%08x\n", i >> 1,
++ (unsigned int)from);
++
++ mtd->ecc_stats.badblocks++;
++ break;
++ }
++ offs += mtd->writesize;
++ }
++
++ /* Make -from- point to next eraseblock */
++ from += blocksize;
++ }
++
++ printk(KERN_NOTICE "Bad block scan: %d out of %d blocks are bad.\n",
++ mtd->ecc_stats.badblocks, numblocks>>1);
++
++ return 0;
++}
++
++/*
++ * This function creates a memory based bad block table (BBT).
++ * It is largely based on the standard BBT function, but all
++ * unnecessary junk is thrown out to speed up.
++ */
++static int nand_davinci_scan_bbt(struct mtd_info *mtd)
++{
++ struct nand_chip *chip = mtd->priv;
++ struct nand_bbt_descr *bd;
++ int len, ret = 0;
++
++ chip->bbt_td = NULL;
++ chip->bbt_md = NULL;
++
++ /* pagesize determines location of BBM */
++ if (mtd->writesize > 512)
++ bd = &davinci_memorybased_large;
++ else
++ bd = &davinci_memorybased_small;
++
++ chip->badblock_pattern = bd;
++
++ /* Use 2 bits per page meaning 4 page markers per byte */
++ len = mtd->size >> (chip->bbt_erase_shift + 2);
++
++ /* Allocate memory (2bit per block) and clear the memory bad block
++ table */
++ chip->bbt = kzalloc(len, GFP_KERNEL);
++ if (!chip->bbt) {
++ printk(KERN_ERR "nand_davinci_scan_bbt: Out of memory\n");
++ return -ENOMEM;
++ }
++
++ /* Now try to fill in the BBT */
++ ret = nand_davinci_memory_bbt(mtd, bd);
++ if (ret) {
++ printk(KERN_ERR "nand_davinci_scan_bbt: "
++ "Can't scan flash and build the RAM-based BBT\n");
++
++ kfree(chip->bbt);
++ chip->bbt = NULL;
++ }
++
++ return ret;
++}
++
++/*
++ * Read from memory register: we can read 4 bytes at a time.
++ * The hardware takes care of actually reading the NAND flash.
++ */
++static void nand_davinci_read_buf(struct mtd_info *mtd, uint8_t *buf, int len)
++{
++ int i;
++ int num_words = len >> 2;
++ u32 *p = (u32 *)buf;
++ struct nand_chip *chip = mtd->priv;
++
++ for (i = 0; i < num_words; i++)
++ p[i] = readl(chip->IO_ADDR_R);
++}
++
++/*
++ * Check hardware register for wait status. Returns 1 if device is ready,
++ * 0 if it is still busy.
++ */
++static int nand_davinci_dev_ready(struct mtd_info *mtd)
++{
++ return (davinci_nand_readl(NANDFSR_OFFSET) & NAND_BUSY_FLAG);
++}
++
++static void nand_davinci_set_eccsize(struct nand_chip *chip)
++{
++ chip->ecc.size = 256;
++
++#ifdef CONFIG_NAND_FLASH_HW_ECC
++ switch (chip->ecc.mode) {
++ case NAND_ECC_HW12_2048:
++ chip->ecc.size = 2048;
++ break;
++
++ case NAND_ECC_HW3_512:
++ case NAND_ECC_HW6_512:
++ case NAND_ECC_HW8_512:
++ chip->ecc.size = 512;
++ break;
++
++ case NAND_ECC_HW3_256:
++ default:
++ /* do nothing */
++ break;
++ }
++#endif
++}
++
++static void nand_davinci_set_eccbytes(struct nand_chip *chip)
++{
++ chip->ecc.bytes = 3;
++
++#ifdef CONFIG_NAND_FLASH_HW_ECC
++ switch (chip->ecc.mode) {
++ case NAND_ECC_HW12_2048:
++ chip->ecc.bytes += 4;
++ case NAND_ECC_HW8_512:
++ chip->ecc.bytes += 2;
++ case NAND_ECC_HW6_512:
++ chip->ecc.bytes += 3;
++ case NAND_ECC_HW3_512:
++ case NAND_ECC_HW3_256:
++ default:
++ /* do nothing */
++ break;
++ }
++#endif
++}
++
++static void __devinit nand_davinci_flash_init(void)
++{
++ u32 regval, tmp;
++
++ /* Check for correct pin mux, reconfigure if necessary */
++ tmp = davinci_readl(DAVINCI_SYSTEM_MODULE_BASE + PINMUX0);
++
++ if ((tmp & 0x20020C1F) != 0x00000C1F) {
++ /* Disable HPI and ATA mux */
++ davinci_mux_peripheral(DAVINCI_MUX_HPIEN, 0);
++ davinci_mux_peripheral(DAVINCI_MUX_ATAEN, 0);
++
++ /* Enable VLYNQ and AEAW */
++ davinci_mux_peripheral(DAVINCI_MUX_AEAW0, 1);
++ davinci_mux_peripheral(DAVINCI_MUX_AEAW1, 1);
++ davinci_mux_peripheral(DAVINCI_MUX_AEAW2, 1);
++ davinci_mux_peripheral(DAVINCI_MUX_AEAW3, 1);
++ davinci_mux_peripheral(DAVINCI_MUX_AEAW4, 1);
++ davinci_mux_peripheral(DAVINCI_MUX_VLSCREN, 1);
++ davinci_mux_peripheral(DAVINCI_MUX_VLYNQEN, 1);
++
++ regval = davinci_readl(DAVINCI_SYSTEM_MODULE_BASE + PINMUX0);
++
++ printk(KERN_WARNING "Warning: MUX config for NAND: Set " \
++ "PINMUX0 reg to 0x%08x, was 0x%08x, should be done " \
++ "by bootloader.\n", regval, tmp);
++ }
++
++ regval = davinci_nand_readl(AWCCR_OFFSET);
++ regval |= 0x10000000;
++ davinci_nand_writel(regval, AWCCR_OFFSET);
++
++ /*------------------------------------------------------------------*
++ * NAND FLASH CHIP TIMEOUT @ 459 MHz *
++ * *
++ * AEMIF.CLK freq = PLL1/6 = 459/6 = 76.5 MHz *
++ * AEMIF.CLK period = 1/76.5 MHz = 13.1 ns *
++ * *
++ *------------------------------------------------------------------*/
++ regval = 0
++ | (0 << 31) /* selectStrobe */
++ | (0 << 30) /* extWait */
++ | (1 << 26) /* writeSetup 10 ns */
++ | (3 << 20) /* writeStrobe 40 ns */
++ | (1 << 17) /* writeHold 10 ns */
++ | (0 << 13) /* readSetup 10 ns */
++ | (3 << 7) /* readStrobe 60 ns */
++ | (0 << 4) /* readHold 10 ns */
++ | (3 << 2) /* turnAround ?? ns */
++ | (0 << 0) /* asyncSize 8-bit bus */
++ ;
++ tmp = davinci_nand_readl(A1CR_OFFSET);
++ if (tmp != regval) {
++ printk(KERN_WARNING "Warning: NAND config: Set A1CR " \
++ "reg to 0x%08x, was 0x%08x, should be done by " \
++ "bootloader.\n", regval, tmp);
++ davinci_nand_writel(regval, A1CR_OFFSET); /* 0x0434018C */
++ }
++
++ davinci_nand_writel(0x00000101, NANDFCR_OFFSET);
++}
++
++/*
++ * Main initialization routine
++ */
++int __devinit nand_davinci_probe(struct platform_device *pdev)
++{
++ struct nand_platform_data *pdata = pdev->dev.platform_data;
++ struct resource *res = pdev->resource;
++ struct nand_chip *chip;
++ struct device *dev = NULL;
++ u32 nand_rev_code;
++#ifdef CONFIG_MTD_CMDLINE_PARTS
++ char *master_name;
++ int mtd_parts_nb = 0;
++ struct mtd_partition *mtd_parts = 0;
++#endif
++
++ nand_clock = clk_get(dev, "AEMIFCLK");
++ if (IS_ERR(nand_clock)) {
++ printk(KERN_ERR "Error %ld getting AEMIFCLK clock?\n",
++ PTR_ERR(nand_clock));
++ return -1;
++ }
++
++ clk_enable(nand_clock);
++
++ /* Allocate memory for MTD device structure and private data */
++ nand_davinci_mtd = kmalloc(sizeof(struct mtd_info) +
++ sizeof(struct nand_chip), GFP_KERNEL);
++
++ if (!nand_davinci_mtd) {
++ printk(KERN_ERR "Unable to allocate davinci NAND MTD device " \
++ "structure.\n");
++ clk_disable(nand_clock);
++ return -ENOMEM;
++ }
++
++ /* Get pointer to private data */
++ chip = (struct nand_chip *) (&nand_davinci_mtd[1]);
++
++ /* Initialize structures */
++ memset((char *)nand_davinci_mtd, 0, sizeof(struct mtd_info));
++ memset((char *)chip, 0, sizeof(struct nand_chip));
++
++ /* Link the private data with the MTD structure */
++ nand_davinci_mtd->priv = chip;
++
++ nand_rev_code = davinci_nand_readl(NRCSR_OFFSET);
++
++ printk("DaVinci NAND Controller rev. %d.%d\n",
++ (nand_rev_code >> 8) & 0xff, nand_rev_code & 0xff);
++
++ nand_vaddr = ioremap(res->start, res->end - res->start);
++ if (nand_vaddr == NULL) {
++ printk(KERN_ERR "DaVinci NAND: ioremap failed.\n");
++ clk_disable(nand_clock);
++ kfree(nand_davinci_mtd);
++ return -ENOMEM;
++ }
++
++ chip->IO_ADDR_R = (void __iomem *)nand_vaddr;
++ chip->IO_ADDR_W = (void __iomem *)nand_vaddr;
++ chip->chip_delay = 0;
++ chip->select_chip = nand_davinci_select_chip;
++ chip->options = 0;
++ chip->ecc.mode = DAVINCI_NAND_ECC_MODE;
++
++ /* Set ECC size and bytes */
++ nand_davinci_set_eccsize(chip);
++ nand_davinci_set_eccbytes(chip);
++
++ /* Set address of hardware control function */
++ chip->cmd_ctrl = nand_davinci_hwcontrol;
++ chip->dev_ready = nand_davinci_dev_ready;
++
++#ifdef CONFIG_NAND_FLASH_HW_ECC
++ chip->ecc.calculate = nand_davinci_calculate_ecc;
++ chip->ecc.correct = nand_davinci_correct_data;
++ chip->ecc.hwctl = nand_davinci_enable_hwecc;
++#endif
++
++ /* Speed up the read buffer */
++ chip->read_buf = nand_davinci_read_buf;
++
++ /* Speed up the creation of the bad block table */
++ chip->scan_bbt = nand_davinci_scan_bbt;
++
++ nand_davinci_flash_init();
++
++ nand_davinci_mtd->owner = THIS_MODULE;
++
++ /* Scan to find existence of the device */
++ if (nand_scan(nand_davinci_mtd, 1)) {
++ printk(KERN_ERR "Chip Select is not set for NAND\n");
++ clk_disable(nand_clock);
++ kfree(nand_davinci_mtd);
++ return -ENXIO;
++ }
++
++ /* Register the partitions */
++ add_mtd_partitions(nand_davinci_mtd, pdata->parts, pdata->nr_parts);
++
++#ifdef CONFIG_MTD_CMDLINE_PARTS
++ /* Set nand_davinci_mtd->name = 0 temporarily */
++ master_name = nand_davinci_mtd->name;
++ nand_davinci_mtd->name = (char *)0;
++
++ /* nand_davinci_mtd->name == 0, means: don't bother checking
++ <mtd-id> */
++ mtd_parts_nb = parse_mtd_partitions(nand_davinci_mtd, part_probes,
++ &mtd_parts, 0);
++
++ /* Restore nand_davinci_mtd->name */
++ nand_davinci_mtd->name = master_name;
++
++ add_mtd_partitions(nand_davinci_mtd, mtd_parts, mtd_parts_nb);
++#endif
++
++ return 0;
++}
++
++/*
++ * Clean up routine
++ */
++static int nand_davinci_remove(struct platform_device *pdev)
++{
++ clk_disable(nand_clock);
++
++ if (nand_vaddr)
++ iounmap(nand_vaddr);
++
++ /* Release resources, unregister device */
++ nand_release(nand_davinci_mtd);
++
++ /* Free the MTD device structure */
++ kfree(nand_davinci_mtd);
++
++ return 0;
++}
++
++
++static struct platform_driver nand_davinci_driver = {
++ .probe = nand_davinci_probe,
++ .remove = nand_davinci_remove,
++ .driver = {
++ .name = DRIVER_NAME,
++ },
++};
++
++static int __init nand_davinci_init(void)
++{
++ return platform_driver_register(&nand_davinci_driver);
++}
++module_init(nand_davinci_init);
++
++#ifdef MODULE
++static void __exit nand_davinci_exit(void)
++{
++ platform_driver_unregister(&nand_davinci_driver);
++}
++module_exit(nand_davinci_exit);
++#endif
++
++MODULE_ALIAS(DRIVER_NAME);
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Texas Instruments");
++MODULE_DESCRIPTION("Board-specific glue layer for NAND flash on davinci" \
++ "board");
+Index: linux-davinci/drivers/mtd/nand/Makefile
+===================================================================
+--- linux-davinci.orig/drivers/mtd/nand/Makefile
++++ linux-davinci/drivers/mtd/nand/Makefile
+@@ -29,5 +29,6 @@ obj-$(CONFIG_MTD_NAND_AT91) += at91_nan
+ obj-$(CONFIG_MTD_NAND_CM_X270) += cmx270_nand.o
+ obj-$(CONFIG_MTD_NAND_BASLER_EXCITE) += excite_nandflash.o
+ obj-$(CONFIG_MTD_NAND_PLATFORM) += plat_nand.o
++obj-$(CONFIG_MTD_NAND_DAVINCI) += davinci_nand.o
+
+ nand-objs := nand_base.o nand_bbt.o
+Index: linux-davinci/drivers/mtd/nand/Kconfig
+===================================================================
+--- linux-davinci.orig/drivers/mtd/nand/Kconfig
++++ linux-davinci/drivers/mtd/nand/Kconfig
+@@ -293,5 +293,17 @@ config MTD_NAND_PLATFORM
+ devices. You will need to provide platform-specific functions
+ via platform_data.
+
++config MTD_NAND_DAVINCI
++ tristate "NAND Flash device on DaVinci SoC"
++ depends on MTD_NAND
++ select MTD_PARTITIONS
++ help
++ Support for NAND flash on Texas Instruments DaVinci SoC.
++
++config NAND_FLASH_HW_ECC
++ bool "Hardware ECC Support on NAND Device for DaVinci"
++ depends on MTD_NAND_DAVINCI
++ help
++ Support for Hardware ECC on NAND device for DaVinci.
+
+ endif # MTD_NAND
+Index: linux-davinci/include/asm-arm/arch-davinci/nand.h
+===================================================================
+--- /dev/null
++++ linux-davinci/include/asm-arm/arch-davinci/nand.h
+@@ -0,0 +1,45 @@
++/*
++ * include/asm-arm/arch-davinci/nand.h
++ *
++ * Copyright (C) 2006 Texas Instruments.
++ *
++ * ported to 2.6.23 (C) 2008 by
++ * Sander Huijsen <Shuijsen@optelecom-nkf.com>
++ * Troy Kisky <troy.kisky@boundarydevices.com>
++ * Dirk Behme <Dirk.Behme@gmail.com>
++ *
++ * --------------------------------------------------------------------------
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ * --------------------------------------------------------------------------
++ *
++ */
++
++#ifndef __ARCH_ARM_DAVINCI_NAND_H
++#define __ARCH_ARM_DAVINCI_NAND_H
++
++#define NRCSR_OFFSET 0x00
++#define AWCCR_OFFSET 0x04
++#define A1CR_OFFSET 0x10
++#define NANDFCR_OFFSET 0x60
++#define NANDFSR_OFFSET 0x64
++#define NANDF1ECC_OFFSET 0x70
++
++#define MASK_ALE 0x0A
++#define MASK_CLE 0x10
++
++#define NAND_BUSY_FLAG 0x01
++
++#endif /* __ARCH_ARM_DAVINCI_NAND_H */
+Index: linux-davinci/arch/arm/mach-davinci/mux.c
+===================================================================
+--- linux-davinci.orig/arch/arm/mach-davinci/mux.c
++++ linux-davinci/arch/arm/mach-davinci/mux.c
+@@ -15,10 +15,6 @@
+
+ #include <asm/arch/mux.h>
+
+-/* System control register offsets */
+-#define PINMUX0 0x00
+-#define PINMUX1 0x04
+-
+ static DEFINE_SPINLOCK(mux_lock);
+
+ void davinci_mux_peripheral(unsigned int mux, unsigned int enable)
+Index: linux-davinci/include/asm-arm/arch-davinci/mux.h
+===================================================================
+--- linux-davinci.orig/include/asm-arm/arch-davinci/mux.h
++++ linux-davinci/include/asm-arm/arch-davinci/mux.h
+@@ -11,6 +11,11 @@
+ #ifndef __ASM_ARCH_MUX_H
+ #define __ASM_ARCH_MUX_H
+
++/* System control register offsets */
++#define PINMUX0 0x00
++#define PINMUX1 0x04
++
++/* System control register bits */
+ #define DAVINCI_MUX_AEAW0 0
+ #define DAVINCI_MUX_AEAW1 1
+ #define DAVINCI_MUX_AEAW2 2
+Index: linux-davinci/include/linux/mtd/nand.h
+===================================================================
+--- linux-davinci.orig/include/linux/mtd/nand.h
++++ linux-davinci/include/linux/mtd/nand.h
+@@ -123,6 +123,13 @@ typedef enum {
+ NAND_ECC_SOFT,
+ NAND_ECC_HW,
+ NAND_ECC_HW_SYNDROME,
++#ifdef CONFIG_NAND_FLASH_HW_ECC
++ NAND_ECC_HW3_256,
++ NAND_ECC_HW3_512,
++ NAND_ECC_HW6_512,
++ NAND_ECC_HW8_512,
++ NAND_ECC_HW12_2048,
++#endif
+ } nand_ecc_modes_t;
+
+ /*
+Index: linux-davinci/drivers/mtd/nand/nand_base.c
+===================================================================
+--- linux-davinci.orig/drivers/mtd/nand/nand_base.c
++++ linux-davinci/drivers/mtd/nand/nand_base.c
+@@ -2456,6 +2456,13 @@ int nand_scan_tail(struct mtd_info *mtd)
+ chip->ecc.write_page_raw = nand_write_page_raw;
+
+ switch (chip->ecc.mode) {
++#ifdef CONFIG_NAND_FLASH_HW_ECC
++ case NAND_ECC_HW12_2048:
++ case NAND_ECC_HW8_512:
++ case NAND_ECC_HW6_512:
++ case NAND_ECC_HW3_512:
++ case NAND_ECC_HW3_256:
++#endif
+ case NAND_ECC_HW:
+ /* Use standard hwecc read page function ? */
+ if (!chip->ecc.read_page)
+Index: linux-davinci/arch/arm/mach-davinci/board-evm.c
+===================================================================
+--- linux-davinci.orig/arch/arm/mach-davinci/board-evm.c
++++ linux-davinci/arch/arm/mach-davinci/board-evm.c
+@@ -14,6 +14,7 @@
+ #include <linux/dma-mapping.h>
+ #include <linux/platform_device.h>
+ #include <linux/mtd/mtd.h>
++#include <linux/mtd/nand.h>
+ #include <linux/mtd/partitions.h>
+ #include <linux/mtd/physmap.h>
+
+@@ -27,6 +28,7 @@
+ #include <asm/mach/flash.h>
+
+ #include <asm/arch/common.h>
++#include <asm/arch/hardware.h>
+ #include <asm/arch/psc.h>
+
+ /* other misc. init functions */
+@@ -38,7 +40,7 @@ void __init davinci_init_common_hw(void)
+ /* NOR Flash base address set to CS0 by default */
+ #define NOR_FLASH_PHYS 0x02000000
+
+-static struct mtd_partition davinci_evm_partitions[] = {
++static struct mtd_partition davinci_evm_norflash_partitions[] = {
+ /* bootloader (U-Boot, etc) in first 4 sectors */
+ {
+ .name = "bootloader",
+@@ -69,30 +71,63 @@ static struct mtd_partition davinci_evm_
+ }
+ };
+
+-static struct physmap_flash_data davinci_evm_flash_data = {
++static struct physmap_flash_data davinci_evm_norflash_data = {
+ .width = 2,
+- .parts = davinci_evm_partitions,
+- .nr_parts = ARRAY_SIZE(davinci_evm_partitions),
++ .parts = davinci_evm_norflash_partitions,
++ .nr_parts = ARRAY_SIZE(davinci_evm_norflash_partitions),
+ };
+
+ /* NOTE: CFI probe will correctly detect flash part as 32M, but EMIF
+ * limits addresses to 16M, so using addresses past 16M will wrap */
+-static struct resource davinci_evm_flash_resource = {
++static struct resource davinci_evm_norflash_resource = {
+ .start = NOR_FLASH_PHYS,
+ .end = NOR_FLASH_PHYS + SZ_16M - 1,
+ .flags = IORESOURCE_MEM,
+ };
+
+-static struct platform_device davinci_evm_flash_device = {
++static struct platform_device davinci_evm_norflash_device = {
+ .name = "physmap-flash",
+ .id = 0,
+ .dev = {
+- .platform_data = &davinci_evm_flash_data,
++ .platform_data = &davinci_evm_norflash_data,
+ },
+ .num_resources = 1,
+- .resource = &davinci_evm_flash_resource,
++ .resource = &davinci_evm_norflash_resource,
+ };
+
++#if defined(CONFIG_MTD_NAND_DAVINCI) || defined(CONFIG_MTD_NAND_DAVINCI_MODULE)
++struct mtd_partition davinci_evm_nandflash_partition[] = {
++ /* 5 MB space at the beginning for bootloader and kernel */
++ {
++ .name = "NAND filesystem",
++ .offset = 5 * SZ_1M,
++ .size = MTDPART_SIZ_FULL,
++ .mask_flags = 0,
++ }
++};
++
++static struct nand_platform_data davinci_evm_nandflash_data = {
++ .parts = davinci_evm_nandflash_partition,
++ .nr_parts = ARRAY_SIZE(davinci_evm_nandflash_partition),
++};
++
++static struct resource davinci_evm_nandflash_resource = {
++ .start = DAVINCI_ASYNC_EMIF_DATA_CE0_BASE,
++ .end = DAVINCI_ASYNC_EMIF_DATA_CE0_BASE + SZ_16K - 1,
++ .flags = IORESOURCE_MEM,
++};
++
++static struct platform_device davinci_evm_nandflash_device = {
++ .name = "davinci_nand",
++ .id = 0,
++ .dev = {
++ .platform_data = &davinci_evm_nandflash_data,
++ },
++ .num_resources = 1,
++ .resource = &davinci_evm_nandflash_resource,
++};
++#endif
++
+ #if defined(CONFIG_FB_DAVINCI) || defined(CONFIG_FB_DAVINCI_MODULE)
+
+ static u64 davinci_fb_dma_mask = DMA_32BIT_MASK;
+@@ -168,7 +203,10 @@ static struct platform_device rtc_dev =
+ };
+
+ static struct platform_device *davinci_evm_devices[] __initdata = {
+- &davinci_evm_flash_device,
++ &davinci_evm_norflash_device,
++#if defined(CONFIG_MTD_NAND_DAVINCI) || defined(CONFIG_MTD_NAND_DAVINCI_MODULE)
++ &davinci_evm_nandflash_device,
++#endif
+ #if defined(CONFIG_FB_DAVINCI) || defined(CONFIG_FB_DAVINCI_MODULE)
+ &davinci_fb_device,
+ #endif
diff --git a/packages/linux/linux-davinci/davinci-sffsdr/defconfig b/packages/linux/linux-davinci/davinci-sffsdr/defconfig
index ac53caffc9..0d5155f32a 100644
--- a/packages/linux/linux-davinci/davinci-sffsdr/defconfig
+++ b/packages/linux/linux-davinci/davinci-sffsdr/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.23-davinci1
-# Sat Oct 20 12:59:22 2007
+# Sun Feb 3 08:30:51 2008
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -241,7 +241,8 @@ CONFIG_CMDLINE=""
#
# At least one emulation must be selected
#
-# CONFIG_FPE_NWFPE is not set
+CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
# CONFIG_FPE_FASTFPE is not set
# CONFIG_VFP is not set
@@ -442,7 +443,10 @@ CONFIG_MTD_CFI_UTIL=y
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_PHYSMAP_START=0x8000000
+CONFIG_MTD_PHYSMAP_LEN=0x0
+CONFIG_MTD_PHYSMAP_BANKWIDTH=2
# CONFIG_MTD_ARM_INTEGRATOR is not set
# CONFIG_MTD_PLATRAM is not set
@@ -461,13 +465,15 @@ CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
CONFIG_MTD_NAND=y
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+CONFIG_MTD_NAND_VERIFY_WRITE=y
# CONFIG_MTD_NAND_ECC_SMC is not set
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_NAND_NANDSIM is not set
-CONFIG_MTD_NAND_PLATFORM=y
+# CONFIG_MTD_NAND_PLATFORM is not set
+CONFIG_MTD_NAND_DAVINCI=y
+CONFIG_NAND_FLASH_HW_ECC=y
# CONFIG_MTD_ONENAND is not set
#
@@ -592,10 +598,7 @@ CONFIG_INPUT=y
#
# Userland interfaces
#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=m
@@ -605,10 +608,10 @@ CONFIG_INPUT_EVDEV=m
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_ATKBD is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
-CONFIG_KEYBOARD_XTKBD=y
+# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_GPIO is not set
@@ -623,7 +626,7 @@ CONFIG_KEYBOARD_XTKBD=y
#
CONFIG_SERIO=y
CONFIG_SERIO_SERPORT=y
-CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_LIBPS2 is not set
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set
@@ -820,46 +823,14 @@ CONFIG_DAB=y
#
# CONFIG_DISPLAY_SUPPORT is not set
# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
-CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-# CONFIG_FB_DDC is not set
-# CONFIG_FB_CFB_FILLRECT is not set
-# CONFIG_FB_CFB_COPYAREA is not set
-# CONFIG_FB_CFB_IMAGEBLIT is not set
-# CONFIG_FB_SYS_FILLRECT is not set
-# CONFIG_FB_SYS_COPYAREA is not set
-# CONFIG_FB_SYS_IMAGEBLIT is not set
-# CONFIG_FB_SYS_FOPS is not set
-CONFIG_FB_DEFERRED_IO=y
-# CONFIG_FB_SVGALIB is not set
-# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_BACKLIGHT is not set
-# CONFIG_FB_MODE_HELPERS is not set
-# CONFIG_FB_TILEBLITTING is not set
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_DAVINCI=y
-# CONFIG_FB_VIRTUAL is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+# CONFIG_FB is not set
#
# Console display driver support
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-CONFIG_LOGO=y
-CONFIG_LOGO_LINUX_MONO=y
-CONFIG_LOGO_LINUX_VGA16=y
-CONFIG_LOGO_LINUX_CLUT224=y
#
# Sound
@@ -874,10 +845,7 @@ CONFIG_SOUND=y
#
# Open Sound System
#
-CONFIG_SOUND_PRIME=y
-# CONFIG_SOUND_MSNDCLAS is not set
-# CONFIG_SOUND_MSNDPIN is not set
-# CONFIG_SOUND_DAVINCI is not set
+# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
@@ -1027,20 +995,20 @@ CONFIG_USB_FILE_STORAGE=m
# CONFIG_USB_FILE_STORAGE_TEST is not set
CONFIG_USB_G_SERIAL=m
# CONFIG_USB_MIDI_GADGET is not set
-CONFIG_MMC=y
+CONFIG_MMC=m
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
#
# MMC/SD Card Drivers
#
-CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_BOUNCE=y
#
# MMC/SD Host Controller Drivers
#
-# CONFIG_MMC_DAVINCI is not set
+CONFIG_MMC_DAVINCI=m
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
@@ -1100,9 +1068,9 @@ CONFIG_AUTOFS4_FS=m
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1138,7 +1106,7 @@ CONFIG_JFFS2_FS_WRITEBUFFER=y
CONFIG_JFFS2_ZLIB=y
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
-CONFIG_CRAMFS=y
+# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
@@ -1167,8 +1135,7 @@ CONFIG_SUNRPC=y
# CONFIG_SUNRPC_BIND34 is not set
# CONFIG_RPCSEC_GSS_KRB5 is not set
# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
+# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
diff --git a/packages/linux/linux-davinci_2.6.x+git-davinci.bb b/packages/linux/linux-davinci_2.6.x+git-davinci.bb
index 9228d1ffda..916b4e252c 100644
--- a/packages/linux/linux-davinci_2.6.x+git-davinci.bb
+++ b/packages/linux/linux-davinci_2.6.x+git-davinci.bb
@@ -7,6 +7,7 @@ COMPATIBLE_MACHINE = "(davinci-dvevm|davinci-sffsdr)"
SRC_URI = "git://source.mvista.com/git/linux-davinci-2.6.git;protocol=git \
file://binutils-buildid-arm.patch;patch=1 \
+ file://davinci-nand.patch;patch=1 \
file://defconfig"
S = "${WORKDIR}/git"
diff --git a/packages/linux/linux-ixp4xx/nslu2/defconfig-2.6.24 b/packages/linux/linux-ixp4xx/nslu2/defconfig-2.6.24
index 28b69a82ed..061c0c0724 100644
--- a/packages/linux/linux-ixp4xx/nslu2/defconfig-2.6.24
+++ b/packages/linux/linux-ixp4xx/nslu2/defconfig-2.6.24
@@ -243,6 +243,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE=" noirqdebug console=ttyS0,115200n8"
# CONFIG_XIP_KERNEL is not set
CONFIG_KEXEC=y
+CONFIG_ATAGS_PROC=y
#
# Floating point emulation
diff --git a/packages/linux/linux-ixp4xx_2.6.24.bb b/packages/linux/linux-ixp4xx_2.6.24.bb
index 9942433b56..9a5967afa2 100644
--- a/packages/linux/linux-ixp4xx_2.6.24.bb
+++ b/packages/linux/linux-ixp4xx_2.6.24.bb
@@ -11,7 +11,7 @@ KERNEL_RELEASE = "2.6.24"
#PV = "${VANILLA_VERSION}+${KERNEL_RELEASE}+svnr${SRCREV}"
PV = "${KERNEL_RELEASE}+svnr${SRCREV}"
-PR = "r0"
+PR = "r1"
# ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/patch-${KERNEL_RELEASE}.bz2;patch=1 \
diff --git a/packages/linux/linux.inc b/packages/linux/linux.inc
index e213a2d3f6..835437415f 100644
--- a/packages/linux/linux.inc
+++ b/packages/linux/linux.inc
@@ -106,7 +106,7 @@ do_configure_append_avr32() {
UBOOT_ENTRYPOINT ?= "20008000"
-UBOOT_LOADADRESS ?= "${UBOOT_ENTRYPOINT}"
+UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}"
do_compile_append() {
if test "x${KERNEL_IMAGETYPE}" = "xuImage" ; then
@@ -117,13 +117,13 @@ do_compile_append() {
fi
if test -e arch/${ARCH}/boot/compressed/vmlinux ; then
${OBJCOPY} -O binary -R .note -R .comment -S arch/${ARCH}/boot/compressed/vmlinux linux.bin
- uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C none -a ${UBOOT_LOADADRESS} -e ${UBOOT_ENTRYPOINT} -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin arch/${ARCH}/boot/uImage
+ uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C none -a ${UBOOT_LOADADDRESS} -e ${UBOOT_ENTRYPOINT} -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin arch/${ARCH}/boot/uImage
rm -f linux.bin
else
${OBJCOPY} -O binary -R .note -R .comment -S vmlinux linux.bin
rm -f linux.bin.gz
gzip -9 linux.bin
- uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C gzip -a ${UBOOT_LOADADRESS} -e ${UBOOT_ENTRYPOINT} -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin.gz arch/${ARCH}/boot/uImage
+ uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C gzip -a ${UBOOT_LOADADDRESS} -e ${UBOOT_ENTRYPOINT} -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin.gz arch/${ARCH}/boot/uImage
rm -f linux.bin.gz
fi
fi
diff --git a/packages/linux/linux_2.6.24.bb b/packages/linux/linux_2.6.24.bb
index 9a392d934c..64a2a58361 100644
--- a/packages/linux/linux_2.6.24.bb
+++ b/packages/linux/linux_2.6.24.bb
@@ -3,8 +3,11 @@ require linux.inc
# Mark archs/machines that this kernel supports
DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_gesbc-9302 = "1"
+DEFAULT_PREFERENCE_mpc8313e-rdb = "1"
-PR = "r1"
+DEPENDS_append_mpc8313e-rdb = " dtc-native"
+
+PR = "r2"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2 \
file://defconfig \
@@ -20,11 +23,23 @@ SRC_URI_append_gesbc-9302 = " \
CMDLINE_gesbc-9302 = "console=ttyAM0 root=mtd5 rootfstype=jffs2 mtdparts=GESBC-NAND:64m(app),-(data)"
+# work in progress
+#SRC_URI_append_mpc8313e-rdb = "\
+# file://mpc8313e-rdb-leds.patch;patch=1"
+# file://mpc831x-nand.patch;patch=1 \
+# file://mpc8313e-rdb-rtc.patch;patch=1 "
+
+# real-time preemption patch
+SRC_URI_append_mpc8313e-rdb = " http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.24-rt1.bz2;patch=1 file://defconfig-rt "
+
FILES_kernel-image_gesbc-9302 = ""
+DEVICETREE_mpc8313e-rdb = "arch/${ARCH}/boot/dts/mpc8313erdb.dts"
+DEVICETREE_FLAGS_mpc8313e-rdb = "-R 8 -S 0x3000"
+
do_devicetree_image() {
if test -n "${DEVICETREE}" ; then
- dtc -I dts -O dtb -o ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.dtb ${DEVICETREE}
+ dtc -I dts -O dtb ${DEVICETREE_FLAGS} -o ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.dtb ${DEVICETREE}
cd ${DEPLOY_DIR_IMAGE}
rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.dtb
diff --git a/packages/logic-analyzer/files/scrolling-capture-dialog.patch b/packages/logic-analyzer/files/scrolling-capture-dialog.patch
new file mode 100644
index 0000000000..91e9ce0766
--- /dev/null
+++ b/packages/logic-analyzer/files/scrolling-capture-dialog.patch
@@ -0,0 +1,21 @@
+Index: LogicAnalyzer/client/org/sump/analyzer/DeviceController.java
+===================================================================
+--- LogicAnalyzer.orig/client/org/sump/analyzer/DeviceController.java 2008-02-11 23:34:01.000000000 +0100
++++ LogicAnalyzer/client/org/sump/analyzer/DeviceController.java 2008-02-11 23:35:17.000000000 +0100
+@@ -43,6 +43,7 @@
+ import javax.swing.JProgressBar;
+ import javax.swing.JTabbedPane;
+ import javax.swing.JTextField;
++import javax.swing.JScrollPane;
+ import javax.swing.Timer;
+
+ import org.sump.util.Properties;
+@@ -312,7 +313,7 @@
+ // if no valid dialog exists, create one
+ if (dialog == null) {
+ dialog = new JDialog(frame, "Capture", true);
+- dialog.getContentPane().add(this);
++ dialog.getContentPane().add(new JScrollPane(this));
+ dialog.setResizable(false);
+ dialog.setSize(this.getPreferredSize());
+ // dialog.pack();
diff --git a/packages/logic-analyzer/logic-analyzer_0.8.bb b/packages/logic-analyzer/logic-analyzer_0.8.bb
index ce691093fa..863a7a3e00 100644
--- a/packages/logic-analyzer/logic-analyzer_0.8.bb
+++ b/packages/logic-analyzer/logic-analyzer_0.8.bb
@@ -1,17 +1,19 @@
DESCRIPTION = "A Java-based logical analyzer for home use."
LICENSE = "GPL"
-MAINTAINER = "Robert Schuster, tarent GmbH Bonn <robert.schuster@tarent.de>"
HOMEPAGE = "http://sump.org/projects/analyzer/"
+PR = "r1"
+
inherit java
DEPENDS = "rxtx"
-RDEPENDS = "librxtx-java"
+RDEPENDS = "java2-runtime classpath-awt librxtx-java"
SRC_URI = "\
http://sump.org/projects/analyzer/downloads/la-src-${PV}.tar.bz2 \
file://cp-run-fix.patch;patch=1 \
file://client-makefile.patch;patch=1 \
+ file://scrolling-capture-dialog.patch;patch=1 \
"
S = "${WORKDIR}/LogicAnalyzer"
diff --git a/packages/madwifi/files/30-define-ioreadwrite32be-for-little-endian-too.patch b/packages/madwifi/files/30-define-ioreadwrite32be-for-little-endian-too.patch
new file mode 100644
index 0000000000..3752a554cd
--- /dev/null
+++ b/packages/madwifi/files/30-define-ioreadwrite32be-for-little-endian-too.patch
@@ -0,0 +1,13 @@
+Reported as http://madwifi.org/ticket/1783 ...
+
+--- madwifi-ng-r3314-20080131/ath_hal/ah_os.h~ 2007-11-23 20:08:18.000000000 +1030
++++ madwifi-ng-r3314-20080131/ath_hal/ah_os.h 2008-02-11 23:12:11.000000000 +1030
+@@ -168,7 +168,7 @@
+ * for the second time, so the native implementations should be preferred.
+ */
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)) && \
+- !defined(CONFIG_GENERIC_IOMAP) && (AH_BYTE_ORDER == AH_BIG_ENDIAN) && \
++ !defined(CONFIG_GENERIC_IOMAP) && \
+ !defined(__mips__) && !defined(__hppa__) && !defined(__powerpc__)
+ # ifndef iowrite32be
+ # define iowrite32be(_val, _addr) iowrite32(swab32((_val)), (_addr))
diff --git a/packages/madwifi/madwifi-ng_r3314-20080131.bb b/packages/madwifi/madwifi-ng_r3314-20080131.bb
new file mode 100644
index 0000000000..d47a0959a8
--- /dev/null
+++ b/packages/madwifi/madwifi-ng_r3314-20080131.bb
@@ -0,0 +1,17 @@
+# Bitbake recipe for the madwifi-ng driver
+
+DEFAULT_PREFERENCE = "-1"
+DEFAULT_PREFERENCE_ixp4xx = "1"
+
+# Disable stripping of kernel modules, since this action strips too
+# much out, and the resulting module won't load.
+INHIBIT_PACKAGE_STRIP = "1"
+
+require madwifi-ng_r.inc
+
+SRC_URI += " \
+ file://30-define-ioreadwrite32be-for-little-endian-too.patch;patch=1 \
+ "
+
+# PR set after the include, to override what's set in the included file.
+PR = "r6"
diff --git a/packages/meta/slugos-packages.bb b/packages/meta/slugos-packages.bb
index 6e8d9e4089..159f74df5c 100644
--- a/packages/meta/slugos-packages.bb
+++ b/packages/meta/slugos-packages.bb
@@ -5,10 +5,10 @@
DESCRIPTION = "Packages that are compatible with the SlugOS firmware"
HOMEPAGE = "http://www.nslu2-linux.org"
LICENSE = "MIT"
-PR = "r44"
+PR = "r47"
CONFLICTS = "db3"
-COMPATIBLE_MACHINE = "nslu2"
+COMPATIBLE_MACHINE = "nslu2|ixp4xx"
EXCLUDE_FROM_WORLD = "1"
INHIBIT_DEFAULT_DEPS = "1"
ALLOW_EMPTY = "1"
@@ -76,7 +76,6 @@ SLUGOS_PACKAGES = "\
dnsmasq \
e2fsprogs \
e2fsprogs-libs \
- eciadsl \
expat \
ez-ipupdate \
fconfig \
@@ -97,11 +96,11 @@ SLUGOS_PACKAGES = "\
gphoto2 \
grep \
groff \
- gspcav1 \
gtk-doc \
gzip \
hdparm \
ifupdown \
+ inetutils \
iperf \
ipkg-utils \
iptables \
@@ -109,6 +108,7 @@ SLUGOS_PACKAGES = "\
irssi \
joe \
jpeg \
+ kexec-tools \
lcdproc \
less \
libao \
@@ -128,6 +128,7 @@ SLUGOS_PACKAGES = "\
libusb \
libvorbis \
libxml2 \
+ lighttpd \
linphone \
litestream \
logrotate \
@@ -193,6 +194,7 @@ SLUGOS_PACKAGES = "\
reiserfsprogs reiser4progs \
rng-tools \
rsync \
+ rtorrent \
samba \
sane-backends \
screen \
@@ -202,6 +204,7 @@ SLUGOS_PACKAGES = "\
sipsak \
slugimage \
smartmontools \
+ sqlite \
ssmtp \
strace \
streamripper \
@@ -245,7 +248,9 @@ SLUGOS_PACKAGES = "\
SLUGOS_BROKEN_PACKAGES = "\
bwmon \
dsniff \
+ eciadsl \
fetchmail \
+ gspcav1 \
lirc-modules lirc \
madfu \
openldap \
diff --git a/packages/netbase/netbase/slugos/if-pre-up.d/test-nfsroot b/packages/netbase/netbase/slugos/if-pre-up.d/test-nfsroot
new file mode 100644
index 0000000000..bbfd7d9bb3
--- /dev/null
+++ b/packages/netbase/netbase/slugos/if-pre-up.d/test-nfsroot
@@ -0,0 +1,10 @@
+#!/bin/sh
+#
+if [ X"$IFACE" == "Xeth0" ] ; then
+ nfsroot=`grep ' / nfs ' /proc/mounts`
+ if [ -n "$nfsroot" ]; then
+ echo "WARNING: Refusing to ifup eth0 when booted to a nfs-mounted rootfs."
+ exit 1
+ fi
+fi
+exit 0
diff --git a/packages/netbase/netbase_4.21.bb b/packages/netbase/netbase_4.21.bb
index 1f2837a8c1..73e765376c 100644
--- a/packages/netbase/netbase_4.21.bb
+++ b/packages/netbase/netbase_4.21.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "This package provides the necessary \
infrastructure for basic TCP/IP based networking."
SECTION = "base"
LICENSE = "GPL"
-PR = "r26"
+PR = "r27"
inherit update-rc.d
diff --git a/packages/python/python-gst/python-path.patch b/packages/python/python-gst/python-path.patch
index 465d5b180a..6cbad8cc5f 100644
--- a/packages/python/python-gst/python-path.patch
+++ b/packages/python/python-gst/python-path.patch
@@ -1,24 +1,33 @@
-Index: gst-python-0.10.7/acinclude.m4
+Index: gst-python-0.10.10/acinclude.m4
===================================================================
---- gst-python-0.10.7.orig/acinclude.m4 2007-03-02 14:10:28.652128590 +0100
-+++ gst-python-0.10.7/acinclude.m4 2007-03-02 14:41:00.106728708 +0100
-@@ -43,12 +43,19 @@
+--- gst-python-0.10.10.orig/acinclude.m4
++++ gst-python-0.10.10/acinclude.m4
+@@ -43,16 +43,20 @@ AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
[AC_REQUIRE([AM_PATH_PYTHON])
AC_MSG_CHECKING(for headers required to compile python extensions)
dnl deduce PYTHON_INCLUDES
+-py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
+-py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
+-if $PYTHON-config --help 2>/dev/null; then
+- PYTHON_INCLUDES=`$PYTHON-config --includes 2>/dev/null`
+
+AC_ARG_WITH(python-includes,
-+ [ --with-python-includes=DIR path to Python includes], py_exec_prefix=$withval)
++ [ --with-python-includes=DIR path to Python includes], py_exec_prefix=$withval)
+if test x$py_exec_prefix != x; then
-+PYTHON_INCLUDES="-I${py_exec_prefix}/include/python${PYTHON_VERSION}"
-+else
- py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
- py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
- PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
- if test "$py_prefix" != "$py_exec_prefix"; then
- PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
++ PYTHON_INCLUDES="-I${py_exec_prefix}/include/python${PYTHON_VERSION}"
+ else
+- PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
+- if test "$py_prefix" != "$py_exec_prefix"; then
+- PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
+- fi
++ py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
++ py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
++ PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
++if test "$py_prefix" != "$py_exec_prefix"; then
++ PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
++ fi
fi
-+fi
++
AC_SUBST(PYTHON_INCLUDES)
dnl check if the headers exist:
save_CPPFLAGS="$CPPFLAGS"
diff --git a/packages/python/python-gst_0.10.8.bb b/packages/python/python-gst_0.10.10.bb
index 224d24b59a..cc1a19574e 100644
--- a/packages/python/python-gst_0.10.8.bb
+++ b/packages/python/python-gst_0.10.10.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Python Gstreamer bindings"
SECTION = "devel/python"
LICENSE = "LGPL"
DEPENDS = "gstreamer gst-plugins-base python-pygobject"
-PR = "ml1"
+PR = "ml0"
SRC_URI = "http://gstreamer.freedesktop.org/src/gst-python/gst-python-${PV}.tar.bz2 \
file://python-path.patch;patch=1"
diff --git a/packages/python/python-pyqt_4.3.3.bb b/packages/python/python-pyqt_4.3.3.bb
index 2fd6fcc38b..9dd2040a5b 100644
--- a/packages/python/python-pyqt_4.3.3.bb
+++ b/packages/python/python-pyqt_4.3.3.bb
@@ -4,6 +4,7 @@ AUTHOR = "Phil Thomson @ riverbank.co.uk"
SECTION = "devel/python"
PRIORITY = "optional"
LICENSE = "GPL"
+DEPENDS = "sip-native python-sip"
RDEPENDS = "python-core"
SRCNAME = "pyqt"
PR = "ml1"
diff --git a/packages/python/python-sqlalchemy_0.4.2p3.bb b/packages/python/python-sqlalchemy_0.4.2p3.bb
new file mode 100644
index 0000000000..2a797eb439
--- /dev/null
+++ b/packages/python/python-sqlalchemy_0.4.2p3.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL"
+HOMEPAGE = "http://www.sqlalchemy.org/"
+SECTION = "devel/python"
+PRIORITY = "optional"
+LICENSE = "MIT"
+SRCNAME = "SQLAlchemy"
+PR = "r0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/sqlalchemy/${SRCNAME}-${PV}.tar.gz"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
diff --git a/packages/rxtx/rxtx_2.1-7r2.bb b/packages/rxtx/rxtx_2.1-7r2.bb
index e91a406cfc..260b70a1fe 100644
--- a/packages/rxtx/rxtx_2.1-7r2.bb
+++ b/packages/rxtx/rxtx_2.1-7r2.bb
@@ -1,7 +1,6 @@
DESCRIPTION = "RXTX provides serial and parallel communication for Java applications"
LICENSE = "LGPL"
SECTION = "libs"
-MAINTAINER = "Robert Schuster, tarent GmbH Bonn <robert.schuster@tarent.de>"
HOMEPAGE = "http://rxtx.org"
inherit autotools java-library
diff --git a/packages/slugos-init/files/boot/network b/packages/slugos-init/files/boot/network
index 8c0635d3ac..8124f19ab2 100644
--- a/packages/slugos-init/files/boot/network
+++ b/packages/slugos-init/files/boot/network
@@ -25,7 +25,7 @@ iface="$(config iface)"
test -z "$iface" && exit 1
#
# Fire up a process in the background to load the firmware if necessary
-sysf="/sys/class/firmware/$iface"
+sysf="/sys/class/firmware/firmware-$iface"
(
# Wait for the firware to be requested, if required
[ -f $sysf/loading ] || sleep 1
diff --git a/packages/slugos-init/slugos-init_4.8.bb b/packages/slugos-init/slugos-init_4.8.bb
index 92ac7e30f3..4babf89d61 100644
--- a/packages/slugos-init/slugos-init_4.8.bb
+++ b/packages/slugos-init/slugos-init_4.8.bb
@@ -4,7 +4,7 @@ PRIORITY = "required"
LICENSE = "GPL"
DEPENDS = "base-files devio"
RDEPENDS = "busybox devio"
-PR = "r1"
+PR = "r2"
SRC_URI = "file://boot/flash \
file://boot/disk \
diff --git a/packages/tasks/task-python-everything.bb b/packages/tasks/task-python-everything.bb
index a23589111d..18455f5b96 100644
--- a/packages/tasks/task-python-everything.bb
+++ b/packages/tasks/task-python-everything.bb
@@ -1,7 +1,7 @@
DESCRIPTION= "Everything Python"
HOMEPAGE = "http://www.vanille.de/projects/python.spy"
LICENSE = "MIT"
-PR = "ml25"
+PR = "ml26"
RDEPENDS = "\
python-ao \
@@ -75,6 +75,7 @@ RDEPENDS = "\
python-soappy \
python-spydi \
python-spyro \
+ python-sqlalchemy \
python-sqlobject \
python-sword \
python-tlslite \
diff --git a/packages/tasks/task-slugos.bb b/packages/tasks/task-slugos.bb
index bdcfcf7cd3..01cdaa21b4 100644
--- a/packages/tasks/task-slugos.bb
+++ b/packages/tasks/task-slugos.bb
@@ -6,7 +6,7 @@
DESCRIPTION = "Task packages for the SlugOS distribution"
HOMEPAGE = "http://www.nslu2-linux.org"
LICENSE = "MIT"
-PR = "r16"
+PR = "r17"
PACKAGE_ARCH = "${MACHINE_ARCH}"
ALLOW_EMPTY = "1"
@@ -67,6 +67,7 @@ kernel-module-ext3 \
kernel-module-vfat \
kernel-module-nls-cp437 \
kernel-module-nls-utf8 \
+kernel-module-nfs \
"
# Add daemon required for HW RNG support
@@ -102,7 +103,6 @@ kernel-module-via-velocity \
#
# portmap \
# kexec-tools \
-# kernel-module-nfs \
# kernel-module-isofs \
# kernel-module-udf \
# kernel-module-loop \
diff --git a/packages/udev/files/slugos/mount.sh b/packages/udev/files/slugos/mount.sh
new file mode 100644
index 0000000000..11714c1390
--- /dev/null
+++ b/packages/udev/files/slugos/mount.sh
@@ -0,0 +1,77 @@
+#!/bin/sh
+#
+# Called from udev
+# Attemp to mount any added block devices
+# and remove any removed devices
+#
+
+MOUNT="/bin/mount"
+PMOUNT="/usr/bin/pmount"
+UMOUNT="/bin/umount"
+name="`basename "$DEVNAME"`"
+
+for line in `cat /etc/udev/mount.blacklist | grep -v ^#`
+do
+ if ( echo "$DEVNAME" | grep -q "$line" )
+ then
+ logger "udev/mount.sh" "[$DEVNAME] is blacklisted, ignoring"
+ exit 0
+ fi
+done
+
+automount() {
+ ! test -d "/media/$name" && mkdir -p "/media/$name"
+
+ if ! $MOUNT -t auto -o sync $DEVNAME "/media/$name"
+ then
+ #logger "mount.sh/automount" "$MOUNT -t auto $DEVNAME \"/media/$name\" failed!"
+ rm_dir "/media/$name"
+ else
+ logger "mount.sh/automount" "Auto-mount of [/media/$name] successful"
+ touch "/tmp/.automount-$name"
+ fi
+}
+
+rm_dir() {
+ # We do not want to rm -r populated directories
+ if test "`find "$1" | wc -l | tr -d " "`" -lt 2 -a -d "$1"
+ then
+ ! test -z "$1" && rm -r "$1"
+ else
+ logger "mount.sh/automount" "Not removing non-empty directory [$1]"
+ fi
+}
+
+if [ "$ACTION" = "add" ] && [ -n "$DEVNAME" ]; then
+ # SlugOS: we pivot to the rootfs based on UUID, not on fstab -- so the fstab may not
+ # be correct at this point in the boot. So we must not let udev mount devices based
+ # soley on the fstab, lest we mount overtop the real rootfs. For now we just comment
+ # out the logic below and let the automount logic (far below) deal with all udev mount
+ # operations.
+ #if [ -x "$PMOUNT" ]; then
+ # $PMOUNT $DEVNAME 2> /dev/null
+ #elif [ -x $MOUNT ]; then
+ # $MOUNT $DEVNAME 2> /dev/null
+ #fi
+
+ # If the device isn't mounted at this point, it isn't configured in fstab
+ # 20061107: Small correction: The rootfs partition may be called just "rootfs" and not by
+ # its true device name so this would break. If the rootfs is mounted on two places
+ # during boot, it confuses the heck out of fsck. So Im auto-adding the root-partition
+ # to /etc/udev/mount.blacklist via postinst
+
+ cat /proc/mounts | awk '{print $1}' | grep -q "^$DEVNAME$" || automount
+
+fi
+
+
+
+if [ "$ACTION" = "remove" ] && [ -x "$UMOUNT" ] && [ -n "$DEVNAME" ]; then
+ for mnt in `cat /proc/mounts | grep "$DEVNAME" | cut -f 2 -d " " `
+ do
+ $UMOUNT $mnt
+ done
+
+ # Remove empty directories from auto-mounter
+ test -e "/tmp/.automount-$name" && rm_dir "/media/$name"
+fi
diff --git a/packages/udev/udev_100.bb b/packages/udev/udev_100.bb
index ac981bbe9c..c8840e1a8f 100644
--- a/packages/udev/udev_100.bb
+++ b/packages/udev/udev_100.bb
@@ -9,12 +9,13 @@ used to detect the type of a file system and read its metadata."
DESCRIPTION_libvolume-id-dev = "libvolume_id development headers, \
needed to link programs with libvolume_id."
-PR = "r10"
+PR = "r11"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
file://noasmlinkage.patch;patch=1 \
file://flags.patch;patch=1 \
file://mount.blacklist \
+ file://mount.sh \
"
require udev.inc
diff --git a/packages/xorg-driver/xf86-input-acecad_1.2.2.bb b/packages/xorg-driver/xf86-input-acecad_1.2.2.bb
new file mode 100644
index 0000000000..c993bc7718
--- /dev/null
+++ b/packages/xorg-driver/xf86-input-acecad_1.2.2.bb
@@ -0,0 +1,5 @@
+require xorg-driver-input.inc
+
+DESCRIPTION = "X.Org X server -- AceCad input driver"
+PE = "1"
+
diff --git a/packages/xorg-driver/xf86-video-trident_1.2.4.bb b/packages/xorg-driver/xf86-video-trident_1.2.4.bb
new file mode 100644
index 0000000000..fe37be5d0b
--- /dev/null
+++ b/packages/xorg-driver/xf86-video-trident_1.2.4.bb
@@ -0,0 +1,5 @@
+require xorg-driver-video.inc
+
+DESCRIPTION = "X.org X server -- Trident display driver"
+DEPENDS += " xf86dgaproto"
+PE = "1"
diff --git a/packages/xorg-driver/xorg-driver-common.inc b/packages/xorg-driver/xorg-driver-common.inc
index 76bc89fa10..a75e409c8c 100644
--- a/packages/xorg-driver/xorg-driver-common.inc
+++ b/packages/xorg-driver/xorg-driver-common.inc
@@ -7,7 +7,7 @@ PR = "r2"
DEPENDS = "randrproto xorg-server xproto"
XORG_PN = "${PN}"
-SRC_URI = "${XORG_MIRROR}/individual/data/${XORG_PN}-${PV}.tar.bz2"
+SRC_URI = "${XORG_MIRROR}/individual/driver/${XORG_PN}-${PV}.tar.bz2"
S = "${WORKDIR}/${XORG_PN}-${PV}"
diff --git a/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb b/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb
index 26f8666076..622b32179d 100644
--- a/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb
+++ b/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb
@@ -7,7 +7,7 @@ DEPENDS += "libxkbfile libxcalibrate"
PROVIDES = "virtual/xserver"
PE = "1"
-PR = "r3"
+PR = "r4"
FILESPATH = "${FILE_DIRNAME}/xserver-kdrive-1.2.0:${FILE_DIRNAME}/xserver-kdrive"
SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
@@ -21,6 +21,7 @@ SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
file://kdrive-imageon.patch;patch=1 \
file://xcalibrate_coords.patch;patch=1 \
file://enable-builtin-fonts.patch;patch=1 \
+ file://fix-picturestr-include-order.patch;patch=1 \
"
S = "${WORKDIR}/xorg-server-${PV}"
diff --git a/packages/xorg-xserver/xserver-kdrive/fix-picturestr-include-order.patch b/packages/xorg-xserver/xserver-kdrive/fix-picturestr-include-order.patch
new file mode 100644
index 0000000000..3da235e1e1
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive/fix-picturestr-include-order.patch
@@ -0,0 +1,15 @@
+# Reverse include order in render/picturestr.h to be able to compile against renderproto >= 0.9.3
+Index: xorg-server-1.2.0/render/picturestr.h
+===================================================================
+--- xorg-server-1.2.0.orig/render/picturestr.h 2008-02-09 22:54:46.000000000 +0100
++++ xorg-server-1.2.0/render/picturestr.h 2008-02-09 22:54:50.000000000 +0100
+@@ -26,8 +26,8 @@
+ #ifndef _PICTURESTR_H_
+ #define _PICTURESTR_H_
+
+-#include "glyphstr.h"
+ #include "scrnintstr.h"
++#include "glyphstr.h"
+ #include "resource.h"
+
+ typedef struct _DirectFormat {