diff options
455 files changed, 21425 insertions, 17380 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass index 18d51a02ed..c5359b20f8 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -124,6 +124,7 @@ oe_libinstall() { silent="" require_static="" require_shared="" + staging_install="" while [ "$#" -gt 0 ]; do case "$1" in -C) @@ -155,6 +156,10 @@ oe_libinstall() { if [ -z "$destpath" ]; then oefatal "oe_libinstall: no destination path specified" fi + if echo "$destpath/" | egrep '^${STAGING_LIBDIR}/' >/dev/null + then + staging_install=1 + fi __runcmd () { if [ -z "$silent" ]; then @@ -188,7 +193,15 @@ oe_libinstall() { fi dotlai=$libname.lai if [ -f "$dotlai" -a -n "$libtool" ]; then - __runcmd install -m 0644 $dotlai $destpath/$libname.la + if test -n "$staging_install" + then + # stop libtool using the final directory name for libraries + # in staging: + __runcmd rm -f $destpath/$libname.la + __runcmd sed -e 's/^installed=yes$/installed=no/' $dotlai >$destpath/$libname.la + else + __runcmd install -m 0644 $dotlai $destpath/$libname.la + fi fi for name in $library_names; do diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass index 463ff5f6b5..8416b8acb3 100644 --- a/classes/kernel.bbclass +++ b/classes/kernel.bbclass @@ -11,6 +11,13 @@ KERNEL_IMAGETYPE = "zImage" KERNEL_PRIORITY = "${@bb.data.getVar('PV',d,1).split('-')[0].split('.')[-1]}" +# [jbowler 20051109] ${PV}${KERNEL_LOCALVERSION} is used throughout this +# .bbclass to (apparently) find the full 'uname -r' kernel version, this +# should be the same as UTS_RELEASE or (in this file) KERNEL_VERSION: +# KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)$(LOCALVERSION) +# but since this is not certain this overridable setting is used here: +KERNEL_RELEASE ?= "${PV}${KERNEL_LOCALVERSION}" + KERNEL_CCSUFFIX ?= "" KERNEL_LDSUFFIX ?= "" @@ -96,9 +103,9 @@ kernel_do_stage() { cp -fR drivers/sound/*.h ${STAGING_KERNEL_DIR}/include/drivers/sound/ fi - install -m 0644 .config ${STAGING_KERNEL_DIR}/config-${PV}${KERNEL_LOCALVERSION} - ln -sf config-${PV}${KERNEL_LOCALVERSION} ${STAGING_KERNEL_DIR}/.config - ln -sf config-${PV}${KERNEL_LOCALVERSION} ${STAGING_KERNEL_DIR}/kernel-config + install -m 0644 .config ${STAGING_KERNEL_DIR}/config-${KERNEL_RELEASE} + ln -sf config-${KERNEL_RELEASE} ${STAGING_KERNEL_DIR}/.config + ln -sf config-${KERNEL_RELEASE} ${STAGING_KERNEL_DIR}/kernel-config echo "${KERNEL_VERSION}" >${STAGING_KERNEL_DIR}/kernel-abiversion echo "${S}" >${STAGING_KERNEL_DIR}/kernel-source echo "${KERNEL_CCSUFFIX}" >${STAGING_KERNEL_DIR}/kernel-ccsuffix @@ -113,7 +120,7 @@ kernel_do_stage() { fi cp -fR include/config* ${STAGING_KERNEL_DIR}/include/ install -m 0644 ${KERNEL_OUTPUT} ${STAGING_KERNEL_DIR}/${KERNEL_IMAGETYPE} - install -m 0644 System.map ${STAGING_KERNEL_DIR}/System.map-${PV}${KERNEL_LOCALVERSION} + install -m 0644 System.map ${STAGING_KERNEL_DIR}/System.map-${KERNEL_RELEASE} [ -e Module.symvers ] && install -m 0644 Module.symvers ${STAGING_KERNEL_DIR}/ cp -fR scripts ${STAGING_KERNEL_DIR}/ @@ -129,9 +136,9 @@ kernel_do_install() { install -d ${D}/${KERNEL_IMAGEDEST} install -d ${D}/boot - install -m 0644 ${KERNEL_OUTPUT} ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${PV}${KERNEL_LOCALVERSION} - install -m 0644 System.map ${D}/boot/System.map-${PV}${KERNEL_LOCALVERSION} - install -m 0644 .config ${D}/boot/config-${PV}${KERNEL_LOCALVERSION} + install -m 0644 ${KERNEL_OUTPUT} ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_RELEASE} + install -m 0644 System.map ${D}/boot/System.map-${KERNEL_RELEASE} + install -m 0644 .config ${D}/boot/config-${KERNEL_RELEASE} install -d ${D}/etc/modutils # Check if scripts/genksyms exists and if so, build it @@ -147,11 +154,11 @@ kernel_do_configure() { } pkg_postinst_kernel () { - update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE} /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${PV}${KERNEL_LOCALVERSION} ${KERNEL_PRIORITY} || true + update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE} /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_RELEASE} ${KERNEL_PRIORITY} || true } pkg_postrm_kernel () { - update-alternatives --remove ${KERNEL_IMAGETYPE} /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${PV}${KERNEL_LOCALVERSION} || true + update-alternatives --remove ${KERNEL_IMAGETYPE} /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_RELEASE} || true } inherit cml1 @@ -169,7 +176,7 @@ ALLOW_EMPTY_kernel-image = "1" pkg_postinst_modules () { if [ -n "$D" ]; then - ${HOST_PREFIX}depmod -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${PV}${KERNEL_LOCALVERSION} ${KERNEL_VERSION} + ${HOST_PREFIX}depmod -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_RELEASE} ${KERNEL_VERSION} else depmod -A update-modules || true @@ -230,7 +237,7 @@ python populate_packages_prepend () { bb.error("D not defined") return - kernelver = bb.data.getVar('PV', d, 1) + bb.data.getVar('KERNEL_LOCALVERSION', d, 1) + kernelver = bb.data.getVar('KERNEL_RELEASE', d, 1) kernelver_stripped = kernelver m = re.match('^(.*-hh.*)[\.\+].*$', kernelver) if m: diff --git a/classes/package.bbclass b/classes/package.bbclass index 90dfec9fa7..db479d5847 100644 --- a/classes/package.bbclass +++ b/classes/package.bbclass @@ -259,6 +259,8 @@ python populate_packages () { write_if_exists(f, pkg, 'FILES') write_if_exists(f, pkg, 'pkg_postinst') write_if_exists(f, pkg, 'pkg_postrm') + write_if_exists(f, pkg, 'pkg_preinst') + write_if_exists(f, pkg, 'pkg_prerm') f.close() bb.build.exec_func("read_subpackage_metadata", d) } diff --git a/conf/distro/ludeos-packages.conf b/conf/distro/ludeos-packages.conf new file mode 100644 index 0000000000..97b152b445 --- /dev/null +++ b/conf/distro/ludeos-packages.conf @@ -0,0 +1,2 @@ +OPENSLUG_EXTRA_BBFILES = "" +include conf/distro/openslug-packages.conf diff --git a/conf/distro/ludeos.conf b/conf/distro/ludeos.conf new file mode 100644 index 0000000000..d03e8dd409 --- /dev/null +++ b/conf/distro/ludeos.conf @@ -0,0 +1,23 @@ +#@TYPE: Distribution +#@NAME: DeLude +#@DESCRIPTION: LudeOS Linux Distribution for the Iomega NAS 100d + +DISTRO_NAME = "LudeOS" +DISTRO_VERSION = "0.1-alpha" +DISTRO_FEED = "unstable" +DISTRO_TYPE = "beta" + +ARCH_BYTE_SEX = "be" +ARM_INSTRUCTION_SET = "arm" +TARGET_OS = "linux" + +FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/slugos-bag/cross/${DISTRO_FEED}" +FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/slugos-bag/native/${DISTRO_FEED}" + +PREFERRED_PROVIDER_virtual/kernel = "nas100d-kernel" +# PREFERRED_VERSION_nas100d-kernel ?= "2.6.15-rc2" + +# This removes the dependency on upslug2-native. +SLUGOS_NATIVE_DEPENDS = "" + +include conf/distro/slugos.conf diff --git a/conf/distro/openslug-packages.conf b/conf/distro/openslug-packages.conf index 67bfc2f16c..ea126d9032 100644 --- a/conf/distro/openslug-packages.conf +++ b/conf/distro/openslug-packages.conf @@ -19,6 +19,7 @@ ${PKGDIR}/packages/busybox/*.bb \ ${PKGDIR}/packages/bwmon/*.bb \ ${PKGDIR}/packages/bzip2/*.bb \ ${PKGDIR}/packages/ccxstream/*.bb \ +${PKGDIR}/packages/cherokee/*.bb \ ${PKGDIR}/packages/coreutils/*.bb \ ${PKGDIR}/packages/cpio/*.bb \ ${PKGDIR}/packages/cron/*.bb \ @@ -33,9 +34,12 @@ ${PKGDIR}/packages/devio/*.bb \ ${PKGDIR}/packages/diffstat/*.bb \ ${PKGDIR}/packages/diffutils/*.bb \ ${PKGDIR}/packages/dnsmasq/*.bb \ +${PKGDIR}/packages/docbook-utils/*.bb \ ${PKGDIR}/packages/dropbear/*.bb \ +${PKGDIR}/packages/dsniff/*.bb \ ${PKGDIR}/packages/e2fsprogs/*.bb \ ${PKGDIR}/packages/expat/*.bb \ +${PKGDIR}/packages/ez-ipupdate/*.bb \ ${PKGDIR}/packages/fakeroot/*.bb \ ${PKGDIR}/packages/file/*.bb \ ${PKGDIR}/packages/findutils/*.bb \ @@ -84,6 +88,8 @@ ${PKGDIR}/packages/libid3tag/*.bb \ ${PKGDIR}/packages/liblockfile/*.bb \ ${PKGDIR}/packages/libmad/*.bb \ ${PKGDIR}/packages/libmikmod/*.bb \ +${PKGDIR}/packages/libnet/*.bb \ +${PKGDIR}/packages/libnids/*.bb \ ${PKGDIR}/packages/libogg/*.bb \ ${PKGDIR}/packages/libol/*.bb \ ${PKGDIR}/packages/libpcap/*.bb \ @@ -104,6 +110,7 @@ ${PKGDIR}/packages/make/*.bb \ ${PKGDIR}/packages/makedevs/*.bb \ ${PKGDIR}/packages/man-pages/*.bb \ ${PKGDIR}/packages/man/*.bb \ +${PKGDIR}/packages/masqmail/*.bb \ ${PKGDIR}/packages/mdadm/*.bb \ ${PKGDIR}/packages/meta/*.bb \ ${PKGDIR}/packages/mgetty/*.bb \ @@ -126,14 +133,17 @@ ${PKGDIR}/packages/netbase/*.bb \ ${PKGDIR}/packages/netpbm/*.bb \ ${PKGDIR}/packages/nfs-utils/*.bb \ ${PKGDIR}/packages/nis/*.bb \ +${PKGDIR}/packages/nmap/*.bb \ ${PKGDIR}/packages/nslu2-binary-only/*.bb \ ${PKGDIR}/packages/ntp/*.bb \ ${PKGDIR}/packages/obexftp/*.bb \ +${PKGDIR}/packages/openjade/*.bb \ ${PKGDIR}/packages/openldap/*.bb \ ${PKGDIR}/packages/openntpd/*.bb \ ${PKGDIR}/packages/openobex-apps/*.bb \ ${PKGDIR}/packages/openobex/*.bb \ ${PKGDIR}/packages/openslug-init/*.bb \ +${PKGDIR}/packages/opensp/*.bb \ ${PKGDIR}/packages/openssh/*.bb \ ${PKGDIR}/packages/openssl/*.bb \ ${PKGDIR}/packages/openvpn/*.bb \ @@ -167,6 +177,7 @@ ${PKGDIR}/packages/sane-backends/*.bb \ ${PKGDIR}/packages/screen/*.bb \ ${PKGDIR}/packages/sed/*.bb \ ${PKGDIR}/packages/setpwc/*.bb \ +${PKGDIR}/packages/sgml-common/*.bb \ ${PKGDIR}/packages/slugimage/*.bb \ ${PKGDIR}/packages/ssmtp/*.bb \ ${PKGDIR}/packages/strace/*.bb \ diff --git a/conf/distro/openslug.conf b/conf/distro/openslug.conf index e9f88311c2..a633b56190 100644 --- a/conf/distro/openslug.conf +++ b/conf/distro/openslug.conf @@ -9,9 +9,10 @@ DISTRO_NAME = "OpenSlug" DISTRO_VERSION = "3.0-beta" DISTRO_FEED = "unstable" DISTRO_TYPE = "beta" +SLUGOS_IMAGENAME = "openslug" -# nslu2-jffs2-image builds a complete image (not just the parts) -INHERIT += "nslu2-jffs2-image" +# openslug builds a complete image (not just the parts) +SLUGOS_FLASH_IMAGE = "yes" # NOTE: to build new packages set OPENSLUG_EXTRA_BBFILES to the full path name to # the .bb files for the packages to build - see ucslugc-packages.conf in this diff --git a/conf/distro/preferred-gpe-versions-2.7.inc b/conf/distro/preferred-gpe-versions-2.7.inc index e65dff8946..e535f4e12a 100644 --- a/conf/distro/preferred-gpe-versions-2.7.inc +++ b/conf/distro/preferred-gpe-versions-2.7.inc @@ -25,14 +25,14 @@ PREFERRED_VERSION_pango ?= "1.8.1" PREFERRED_VERSION_librsvg ?= "2.6.5" PREFERRED_VERSION_libgpewidget ?= "0.105" PREFERRED_VERSION_libgpepimc ?= "0.5" -PREFERRED_VERSION_libgpevtype ?= "0.12" +PREFERRED_VERSION_libgpevtype ?= "0.14" PREFERRED_VERSION_libschedule ?= "0.15" PREFERRED_VERSION_gpe-icons ?= "0.25" PREFERRED_VERSION_libgsm ?= "1.0.10" PREFERRED_VERSION_diet-x11 ?= "6.2.1" PREFERRED_VERSION_xproto ?= "6.6.2" PREFERRED_VERSION_xcursor-transparent-theme ?= "0.1.1" -PREFERRED_VERSION_rxvt-unicode ?= "5.3" +PREFERRED_VERSION_rxvt-unicode ?= "5.6" PREFERRED_VERSION_gtk2-theme-angelistic ?= "0.3" PREFERRED_VERSION_xst ?= "0.15" PREFERRED_VERSION_xextensions ?= "1.0.1" @@ -44,16 +44,16 @@ PREFERRED_VERSION_gpe-login ?= "0.83" PREFERRED_VERSION_gpe-session-scripts ?= "0.66" PREFERRED_VERSION_gpe-soundserver ?= "0.4-1" PREFERRED_VERSION_gpe-todo ?= "0.54" -PREFERRED_VERSION_gpe-calendar ?= "0.65" +PREFERRED_VERSION_gpe-calendar ?= "0.66" PREFERRED_VERSION_gpe-sketchbox ?= "0.2.8" PREFERRED_VERSION_gpe-contacts ?= "0.42" PREFERRED_VERSION_gpe-today ?= "0.10" PREFERRED_VERSION_matchbox-panel-manager ?= "0.1" PREFERRED_VERSION_dbus ?= "0.23.4" PREFERRED_VERSION_gpe-beam ?= "0.2.8" -PREFERRED_VERSION_gpe-bluetooth ?= "0.46" +PREFERRED_VERSION_gpe-bluetooth ?= "0.47" PREFERRED_VERSION_gpe-su ?= "0.19" -PREFERRED_VERSION_gpe-conf ?= "0.1.25" +PREFERRED_VERSION_gpe-conf ?= "0.1.26" PREFERRED_VERSION_gpe-clock ?= "0.21" PREFERRED_VERSION_gpe-mininet ?= "0.5" PREFERRED_VERSION_gpe-mixer ?= "0.42" @@ -91,4 +91,4 @@ PREFERRED_VERSION_firefox ?= "1.0" PREFERRED_VERSION_gaim ?= "2.0.0-cvs-mco1-20050904" PREFERRED_VERSION_poppler ?= "0.3.3" PREFERRED_VERSION_evince ?= "0.3.2" -PREFERRED_VERSION_gpe_mini_browser ?= "0.15" +PREFERRED_VERSION_gpe_mini_browser ?= "0.17" diff --git a/conf/distro/preferred-opie-versions.inc b/conf/distro/preferred-opie-versions.inc index ff608f28f2..d9f65b3831 100644 --- a/conf/distro/preferred-opie-versions.inc +++ b/conf/distro/preferred-opie-versions.inc @@ -68,6 +68,7 @@ PREFERRED_VERSION_opie-homeapplet = "${OPIE_VERSION}" PREFERRED_VERSION_opie-i18n = "${OPIE_VERSION}" PREFERRED_VERSION_opie-lrelease-native = "${OPIE_VERSION}" PREFERRED_VERSION_opie-lupdate-native = "${OPIE_VERSION}" +PREFERRED_VERSION_opie-icon-reload = "${OPIE_VERSION}" PREFERRED_VERSION_opie-irc = "${OPIE_VERSION}" PREFERRED_VERSION_opie-irdaapplet = "${OPIE_VERSION}" PREFERRED_VERSION_opie-jumpx = "${OPIE_VERSION}" @@ -83,6 +84,7 @@ PREFERRED_VERSION_opie-language = "${OPIE_VERSION}" PREFERRED_VERSION_opie-launcher-settings = "${OPIE_VERSION}" PREFERRED_VERSION_opie-libqrsync = "${OPIE_VERSION}" PREFERRED_VERSION_opie-light-and-power = "${OPIE_VERSION}" +PREFERRED_VERSION_opie-lockapplet = "${OPIE_VERSION}" PREFERRED_VERSION_opie-login = "${OPIE_VERSION}" PREFERRED_VERSION_opie-logoutapplet = "${OPIE_VERSION}" PREFERRED_VERSION_opie-mailapplet = "${OPIE_VERSION}" diff --git a/conf/distro/slugos.conf b/conf/distro/slugos.conf index 828e0b5800..ff4be92a8c 100644 --- a/conf/distro/slugos.conf +++ b/conf/distro/slugos.conf @@ -67,6 +67,13 @@ INHERIT += "package_ipk debian" #FIXME: remove openslug DISTRO_BASE = ":slugos:openslug" +# packages/meta/slugos-image.bb generates a binary image of the root file system +# with a name controlled by the following setting - it defaults to the top level +# ${DISTRO_NAME} and this should always be correct, but it may be too specific (e.g. +# if you change the DISTRO from one of the standard ones in a way which does not +# change the generated image). +SLUGOS_IMAGENAME ?= "${DISTRO_NAME}" + # pull in the frozen list of bbfiles - this sets BBFILES and this will override any # setting in local.conf Since this depends on ${DISTRO} it doesn't actually do # anything by default unless conf/distro/${DISTRO}-packages.conf exists. @@ -99,45 +106,24 @@ include conf/distro/freeze.conf #---------------------------------------------------------------------------------- # IMAGE BUILD OPTIONS # ------------------- -#FIXME: this is historical, there should be a minimal slugos device table and -# this stuff shouldn't be in here at all (put it in slugos-image.bb!) -# Why have anything in the config file to control the image build - why not -# just select a different image .bb file (e.g. slugos-ramdisk-image.bb) to -# build with different options. -IMAGE_FSTYPES = "jffs2" -IMAGE_SEX = "${@['big-endian', 'little-endian'][bb.data.getVar('ARCH_BYTE_SEX', d, 1) == 'le']}" -OPENSLUG_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-openslug.txt')}" -EXTRA_IMAGECMD_jffs2 = "--pad --${IMAGE_SEX} --eraseblock=0x20000 -D ${OPENSLUG_DEVICE_TABLE}" - # CMDLINE* macros define the kernel command line. CMDLINE_DEBUG is provided # to enable/disable debugging in the distro. Here noirqdebug is used to # remove the messages about unhandled interrupts - people debugging interrupt # issues in the kernel need to cancel this (set CMDLINE_DEBUG empty in local.conf) CMDLINE_DEBUG = "noirqdebug" -# IMAGE_PREPROCESS_COMMAND is run before making the image. In SlugOS the -# kernel image is removed from the root file system to recover the space used - -# SlugOS is assumed to boot from a separate kernel image in flash (not in the -# root file system), if this is not the case the following must not be done! -IMAGE_PREPROCESS_COMMAND = "rm ${IMAGE_ROOTFS}/boot/zImage*;" - -# Building a full image. If you add the following extra commands will be -# appended to the openslug-image build by classes/nslu2-jffs2-image.bbclass -# (note that you can, instead, simply add 'inherit nslu2-jffs2-image' to -# openslug-image.bb). If you do this you will need to find a source for the -# LinkSys software to be placed in the full image - 'RedBoot' (the boot loader), -# 'Trailer' (just a bunch of bytes to flag the image as valid) and 'SysConf' -# (actually just a block of unset data - you could modify this to pre-configure -# the SysConf partition of the image). If you own an NSLU2 then this data is -# already in the flash of the NSLU2 and you can download it (including new -# versions) from the LinkSys web site - the bbclass will output information -# about where to put the downloaded data. +# Building a full image. If you set SLUGOS_FLASH_IMAGE to "yes" a complete +# 8MByte flash image will be built after the rootfs JFFS2 image. # -#NOTE: you do not actually need the boot loader in normal use because it is -# *not* overwritten by a standard upslug upgrade, so you can make an image with -# just non-LinkSys software which can be flashed into the NSLU2. -#FIXME: this should not be here, only slugos-image.bb needs this -#INHERIT += "nslu2-jffs2-image" +# If you do this you will need to find a source for the LinkSys software to be +# placed in the full image - 'RedBoot' (the boot loader), 'Trailer' (just a bunch +# of bytes to flag the image as valid) and 'SysConf' (actually just a block of +# unset data - you could modify this to pre-configure the SysConf partition of the +# image). If you own an NSLU2 then this data is already in the flash of the NSLU2 +# and you can download it (including new versions) from the LinkSys web site - see +# packages/meta/slugos-image.bb for information about where to put the downloaded +# data. +SLUGOS_FLASH_IMAGE ?= "no" # EXTRA PACKAGES # -------------- @@ -156,11 +142,6 @@ SLUGOS_EXTRA_DEPENDS ?= "" # Override this as desired - it makes no difference to the final image. SLUGOS_NATIVE_DEPENDS ?= "upslug2-native" -#FIXME: this is for openslug-image, slugos-image should be called slugos! -#FIXME: I find these names confusing, lets just use RDEPENDS and DEPENDS. -OPENSLUG_EXTRA_INSTALL = "${SLUGOS_EXTRA_RDEPENDS}" -OPENSLUG_EXTRA_DEPENDS = "${SLUGOS_EXTRA_DEPENDS} ${SLUGOS_NATIVE_DEPENDS}" - #---------------------------------------------------------------------------------- # PACKAGE VERSION CONTROL #---------------------------------------------------------------------------------- @@ -183,14 +164,20 @@ PREFERRED_VERSION_glibc ?= "2.3.5+cvs20050627" # Select the correct versions of the kernel and modules (these are the # defaults, override in the conf/distro top-level distro file). PREFERRED_PROVIDER_virtual/kernel ?= "nslu2-kernel" -PREFERRED_VERSION_nslu2-kernel ?= "2.6.14" +PREFERRED_VERSION_nslu2-kernel ?= "2.6.14.3" # Built-in ethernet modules PREFERRED_PROVIDER_virtual/ixp-eth ?= "ixp400-eth" -PREFERRED_VERSION_ixp4xx-csr ?= "2.0" -PREFERRED_VERSION_ixp-osal ?= "2.0" -PREFERRED_VERSION_ixp400-eth ?= "1.4" +PREFERRED_VERSION_ixp4xx-csr ?= "2.1" +PREFERRED_VERSION_ixp-osal ?= "2.1" +PREFERRED_VERSION_ixp400-eth ?= "1.5" # Select the smallest provider of x11 libraries PREFERRED_PROVIDER_x11 ?= "diet-x11" CVSDATE_diet-x11 ?= "20051005" + +# Ensure consistency across all SlugOS builds for the provider of a +# relational database - use the latest version of the SleepyCat +# Berkeley database +PREFERRED_PROVIDER_virtual/db = "db" +PREFERRED_PROVIDER_virtual/db-native = "db-native" diff --git a/conf/distro/ucslugc-packages.conf b/conf/distro/ucslugc-packages.conf index 819bc8f984..8aec056d24 100644 --- a/conf/distro/ucslugc-packages.conf +++ b/conf/distro/ucslugc-packages.conf @@ -13,17 +13,21 @@ ${PKGDIR}/packages/bind/*.bb \ ${PKGDIR}/packages/binutils/*.bb \ ${PKGDIR}/packages/bison/*.bb \ ${PKGDIR}/packages/bluez/*.bb \ +${PKGDIR}/packages/bogofilter/*.bb \ ${PKGDIR}/packages/boost/*.bb \ ${PKGDIR}/packages/bridge-utils/*.bb \ ${PKGDIR}/packages/busybox/*.bb \ ${PKGDIR}/packages/bwmon/*.bb \ ${PKGDIR}/packages/bzip2/*.bb \ ${PKGDIR}/packages/ccxstream/*.bb \ +${PKGDIR}/packages/cherokee/*.bb \ ${PKGDIR}/packages/coreutils/*.bb \ ${PKGDIR}/packages/cpio/*.bb \ ${PKGDIR}/packages/cron/*.bb \ ${PKGDIR}/packages/ctorrent/*.bb \ ${PKGDIR}/packages/cvs/*.bb \ +${PKGDIR}/packages/cyrus-imapd/*.bb \ +${PKGDIR}/packages/cyrus-sasl/*.bb \ ${PKGDIR}/packages/db/*.bb \ ${PKGDIR}/packages/devio/*.bb \ ${PKGDIR}/packages/diffstat/*.bb \ @@ -32,6 +36,7 @@ ${PKGDIR}/packages/dnsmasq/*.bb \ ${PKGDIR}/packages/dropbear/*.bb \ ${PKGDIR}/packages/e2fsprogs/*.bb \ ${PKGDIR}/packages/expat/*.bb \ +${PKGDIR}/packages/ez-ipupdate/*.bb \ ${PKGDIR}/packages/fakeroot/*.bb \ ${PKGDIR}/packages/file/*.bb \ ${PKGDIR}/packages/findutils/*.bb \ @@ -97,11 +102,13 @@ ${PKGDIR}/packages/m4/*.bb \ ${PKGDIR}/packages/mailx/*.bb \ ${PKGDIR}/packages/make/*.bb \ ${PKGDIR}/packages/makedevs/*.bb \ +${PKGDIR}/packages/masqmail/*.bb \ ${PKGDIR}/packages/mdadm/*.bb \ ${PKGDIR}/packages/meta/*.bb \ ${PKGDIR}/packages/mgetty/*.bb \ ${PKGDIR}/packages/miau/*.bb \ ${PKGDIR}/packages/microcom/*.bb \ +${PKGDIR}/packages/minicom/*.bb \ ${PKGDIR}/packages/module-init-tools/*.bb \ ${PKGDIR}/packages/modutils/*.bb \ ${PKGDIR}/packages/mt-daapd/*.bb \ @@ -182,5 +189,6 @@ ${PKGDIR}/packages/xdmcp/*.bb \ ${PKGDIR}/packages/xextensions/*.bb \ ${PKGDIR}/packages/xproto/*.bb \ ${PKGDIR}/packages/xtrans/*.bb \ +${PKGDIR}/packages/zd1211/*.bb \ ${PKGDIR}/packages/zlib/*.bb \ ${UCSLUGC_EXTRA_BBFILES}" diff --git a/conf/distro/ucslugc.conf b/conf/distro/ucslugc.conf index 2de9010a90..359f8e657f 100644 --- a/conf/distro/ucslugc.conf +++ b/conf/distro/ucslugc.conf @@ -7,6 +7,7 @@ DISTRO_NAME = "UcSlugC" DISTRO_VERSION = "3-beta" DISTRO_FEED = "unstable" DISTRO_TYPE = "beta" +SLUGOS_IMAGENAME = "ucslugc" # NOTE: to build new packages set UCSLUGC_EXTRA_BBFILES to the full path name to # the .bb files for the packages to build - see ucslugc-packages.conf in this diff --git a/conf/machine/collie.conf b/conf/machine/collie.conf index 428f47f71e..9384b0527b 100644 --- a/conf/machine/collie.conf +++ b/conf/machine/collie.conf @@ -6,10 +6,11 @@ TARGET_ARCH = "arm" IPKG_ARCHS = "all arm ${MACHINE}" PREFERRED_PROVIDER_xserver ?= "xserver-kdrive" PREFERRED_PROVIDER_virtual/kernel ?= "collie-kernels-2.4-embedix" -BOOTSTRAP_EXTRA_DEPENDS = "virtual/kernel hostap-modules orinoco-modules sharp-sdmmc-support" +BOOTSTRAP_EXTRA_DEPENDS = "virtual/kernel hostap-modules orinoco-modules sharp-sdmmc-support altboot" BOOTSTRAP_EXTRA_RDEPENDS = "kernel hostap-modules-cs orinoco-modules-cs \ sharp-sdmmc-support kernel-module-net-fd kernel-module-sa1100-bi \ -kernel-module-usbdcore kernel-module-usbdmonitor" +kernel-module-usbdcore kernel-module-usbdmonitor \ +altboot" # kernel-module-collie-ssp kernel-module-collie-tc35143af if buzzer.patch applied diff --git a/conf/machine/handheld-common.conf b/conf/machine/handheld-common.conf index 2445ee17a6..dab1d01e70 100644 --- a/conf/machine/handheld-common.conf +++ b/conf/machine/handheld-common.conf @@ -17,8 +17,8 @@ input uinput \ " # Configuration bits for "generic handheld" -BOOTSTRAP_EXTRA_DEPENDS += "pcmcia-cs apmd ppp wireless-tools irda-utils openswan wpa-supplicant-nossl lrzsz ppp-dialin scap network-suspend-scripts" +BOOTSTRAP_EXTRA_DEPENDS += "pcmcia-cs apmd ppp wireless-tools irda-utils openswan wpa-supplicant-nossl lrzsz ppp-dialin network-suspend-scripts" BOOTSTRAP_EXTRA_RDEPENDS += "pcmcia-cs apm apmd network-suspend-scripts" -BOOTSTRAP_EXTRA_RRECOMMENDS += "ppp wireless-tools irda-utils openswan wpa-supplicant-nossl lrzsz ppp-dialin scap ${@linux_module_packages('${HANDHELD_MODULES}', d)}" +BOOTSTRAP_EXTRA_RRECOMMENDS += "ppp wireless-tools irda-utils openswan wpa-supplicant-nossl lrzsz ppp-dialin ${@linux_module_packages('${HANDHELD_MODULES}', d)}" INHERIT += "linux_modules" diff --git a/conf/machine/ipaq-pxa270.conf b/conf/machine/ipaq-pxa270.conf index b9925852e5..626b5cf218 100644 --- a/conf/machine/ipaq-pxa270.conf +++ b/conf/machine/ipaq-pxa270.conf @@ -17,9 +17,9 @@ ROOT_FLASH_SIZE = "80" BOOTSTRAP_EXTRA_RDEPENDS = "kernel ipaq-boot-params ${@linux_module_packages('${PXA270_MODULES}', d)}" BOOTSTRAP_EXTRA_RDEPENDS_append = " udev module-init-tools" -PXA270_MODULES = "g_ether g_file_storage g_serial pxa27x_udc \ +PXA270_MODULES = "g_ether g_file_storage g_serial gadgetfs pxa27x_udc \ snd_pcm_oss snd_mixer_oss evdev mmc_block pcmcia hidp \ - nls_cp437 nls_utf8" + nls_cp437 nls_iso8859-1 nls_utf8" SERIAL_CONSOLE = "115200 ttyS0" @@ -27,15 +27,15 @@ include conf/machine/ipaq-common.conf include conf/machine/handheld-common.conf GUI_MACHINE_CLASS = "bigscreen" -GPE_EXTRA_DEPENDS += "gaim sylpheed" -GPE_EXTRA_INSTALL += "gaim sylpheed" +GPE_EXTRA_DEPENDS += "gaim" +GPE_EXTRA_INSTALL += "gaim" # Use tune-xscale per default. Machine independent feeds should be built with tune-strongarm. include conf/machine/tune-xscale.conf BOOTSTRAP_EXTRA_RDEPENDS += "${@linux_module_packages('${HX4700_MODULES}', d)}" HX4700_MODULES = "i2c-pxa asic3_mmc hx4700_bt hx4700_leds hx4700_navpt hx4700_pcmcia \ - hx4700_ts hx4700_wlan snd_pxa_i2sound_hx4700 hx4700_power" + hx4700_ts hx4700_wlan snd_hx4700_audio hx4700_power" module_autoload_hx4700_power = "hx4700_power" module_autoload_pcmcia = "pcmcia" @@ -45,9 +45,9 @@ module_autoload_mmc_block = "mmc_block" module_autoload_hx4700_ts = "hx4700_ts" module_autoload_hx4700_navpt = "hx4700_navpt" module_autoload_hx4700_bt = "hx4700_bt" -module_autoload_snd-pxa-i2sound-hx4700 = "snd-pxa-i2sound-hx4700" +module_autoload_snd-hx4700_audio = "snd-hx4700_audio" module_autoload_snd-pcm-oss = "snd-pcm-oss" -module_autoload_snd-pcm-oss = "snd-mixer-oss" +module_autoload_snd-mixer-oss = "snd-mixer-oss" module_autoload_pxa27x_udc = "pxa27x_udc" #FIXME: this should be controlled by a userspace utility later. diff --git a/conf/machine/nas100d.conf b/conf/machine/nas100d.conf new file mode 100644 index 0000000000..aa37f0920d --- /dev/null +++ b/conf/machine/nas100d.conf @@ -0,0 +1,149 @@ +#@TYPE: Machine +#@NAME: Iomega NAS 100d +#@DESCRIPTION: Machine configuration for the Iomega NAS 100d product + +#------------------------------------------------------------------------------- +# INPUTS +#------------------------------------------------------------------------------- +# conf/${DISTRO}.conf is included after this file and should be used to modify +# variables identified as 'INPUTS' to the required values for the DISTRO, this +# will cause the board specific settings (which depend for the most part on the +# exact CPU used) to be set correctly within this file. The results are the +# variables identifies here as 'OUTPUTS' +# +#variable = "default" +# <possible values> +# description + +ARCH_BYTE_SEX = "be" +# "be" "le" +# The memory byte sex and (on correctly implemented hardware - the NAS100D is +# correct) the byte sex of the buses within the system. 'be' (big-endian) +# means that the first byte is the most significant byte on a bus, 'le' +# (little-endian) means that the first byte is the least significant byte. + +ARM_INSTRUCTION_SET = "arm" +# "arm" "thumb" +# The instruction set the compiler should use when generating application +# code. The kernel is always compiled with arm code at present. arm code +# is the original 32 bit ARM instruction set, thumb code is the 16 bit +# encoded RISC sub-set. Thumb code is smaller (maybe 70% of the ARM size) +# but requires more instructions (140% for 70% smaller code) so may be +# slower. + +THUMB_INTERWORK = "yes" +# "yes" "no" +# Whether to compile with code to allow interworking between the two +# instruction sets. This allows thumb code to be executed on a primarily +# arm system and vice versa. It is strongly recommended that DISTROs not +# turn this off - the actual cost is very small. + +DISTRO_BASE = "" +# "" ":<base>" +# If given this must be the name of a 'distro' to add to the bitbake OVERRIDES +# after ${DISTRO}, this allows different distros to share a common base of +# overrides. The value given must include a leading ':' or chaos will result. + +#------------------------------------------------------------------------------- +# OUTPUTS +#------------------------------------------------------------------------------- + +#OVERRIDES +# The standard ':' separated list of overrides used by bitbake - see the +# basic setting in bitbake.conf. This list is based on that used for the +# standard setting however :<base>, :thumb and :thumb-interwork will be +# inserted at appropriate points if a base distro, default use of thumb or +# arm/thumb interworking are enabled in the inputs. +OVERRIDE_THUMB = "${@['', ':thumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}" +OVERRIDE_INTERWORK = "${@['', ':thumb-interwork'][bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes']}" +OVERRIDES = "local:${MACHINE}:${DISTRO}${DISTRO_BASE}:${TARGET_OS}:${TARGET_ARCH}${OVERRIDE_THUMB}${OVERRIDE_INTERWORK}:build-${BUILD_OS}" + +# TARGET_CC_ARCH +# TARGET_CC_KERNEL_ARCH +# TARGET_LD_ARCH +# TARGET_LD_KERNEL_ARCH +# Compiler and linker options for application code and kernel code. These +# options ensure that the compiler has the correct settings for the selected +# instruction set and interworking. +ARM_INTERWORK_M_OPT = "${@['-mno-thumb-interwork', '-mthumb-interwork'][bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes']}" +ARM_THUMB_M_OPT = "${@['-mno-thumb', '-mthumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}" +# +TARGET_CC_ARCH = "-march=armv5te -mtune=xscale ${ARM_INTERWORK_M_OPT} ${ARM_THUMB_M_OPT}" +TARGET_CC_KERNEL_ARCH = "-march=armv5te -mtune=xscale -mno-thumb-interwork -mno-thumb" +TARGET_LD_ARCH = "" +TARGET_LD_KERNEL_ARCH = "" + +# FULL_OPTIMIZATION +# Optimization settings. Os works fine and is significantly better than O2. +# The other settings are somewhat arbitrary. The optimisations chosen here +# include the ones which 'break' symbolic debugging (because the compiler does +# not include enough information to allow the debugger to know where given +# values are.) The -fno options are an attempt to cancel explicit use of space +# consuming options found in some packages (this isn't a complete list, this is +# just the ones which package writers seem to know about and abuse). +FULL_OPTIMIZATION = "-Os -fomit-frame-pointer -frename-registers \ + -fno-unroll-loops -fno-inline-functions \ + -fweb -funit-at-a-time" + +# TARGET_ARCH +# The correct setting for the system endianness (ARCH_BYTE_SEX). This will +# be arm (le) or armeb (be) - it is difficult to be more precise in the +# setting because of the large number of ways it is used within OpenEmbedded. +TARGET_ARCH = "${@['armeb', 'arm'][bb.data.getVar('ARCH_BYTE_SEX', d, 1) == 'le']}" + +# PACKAGE_ARCH +# The correct setting for the generated packages. This corresponds to the +# -march flag passed to the compiler because that limits the architectures +# on which the generated code will run. +BYTE_SEX_CHAR = "${@['b', 'l'][bb.data.getVar('ARCH_BYTE_SEX', d, 1) == 'le']}" +PACKAGE_ARCH_BASE = "${@['armv5te', 'thumbv5t'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}" +PACKAGE_ARCH = "${PACKAGE_ARCH_BASE}${BYTE_SEX_CHAR}" + +# IPKG_ARCHS +# The full list of package architectures which should run on the system. +# This takes into account both the board level issues and the INPUTS set +# by the distro. The arm list is derived from the architecture settings +# known to gcc, the thumb list is then derived from that (only the 't' +# architectures of course). +ARM_ARCHITECTURES = "${TARGET_ARCH} armv2${BYTE_SEX_CHAR} armv2a${BYTE_SEX_CHAR} armv3${BYTE_SEX_CHAR} armv3m${BYTE_SEX_CHAR} armv4${BYTE_SEX_CHAR} armv4t${BYTE_SEX_CHAR} armv5${BYTE_SEX_CHAR} armv5t${BYTE_SEX_CHAR} armv5e${BYTE_SEX_CHAR} armv5te${BYTE_SEX_CHAR} xscale${BYTE_SEX_CHAR}" +THUMB_ARCHITECTURES = "thumbe${BYTE_SEX_CHAR} thumbv4t${BYTE_SEX_CHAR} thumbv5t${BYTE_SEX_CHAR}" + +# NOTE: this list contains just the things which rootfs_ipk.bbclass does +# not add, rootfs_ipk.bbclass evaluates: +# +# ipkgarchs="all any noarch ${TARGET_ARCH} ${IPKG_ARCHS} ${MACHINE}" +# +# This is a priority ordered list - most desireable architecture at the end, +# so put <ARM_INSTRUCTION_SET>_ARCHITECTURES at the end and, if +# THUMB_INTERWORK precede this with the other architectures. +IPKG_ARCHS = "${@(lambda arch_thumb, arch_arm, is_arm, interwork: \ + (interwork and (is_arm and arch_thumb or arch_arm) + ' ' or '') \ + + (is_arm and arch_arm or arch_thumb)) \ + (bb.data.getVar('THUMB_ARCHITECTURES', d, 1), \ + bb.data.getVar('ARM_ARCHITECTURES', d, 1), \ + bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) != 'thumb', \ + bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes')}" + +#------------------------------------------------------------------------------- +# Miscellany +#------------------------------------------------------------------------------- +# The correct settings for the NAS100D board: +SERIAL_CONSOLE = "115200 ttyS0" +KERNEL_CONSOLE = "ttyS0,115200n8" +USE_VT = "0" + +#------------------------------------------------------------------------------- +# Package versions +#------------------------------------------------------------------------------- +CVSDATE_gnu-config ?= "20050713" +CVSDATE_gnu-config-native ?= "20050713" +CVSDATE_ipkg-utils ?= "20050713" +CVSDATE_ipkg-utils-native ?= "20050713" +CVSDATE_ipkg-link ?= "20050713" +CVSDATE_irssi ?= "20050930" + +CVS_TARBALL_STASH = "http://sources.nslu2-linux.org/sources/" +INHERIT += "nslu2-mirrors" + +PREFERRED_VERSION_ipkg ?= "0.99.152" +PREFERRED_VERSION_ipkg-native ?= "0.99.152" diff --git a/conf/machine/nslu2.conf b/conf/machine/nslu2.conf index d0f089be2a..be85a82048 100644 --- a/conf/machine/nslu2.conf +++ b/conf/machine/nslu2.conf @@ -44,6 +44,12 @@ DISTRO_BASE = "" # after ${DISTRO}, this allows different distros to share a common base of # overrides. The value given must include a leading ':' or chaos will result. +N2K_SUFFIX = "nslu2${ARCH_BYTE_SEX}" +# <string> +# Kernel suffix - 'nslu2be' or 'nslu2le' for a truely generic image, controls +# the suffix on the name of the generated zImage, override in the DISTRO +# configuration if patches or defconfig are changed for the DISTRO. + #------------------------------------------------------------------------------- # OUTPUTS #------------------------------------------------------------------------------- diff --git a/conf/machine/simpad.conf b/conf/machine/simpad.conf index 02cabf20f7..56cc2c0852 100644 --- a/conf/machine/simpad.conf +++ b/conf/machine/simpad.conf @@ -43,8 +43,8 @@ USE_DEVFS = "1" GUI_MACHINE_CLASS = "bigscreen" ROOT_FLASH_SIZE = "24" USE_VT = "0" -GPE_EXTRA_DEPENDS += "gaim sylpheed" -GPE_EXTRA_INSTALL += "gaim sylpheed" +GPE_EXTRA_DEPENDS += "gaim sylpheed suspend-desktop" +GPE_EXTRA_INSTALL += "gaim sylpheed suspend-desktop" include conf/machine/handheld-common.conf include conf/machine/tune-strongarm.conf diff --git a/conf/machine/spitz.conf b/conf/machine/spitz.conf index 79ce0c4193..9a53e8f1a9 100644 --- a/conf/machine/spitz.conf +++ b/conf/machine/spitz.conf @@ -13,7 +13,7 @@ PIVOTBOOT_EXTRA_RRECOMMENDS += "" # Useful things for the built-in Harddisk BOOTSTRAP_EXTRA_DEPENDS += "hdparm e2fsprogs" -BOOTSTRAP_EXTRA_RDEPENDS += "hdparm e2fsprogs e2fsprogs-e2fsck e2fsprogs-mke2fs" +BOOTSTRAP_EXTRA_RDEPENDS += "hdparm e2fsprogs" IMAGE_FSTYPES = "jffs2 tar.gz" diff --git a/conf/machine/tosa-2.6.conf b/conf/machine/tosa-2.6.conf index d21c6097fa..5455e3f0d5 100644 --- a/conf/machine/tosa-2.6.conf +++ b/conf/machine/tosa-2.6.conf @@ -6,9 +6,9 @@ module_autoload_snd-pxa2xx-ac97 = "snd-pxa2xx-ac97" module_autoload_snd-pcm-oss ="snd-pcm-oss" # WM97xx Modules -#BOOTSTRAP_EXTRA_RDEPENDS += "kernel-module-wm97xx-core kernel-module-wm9705 kernel-module-pxa-wm97xx" -#module_autoload_wm9705 = "wm9705" +BOOTSTRAP_EXTRA_RDEPENDS += "kernel-module-wm97xx-core kernel-module-wm9705 kernel-module-pxa-wm97xx" +module_autoload_wm9705 = "wm9705" #module_autoload_pxa-wm97xx = "pen_int=0" -BOOTSTRAP_EXTRA_RDEPENDS += "kernel-module-wm97xx" -module_autoload_wm97xx = "wm97xx" +#BOOTSTRAP_EXTRA_RDEPENDS += "kernel-module-wm97xx" +#module_autoload_wm97xx = "wm97xx" diff --git a/conf/machine/tune-arm926ejs.conf b/conf/machine/tune-arm926ejs.conf index 563586c902..5e2f6b7c62 100644 --- a/conf/machine/tune-arm926ejs.conf +++ b/conf/machine/tune-arm926ejs.conf @@ -1,2 +1,3 @@ -TARGET_CC_ARCH = "-march=armv5te -mtune=arm926ej-s" +#if gcc breaks change arm926ejs to arm926ej-s +TARGET_CC_ARCH = "-march=armv5te -mtune=arm926ejs" PACKAGE_ARCH = "armv5te" diff --git a/files/device_table-openslug.txt b/files/device_table-slugos.txt index 6cfc5fc5e0..6cfc5fc5e0 100644 --- a/files/device_table-openslug.txt +++ b/files/device_table-slugos.txt diff --git a/packages/at/at_3.1.8.bb b/packages/at/at_3.1.8.bb index 5e6c13ff00..7acbfa9664 100644 --- a/packages/at/at_3.1.8.bb +++ b/packages/at/at_3.1.8.bb @@ -1,7 +1,11 @@ -DEPENDS = "flex" DESCRIPTION = "Delayed job execution and batch processing." SECTION = "base" LICENSE="BSD" +DEPENDS = "flex" +RCONFLICTS = "atd" +RREPLACES = "atd" + +PR = "r1" SRC_URI = "${DEBIAN_MIRROR}/main/a/at/at_${PV}-11.tar.gz \ file://configure.patch;patch=1 \ diff --git a/packages/atd/atd_0.70.bb b/packages/atd/atd_0.70.bb index 64f7dc1f6a..5ba524b916 100644 --- a/packages/atd/atd_0.70.bb +++ b/packages/atd/atd_0.70.bb @@ -1,7 +1,10 @@ DESCRIPTION = "Lightweight At Daemon" SECTION = "base" LICENSE = "GPLV2" -PR = "r2" +RCONFLICTS = "at" +RREPLACES = "at" + +PR = "r3" SRC_URI = "${HANDHELDS_CVS};module=apps/atd;tag=ATD-0_70 \ file://no-oknodo.patch;patch=1" diff --git a/packages/avahi/avahi_0.1.bb b/packages/avahi/avahi_0.1.bb index 8d47af6475..b624028ee7 100644 --- a/packages/avahi/avahi_0.1.bb +++ b/packages/avahi/avahi_0.1.bb @@ -1,6 +1,6 @@ DESCRIPTION = "Avahi implements the DNS-SD over Multicast DNS" HOMEPAGE = "http://www.freedesktop.org/Software/Avahi" -LICENCE= "GPL" +LICENSE= "GPL" DEPENDS = "expat libdaemon dbus-0.34" RRECOMMENDS = "libnss-mdns" SECTION = "net" diff --git a/packages/avahi/avahi_0.2.bb b/packages/avahi/avahi_0.2.bb index c12ee70653..4411f05879 100644 --- a/packages/avahi/avahi_0.2.bb +++ b/packages/avahi/avahi_0.2.bb @@ -1,6 +1,6 @@ DESCRIPTION = "Avahi implements the DNS-SD over Multicast DNS" HOMEPAGE = "http://www.freedesktop.org/Software/Avahi" -LICENCE= "GPL" +LICENSE= "GPL" DEPENDS = "expat libdaemon dbus-0.34" RRECOMMENDS = "libnss-mdns" SECTION = "net" diff --git a/packages/avahi/avahi_0.4.bb b/packages/avahi/avahi_0.4.bb index b70ab6ceb5..af0b163e26 100644 --- a/packages/avahi/avahi_0.4.bb +++ b/packages/avahi/avahi_0.4.bb @@ -1,6 +1,6 @@ DESCRIPTION = "Avahi implements the DNS-SD over Multicast DNS" HOMEPAGE = "http://www.freedesktop.org/Software/Avahi" -LICENCE= "GPL" +LICENSE= "GPL" DEPENDS = "expat libdaemon dbus-0.50" RRECOMMENDS = "libnss-mdns" SECTION = "net" diff --git a/packages/avahi/avahi_0.5.2.bb b/packages/avahi/avahi_0.5.2.bb index 6a1a393e19..e4291db2c2 100644 --- a/packages/avahi/avahi_0.5.2.bb +++ b/packages/avahi/avahi_0.5.2.bb @@ -1,6 +1,6 @@ DESCRIPTION = "Avahi implements the DNS-SD over Multicast DNS" HOMEPAGE = "http://www.freedesktop.org/Software/Avahi" -LICENCE= "GPL" +LICENSE= "GPL" DEPENDS = "expat libdaemon dbus-0.50" RRECOMMENDS = "libnss-mdns" SECTION = "net" diff --git a/packages/avahi/avahi_0.5.bb b/packages/avahi/avahi_0.5.bb index 55a26ef16a..b83172e263 100644 --- a/packages/avahi/avahi_0.5.bb +++ b/packages/avahi/avahi_0.5.bb @@ -1,6 +1,6 @@ DESCRIPTION = "Avahi implements the DNS-SD over Multicast DNS" HOMEPAGE = "http://www.freedesktop.org/Software/Avahi" -LICENCE= "GPL" +LICENSE= "GPL" DEPENDS = "expat libdaemon dbus-0.50" RRECOMMENDS = "libnss-mdns" SECTION = "net" diff --git a/packages/avahi/avahi_0.6.bb b/packages/avahi/avahi_0.6.bb new file mode 100644 index 0000000000..4ea3841f1d --- /dev/null +++ b/packages/avahi/avahi_0.6.bb @@ -0,0 +1,51 @@ +DESCRIPTION = "Avahi implements the DNS-SD over Multicast DNS" +HOMEPAGE = "http://www.freedesktop.org/Software/Avahi" +LICENSE= "GPL" +DEPENDS = "expat libdaemon dbus-0.50" +RRECOMMENDS = "libnss-mdns" +SECTION = "net" +PRIORITY = "optional" +PR = "r0" + +SRC_URI = "http://www.freedesktop.org/~lennart/avahi-${PV}.tar.gz" + +PACKAGES = "avahi-daemon libavahi-common libavahi-core libavahi-client avahi-dnsconfd libavahi-glib avahi-dev avahi-doc" + +FILES_libavahi-common = "${libdir}/libavahi-common.so.*" +FILES_libavahi-core= "${libdir}/libavahi-core.so.*" +FILES_avahi-daemon = "${sbindir}/avahi-daemon \ + ${sysconfdir}/avahi/avahi-daemon.conf \ + ${sysconfdir}/avahi/services \ + ${sysconfdir}/dbus-1 \ + ${sysconfdir}/init.d/avahi-daemon \ + ${datadir}/avahi/introspection/*.introspect \ + ${datadir}/avahi/avahi-service.dtd \ + ${datadir}/avahi/service-types" +FILES_libavahi-client = "${libdir}/libavahi-client.so.*" +FILES_avahi-dnsconfd = "${sbindir}/avahi-dnsconfd \ + ${sysconfdir}/avahi/avahi-dnsconfd.action \ + ${sysconfdir}/init.d/avahi-dnsconfd" +FILES_libavahi-glib = "${libdir}/libavahi-glib.so.*" + +CONFFILES_avahi-daemon = "${sysconfdir}/avahi/avahi-daemon.conf" + +EXTRA_OECONF = "--with-distro=debian --disable-gdbm --disable-gtk --disable-mono --disable-monodoc --disable-qt3 --disable-qt4 --disable-python" +inherit autotools +inherit update-rc.d + +INITSCRIPT_PACKAGES = "avahi-daemon avahi-dnsconfd" +INITSCRIPT_NAME_avahi-daemon = "avahi-daemon" +INITSCRIPT_PARAMS_avahi-daemon = "defaults 21 19" +INITSCRIPT_NAME_avahi-dnsconfd = "avahi-dnsconfd" +INITSCRIPT_PARAMS_avahi-dnsconfd = "defaults 22 19" + +pkg_postinst_avahi-daemon () { + grep avahi /etc/group || addgroup avahi + grep avahi /etc/passwd || adduser --disabled-password --system --home /var/run/avahi-daemon --no-create-home avahi --ingroup avahi -g Avahi + /etc/init.d/dbus-1 force-reload +} + +pkg_postrm_avahi-daemon () { + deluser avahi || true + delgroup avahi || true +} diff --git a/packages/hdparm/hdparm-6.1/.mtn2git_empty b/packages/bluesnarfer/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/hdparm/hdparm-6.1/.mtn2git_empty +++ b/packages/bluesnarfer/.mtn2git_empty diff --git a/packages/bluesnarfer/bluesnarfer.bb b/packages/bluesnarfer/bluesnarfer.bb new file mode 100644 index 0000000000..48f4484cff --- /dev/null +++ b/packages/bluesnarfer/bluesnarfer.bb @@ -0,0 +1,24 @@ +SECTION = "net/misc" +DESCRIPTION = "Bluetooth cellphone information gatherer" +MAINTAINER = "Bob Davies (tyggerbob@gmail.com)" +PV = "0.1" +SRC_URI = "http://www.remote-exploit.org/images/a/a0/Bluesnarfer.tar.gz" + +DEFAULT_PREFERENCE="-1" + + +CFLAGS_prepend = "-I${STAGING_INCDIR}/bluetooth " + +LDFLAGS_prepend = "-lbluetooth -L${STAGING_LIBDIR} " + +S = "${WORKDIR}/bluesnarfer" +LICENSE = "GPL" +do_compile() { + oe_runmake bluesnarfer +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${S}/bluesnarfer ${D}${bindir} +} + diff --git a/packages/bogofilter/bogofilter_0.96.0.bb b/packages/bogofilter/bogofilter_0.96.0.bb index 55393c754c..0b85c96ada 100644 --- a/packages/bogofilter/bogofilter_0.96.0.bb +++ b/packages/bogofilter/bogofilter_0.96.0.bb @@ -1,11 +1,11 @@ SECTION = "console/network" -DEPENDS = "db3" +DEPENDS = "virtual/db" RDEPENDS = "glibc-gconv glibc-gconv-iso8859-1" DESCRIPTION = "Bogofilter is a mail filter that classifies mail as spam or ham (non-spam) \ by a statistical analysis of the message's header and content (body). \ The program is able to learn from the user's classifications and corrections." LICENSE = "GPL" -PR = "r4" +PR = "r5" PRIORITY = "optional" SRC_URI = "http://download.sourceforge.net/bogofilter/bogofilter-${PV}.tar.bz2 \ diff --git a/packages/linux/linux-openzaurus-2.6.14-rc1/.mtn2git_empty b/packages/cherokee/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/linux/linux-openzaurus-2.6.14-rc1/.mtn2git_empty +++ b/packages/cherokee/.mtn2git_empty diff --git a/packages/cherokee/cherokee_0.4.29.bb b/packages/cherokee/cherokee_0.4.29.bb new file mode 100644 index 0000000000..0d2eb3dcfb --- /dev/null +++ b/packages/cherokee/cherokee_0.4.29.bb @@ -0,0 +1,24 @@ +# Cherokee web server +DESCRIPTION = "Cherokee Web Server fast and secure" +LICENSE = "GPL" +DEPENDS = "openssl pcre" +SRC_URI = "http://www.0x50.org/download/0.4/${PV}/${P}.tar.gz \ + file://configure.patch;patch=1 \ + file://Makefile.in.patch;patch=1 \ + file://Makefile.cget.patch;patch=1 \ + file://util.patch;patch=1" + +inherit autotools + +LEAD_SONAME = "libcherokee-base" + +EXTRA_OECONF = "--enable-tls=openssl --disable-static --disable-nls" + +do_configure() { + gnu-configize + oe_runconf +} + +do_install_prepend () { + $BUILD_CC -DHAVE_SYS_STAT_H -o cherokee_replace cherokee_replace.c +} diff --git a/packages/linux/nslu2-kernel/2.6.13/.mtn2git_empty b/packages/cherokee/files/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/linux/nslu2-kernel/2.6.13/.mtn2git_empty +++ b/packages/cherokee/files/.mtn2git_empty diff --git a/packages/cherokee/files/Makefile.cget.patch b/packages/cherokee/files/Makefile.cget.patch new file mode 100644 index 0000000000..bb6b2141b3 --- /dev/null +++ b/packages/cherokee/files/Makefile.cget.patch @@ -0,0 +1,23 @@ + +# +# Patch managed by http://www.xwaves.net +# + +--- cherokee-0.4.29/cget/Makefile.in~Makefile.cget ++++ cherokee-0.4.29/cget/Makefile.in +@@ -56,6 +56,7 @@ + cget_OBJECTS = $(am_cget_OBJECTS) + am__DEPENDENCIES_1 = + cget_DEPENDENCIES = ../cherokee/libcherokee-client.la \ ++ ../cherokee/libcherokee-base.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) + DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) +@@ -286,6 +287,7 @@ + + cget_LDADD = \ + ../cherokee/libcherokee-client.la \ ++../cherokee/libcherokee-base.la \ + $(TLS_LIBS) \ + $(PTHREAD_LIBS) \ + $(PTHREAD_CFLAGS) diff --git a/packages/cherokee/files/Makefile.in.patch b/packages/cherokee/files/Makefile.in.patch new file mode 100644 index 0000000000..9d278121b4 --- /dev/null +++ b/packages/cherokee/files/Makefile.in.patch @@ -0,0 +1,33 @@ + +# +# Patch managed by http://www.xwaves.net +# + +--- cherokee-0.4.29/cherokee/Makefile.in~Makefile ++++ cherokee-0.4.29/cherokee/Makefile.in +@@ -403,11 +403,11 @@ + am_cherokee_admin_OBJECTS = cherokee_admin.$(OBJEXT) + cherokee_admin_OBJECTS = $(am_cherokee_admin_OBJECTS) + cherokee_admin_DEPENDENCIES = libcherokee-config.la \ +- libcherokee-base.la libcherokee-client.la ++ libcherokee-base.la libcherokee-client.la libcherokee-server.la + am_cherokee_logrotate_OBJECTS = cherokee_logrotate.$(OBJEXT) + cherokee_logrotate_OBJECTS = $(am_cherokee_logrotate_OBJECTS) + cherokee_logrotate_DEPENDENCIES = libcherokee-config.la \ +- libcherokee-base.la libcherokee-client.la ++ libcherokee-base.la libcherokee-client.la libcherokee-server.la + binSCRIPT_INSTALL = $(INSTALL_SCRIPT) + SCRIPTS = $(bin_SCRIPTS) + DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) +@@ -1343,9 +1343,9 @@ + + cherokee_LDFLAGS = -export-dynamic + cherokee_logrotate_SOURCES = cherokee_logrotate.c +-cherokee_logrotate_LDADD = libcherokee-config.la libcherokee-base.la libcherokee-client.la ++cherokee_logrotate_LDADD = libcherokee-config.la libcherokee-base.la libcherokee-client.la libcherokee-server.la + cherokee_admin_SOURCES = cherokee_admin.c +-cherokee_admin_LDADD = libcherokee-config.la libcherokee-base.la libcherokee-client.la ++cherokee_admin_LDADD = libcherokee-config.la libcherokee-base.la libcherokee-client.la libcherokee-server.la + + #noinst_PROGRAMS = cherokee_modules cherokee_base64 cherokee_headers cherokee_fastcgi + diff --git a/packages/cherokee/files/configure.patch b/packages/cherokee/files/configure.patch new file mode 100644 index 0000000000..9c34d961ac --- /dev/null +++ b/packages/cherokee/files/configure.patch @@ -0,0 +1,127 @@ + +# +# Patch managed by http://www.xwaves.net +# + +--- cherokee-0.4.29/configure~configure ++++ cherokee-0.4.29/configure +@@ -28929,59 +28929,8 @@ + if test "x$have_epoll_include" = "xyes"; then + echo "$as_me:$LINENO: checking for epoll system call" >&5 + echo $ECHO_N "checking for epoll system call... $ECHO_C" >&6 +- +- if test "$cross_compiling" = yes; then +- { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +-See \`config.log' for more details." >&5 +-echo "$as_me: error: cannot run test program while cross compiling +-See \`config.log' for more details." >&2;} +- { (exit 1); exit 1; }; } +-else +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +- +- #include <stdint.h> +- #include <sys/param.h> +- #include <sys/types.h> +- #include <sys/syscall.h> +- #include <sys/epoll.h> +- #include <unistd.h> +- +- int epoll_create (int size) { +- return (syscall(__NR_epoll_create, size)); +- } +- +- int main (int argc, char **argv) { +- int epfd; +- epfd = epoll_create(256); +- exit (epfd == -1 ? 1 : 0); +- } +- +-_ACEOF +-rm -f conftest$ac_exeext +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- have_epoll=yes +-else +- echo "$as_me: program exited with status $ac_status" >&5 +-echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +-fi +-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +-fi ++have_epoll=yes ++ + echo "$as_me:$LINENO: result: $have_epoll" >&5 + echo "${ECHO_T}$have_epoll" >&6 + fi +@@ -32593,55 +32542,9 @@ + # Is sendfile broken? + echo "$as_me:$LINENO: checking if sendfile works" >&5 + echo $ECHO_N "checking if sendfile works... $ECHO_C" >&6 +-if test "$cross_compiling" = yes; then +- { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +-See \`config.log' for more details." >&5 +-echo "$as_me: error: cannot run test program while cross compiling +-See \`config.log' for more details." >&2;} +- { (exit 1); exit 1; }; } +-else +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <errno.h> +- int main() { +- int o = 0; +- if (-1 == sendfile(0, 0, &o, 0) && errno == ENOSYS) return -1; +- return 0; +- } +-_ACEOF +-rm -f conftest$ac_exeext +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- echo "$as_me:$LINENO: result: yes" >&5 +-echo "${ECHO_T}yes" >&6 +-else +- echo "$as_me: program exited with status $ac_status" >&5 +-echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + +-( exit $ac_status ) +- echo "$as_me:$LINENO: result: no" >&5 +-echo "${ECHO_T}no" >&6 +- +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_SENDFILE_BROKEN 1 +-_ACEOF +- +-fi +-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +-fi ++echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 + + # readdir_r() + diff --git a/packages/cherokee/files/util.patch b/packages/cherokee/files/util.patch new file mode 100644 index 0000000000..5319f18190 --- /dev/null +++ b/packages/cherokee/files/util.patch @@ -0,0 +1,19 @@ + +# +# Patch managed by http://www.xwaves.net +# + +--- cherokee-0.4.29/cherokee/util.c~util ++++ cherokee-0.4.29/cherokee/util.c +@@ -348,9 +348,9 @@ + + + +-#if defined(HAVE_PTHREAD) && !defined(HAVE_READDIR_R) ++/*#if defined(HAVE_PTHREAD) && !defined(HAVE_READDIR_R)*/ + static pthread_mutex_t readdir_mutex = PTHREAD_MUTEX_INITIALIZER; +-#endif ++/*#endif*/ + + /* The readdir subroutine is reentrant when an application program + * uses different DirectoryPointer parameter values (returned from the diff --git a/packages/linux/nslu2-kernel/2.6.14-rc5-mm1/.mtn2git_empty b/packages/cmake/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/linux/nslu2-kernel/2.6.14-rc5-mm1/.mtn2git_empty +++ b/packages/cmake/.mtn2git_empty diff --git a/packages/cmake/cmake-native_2.2.2.bb b/packages/cmake/cmake-native_2.2.2.bb new file mode 100644 index 0000000000..743316f6dc --- /dev/null +++ b/packages/cmake/cmake-native_2.2.2.bb @@ -0,0 +1,21 @@ +# cppunit OE build file +# Copyright (C) 2005, Koninklijke Philips Electronics NV. All Rights Reserved +# Released under the MIT license (see packages/COPYING) + +DESCRIPTION = "A cross-platform, open-source make system" +HOMEPAGE = "http://www.cmake.org/" +LICENSE = "Berkely-style license" +SECTION = "console/utils" +MAINTAINER = "Eddy Pronk <epronk@muftor.com>" + +SRC_URI = "http://www.cmake.org/files/v2.2/cmake-2.2.1.tar.gz" + +inherit autotools + +S = "${WORKDIR}/cmake-2.2.1" + +inherit native + +do_configure () { + ./configure --prefix=${base_prefix} || die "./bootstrap failed" +} diff --git a/packages/console-tools/console-tools-0.3.2/kbdrate.patch b/packages/console-tools/console-tools-0.3.2/kbdrate.patch new file mode 100644 index 0000000000..47d7ea54b9 --- /dev/null +++ b/packages/console-tools/console-tools-0.3.2/kbdrate.patch @@ -0,0 +1,73 @@ +Patch from Matthias Goebl <oe@m.goebl.net> +Added via OE bugtracker: bug #478 + +--- console-tools-0.3.2/kbdtools/kbd_mode.c.orig ++++ console-tools-0.3.2/kbdtools/kbd_mode.c +@@ -29,11 +29,16 @@ + OPT("-u --unicode ", _("UTF-8 mode (UNICODE)")); + OPT("-s --scancode ", _("scancode mode (RAW)")); + OPT(" --mode={8bit,keycode,unicode,scancode} ", _("set mode")); ++ OPT("-r --rate=RATE ", _("set repeat rate (default: 33)")); ++ OPT("-d --delay=DELAY ", _("set repeat delay (default: 250)")); + + OPT("-h --help ", HELPDESC); + OPT("-V --version ", VERSIONDESC); + } + ++int rate=-1; ++int delay=-1; ++ + static int parse_cmdline (int argc, char *argv[]) + { + int mode = -1; +@@ -46,11 +51,13 @@ + { "mode" , required_argument, NULL, 'm' }, + { "scancode" , no_argument, NULL, 's' }, + { "unicode" , no_argument, NULL, 'u' }, ++ { "rate" , required_argument, NULL, 'r' }, ++ { "delay" , required_argument, NULL, 'd' }, + { NULL, 0, NULL, 0 } + }; + int c; + +- while ( (c = getopt_long (argc, argv, "Vhaksu", long_opts, NULL)) != EOF) ++ while ( (c = getopt_long (argc, argv, "Vhaksur:d:", long_opts, NULL)) != EOF) + switch (c) { + case 'h': + usage (); +@@ -58,6 +65,14 @@ + case 'V': + version (); + exit(0); ++ case 'r': ++ rate = atoi(optarg); ++ mode = -2; ++ break; ++ case 'd': ++ delay = atoi(optarg); ++ mode = -2; ++ break; + case 'a': + mode = K_XLATE; + break; +@@ -129,6 +144,20 @@ + exit(0); + } + ++ if ( rate != -1 || delay != -1 ) ++ { ++ struct kbd_repeat kbd_rep; ++ kbd_rep.delay = delay; ++ kbd_rep.period = rate; ++ if (ioctl(fd, KDKBDREP, &kbd_rep)) ++ { ++ fprintf(stderr, progname); ++ perror(_(": error setting keyboard repeat mode\n")); ++ exit(1); ++ } ++ if(mode==-2) exit(0); ++ } ++ + if (ioctl(fd, KDSKBMODE, mode)) + { + fprintf(stderr, progname); diff --git a/packages/console-tools/console-tools_0.3.2.bb b/packages/console-tools/console-tools_0.3.2.bb index 2a94a4f896..f7455825e0 100644 --- a/packages/console-tools/console-tools_0.3.2.bb +++ b/packages/console-tools/console-tools_0.3.2.bb @@ -1,12 +1,13 @@ SECTION = "base" LICENSE = "GPL" DESCRIPTION = "Allows you to set-up and manipulate the Linux console." -PR = "r1" +PR = "r2" SRC_URI = "${SOURCEFORGE_MIRROR}/lct/console-tools-${PV}.tar.gz \ file://codepage.patch;patch=1 \ file://configure.patch;patch=1 \ file://compile.patch;patch=1 \ + file://kbdrate.patch;patch=1 \ file://config/*.m4" export SUBDIRS = "fontfiletools vttools kbdtools screenfonttools contrib \ @@ -43,4 +44,4 @@ pkg_prerm_${PN} () { update-alternatives --remove deallocvt deallocvt.${PN} update-alternatives --remove openvt openvt.${PN} } - + diff --git a/packages/linux/openslug-kernel-2.6.11.2/.mtn2git_empty b/packages/cppunit/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/linux/openslug-kernel-2.6.11.2/.mtn2git_empty +++ b/packages/cppunit/.mtn2git_empty diff --git a/packages/cppunit/cppunit_1.10.2.bb b/packages/cppunit/cppunit_1.10.2.bb new file mode 100644 index 0000000000..480b869169 --- /dev/null +++ b/packages/cppunit/cppunit_1.10.2.bb @@ -0,0 +1,19 @@ +# cppunit OE build file +# Copyright (C) 2005, Koninklijke Philips Electronics NV. All Rights Reserved +# Released under the MIT license (see packages/COPYING) + +DESCRIPTION = "Unit Testing Library for C++" +HOMEPAGE = "http://cppunit.sourceforge.net/" +LICENSE = "LGPL" +SECTION = "devel" +MAINTAINER = "Eddy Pronk <epronk@muftor.com>" + +SRC_URI = "${SOURCEFORGE_MIRROR}/cppunit/cppunit-${PV}.tar.gz" + +inherit autotools + +do_stage () { + autotools_stage_includes + cd ./src/cppunit/.libs/ + oe_libinstall -a -so libcppunit ${STAGING_LIBDIR} +} diff --git a/packages/cyrus-imapd/cyrus-imapd_2.2.12.bb b/packages/cyrus-imapd/cyrus-imapd_2.2.12.bb index e1290ef1f9..e18f21bf6f 100644 --- a/packages/cyrus-imapd/cyrus-imapd_2.2.12.bb +++ b/packages/cyrus-imapd/cyrus-imapd_2.2.12.bb @@ -1,7 +1,7 @@ SECTION = "console/network" -DEPENDS = "cyrus-sasl db3" +DEPENDS = "cyrus-sasl virtual/db" LICENSE = "BSD" -PR = "r6" +PR = "r8" DEPENDS += "install-native" SRC_URI = "ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-imapd-${PV}.tar.gz \ @@ -18,24 +18,26 @@ inherit autotools update-rc.d INITSCRIPT_NAME = "cyrus" INITSCRIPT_PARAMS = "start 56 3 4 5 . stop 15 0 1 6 ." +TARGET_LDFLAGS_append_thumb = " -lpthread" EXTRA_OECONF = "--with-auth=unix \ + --with-dblib=berkeley \ + --with-bdb-libdir=${STAGING_LIBDIR} \ + --with-bdb-incdir=${STAGING_INCDIR} \ --without-perl \ --without-snmp" FILES_${PN} += "${prefix}/cyrus/bin" -# Target only, the db4 headers are in include/db4, so *prepend* this -# directory to the search path -TARGET_CPPFLAGS =+ "-I${STAGING_DIR}/${TARGET_SYS}/include/db4" - # All, lib/foo.c includes <config.h> from the top level directory and # is natively compiled BUILD_CPPFLAGS += " -I${S} -I${S}/et" do_install_append () { + install -d ${D}${sysconfdir}/init.d install -m 755 ${WORKDIR}/cyrus ${D}${sysconfdir}/init.d/cyrus install -m 644 ${WORKDIR}/cyrus.conf_2.2 ${D}${sysconfdir}/cyrus.conf install -m 644 ${WORKDIR}/imapd.conf_2.2 ${D}${sysconfdir}/imapd.conf + install -d ${D}${sysconfdir}/default/volatiles install -m 644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/01_cyrus-imapd } diff --git a/packages/cyrus-sasl/cyrus-sasl_2.1.17.bb b/packages/cyrus-sasl/cyrus-sasl_2.1.17.bb index f6cce561d5..381486bc81 100644 --- a/packages/cyrus-sasl/cyrus-sasl_2.1.17.bb +++ b/packages/cyrus-sasl/cyrus-sasl_2.1.17.bb @@ -1,5 +1,5 @@ SECTION = "console/network" -DEPENDS = "db3" +DEPENDS = "virtual/db" DESCRIPTION = "Generic client/server library for SASL authentication." LICENSE = "BSD" diff --git a/packages/cyrus-sasl/cyrus-sasl_2.1.18.bb b/packages/cyrus-sasl/cyrus-sasl_2.1.18.bb index 5a1bf9f201..0295b2eb09 100644 --- a/packages/cyrus-sasl/cyrus-sasl_2.1.18.bb +++ b/packages/cyrus-sasl/cyrus-sasl_2.1.18.bb @@ -1,5 +1,5 @@ SECTION = "console/network" -DEPENDS = "db3" +DEPENDS = "virtual/db" DESCRIPTION = "Generic client/server library for SASL authentication." LICENSE = "BSD" diff --git a/packages/cyrus-sasl/cyrus-sasl_2.1.19.bb b/packages/cyrus-sasl/cyrus-sasl_2.1.19.bb index c76fe3e8f3..90c44c912f 100644 --- a/packages/cyrus-sasl/cyrus-sasl_2.1.19.bb +++ b/packages/cyrus-sasl/cyrus-sasl_2.1.19.bb @@ -1,8 +1,8 @@ SECTION = "console/network" -DEPENDS = "db3 openssl" +DEPENDS = "openssl virtual/db" DESCRIPTION = "Generic client/server library for SASL authentication." LICENSE = "BSD" -PR = "r6" +PR = "r7" SRC_URI = "ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-${PV}.tar.gz \ file://berkdb.m4.patch;patch=1" @@ -11,9 +11,10 @@ inherit autotools acpaths = "-I ${S}/cmulocal -I ${S}/config -I ." CFLAGS_append = " -I${S}/include -I${S}/saslauthd/include" +TARGET_LDFLAGS_append_thumb = " -lpthread" EXTRA_OECONF = "--enable-shared --enable-static --with-dblib=berkeley \ --with-bdb-libdir=${STAGING_LIBDIR} \ - --with-bdb-incdir=${STAGING_INCDIR}/db4 \ + --with-bdb-incdir=${STAGING_INCDIR} \ --without-pam \ --without-opie --without-des" diff --git a/packages/db/db-native_4.3.29.bb b/packages/db/db-native_4.3.29.bb new file mode 100644 index 0000000000..5aaeb4329e --- /dev/null +++ b/packages/db/db-native_4.3.29.bb @@ -0,0 +1,13 @@ +# This wrapper builds a native version of the SleepyCat +# Berkeley DB for those packages which need it (e.g. +# perl). +SECTION = "libs" +VIRTUAL_NAME = "virtual/db-native" +CONFLICTS = "db3-native" +#PR tracks the non-native package + +inherit native + +include db_${PV}.bb + +PACKAGES = "" diff --git a/packages/db/db3-native_3.2.9.bb b/packages/db/db3-native_3.2.9.bb index 13c6063669..44a8a5b605 100644 --- a/packages/db/db3-native_3.2.9.bb +++ b/packages/db/db3-native_3.2.9.bb @@ -1,4 +1,6 @@ SECTION = "libs" +VIRTUAL_NAME = "virtual/db-native" +CONFLICTS = "db-native" inherit native include db3_${PV}.bb diff --git a/packages/db/db3_3.2.9.bb b/packages/db/db3_3.2.9.bb index 4c78279745..335d83c173 100644 --- a/packages/db/db3_3.2.9.bb +++ b/packages/db/db3_3.2.9.bb @@ -2,7 +2,14 @@ SECTION = "libs" DESCRIPTION = "Berkeley DB v3." HOMEPAGE = "http://www.sleepycat.com" LICENSE = "BSD Sleepycat" -PR = "r1" +PR = "r2" +VIRTUAL_NAME ?= "virtual/db" +CONFLICTS = "db" + +# it doesn't make any sense to have multiple relational +# databases on an embedded machine, virtual/db allows +# a build to select the desired one. +PROVIDES += "${VIRTUAL_NAME}" SRC_URI = "ftp://sleepycat1.inetu.net/releases/db-${PV}.tar.gz \ file://autofoo.patch;patch=1" diff --git a/packages/db/db_4.3.27.bb b/packages/db/db_4.3.29.bb index 518fddee9f..31b0b91367 100644 --- a/packages/db/db_4.3.27.bb +++ b/packages/db/db_4.3.29.bb @@ -12,23 +12,31 @@ SECTION = "libs" DESCRIPTION = "Berkeley DB v4." HOMEPAGE = "http://www.sleepycat.com" LICENSE = "BSD Sleepycat" +VIRTUAL_NAME ?= "virtual/db" +CONFLICTS = "db3" PR = "r1" -SRC_URI = "http://downloads.sleepycat.com/${P}.tar.gz" +SRC_URI = "http://downloads.sleepycat.com/db-${PV}.tar.gz" +#SRC_URI_MD5 = "http://downloads.sleepycat.com/db-${PV}.tar.gz.md5" +SRC_URI += "file://arm-thumb-mutex.patch;patch=1" inherit autotools -# At present virtual/db is only in the db4 file, but it -# should probably be in the other candidates (db3, gdbm) -# because it doesn't make any sense to have multiple -# relational databases on an embedded machine... -PROVIDES += " db4 virtual/db" +# Put virtual/db in any appropriate provider of a +# relational database, use it as a dependency in +# place of a specific db and use: +# +# PREFERRED_PROVIDER_virtual/db +# +# to select the correct db in the build (distro) .conf +PROVIDES += "${VIRTUAL_NAME}" # bitbake isn't quite clever enough to deal with sleepycat, # the distribution sits in the expected directory, but all # the builds must occur from a sub-directory. The following # persuades bitbake to go to the right place -S = "${WORKDIR}/${P}/build_unix" +S = "${WORKDIR}/db-${PV}/dist" +B = "${WORKDIR}/db-${PV}/build_unix" # The executables go in a separate package - typically there # is no need to install these unless doing real database @@ -44,43 +52,38 @@ FILES_${PN}-bin = "${bindir}" FILES_${PN}-dev = "${includedir} ${libdir}" #configuration - set in local.conf to override -DB4_CONFIG ?= "--enable-o_direct --enable-smallbuild" +DB4_CONFIG ?= "--enable-o_direct --enable-smallbuild --enable-compat185" +EXTRA_OECONF = "${DB4_CONFIG}" + # Override the MUTEX setting here, the POSIX library is # the default - "POSIX/pthreads/library". # Don't ignore the nice SWP instruction on the ARM: -EXTRA_OECONF = "${DB4_CONFIG}" # These enable the ARM assembler mutex code, this won't # work with thumb compilation... ARM_MUTEX = "--with-mutex=ARM/gcc-assembly" -ARM_MUTEX_thumb = "" -# NOTE: only tested on nslu2, should probably be _armeb -EXTRA_OECONF_nslu2 = "${DB4_CONFIG} ${ARM_MUTEX}" +MUTEX = "" +MUTEX_arm = "${ARM_MUTEX}" +MUTEX_armeb = "${ARM_MUTEX}" +EXTRA_OECONF += "${MUTEX}" # Cancel the site stuff - it's set for db3 and destroys the # configure. CONFIG_SITE = "" do_configure() { - echo '#!/bin/sh' >${S}/configure - echo 'rm ${S}/configure' >>${S}/configure - echo 'exec ../dist/configure "$@"' >>${S}/configure - chmod a+x ${S}/configure oe_runconf } do_stage() { # The .h files get installed read-only, the autostage # function just uses cp -pPR, so do this by hand - # Install, for the moment, into include/db4 to avoid - # interfering with the db3 headers (which have the same - # name). -I${STAGING_INCDIR}/db4 to use db4, as opposed - # to db3. rm -rf ${STAGE_TEMP} mkdir -p ${STAGE_TEMP} oe_runmake DESTDIR="${STAGE_TEMP}" install_include - mkdir -p ${STAGING_INCDIR}/db4 - cp -pPRf ${STAGE_TEMP}/${includedir}/* ${STAGING_INCDIR}/db4 + cp -pPRf ${STAGE_TEMP}/${includedir}/* ${STAGING_INCDIR}/. rm -rf ${STAGE_TEMP} oe_libinstall -so -C .libs libdb-4.3 ${STAGING_LIBDIR} + ln -sf libdb-4.3.so ${STAGING_LIBDIR}/libdb.so + ln -sf libdb-4.3.a ${STAGING_LIBDIR}/libdb.a } do_install_append() { diff --git a/packages/linux/openslug-kernel-2.6.11/.mtn2git_empty b/packages/db/files/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/linux/openslug-kernel-2.6.11/.mtn2git_empty +++ b/packages/db/files/.mtn2git_empty diff --git a/packages/db/files/arm-thumb-mutex.patch b/packages/db/files/arm-thumb-mutex.patch new file mode 100644 index 0000000000..acd446fcd8 --- /dev/null +++ b/packages/db/files/arm-thumb-mutex.patch @@ -0,0 +1,36 @@ +--- db-4.3.29-dist/../dbinc/mutex.h 2005-11-15 07:33:27.761042518 -0800 ++++ db-4.3.29-dist/../dbinc/mutex.h 2005-11-15 07:55:24.823920060 -0800 +@@ -470,6 +470,25 @@ + #ifdef LOAD_ACTUAL_MUTEX_CODE + #define MUTEX_SET_TEST 1 /* gcc/arm: 0 is clear, 1 is set. */ + ++#if defined __thumb__ ++#define MUTEX_SET(tsl) ({ \ ++ int __r, __p; \ ++ asm volatile( \ ++ ".align 2\n\t" \ ++ "bx pc\n\t" \ ++ "nop\n\t" \ ++ ".arm\n\t" \ ++ "swpb %0, %2, [%3]\n\t" \ ++ "eor %0, %0, #1\n\t" \ ++ "orr %1, pc, #1\n\t" \ ++ "bx %1\n\t" \ ++ ".force_thumb" \ ++ : "=&r" (__r), "=r" (__p) \ ++ : "r" (1), "r" (tsl) \ ++ ); \ ++ __r & 1; \ ++}) ++#else + #define MUTEX_SET(tsl) ({ \ + int __r; \ + asm volatile( \ +@@ -480,6 +499,7 @@ + ); \ + __r & 1; \ + }) ++#endif + + #define MUTEX_UNSET(tsl) (*(volatile tsl_t *)(tsl) = 0) + #define MUTEX_INIT(tsl) MUTEX_UNSET(tsl) diff --git a/packages/dbh/dbh_1.0-18.bb b/packages/dbh/dbh_1.0-18.bb index a84bd95dd4..9bcf45c06c 100644 --- a/packages/dbh/dbh_1.0-18.bb +++ b/packages/dbh/dbh_1.0-18.bb @@ -4,6 +4,8 @@ DESCRIPTION ="Disk based hashes is a method to create multidimensional binary tr HOMEPAGE = "http://dbh.sourceforge.net" LICENSE = "GPL" SECTION = "libs" +PR = "r1" + SRC_URI = "${SOURCEFORGE_MIRROR}/dbh/dbh_${PV}.tar.bz2 \ file://${FILESDIR}/configure.patch;patch=1" @@ -16,5 +18,5 @@ do_stage() { install -m 644 src/dbh_functions.h ${STAGING_INCDIR} install -m 644 src/dbh.h ${STAGING_INCDIR} - oe_libinstall -C src/.libs libdbh-1.0 ${STAGING_LIBDIR} + oe_libinstall -C src/.libs libdbh ${STAGING_LIBDIR} } diff --git a/packages/linux/openslug-kernel-2.6.7/.mtn2git_empty b/packages/dcetest/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/linux/openslug-kernel-2.6.7/.mtn2git_empty +++ b/packages/dcetest/.mtn2git_empty diff --git a/packages/dcetest/dcetest.bb b/packages/dcetest/dcetest.bb new file mode 100644 index 0000000000..df99466b4d --- /dev/null +++ b/packages/dcetest/dcetest.bb @@ -0,0 +1,20 @@ +SECTION = "network/misc" +DESCRIPTION = "DCE Service enumerator for MS Windows systems" +MAINTAINER = "Bob Davies (tyggerbob@gmail.com)" +PV = "1.2" + +SRC_URI = "http://packetstormsecurity.org/UNIX/scanners/dcetest-2.0.tar.gz" + +DEFAULT_PREFERENCE="-1" + + +S = "${WORKDIR}/dcetest" +LICENSE = "GPL" +do_compile() { + oe_runmake dcetest +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${S}/dcetest ${D}${bindir} +} diff --git a/packages/dsniff/dsniff_2.3.bb b/packages/dsniff/dsniff_2.3.bb index fb820d7940..21e7c39674 100644 --- a/packages/dsniff/dsniff_2.3.bb +++ b/packages/dsniff/dsniff_2.3.bb @@ -1,8 +1,9 @@ SECTION = "console/network" DESCRIPTION = "dsniff is a collection of tools for network auditing and penetration testing." LICENSE = "BSD" +PR = "r1" -DEPENDS = "db3 libpcap libnet libnids openssl" +DEPENDS = "virtual/db libpcap libnet libnids openssl" SRC_URI = "http://www.monkey.org/~dugsong/dsniff/dsniff-${PV}.tar.gz \ file://configure.patch;patch=1" diff --git a/packages/linux/openslug-kernel-2.6.9/.mtn2git_empty b/packages/e2fsprogs/e2fsprogs-1.38/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/linux/openslug-kernel-2.6.9/.mtn2git_empty +++ b/packages/e2fsprogs/e2fsprogs-1.38/.mtn2git_empty diff --git a/packages/e2fsprogs/e2fsprogs-1.38/no-hardlinks.patch b/packages/e2fsprogs/e2fsprogs-1.38/no-hardlinks.patch new file mode 100644 index 0000000000..979f0d1f08 --- /dev/null +++ b/packages/e2fsprogs/e2fsprogs-1.38/no-hardlinks.patch @@ -0,0 +1,82 @@ +--- e2fsprogs-1.38/misc/Makefile.in.orig 2005-11-08 23:56:06.000000000 +0100 ++++ e2fsprogs-1.38/misc/Makefile.in 2005-11-08 23:59:15.000000000 +0100 +@@ -230,17 +230,13 @@ + $(INSTALL_PROGRAM) $$i $(DESTDIR)$(sbindir)/$$i; \ + done + @echo " LINK $(root_sbindir)/mkfs.ext2" +- @$(LN) -f $(DESTDIR)$(root_sbindir)/mke2fs \ +- $(DESTDIR)$(root_sbindir)/mkfs.ext2 ++ @(cd $(DESTDIR)$(root_sbindir) && $(LN_S) -f mke2fs mkfs.ext2) + @echo " LINK $(root_sbindir)/mkfs.ext3" +- @$(LN) -f $(DESTDIR)$(root_sbindir)/mke2fs \ +- $(DESTDIR)$(root_sbindir)/mkfs.ext3 ++ @(cd $(DESTDIR)$(root_sbindir) && $(LN_S) -f mke2fs mkfs.ext3) + @echo " LINK $(root_sbindir)/e2label" +- @$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \ +- $(DESTDIR)$(root_sbindir)/e2label ++ @(cd $(DESTDIR)$(root_sbindir) && $(LN_S) -f tune2fs e2label) + @echo " LINK $(root_sbindir)/findfs" +- @$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \ +- $(DESTDIR)$(root_sbindir)/findfs ++ @(cd $(DESTDIR)$(root_sbindir) && $(LN_S) -f tune2fs findfs) + @for i in $(UPROGS); do \ + echo " INSTALL $(bindir)/$$i"; \ + $(INSTALL_PROGRAM) $$i $(DESTDIR)$(bindir)/$$i; \ +@@ -259,11 +255,9 @@ + @$(RM) -f $(DESTDIR)$(man8dir)/mkfs.ext2.8.gz \ + $(DESTDIR)$(man8dir)/mkfs.ext3.8.gz + @echo " LINK mkfs.ext2.8" +- @$(LN) -f $(DESTDIR)$(man8dir)/mke2fs.8 \ +- $(DESTDIR)$(man8dir)/mkfs.ext2.8 ++ @(cd $(DESTDIR)$(man8dir) && $(LN_S) -f mke2fs.8 mkfs.ext2.8) + @echo " LINK mkfs.ext3.8" +- @$(LN) -f $(DESTDIR)$(man8dir)/mke2fs.8 \ +- $(DESTDIR)$(man8dir)/mkfs.ext3.8 ++ @(cd $(DESTDIR)$(man8dir) && $(LN_S) -f mke2fs.8 mkfs.ext3.8) + @for i in $(UMANPAGES); do \ + $(RM) -f $(DESTDIR)$(man1dir)/$$i.gz; \ + echo " INSTALL_DATA $(man1dir)/$$i"; \ +--- e2fsprogs-1.38/lib/uuid/Makefile.in.orig 2005-11-08 23:54:17.000000000 +0100 ++++ e2fsprogs-1.38/lib/uuid/Makefile.in 2005-11-08 23:55:51.000000000 +0100 +@@ -146,9 +146,9 @@ + @$(RM) -f $(DESTDIR)$(man3dir)/uuid_generate_random.3.gz \ + $(DESTDIR)$(man3dir)/uuid_generate_time.3.gz + @echo " LINK $(man3dir)/uuid_generate_random.3" +- @$(LN) -f $(DESTDIR)$(man3dir)/uuid_generate.3 $(DESTDIR)$(man3dir)/uuid_generate_random.3 ++ @(cd $(DESTDIR)$(man3dir) && $(LN_S) -f uuid_generate.3 uuid_generate_random.3) + @echo " LINK $(man3dir)/uuid_generate_time.3" +- @$(LN) -f $(DESTDIR)$(man3dir)/uuid_generate.3 $(DESTDIR)$(man3dir)/uuid_generate_time.3 ++ @(cd $(DESTDIR)$(man3dir) && $(LN_S) -f uuid_generate.3 uuid_generate_time.3) + @echo " INSTALL_DATA $(libdir)/pkgconfig/uuid.pc" + @$(INSTALL_DATA) uuid.pc $(DESTDIR)$(libdir)/pkgconfig/uuid.pc + +--- e2fsprogs-1.38/e2fsck/Makefile.in.orig 2005-11-08 23:53:07.000000000 +0100 ++++ e2fsprogs-1.38/e2fsck/Makefile.in 2005-11-08 23:53:43.000000000 +0100 +@@ -161,11 +161,9 @@ + $(INSTALL_PROGRAM) $$i $(DESTDIR)$(root_sbindir)/$$i; \ + done + @echo " LINK $(root_sbindir)/fsck.ext2" +- @$(LN) -f $(DESTDIR)$(root_sbindir)/e2fsck \ +- $(DESTDIR)$(root_sbindir)/fsck.ext2 ++ @(cd $(DESTDIR)$(root_sbindir) && $(LN_S) -f e2fsck fsck.ext2) + @echo " LINK $(root_sbindir)/fsck.ext3" +- @$(LN) -f $(DESTDIR)$(root_sbindir)/e2fsck \ +- $(DESTDIR)$(root_sbindir)/fsck.ext3 ++ @(cd $(DESTDIR)$(root_sbindir) && $(LN_S) -f e2fsck fsck.ext3) + @for i in $(MANPAGES); do \ + for j in $(COMPRESS_EXT); do \ + $(RM) -f $(DESTDIR)$(man8dir)/$$i.$$j; \ +@@ -174,11 +172,9 @@ + $(INSTALL_DATA) $$i $(DESTDIR)$(man8dir)/$$i; \ + done + @echo " LINK $(man8dir)/fsck.ext2.8" +- @$(LN) -f $(DESTDIR)$(man8dir)/e2fsck.8 \ +- $(DESTDIR)$(man8dir)/fsck.ext2.8 ++ @(cd $(DESTDIR)$(man8dir) && $(LN_S) -f e2fsck.8 fsck.ext2.8) + @echo " LINK $(man8dir)/fsck.ext3.8" +- @$(LN) -f $(DESTDIR)$(man8dir)/e2fsck.8 \ +- $(DESTDIR)$(man8dir)/fsck.ext3.8 ++ @(cd $(DESTDIR)$(man8dir) && $(LN_S) -f e2fsck.8 fsck.ext3.8) + + install-strip: install + @for i in $(PROGS); do \ diff --git a/packages/e2fsprogs/e2fsprogs_1.38.bb b/packages/e2fsprogs/e2fsprogs_1.38.bb index 25d4ffbe00..199493dc17 100644 --- a/packages/e2fsprogs/e2fsprogs_1.38.bb +++ b/packages/e2fsprogs/e2fsprogs_1.38.bb @@ -2,9 +2,10 @@ DESCRIPTION = "EXT2 Filesystem Utilities" HOMEPAGE = "http://e2fsprogs.sourceforge.net" LICENSE = "GPL" SECTION = "base" -PR = "r1" +PR = "r2" -SRC_URI = "${SOURCEFORGE_MIRROR}/e2fsprogs/e2fsprogs-${PV}.tar.gz" +SRC_URI = "${SOURCEFORGE_MIRROR}/e2fsprogs/e2fsprogs-${PV}.tar.gz \ + file://no-hardlinks.patch;patch=1" S = "${WORKDIR}/e2fsprogs-${PV}" inherit autotools @@ -34,17 +35,7 @@ do_stage () { done } -pkg_postinst_e2fsprogs-e2fsck() { - ln -s ${base_sbindir}/e2fsck ${base_sbindir}/fsck.ext2 - ln -s ${base_sbindir}/e2fsck ${base_sbindir}/fsck.ext3 -} - -pkg_postinst_e2fsprogs-mke2fs() { - ln -s ${base_sbindir}/mke2fs ${base_sbindir}/mkfs.ext2 - ln -s ${base_sbindir}/mke2fs ${base_sbindir}/mkfs.ext3 -} - -PACKAGES_prepend = "e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-fsck " +PACKAGES =+ "e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-fsck" FILES_e2fsprogs-fsck = "${base_sbindir}/fsck" -FILES_e2fsprogs-e2fsck = "${base_sbindir}/e2fsck" -FILES_e2fsprogs-mke2fs = "${base_sbindir}/mke2fs" +FILES_e2fsprogs-e2fsck = "${base_sbindir}/e2fsck ${base_sbindir}/fsck.ext*" +FILES_e2fsprogs-mke2fs = "${base_sbindir}/mke2fs ${base_sbindir}/mkfs.ext*" diff --git a/packages/nonworking/libnet/.mtn2git_empty b/packages/ez-ipupdate/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/nonworking/libnet/.mtn2git_empty +++ b/packages/ez-ipupdate/.mtn2git_empty diff --git a/packages/ez-ipupdate/ez-ipupdate_3.0.10.bb b/packages/ez-ipupdate/ez-ipupdate_3.0.10.bb new file mode 100644 index 0000000000..62cd506d9f --- /dev/null +++ b/packages/ez-ipupdate/ez-ipupdate_3.0.10.bb @@ -0,0 +1,32 @@ +# Angus Mackay's ez-ipupdate from www.ez-ipupdate.com +DESCRIPTION = "A client for automatically updating your EZ-IP.net, justlinux.com, dhs.org, dyndns.org, ods.org, gnudip.cheapnet.net, tzo.com, easydns.com dynamic hostname parameters. Includes daemon support that only sends updates if your IP address changes." +HOMEPAGE = "http://www.ez-ipupdate.com/" +MAINTAINER = "John Bowler <jbowler@acm.org>" +SECTION = "console/network" +PRIORITY = "optional" +LICENSE = "GPL" +PR = "r0" + +SRC_URI = "http://www.ez-ipupdate.com/dist/ez-ipupdate-${PV}.tar.gz" +SRC_URI += "file://configure.patch;patch=1" +SRC_URI += "file://conffile.patch;patch=1" +SRC_URI += "file://zoneedit.patch;patch=1" +SRC_URI += "file://init" +SRC_URI += "file://ipupdate.conf" + +INITSCRIPT_NAME = "ipupdate" +# No dependencies, so just go in at the standard level (20) +INITSCRIPT_PARAMS = "defaults" + +# The configuration file must be editted... +CONFFILES_${PN} = "${sysconfdir}/ipupdate.conf" + +inherit autotools update-rc.d + +PACKAGES = "ez-ipupdate" + +do_install_append() { + install -d "${D}${sysconfdir}/init.d" + install -c -m 755 ${WORKDIR}/init "${D}${sysconfdir}/init.d/ipupdate" + install -c -m 644 ${WORKDIR}/ipupdate.conf "${D}${sysconfdir}/ipupdate.conf" +} diff --git a/packages/nonworking/libnet/files/.mtn2git_empty b/packages/ez-ipupdate/files/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/nonworking/libnet/files/.mtn2git_empty +++ b/packages/ez-ipupdate/files/.mtn2git_empty diff --git a/packages/ez-ipupdate/files/conffile.patch b/packages/ez-ipupdate/files/conffile.patch new file mode 100644 index 0000000000..41f8a0e73b --- /dev/null +++ b/packages/ez-ipupdate/files/conffile.patch @@ -0,0 +1,10 @@ +--- ez-ipupdate-3.0.10/conf_file.c.orig 2005-11-27 20:03:46.557322517 -0800 ++++ ez-ipupdate-3.0.10/conf_file.c 2005-11-27 20:03:15.519369422 -0800 +@@ -34,6 +34,7 @@ + #include <stdio.h> + #include <stdlib.h> + #include <string.h> ++#include <errno.h> + + #include <conf_file.h> + diff --git a/packages/ez-ipupdate/files/configure.patch b/packages/ez-ipupdate/files/configure.patch new file mode 100644 index 0000000000..e6a945e4b2 --- /dev/null +++ b/packages/ez-ipupdate/files/configure.patch @@ -0,0 +1,11 @@ +--- ez-ipupdate-3.0.10/Makefile.am.orig 2005-11-27 15:24:05.857379643 -0800 ++++ ez-ipupdate-3.0.10/Makefile.am 2005-11-27 19:35:58.832379202 -0800 +@@ -1,7 +1,6 @@ + + bin_PROGRAMS = ez-ipupdate +-ez_ipupdate_SOURCES = ez-ipupdate.c conf_file.c conf_file.h md5.c md5.h cache_file.c cache_file.h error.h pid_file.c pid_file.h dprintf.h @EXTRASRC@ +-ez_ipupdate_LDADD = @EXTRAOBJ@ ++ez_ipupdate_SOURCES = ez-ipupdate.c conf_file.c conf_file.h md5.c md5.h cache_file.c cache_file.h error.h pid_file.c pid_file.h dprintf.h + + EXTRA_DIST = getpass.c ez-ipupdate.lsm example.conf example-pgpow.conf example-dhs.conf example-dyndns.conf example-ods.conf example-tzo.conf example-gnudip.conf example-easydns.conf example-justlinux.conf example-dyns.conf CHANGELOG mkbinary + diff --git a/packages/ez-ipupdate/files/init b/packages/ez-ipupdate/files/init new file mode 100644 index 0000000000..031c33c79b --- /dev/null +++ b/packages/ez-ipupdate/files/init @@ -0,0 +1,44 @@ +#!/bin/sh +# +# ipupdate init.d script for ez-ipupdate +# +# You *must* create or update the /etc/ipupdate.conf file for +# this to work +CONF=/etc/ipupdate.conf +PIDFILE=/var/run/ipupdate.pid +test -x /usr/bin/ez-ipupdate -a -r "${CONF}" || exit 0 +if egrep '^service-type=<type of service>$' "${CONF}" >/dev/null +then + # conf file not editted + exit 0 +fi + +case "$1" in + start) + echo -n "Starting ez-ipupdate: " + start-stop-daemon --start -x /usr/bin/ez-ipupdate -- -c "${CONF}" -d -F "${PIDFILE}" "$@" + echo "done" + ;; + stop) + echo -n "Stopping ez-ipupdate: " + start-stop-daemon --stop -s 3 -p "${PIDFILE}" + echo "done" + ;; + restart) + echo -n "Restarting ez-ipupdate: " + start-stop-daemon --stop -s 3 -p "${PIDFILE}" + start-stop-daemon --start -x /usr/bin/ez-ipupdate -- -c "${CONF}" -d -F "${PIDFILE}" "$@" + echo "done" + ;; + force-reload|reload) + # HUP causes a reload, a simple TERM causes the daemon + # to wake up and re-update the IP address + start-stop-daemon --stop -s 1 -p "${PIDFILE}" + ;; + *) + echo "Usage: ipupdate { start | stop | restart | reload }" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/packages/ez-ipupdate/files/ipupdate.conf b/packages/ez-ipupdate/files/ipupdate.conf new file mode 100644 index 0000000000..cbba491ef6 --- /dev/null +++ b/packages/ez-ipupdate/files/ipupdate.conf @@ -0,0 +1,36 @@ +#!/usr/bin/ez-ipupdate -c +# +# example config file for ez-ipupdate +# +# this file is actually executable! +# +#CHANGE this to the service name (ez-ipupdate --help for the list) +service-type=<type of service> +#CHANGE this to the user name and password on the service +user=myuserid:mypassword +#CHANGE this to the domain name to update +host=mydomain.whatever.com +# +interface=eth0 +quiet +# +# other options: +#address=<ip address> +#cache-file=/etc/ez-ipupdate.cache.eth1 +#daemon +#debug +#foreground +#host=<host> +#interface=<interface> +#mx=<mail exchanger> +#retrys=<number of trys> +#run-as-user=<user> +#server=<server name> +#timeout=<sec.millisec> +#max-interval=<time in seconds> +#notify-email=<email address> +#period=<time between update attempts> +#url=<url> +#user=<user name>[:password] +#wildcard +#quiet diff --git a/packages/ez-ipupdate/files/zoneedit.patch b/packages/ez-ipupdate/files/zoneedit.patch new file mode 100644 index 0000000000..c9d4e4a2c1 --- /dev/null +++ b/packages/ez-ipupdate/files/zoneedit.patch @@ -0,0 +1,11 @@ +--- ez-ipupdate-3.0.10/ez-ipupdate.c.orig 2005-11-27 22:59:39.149355269 -0800 ++++ ez-ipupdate-3.0.10/ez-ipupdate.c 2005-11-27 22:59:46.705830768 -0800 +@@ -3806,7 +3806,7 @@ int ZONEEDIT_update_entry(void) + break; + + case 200: +- if(strstr(buf, "<SUCCESS\n") != NULL) ++ if(strstr(buf, "<SUCCESS ") != NULL) + { + if(!(options & OPT_QUIET)) + { diff --git a/packages/gaim/files/desktop-name-cvs.patch b/packages/gaim/files/desktop-name-cvs.patch new file mode 100644 index 0000000000..d3ab483119 --- /dev/null +++ b/packages/gaim/files/desktop-name-cvs.patch @@ -0,0 +1,33 @@ +--- gaim/gaim.desktop.orig 2005-11-03 22:34:17 +0100 ++++ gaim/gaim.desktop 2005-11-03 22:34:50 +0100 +@@ -7,29 +7,7 @@ + Terminal=false + Type=Application + +-Name=Gaim Internet Messenger +-Name[ca]=Missatger d'Internet Gaim +-Name[cs]=Gaim Internet Messenger +-Name[da]=Gaim - internet beskeder +-Name[de]=Gaim Internet Messenger +-Name[es]=Gaim - cliente de mensajerÃa de Internet +-Name[fr]=Gaim Messagerie Internet +-Name[hu]=Gaim azonnali üzenetküldÅ‘ +-Name[it]=Gaim Internet Messenger +-Name[ja]=Gaim インターãƒãƒƒãƒˆãƒ»ãƒ¡ãƒƒã‚»ãƒ³ã‚¸ãƒ£ãƒ¼ +-Name[ko]=게임 ë©”ì‹ ì € +-Name[nb]=Gaim lynmeldingsklient +-Name[nl]=Gaim - Expresberichten +-Name[pl]=Komunikator Internetowy Gaim +-Name[pt_BR]=Mensageiro via Internet Gaim +-Name[pt]=Mensageiro Internet Gaim +-Name[ro]=Mesagerul Gaim +-Name[ru]=Gaim - клиент обмена мгновенными ÑообщениÑми +-Name[sl]=Gaim - spletni sel +-Name[sq]=Lajmësjellësi Internet Gaim +-Name[sv]=Gaim Internet Messenger +-Name[zh_CN]=Gaim 互è”ç½‘é€šè®¯ç¨‹åº +-Name[zh_TW]=Gaim 網路å³æ™‚通 ++Name=Gaim + + GenericName=Internet Messenger + GenericName[ca]=Missatger d'Internet diff --git a/packages/gaim/gaim_cvs.bb b/packages/gaim/gaim_cvs.bb index e851cd0c70..1547393c8a 100644 --- a/packages/gaim/gaim_cvs.bb +++ b/packages/gaim/gaim_cvs.bb @@ -3,7 +3,7 @@ PV = "2.0+cvs-${CVSDATE}" SRC_URI = "cvs://anonymous@cvs.sourceforge.net/cvsroot/gaim;module=gaim \ file://no-superimposed-version-on-logo.patch;patch=1 \ - file://desktop-name-2.0.0.patch;patch=1 \ + file://desktop-name-cvs.patch;patch=1 \ " include gaim.inc diff --git a/packages/gcc/gcc-4.0.2/.mtn2git_empty b/packages/gcc/gcc-4.0.2/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/gcc/gcc-4.0.2/.mtn2git_empty diff --git a/packages/gcc/gcc-4.0.2/arm-nolibfloat.patch b/packages/gcc/gcc-4.0.2/arm-nolibfloat.patch new file mode 100644 index 0000000000..c4897c0330 --- /dev/null +++ b/packages/gcc/gcc-4.0.2/arm-nolibfloat.patch @@ -0,0 +1,24 @@ +# Dimitry Andric <dimitry@andric.com>, 2004-05-01 +# +# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed +# anymore. (The required functions are now in libgcc.) +# +# Fixes errors like +# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat +# collect2: ld returned 1 exit status +# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1 +# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat + +Index: gcc-4.0.2/gcc/config/arm/linux-elf.h +=================================================================== +--- gcc-4.0.2.orig/gcc/config/arm/linux-elf.h 2005-03-04 16:14:01.000000000 +0000 ++++ gcc-4.0.2/gcc/config/arm/linux-elf.h 2005-11-11 18:02:54.000000000 +0000 +@@ -56,7 +56,7 @@ + %{shared:-lc} \ + %{!shared:%{profile:-lc_p}%{!profile:-lc}}" + +-#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" ++#define LIBGCC_SPEC "-lgcc" + + /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add + the GNU/Linux magical crtbegin.o file (see crtstuff.c) which diff --git a/packages/gcc/gcc-4.0.2/arm-softfloat.patch b/packages/gcc/gcc-4.0.2/arm-softfloat.patch new file mode 100644 index 0000000000..c86c83ed15 --- /dev/null +++ b/packages/gcc/gcc-4.0.2/arm-softfloat.patch @@ -0,0 +1,16 @@ +Index: gcc-4.0.2/gcc/config/arm/t-linux +=================================================================== +--- gcc-4.0.2.orig/gcc/config/arm/t-linux 2004-05-15 12:41:35.000000000 +0000 ++++ gcc-4.0.2/gcc/config/arm/t-linux 2005-11-11 16:07:53.000000000 +0000 +@@ -4,7 +4,10 @@ + LIBGCC2_DEBUG_CFLAGS = -g0 + + LIB1ASMSRC = arm/lib1funcs.asm +-LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx ++LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \ ++ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ ++ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ ++ _fixsfsi _fixunssfsi _floatdidf _floatdisf + + # MULTILIB_OPTIONS = mhard-float/msoft-float + # MULTILIB_DIRNAMES = hard-float soft-float diff --git a/packages/gcc/gcc-4.0.2/ldflags.patch b/packages/gcc/gcc-4.0.2/ldflags.patch new file mode 100644 index 0000000000..1196bf0c8e --- /dev/null +++ b/packages/gcc/gcc-4.0.2/ldflags.patch @@ -0,0 +1,22 @@ +--- gcc-4.0.0/Makefile.tpl.old 2005-06-10 13:05:09.000000000 +0100 ++++ gcc-4.0.0/Makefile.tpl 2005-06-10 13:05:10.000000000 +0100 +@@ -339,7 +339,7 @@ + NM = @NM@ + + LD = @LD@ +-LDFLAGS = ++LDFLAGS = @LDFLAGS@ + + RANLIB = @RANLIB@ + +--- gcc-4.0.0/Makefile.in.old 2005-06-10 17:13:12.000000000 +0100 ++++ gcc-4.0.0/Makefile.in 2005-06-10 17:13:22.000000000 +0100 +@@ -336,7 +336,7 @@ + NM = @NM@ + + LD = @LD@ +-LDFLAGS = ++LDFLAGS = @LDFLAGS@ + + RANLIB = @RANLIB@ + diff --git a/packages/gcc/gcc-cross_4.0.2.bb b/packages/gcc/gcc-cross_4.0.2.bb new file mode 100644 index 0000000000..6e299e8299 --- /dev/null +++ b/packages/gcc/gcc-cross_4.0.2.bb @@ -0,0 +1,16 @@ +include gcc_${PV}.bb +# path mangling, needed by the cross packaging +include gcc-paths-cross.inc +inherit cross +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}" +# NOTE: split PR. If the main .oe changes something that affects its *build* +# remember to increment this one too. +PR = "r1" + +DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc gmp-native mpfr-native" +PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++" + +# cross build +include gcc3-build-cross.inc +# cross packaging +include gcc-package-cross.inc diff --git a/packages/gcc/gcc_4.0.2.bb b/packages/gcc/gcc_4.0.2.bb new file mode 100644 index 0000000000..856809a7bb --- /dev/null +++ b/packages/gcc/gcc_4.0.2.bb @@ -0,0 +1,19 @@ +PR = "r1" +DESCRIPTION = "The GNU cc and gcc C compilers." +HOMEPAGE = "http://www.gnu.org/software/gcc/" +SECTION = "devel" +LICENSE = "GPL" +MAINTAINER = "Gerald Britton <gbritton@doomcom.org>" + +DEFAULT_PREFERENCE_nslu2 = "-1" + +inherit autotools gettext + +include gcc-package.inc + +SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \ + file://arm-nolibfloat.patch;patch=1 \ + file://arm-softfloat.patch;patch=1 \ + file://ldflags.patch;patch=1" + +include gcc4-build.inc diff --git a/packages/gdb/files/kill_arm_map_symbols.patch b/packages/gdb/files/kill_arm_map_symbols.patch new file mode 100644 index 0000000000..177142192d --- /dev/null +++ b/packages/gdb/files/kill_arm_map_symbols.patch @@ -0,0 +1,24 @@ +Index: gdb-6.3/gdb/arm-tdep.c +=================================================================== +--- gdb-6.3.orig/gdb/arm-tdep.c 2004-08-03 02:02:20.000000000 +0000 ++++ gdb-6.3/gdb/arm-tdep.c 2005-11-09 15:13:29.000000000 +0000 +@@ -2491,6 +2491,19 @@ + static void + arm_elf_make_msymbol_special(asymbol *sym, struct minimal_symbol *msym) + { ++ ++ /* FIXME: We want gdb to ignore the ARM ELF mapping symbols when ++ displaying disassembly so we use this horrible hack here to ++ artifically set their address to the highest possible value. ++ This is wrong of course, and it prevents the symbols from being ++ used for their intended purpose - to distinguish between ARM ++ and THUMB code. So we ought to find a better way to do this. */ ++ if (bfd_asymbol_name (sym) ++ && bfd_asymbol_name (sym)[0] == '$' ++ && bfd_asymbol_name (sym)[1] != 0 ++ && bfd_asymbol_name (sym)[2] == 0) ++ SYMBOL_VALUE_ADDRESS(msym) = (CORE_ADDR) 0x7ffffffc; ++ + /* Thumb symbols are of type STT_LOPROC, (synonymous with + STT_ARM_TFUNC). */ + if (ELF_ST_TYPE (((elf_symbol_type *)sym)->internal_elf_sym.st_info) diff --git a/packages/gdb/gdb_6.3.bb b/packages/gdb/gdb_6.3.bb index 98825500f6..3e755cee67 100644 --- a/packages/gdb/gdb_6.3.bb +++ b/packages/gdb/gdb_6.3.bb @@ -15,6 +15,7 @@ inherit autotools gettext SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.gz \ file://uclibc.patch;patch=1 \ + file://kill_arm_map_symbols.patch;patch=1 \ file://gdbserver-cflags-last.diff;patch=1;pnum=0" LDFLAGS_append = " -s" diff --git a/packages/genlist/.mtn2git_empty b/packages/genlist/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/genlist/.mtn2git_empty diff --git a/packages/genlist/files/.mtn2git_empty b/packages/genlist/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/genlist/files/.mtn2git_empty diff --git a/packages/genlist/files/Makefile b/packages/genlist/files/Makefile new file mode 100644 index 0000000000..e5ef587d51 --- /dev/null +++ b/packages/genlist/files/Makefile @@ -0,0 +1,25 @@ +#CC = gcc +CFLAGS = -Wall -Os + +#VERSION = \"V0.10\" +#CFLAGS += -DVERSION=$(VERSION) + +# for use with LIRC, uncomment the following two lines +# CFLAGS += -DUSELIRC +# LDFLAGS += -llirc_client + +####################################################################### + +SRC = genlist.c +OBJ = genlist.o + +all: genlist + +genlist: $(OBJ) + $(CC) -s -o genlist $(OBJ) $(LDFLAGS) + +genlist.o: genlist.c + + +clean: + rm -f $(OBJ) genlist diff --git a/packages/genlist/files/genlist.c b/packages/genlist/files/genlist.c new file mode 100644 index 0000000000..3170f36107 --- /dev/null +++ b/packages/genlist/files/genlist.c @@ -0,0 +1,75 @@ +/* (Platform independant) IP lister (c)2000-1 Craig Cheetham + * Released under the GNU Licence. - Spread the source, not + * the binaries! (ahem fixed) + * + * E-Mail: craig_cheetham@yahoo.co.uk + * + */ +#include <stdio.h> +#include <string.h> +#include <netinet/in.h> + +union ipaddy +{ + unsigned char c_num[4]; + unsigned long l_num; +}; + +int parse(char *string, char *dest) +{ + int i = 0; + unsigned long num; + char *p = string, *n; + + strtok(p,"."); + + while(p && i<4) { + if((num = atol(p)) > 255) return 1; + dest[i++] = num; + p = strtok(0,"."); + } + + return 0; +} + +int main (int argc, char **argv) +{ + union ipaddy source, dest; + + if(argc < 3) { + printf("Platform independant IP lister, by Craig Cheetham (c)2000-1\n"); + printf("===========================================================\n\n"); + printf("Usage: %s <start ip> <end ip>\n\n", argv[0]); + printf("Examples:\n"); + printf("\t\t%s 205 206\t\t\t# Class A scan\n", argv[0]); + printf("\t\t%s 205.214 205.215\t\t# Class B scan\n", argv[0]); + printf("\t\t%s 205.214.14 205.214.56\t# Class C scan\n", argv[0]); + exit(0); + } + + source.l_num = dest.l_num = 0; + + if(parse(argv[1], source.c_num)) { + fprintf(stderr, "Error: Source IP is jarg.\n"); + return 0; + } + + if(parse(argv[2], dest.c_num)) { + fprintf(stderr, "Error: Dest IP is jarg.\n"); + return 0; + } + + while(htonl(source.l_num) < htonl(dest.l_num)) { + + if ((source.c_num[3]!=0) && (source.c_num[3]!=255)) + printf("%u.%u.%u.%u\n", + source.c_num[0], + source.c_num[1], + source.c_num[2], + source.c_num[3]); + + source.l_num = htonl(htonl(source.l_num)+1); + } + + return 0; +} diff --git a/packages/genlist/genlist.bb b/packages/genlist/genlist.bb new file mode 100644 index 0000000000..4fd6160cc2 --- /dev/null +++ b/packages/genlist/genlist.bb @@ -0,0 +1,20 @@ +SECTION = "utility" +DESCRIPTION = "IP Address List Generator" +MAINTAINER = "Bob Davies (tyggerbob@gmail.com)" + +SRC_URI = "file://genlist.c \ + file://Makefile" + +DEFAULT_PREFERENCE="-1" + + +S = "${WORKDIR}" +LICENSE = "GPL" +do_compile() { + oe_runmake all +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 genlist ${D}${bindir}/ +} diff --git a/packages/ghettotooth/.mtn2git_empty b/packages/ghettotooth/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/ghettotooth/.mtn2git_empty diff --git a/packages/ghettotooth/ghettotooth.bb b/packages/ghettotooth/ghettotooth.bb new file mode 100644 index 0000000000..02bf533e4f --- /dev/null +++ b/packages/ghettotooth/ghettotooth.bb @@ -0,0 +1,16 @@ +SECTION = "net/misc" +DESCRIPTION = "Bluetooth scanner" +MAINTAINER = "Bob Davies <tyggerbob@gmail.com>" +LICENSE = "GPL" +RDEPENDS = "perl" + +SRC_URI = "http://www.wardriving.ch/hpneu/blue/perl/ghettotooth.pl" + +DEFAULT_PREFERENCE="-1" + + +S = "${WORKDIR}" +do_install() { + install -d ${D}${bindir} + install -m 0755 ghettotooth.pl ${D}${bindir}/ +} diff --git a/packages/gmp/gmp-4.1.4/sh4-asmfix.patch b/packages/gmp/gmp-4.1.4/sh4-asmfix.patch new file mode 100644 index 0000000000..1a01f61533 --- /dev/null +++ b/packages/gmp/gmp-4.1.4/sh4-asmfix.patch @@ -0,0 +1,26 @@ +--- gmp-4.1.4/mpn/sh/add_n.s 2005/11/17 08:44:00 1.1 ++++ gmp-4.1.4/mpn/sh/add_n.s 2005/11/17 08:18:57 +@@ -29,8 +29,8 @@ + + .text + .align 2 +- .global ___gmpn_add_n +-___gmpn_add_n: ++ .global __gmpn_add_n ++__gmpn_add_n: + mov #0,r3 ! clear cy save reg + + Loop: mov.l @r5+,r1 +--- gmp-4.1.4/mpn/sh/sub_n.s 2005/11/17 08:44:04 1.1 ++++ gmp-4.1.4/mpn/sh/sub_n.s 2005/11/17 08:18:59 +@@ -29,8 +29,8 @@ + + .text + .align 2 +- .global ___gmpn_sub_n +-___gmpn_sub_n: ++ .global __gmpn_sub_n ++__gmpn_sub_n: + mov #0,r3 ! clear cy save reg + + Loop: mov.l @r5+,r1 diff --git a/packages/gmp/gmp_4.1.4.bb b/packages/gmp/gmp_4.1.4.bb index c9348ea43e..d80e728dc4 100644 --- a/packages/gmp/gmp_4.1.4.bb +++ b/packages/gmp/gmp_4.1.4.bb @@ -3,15 +3,17 @@ DESCRIPTION = "GNU multiprecision arithmetic library" HOMEPAGE = "http://www.swox.com/gmp/" LICENSE = "GPL LGPL" +PR = "r1" + SRC_URI = "ftp://ftp.gnu.org/gnu/gmp/gmp-${PV}.tar.bz2 \ file://configure.patch;patch=1 \ - file://amd64.patch;patch=1" + file://amd64.patch;patch=1 \ + file://sh4-asmfix.patch;patch=1" inherit autotools acpaths = "" do_stage () { - oe_libinstall -so libgmp ${STAGING_LIBDIR} - install -m 0644 ${S}/gmp.h ${STAGING_INCDIR}/gmp.h + autotools_stage_all } diff --git a/packages/gnome/gconf-dbus_cvs.bb b/packages/gnome/gconf-dbus_cvs.bb index a403fae24c..cf326d255a 100644 --- a/packages/gnome/gconf-dbus_cvs.bb +++ b/packages/gnome/gconf-dbus_cvs.bb @@ -8,18 +8,16 @@ RPROVIDES_${PN} = "gconf" RPROVIDES_${PN}-dev = "gconf-dev" PV = "0.0cvs${CVSDATE}" -PR = "r6" +PR = "r8" SRC_URI = "cvs://anonymous@anoncvs.gnome.org/cvs/gnome;module=gconf;tag=gconf-dbus-2-6 \ file://gconf-dbus-update.patch;patch=1;pnum=0 \ file://69gconfd-dbus" -FILES_${PN} += " ${libdir}/GConf/2/*.so ${libdir}/dbus-1.0 ${sysconfdir}" - +inherit pkgconfig autotools S = "${WORKDIR}/gconf" - -inherit pkgconfig autotools +FILES_${PN} += " ${libdir}/GConf/2/*.so ${libdir}/dbus-1.0 ${sysconfdir} ${datadir}/dbus*" EXTRA_OECONF = " --with-ipc=dbus --disable-gtk-doc --enable-gtk --host=${HOST_SYS} --enable-shared --disable-static" @@ -35,4 +33,6 @@ do_stage() { do_install_append () { install -d ${D}/${sysconfdir}/X11/Xsession.d install -m 755 ${WORKDIR}/69gconfd-dbus ${D}/${sysconfdir}/X11/Xsession.d/ + install -d ${D}/${datadir}/dbus-1.0/services/ + install -m 644 gconf/gconf.service ${D}${datadir}/dbus-1.0/services/ } diff --git a/packages/gpe-bluetooth/gpe-bluetooth_0.47.bb b/packages/gpe-bluetooth/gpe-bluetooth_0.47.bb new file mode 100644 index 0000000000..59b371897e --- /dev/null +++ b/packages/gpe-bluetooth/gpe-bluetooth_0.47.bb @@ -0,0 +1,14 @@ +LICENSE = "GPL" +inherit gpe autotools + +DESCRIPTION = "GPE bluetooth support" +DEPENDS = "gtk+ libdisplaymigration libgpewidget openobex libgpevtype bluez-libs sqlite dbus libglade blueprobe bluez-utils-dbus" +RDEPENDS = "bluez-utils-dbus blueprobe" +MAINTAINER = "Phil Blundell <pb@handhelds.org>" +SECTION = "gpe" +PRIORITY = "optional" +PR = "r0" + +SRC_URI = "${GPE_MIRROR}/${PN}-${PV}.tar.bz2" + +FILES_${PN} += '${datadir}/bluez-pin' diff --git a/packages/gpe-calendar/gpe-calendar_0.66.bb b/packages/gpe-calendar/gpe-calendar_0.66.bb new file mode 100644 index 0000000000..da50299bcd --- /dev/null +++ b/packages/gpe-calendar/gpe-calendar_0.66.bb @@ -0,0 +1,11 @@ +LICENSE = "GPL" +PR = "r0" +GPE_TARBALL_SUFFIX = "bz2" + +inherit autotools gpe + +DEPENDS = "libeventdb libschedule libxsettings libxsettings-client libgpepimc libdisplaymigration libgpevtype" +SECTION = "gpe" +RDEPENDS = "gpe-icons" +DESCRIPTION = "GPE calendar" + diff --git a/packages/gpe-calendar/gpe-calendar_cvs.bb b/packages/gpe-calendar/gpe-calendar_cvs.bb index f8acf36069..df84ff9475 100644 --- a/packages/gpe-calendar/gpe-calendar_cvs.bb +++ b/packages/gpe-calendar/gpe-calendar_cvs.bb @@ -7,7 +7,7 @@ PR = "r0" inherit autotools gpe -SRC_URI = "cvs://anoncvs:anoncvs@cvs.handhelds.org/cvs;module=gpe/base/${PN}" +SRC_URI = "cvs://anoncvs:anoncvs@anoncvs.handhelds.org/cvs;module=gpe/base/${PN}" DEPENDS = "libeventdb libschedule libxsettings libxsettings-client libgpepimc libdisplaymigration libgpevtype" diff --git a/packages/gpe-conf/gpe-conf_cvs.bb b/packages/gpe-conf/gpe-conf_cvs.bb index 8af52e3ac1..e13ac767c2 100644 --- a/packages/gpe-conf/gpe-conf_cvs.bb +++ b/packages/gpe-conf/gpe-conf_cvs.bb @@ -1,7 +1,7 @@ DEFAULT_PREFERENCE = "-1" S = "${WORKDIR}/${PN}" -PV = "0.1.25+cvs-${CVSDATE}" +PV = "0.1.26+cvs-${CVSDATE}" PR = "r0" inherit gpe diff --git a/packages/gpe-fsi/gpe-fsi_0.1.bb b/packages/gpe-fsi/gpe-fsi_0.1.bb index dede3403e6..1fc604ff10 100644 --- a/packages/gpe-fsi/gpe-fsi_0.1.bb +++ b/packages/gpe-fsi/gpe-fsi_0.1.bb @@ -1,6 +1,6 @@ DESCRIPTION = "GPE frontend for libfsi-client" MAINTAINER = "Koen Kooi <koen@handhelds.org>" -LICENCE = "gpl" +LICENSE = "gpl" inherit gpe diff --git a/packages/gpe-login/files/highdpifontfix.patch b/packages/gpe-login/files/highdpifontfix.patch new file mode 100644 index 0000000000..cc5a42dcfc --- /dev/null +++ b/packages/gpe-login/files/highdpifontfix.patch @@ -0,0 +1,14 @@ +--- /tmp/gpe-login.gtkrc 2005-11-08 17:15:50.363302568 +0100 ++++ gpe-login-0.83/X11/gpe-login.gtkrc 2005-11-08 17:16:22.659392816 +0100 +@@ -1,9 +1,2 @@ +-gtk-font-name = "Sans 8" +-include "/usr/share/themes/Angelistic/gtk-2.0/gtkrc" +- +-style "default" +-{ +- bg[NORMAL] = "#90d8ff" +-} +- +-widget "*" style "default" ++gtk-font-name = "Sans 5" ++include "/usr/share/themes/Industrial/gtk-2.0/gtkrc" diff --git a/packages/gpe-login/gpe-login_0.83.bb b/packages/gpe-login/gpe-login_0.83.bb index ec936f85df..b81145997e 100644 --- a/packages/gpe-login/gpe-login_0.83.bb +++ b/packages/gpe-login/gpe-login_0.83.bb @@ -8,6 +8,15 @@ MAINTAINER = "Philip Blundell <pb@handhelds.org>" DEPENDS = "gtk+ libgpewidget gpe-ownerinfo xkbd" RDEPENDS = "xkbd" RPROVIDES = "gpe-session-starter" -PR = "r0" +PR = "r1" SRC_URI += "file://busybox-bad-perms.patch;patch=1" + +#apply a patch to set the fontsize for bigdpi (200+) devices to 5 +SRC_URI_append_ipaq-pxa270 = " file://highdpifontfix.patch;patch=1" +SRC_URI_append_spitz = " file://highdpifontfix.patch;patch=1" +SRC_URI_append_akita = " file://highdpifontfix.patch;patch=1" +SRC_URI_append_borzoi = " file://highdpifontfix.patch;patch=1" +SRC_URI_append_c7x0 = " file://highdpifontfix.patch;patch=1" +SRC_URI_append_nokia770 = " file://highdpifontfix.patch;patch=1" + diff --git a/packages/gpe-session-scripts/files/highdpifontfix.patch b/packages/gpe-session-scripts/files/highdpifontfix.patch new file mode 100644 index 0000000000..67fbeff151 --- /dev/null +++ b/packages/gpe-session-scripts/files/highdpifontfix.patch @@ -0,0 +1,14 @@ +--- /tmp/xsettings.default 2005-11-08 12:51:34.842421400 +0100 ++++ gpe-session-scripts-0.66/X11/xsettings.default 2005-11-08 12:52:40.273474368 +0100 +@@ -1,8 +1,8 @@ + Gtk/IconSizes:S:gtk-dialog=30,30:gtk-button=16,16 + Gtk/ToolbarIconSize:I:1 + Gtk/ToolbarStyle:I:2 +-Gtk/FontName:S:Sans 7 +-MATCHBOX/Desktop/Font:S:Sans 7 +-Net/ThemeName:S:Default ++Gtk/FontName:S:Sans 5 ++MATCHBOX/Desktop/Font:S:Sans 5 ++Net/ThemeName:S:Industrial + MATCHBOX/Background:S:col-solid:#1f00a2 + diff --git a/packages/gpe-session-scripts/gpe-session-scripts_0.66.bb b/packages/gpe-session-scripts/gpe-session-scripts_0.66.bb index d7a3054149..52dcc5bdaa 100644 --- a/packages/gpe-session-scripts/gpe-session-scripts_0.66.bb +++ b/packages/gpe-session-scripts/gpe-session-scripts_0.66.bb @@ -1,5 +1,5 @@ LICENSE = "GPL" -PR = "r0" +PR = "r1" inherit gpe @@ -14,6 +14,14 @@ DEPENDS = "matchbox-wm matchbox-panel gpe-bluetooth xstroke xtscal gpe-question SRC_URI += "file://matchbox-session \ file://disable-composite.xsettings" +#apply a patch to set the fontsize for bigdpi (200+) devices to 5 +SRC_URI_append_ipaq-pxa270 = " file://highdpifontfix.patch;patch=1" +SRC_URI_append_spitz = " file://highdpifontfix.patch;patch=1" +SRC_URI_append_akita = " file://highdpifontfix.patch;patch=1" +SRC_URI_append_borzoi = " file://highdpifontfix.patch;patch=1" +SRC_URI_append_c7x0 = " file://highdpifontfix.patch;patch=1" +SRC_URI_append_nokia770 = " file://highdpifontfix.patch;patch=1" + do_install_append() { install -d ${D}${sysconfdir}/gpe/xsettings-default.d if [ "${GUI_MACHINE_CLASS}" != "bigscreen" ]; then diff --git a/packages/gtk-webcore/files/stop-load.image-loading.patch b/packages/gtk-webcore/files/stop-load.image-loading.patch new file mode 100644 index 0000000000..47200825c0 --- /dev/null +++ b/packages/gtk-webcore/files/stop-load.image-loading.patch @@ -0,0 +1,44 @@ +--- NRCit/src/frameimpl.cpp.orig 2005-02-16 11:33:16.000000000 +0200 ++++ NRCit/src/frameimpl.cpp 2005-10-28 00:44:15.000000000 +0300 +@@ -152,6 +152,7 @@ + + void FrameImpl::stopLoad() + { ++ frameLoadDelegate()->onFrameLoadFinished(this, 1); + closeURL(); + } + +--- NRCit/src/ImageRenderer.cpp.orig 2005-02-16 11:33:16.000000000 +0200 ++++ NRCit/src/ImageRenderer.cpp 2005-10-28 20:43:42.000000000 +0300 +@@ -133,19 +133,19 @@ + g_object_ref(pixbuf); + } else { + // not loading +- if (ir.anim) { ++ /*if (ir.anim) { + // is an animation => get own pixbuf, owned by iterator + anim = ir.anim; + g_object_ref(anim); + assert(ir.iter); + iter = gdk_pixbuf_animation_get_iter(anim, NULL); +- } else { ++ } else {*/ + // not an animation + assert(!ir.iter); + pixbuf = ir.pixbuf; + if (pixbuf) + g_object_ref(pixbuf); +- } ++ //} + } + } + +@@ -415,7 +417,7 @@ + + void ImageRenderer::stopAnimation() + { +- //stopped = true; ++ stopped = true; + } + + void ImageRenderer::tileInRect(GdkRectangle* r, int sx, int sy, CGContextRef context) diff --git a/packages/gtk-webcore/osb-nrcit_20050430.bb b/packages/gtk-webcore/osb-nrcit_20050430.bb index 6d53ff3ecc..6daa6a2016 100644 --- a/packages/gtk-webcore/osb-nrcit_20050430.bb +++ b/packages/gtk-webcore/osb-nrcit_20050430.bb @@ -7,12 +7,13 @@ SECTION = "gpe" FIXEDCVSDATE = "${@bb.data.getVar('FILE', d, 1).split('_')[-1].split('.')[0]}" PV = "0.5.0+cvs${FIXEDCVSDATE}" -PR = "r1" +PR = "r2" DEPENDS = "curl librsvg osb-nrcore" SRC_URI = "cvs://anonymous@cvs.sourceforge.net/cvsroot/gtk-webcore;module=NRCit;date=${FIXEDCVSDATE} \ - file://gdk-colorspace.diff;patch=1" + file://stop-load.image-loading.patch;patch=1 \ + file://gdk-colorspace.diff;patch=1" S = "${WORKDIR}/NRCit" inherit autotools pkgconfig diff --git a/packages/hdparm/hdparm-6.3/.mtn2git_empty b/packages/hdparm/hdparm-6.3/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/hdparm/hdparm-6.3/.mtn2git_empty diff --git a/packages/hdparm/hdparm-6.1/bswap.patch b/packages/hdparm/hdparm-6.3/bswap.patch index 37fbcb7b38..37fbcb7b38 100644 --- a/packages/hdparm/hdparm-6.1/bswap.patch +++ b/packages/hdparm/hdparm-6.3/bswap.patch diff --git a/packages/hdparm/hdparm-6.1/uclibc.patch b/packages/hdparm/hdparm-6.3/uclibc.patch index 495d7491bb..495d7491bb 100644 --- a/packages/hdparm/hdparm-6.1/uclibc.patch +++ b/packages/hdparm/hdparm-6.3/uclibc.patch diff --git a/packages/hdparm/hdparm_6.1.bb b/packages/hdparm/hdparm_6.3.bb index a917289513..a917289513 100644 --- a/packages/hdparm/hdparm_6.1.bb +++ b/packages/hdparm/hdparm_6.3.bb diff --git a/packages/icecast/icecast_2.2.0.bb b/packages/icecast/icecast_2.2.0.bb index 2dba8044f9..c4c89f365d 100644 --- a/packages/icecast/icecast_2.2.0.bb +++ b/packages/icecast/icecast_2.2.0.bb @@ -1,6 +1,6 @@ PR = "r2" MAINTAINER = "Oyvind Repvik <nail@nslu2-linux.org" -LICENCE = "GPL-2" +LICENSE = "GPL-2" DEPENDS = "libvorbis libogg libxslt" diff --git a/packages/icmpquery/.mtn2git_empty b/packages/icmpquery/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/icmpquery/.mtn2git_empty diff --git a/packages/icmpquery/files/.mtn2git_empty b/packages/icmpquery/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/icmpquery/files/.mtn2git_empty diff --git a/packages/icmpquery/files/Makefile b/packages/icmpquery/files/Makefile new file mode 100644 index 0000000000..08e049b228 --- /dev/null +++ b/packages/icmpquery/files/Makefile @@ -0,0 +1,25 @@ +#CC = gcc +CFLAGS = -Wall -Os + +#VERSION = \"V0.10\" +#CFLAGS += -DVERSION=$(VERSION) + +# for use with LIRC, uncomment the following two lines +# CFLAGS += -DUSELIRC +# LDFLAGS += -llirc_client + +####################################################################### + +SRC = icmpquery.c +OBJ = icmpquery.o + +all: icmpquery + +icmpquery: $(OBJ) + $(CC) -s -o icmpquery $(OBJ) $(LDFLAGS) + +icmpquery.o: icmpquery.c + + +clean: + rm -f $(OBJ) icmpquery diff --git a/packages/icmpquery/files/icmpquery.c b/packages/icmpquery/files/icmpquery.c new file mode 100644 index 0000000000..fb85de28d5 --- /dev/null +++ b/packages/icmpquery/files/icmpquery.c @@ -0,0 +1,501 @@ +/* + * icmpquery.c - send and receive ICMP queries for address mask + * and current time. + * + * Version 1.0.3 + * + * Copyright 1998, 1999, 2000 David G. Andersen <angio@pobox.com> + * <danderse@cs.utah.edu> + * http://www.angio.net/ + * + * All rights reserved. + * This information is subject to change without notice and does not + * represent a commitment on the part of David G. Andersen. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of David G. Andersen may not + * be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL DAVID G. ANDERSEN BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * + * + * Verified to work on: + * FreeBSD (2.x, 3.x) + * Linux 2.0.x, 2.2.0-pre1 + * NetBSD 1.3 + * + * Should work on Solaris and other platforms with BSD-ish stacks. + * + * If you compile it somewhere else, or it doesn't work somewhere, + * please let me know. + * + * Compilation: gcc icmpquery.c -o icmpquery + * + * One usage note: In order to receive accurate time information, + * the time on your computer must be correct; the + * ICMP timestamp reply is a relative time figure. + */ + + +/* Some portions of this code are taken from FreeBSD's ping source. + * Those portions are subject to the BSD copyright, which is appended + * at the end of this file. Namely, in_cksum. + */ + +#include <time.h> +#include <sys/time.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <netdb.h> +#include <netinet/in.h> +#include <netinet/in_systm.h> +#include <netinet/ip.h> +#include <netinet/ip_icmp.h> +#include <errno.h> +#include <string.h> +#include <signal.h> +#include <arpa/inet.h> + +u_short in_cksum(u_short *addr, int len); + +/* + * We perform lookups on the hosts, and then store them in a chain + * here. + */ + +struct hostdesc { + char *hostname; + struct in_addr hostaddr; + struct hostdesc *next; +}; + +struct hostdesc *hostnames; +struct hostdesc *hosttail; + +void resolv_from(char *hostfrom, struct in_addr *fromaddr) +{ + struct hostent *hp; + if (hostfrom == NULL) { + fromaddr->s_addr = 0; + return; + } + + if ((hp = gethostbyname(hostfrom)) == NULL) { + if ((fromaddr->s_addr = inet_addr(hostfrom)) == -1) { + fprintf(stderr, "could not resolve from address\n"); + exit(0); + } + } else { + bcopy(hp->h_addr_list[0], &fromaddr->s_addr, hp->h_length); + } +} + +/* + * Set up the list of hosts. Return the count. + */ + +int makehosts(char **hostlist) +{ + int i; + struct hostent *hp; + struct in_addr tmpaddr; + int hostcount = 0; + + for (i = 0; hostlist[i]; i++) { +#ifdef DEBUG + printf("Resolving %s\n", hostlist[i]); +#endif + if ((hp = gethostbyname(hostlist[i])) == NULL) { + if ((tmpaddr.s_addr = inet_addr(hostlist[i]))) { + /* Could not resolve it. Skip it. */ + fprintf(stderr, "%s: unknown host\n", + hostlist[i]); + continue; + } + } else { + bcopy(hp->h_addr_list[0], + &tmpaddr.s_addr, hp->h_length); + } + + /* The host has been resolved. Put it in the chain */ + /* We want to stick it on the end. */ + if (hostnames == NULL) { + hostnames = (struct hostdesc *) + malloc(sizeof(*hostnames)); + if (hostnames == NULL) { + perror("hostnames malloc failed"); + exit(-1); + } + hosttail = hostnames; + } else { + hosttail->next = (struct hostdesc *) + malloc(sizeof(*hostnames)); + if (hosttail->next == NULL) { + perror("hosttail->next malloc failed"); + exit(-1); + } + hosttail = hosttail->next; + } + hosttail->hostname = strdup(hostlist[i]); + if (hosttail->hostname == NULL) { + perror("strdup failed"); + exit(-1); + } + hosttail->hostaddr = tmpaddr; + hosttail->next = NULL; + hostcount++; + } + return hostcount; +} + +void usage(char *prog) +{ + fprintf(stderr, + "%s <-query> [-B] [-f fromhost] [-d delay] [-T time] targets\n" + " where <query> is one of:\n" + " -t : icmp timestamp request (default)\n" + " -m : icmp address mask request\n" + " The delay is in microseconds to sleep between packets.\n" + " targets is a list of hostnames or addresses\n" + " -T specifies the number of seconds to wait for a host to\n" + " respond. The default is 5.\n" + " -B specifies \'broadcast\' mode. icmpquery will wait\n" + " for timeout seconds and print all responses.\n" + " If you're on a modem, you may wish to use a larger -d and -T\n" + ,prog); +} + +/* + * Set up a packet. Returns the length of the ICMP portion. + */ + +int initpacket(char *buf, int querytype, struct in_addr fromaddr) +{ + struct ip *ip = (struct ip *)buf; + struct icmp *icmp = (struct icmp *)(ip + 1); + + /* things we customize */ + int icmplen = 0; + + ip->ip_src = fromaddr; /* if 0, have kernel fill in */ + ip->ip_v = 4; /* Always use ipv4 for now */ + ip->ip_hl = sizeof *ip >> 2; + ip->ip_tos = 0; + ip->ip_id = htons(4321); + ip->ip_ttl = 255; + ip->ip_p = 1; + ip->ip_sum = 0; /* kernel fills in */ + + icmp->icmp_seq = 1; + icmp->icmp_cksum = 0; + icmp->icmp_type = querytype; + icmp->icmp_code = 0; + + switch(querytype) { + case ICMP_TSTAMP: + gettimeofday( (struct timeval *)(icmp+8), NULL); + bzero( icmp+12, 8); + icmplen = 20; + break; + case ICMP_MASKREQ: + *((char *)(icmp+8)) = 255; + icmplen = 12; + break; + default: + fprintf(stderr, "eek: unknown query type\n"); + exit(0); + } + ip->ip_len = sizeof(struct ip) + icmplen; + return icmplen; +} + +void sendpings(int s, int querytype, struct hostdesc *head, int delay, + struct in_addr fromaddr) + +{ + char buf[1500]; + struct ip *ip = (struct ip *)buf; + struct icmp *icmp = (struct icmp *)(ip + 1); + struct sockaddr_in dst; + int icmplen; + + bzero(buf, 1500); + icmplen = initpacket(buf, querytype, fromaddr); + dst.sin_family = AF_INET; + + while (head != NULL) { +#ifdef DEBUG + printf("pinging %s\n", head->hostname); +#endif + ip->ip_dst.s_addr = head->hostaddr.s_addr; + dst.sin_addr = head->hostaddr; + icmp->icmp_cksum = 0; + icmp->icmp_cksum = in_cksum((u_short *)icmp, icmplen); + if (sendto(s, buf, ip->ip_len, 0, + (struct sockaddr *)&dst, + sizeof(dst)) < 0) { + perror("sendto"); + } + if (delay) + usleep(delay); + /* Don't flood the pipeline..kind of arbitrary */ + head = head->next; + } +} + +void myexit(int whatsig) +{ + exit(0); +} + +/* + * Listen for 'hostcount' pings, print out the information, and + * then exit. + */ + +void recvpings(int s, int querytype, struct hostdesc *head, int hostcount, + int broadcast) +{ + char buf[1500]; + struct ip *ip = (struct ip *)buf; + struct icmp *icmp; + int err = 0; + long int fromlen = 0; + int hlen; + struct timeval tv; + struct tm *tmtime; + int recvd = 0; + char *hostto; + char hostbuf[128], timebuf[128]; + struct hostdesc *foundhost; + unsigned long int icmptime, icmpmask; + + gettimeofday(&tv, NULL); + + while (recvd < hostcount) { + if ((err = recvfrom(s, buf, sizeof buf, 0, NULL, + (int *)&fromlen)) < 0) + { + perror("icmpquery: recvfrom"); + } + + hlen = ip->ip_hl << 2; + icmp = (struct icmp *)(buf + hlen); + + /* Find the host */ + hostto = 0; + for (foundhost = head; foundhost != NULL; + foundhost = foundhost->next) { + if (foundhost->hostaddr.s_addr == ip->ip_src.s_addr) { + hostto = foundhost->hostname; + break; + } + } + + if (!hostto) { + sprintf(hostbuf, "unknown (%s)", + inet_ntoa(ip->ip_src)); + hostto = hostbuf; + } + + /* For time */ + switch(icmp->icmp_type) { + case ICMP_TSTAMPREPLY: + icmptime = ntohl(icmp->icmp_ttime); + /* ms since midnight. yuch. */ + tv.tv_sec -= tv.tv_sec%(24*60*60); + tv.tv_sec += (icmptime/1000); + tv.tv_usec = (icmptime%1000); + tmtime = localtime(&tv.tv_sec); + strftime(timebuf, 128, "%H:%M:%S", tmtime); + printf("%-40.40s: %s\n", hostto, timebuf); + break; + + case ICMP_MASKREPLY: + icmpmask = ntohl(icmp->icmp_dun.id_mask); + printf("%-40.40s: 0x%lX\n", hostto, icmpmask); + break; + + default: + printf("Unknown ICMP message received (type %d)\n", + icmp->icmp_type); + break; + } + if (!broadcast) + recvd++; + } +} + +int +main(int argc, char **argv) +{ + int s; + + char *progname; + extern char *optarg; /* getopt variable declarations */ + char *hostfrom = NULL; + extern int optind; + extern int optopt; + extern int opterr; + char ch; /* Holds the getopt result */ + int on = 1; + int hostcount; + int delay = 0; + int querytype = ICMP_TSTAMP; + struct in_addr fromaddr; + int timeout = 5; /* Default to 5 seconds */ + int broadcast = 0; /* Should we wait for all responses? */ + + fromaddr.s_addr = 0; + + progname = argv[0]; + + while ((ch = getopt(argc, argv, "Btmf:d:T:")) != EOF) + switch(ch) + { + case 'B': + broadcast = 1; + break; + case 'd': + delay = (int) strtol(optarg, NULL, 10); + break; + case 't': /* timestamp request */ + querytype = ICMP_TSTAMP; + break; + case 'm': /* address mask request */ + querytype = ICMP_MASKREQ; + break; + case 'f': + hostfrom = optarg; + resolv_from(hostfrom, &fromaddr); + break; + case 'T': + timeout = (int) strtol(optarg, NULL, 10); + break; + default: + usage(progname); + exit(-1); + } + argc -= optind; + argv += optind; + + if (!argv[0] || !strlen(argv[0])) + { + usage(progname); + exit(-1); + } + + hostcount = makehosts(argv); + + if ((s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)) < 0) { + perror("socket"); + exit(1); + } + if (setsockopt(s, IPPROTO_IP, IP_HDRINCL, &on, sizeof(on)) < 0) { + perror("IP_HDRINCL"); + exit(1); + } + + signal(SIGALRM, myexit); + alarm(timeout); + sendpings(s, querytype, hostnames, delay, fromaddr); + recvpings(s, querytype, hostnames, hostcount, broadcast); + exit(0); +} + +/* + * in_cksum -- + * Checksum routine for Internet Protocol family headers (C Version) + * From FreeBSD's ping.c + */ + +u_short +in_cksum(addr, len) + u_short *addr; + int len; +{ + register int nleft = len; + register u_short *w = addr; + register int sum = 0; + u_short answer = 0; + + /* + * Our algorithm is simple, using a 32 bit accumulator (sum), we add + * sequential 16 bit words to it, and at the end, fold back all the + * carry bits from the top 16 bits into the lower 16 bits. + */ + while (nleft > 1) { + sum += *w++; + nleft -= 2; + } + + /* mop up an odd byte, if necessary */ + if (nleft == 1) { + *(u_char *)(&answer) = *(u_char *)w ; + sum += answer; + } + + /* add back carry outs from top 16 bits to low 16 bits */ + sum = (sum >> 16) + (sum & 0xffff); /* add hi 16 to low 16 */ + sum += (sum >> 16); /* add carry */ + answer = ~sum; /* truncate to 16 bits */ + return(answer); +} + + +/* + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Mike Muuss. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ diff --git a/packages/icmpquery/icmpquery.bb b/packages/icmpquery/icmpquery.bb new file mode 100644 index 0000000000..ca69f07c28 --- /dev/null +++ b/packages/icmpquery/icmpquery.bb @@ -0,0 +1,20 @@ +SECTION = "network/misc" +DESCRIPTION = "IMCP query generator" +MAINTAINER = "Bob Davies (tyggerbob@gmail.com)" +SRC_URI = "file://icmpquery.c \ + file://Makefile" +PV = "1.03" + +DEFAULT_PREFERENCE="-1" + + +S = "${WORKDIR}" +LICENSE = "GPL" +do_compile() { + oe_runmake icmpquery +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 icmpquery ${D}${bindir}/ +} diff --git a/packages/initscripts/initscripts-1.0/akita/keymap-2.6.map b/packages/initscripts/initscripts-1.0/akita/keymap-2.6.map index dc7fa37401..6fc3a9a9cf 100644 --- a/packages/initscripts/initscripts-1.0/akita/keymap-2.6.map +++ b/packages/initscripts/initscripts-1.0/akita/keymap-2.6.map @@ -30,7 +30,7 @@ keycode 13 = keycode 14 = BackSpace altgr keycode 14 = Delete keycode 15 = Tab - shift keycode 65 = Caps_Lock + altgr keycode 15 = Caps_Lock keycode 16 = q keycode 17 = w altgr keycode 17 = asciicircum diff --git a/packages/initscripts/initscripts-1.0/borzoi/keymap-2.6.map b/packages/initscripts/initscripts-1.0/borzoi/keymap-2.6.map index dc7fa37401..6fc3a9a9cf 100644 --- a/packages/initscripts/initscripts-1.0/borzoi/keymap-2.6.map +++ b/packages/initscripts/initscripts-1.0/borzoi/keymap-2.6.map @@ -30,7 +30,7 @@ keycode 13 = keycode 14 = BackSpace altgr keycode 14 = Delete keycode 15 = Tab - shift keycode 65 = Caps_Lock + altgr keycode 15 = Caps_Lock keycode 16 = q keycode 17 = w altgr keycode 17 = asciicircum diff --git a/packages/initscripts/initscripts-1.0/c7x0/keymap-2.6.map b/packages/initscripts/initscripts-1.0/c7x0/keymap-2.6.map index dc7fa37401..6fc3a9a9cf 100755 --- a/packages/initscripts/initscripts-1.0/c7x0/keymap-2.6.map +++ b/packages/initscripts/initscripts-1.0/c7x0/keymap-2.6.map @@ -30,7 +30,7 @@ keycode 13 = keycode 14 = BackSpace altgr keycode 14 = Delete keycode 15 = Tab - shift keycode 65 = Caps_Lock + altgr keycode 15 = Caps_Lock keycode 16 = q keycode 17 = w altgr keycode 17 = asciicircum diff --git a/packages/initscripts/initscripts-1.0/spitz/keymap-2.6.map b/packages/initscripts/initscripts-1.0/spitz/keymap-2.6.map index dc7fa37401..6fc3a9a9cf 100644 --- a/packages/initscripts/initscripts-1.0/spitz/keymap-2.6.map +++ b/packages/initscripts/initscripts-1.0/spitz/keymap-2.6.map @@ -30,7 +30,7 @@ keycode 13 = keycode 14 = BackSpace altgr keycode 14 = Delete keycode 15 = Tab - shift keycode 65 = Caps_Lock + altgr keycode 15 = Caps_Lock keycode 16 = q keycode 17 = w altgr keycode 17 = asciicircum diff --git a/packages/initscripts/initscripts_1.0.bb b/packages/initscripts/initscripts_1.0.bb index 2ad0197a75..c5332f23cf 100644 --- a/packages/initscripts/initscripts_1.0.bb +++ b/packages/initscripts/initscripts_1.0.bb @@ -6,7 +6,7 @@ DEPENDS = "makedevs" DEPENDS_openzaurus = "makedevs virtual/kernel" RDEPENDS = "makedevs" LICENSE = "GPL" -PR = "r58" +PR = "r59" SRC_URI = "file://halt \ file://ramdisk \ diff --git a/packages/ixp425-eth/ixp400-eth-1.4/2.6.14-mm.patch b/packages/ixp425-eth/ixp400-eth-1.4/2.6.14-mm.patch new file mode 100644 index 0000000000..b2dfaaa4fe --- /dev/null +++ b/packages/ixp425-eth/ixp400-eth-1.4/2.6.14-mm.patch @@ -0,0 +1,44 @@ +--- ./ixp400_eth.c.orig 2005-11-13 16:17:57.943717806 -0800 ++++ ./ixp400_eth.c 2005-11-13 16:29:00.829430574 -0800 +@@ -65,6 +65,10 @@ + #include <linux/sysctl.h> + #include <linux/unistd.h> + ++#ifndef to_platform_device ++#include <linux/platform_device.h> ++#endif ++ + /* + * Intel IXP400 Software specific header files + */ +@@ -2410,7 +2414,7 @@ dev_tx_timeout_work(void* arg) + } + + +- ++#if 0 + static void + dev_tx_timeout_task(void *dev_id) + { +@@ -2444,6 +2448,7 @@ dev_tx_timeout_task(void *dev_id) + + up(maintenance_mutex); + } ++#endif + + + /* This function is called when kernel thinks that TX is stuck */ +@@ -3274,9 +3279,12 @@ static struct net_device ixp400_devices[ + + int init_module(void) + { +- int res, dev_count; ++ int res; ++#if 0 ++ int dev_count; + IxEthAccPortId portId; + struct net_device *dev; ++#endif + int i; + TRACE; + diff --git a/packages/ixp425-eth/ixp400-eth-1.5/.mtn2git_empty b/packages/ixp425-eth/ixp400-eth-1.5/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/ixp425-eth/ixp400-eth-1.5/.mtn2git_empty diff --git a/packages/ixp425-eth/ixp400-eth-1.5/2.6.14.patch b/packages/ixp425-eth/ixp400-eth-1.5/2.6.14.patch new file mode 100644 index 0000000000..9d8dcc6590 --- /dev/null +++ b/packages/ixp425-eth/ixp400-eth-1.5/2.6.14.patch @@ -0,0 +1,32 @@ +--- ./ixp400_eth.c 2005-11-19 23:27:54.541565744 -0800 ++++ ./ixp400_eth.c 2005-11-19 23:28:56.253449028 -0800 +@@ -1838,7 +1838,11 @@ static inline void dev_eth_type_trans(un + skb->len -= header_len; + + /* fill the pkt arrival time (set at the irq callback entry) */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14) + skb->stamp = irq_stamp; ++#else ++ skb_set_timestamp(skb, &irq_stamp); ++#endif + + /* fill the input device field */ + skb->dev = dev; +@@ -3014,7 +3018,7 @@ static int phy_init(void) + } + + /* set port MAC addr and update the dev struct if successfull */ +-int dev_set_mac_address(struct net_device *dev, void *addr) ++static int set_mac_address(struct net_device *dev, void *addr) + { + int res; + IxEthAccMacAddr npeMacAddr; +@@ -3266,7 +3270,7 @@ static int __devinit dev_eth_probe(struc + ndev->set_multicast_list = dev_set_multicast_list; + ndev->flags |= IFF_MULTICAST; + +- ndev->set_mac_address = dev_set_mac_address; ++ ndev->set_mac_address = set_mac_address; + + #ifdef CONFIG_IXP400_NAPI + ndev->poll = &dev_rx_poll; diff --git a/packages/ixp425-eth/ixp400-eth-1.5/2.6.15.patch b/packages/ixp425-eth/ixp400-eth-1.5/2.6.15.patch new file mode 100644 index 0000000000..143c509c62 --- /dev/null +++ b/packages/ixp425-eth/ixp400-eth-1.5/2.6.15.patch @@ -0,0 +1,13 @@ +--- ./ixp400_eth.c.orig 2005-11-13 16:17:57.943717806 -0800 ++++ ./ixp400_eth.c 2005-11-13 16:29:00.829430574 -0800 +@@ -65,6 +65,10 @@ + #include <linux/sysctl.h> + #include <linux/unistd.h> + ++#ifndef to_platform_device ++#include <linux/platform_device.h> ++#endif ++ + /* + * Intel IXP400 Software specific header files + */ diff --git a/packages/ixp425-eth/ixp400-eth-1.5/Makefile.patch b/packages/ixp425-eth/ixp400-eth-1.5/Makefile.patch new file mode 100644 index 0000000000..2120391cbb --- /dev/null +++ b/packages/ixp425-eth/ixp400-eth-1.5/Makefile.patch @@ -0,0 +1,33 @@ +--- ./Makefile 2005-09-06 00:17:15.000000000 -0700 ++++ ./Makefile 2005-10-02 22:15:19.974595551 -0700 +@@ -0,0 +1,30 @@ ++obj-m := ixp400_eth.o ++ ++CFLAGS_ixp400_eth.o = -DWall \ ++ -I$(IXP4XX_CSR_DIR) \ ++ -I$(OSAL_DIR)/ \ ++ -I$(OSAL_DIR)/os/linux/include/ \ ++ -I$(OSAL_DIR)/os/linux/include/modules/ \ ++ -I$(OSAL_DIR)/os/linux/include/modules/ioMem/ \ ++ -I$(OSAL_DIR)/os/linux/include/modules/core/ \ ++ -I$(OSAL_DIR)/os/linux/include/modules/bufferMgt/ \ ++ -I$(OSAL_DIR)/os/linux/include/core/ \ ++ -I$(OSAL_DIR)/os/linux/include/platforms/ \ ++ -I$(OSAL_DIR)/os/linux/include/platforms/ixp400/ \ ++ -I$(OSAL_DIR)/os/linux/include/core/ \ ++ -I$(OSAL_DIR)/include/ \ ++ -I$(OSAL_DIR)/include/modules/ \ ++ -I$(OSAL_DIR)/include/modules/bufferMgt/ \ ++ -I$(OSAL_DIR)/include/modules/ioMem/ \ ++ -I$(OSAL_DIR)/include/modules/core/ \ ++ -I$(OSAL_DIR)/include/platforms/ \ ++ -I$(OSAL_DIR)/include/platforms/ixp400/ \ ++ -I$(OSAL_DIR)/include/platforms/ixp400/xp425/ \ ++ -I$(OSAL_DIR)/os/linux/include/platforms/ixp400/ixp425/ \ ++ $(IX_CFLAGS) ++ ++default: ++ $(MAKE) ARCH=arm CROSS_COMPILE=$(LINUX_CROSS_COMPILE) $(KERNEL_VERBOSE) symverfile=$(IXP4XX_CSR_SYMVERS) -C $(LINUX_SRC) SUBDIRS=$(PWD) modules ++ ++clean: ++ rm -f ixp400_eth.ko diff --git a/packages/ixp425-eth/ixp400-eth-1.5/debug.patch b/packages/ixp425-eth/ixp400-eth-1.5/debug.patch new file mode 100644 index 0000000000..f88457c060 --- /dev/null +++ b/packages/ixp425-eth/ixp400-eth-1.5/debug.patch @@ -0,0 +1,51 @@ +# This patch is not necessary but helps when debugging the build +--- ./ixp400_eth.c 2005-11-20 13:26:14.890767165 -0800 ++++ ./ixp400_eth.c 2005-11-20 13:45:32.163589752 -0800 +@@ -3249,6 +3249,8 @@ static int __devinit dev_eth_probe(struc + kmalloc(sizeof(struct semaphore), GFP_KERNEL); + if (!priv->maintenanceCheckThreadComplete) + { ++ P_ERROR("%s: Failed to allocate maintenance semaphore %d\n", ++ ndev->name, priv->port_id); + goto error; + } + priv->lock = SPIN_LOCK_UNLOCKED; +@@ -3355,7 +3361,11 @@ static int __devinit dev_eth_probe(struc + + #if IS_KERNEL26 + if (register_netdev(ndev)) ++ { ++ P_ERROR("%s: Failed to register netdevice %d\n", ++ ndev->name, priv->port_id); + goto error; ++ } + #else + found_devices++; + #endif /* IS_KERNEL26 */ +@@ -3365,6 +3375,8 @@ static int __devinit dev_eth_probe(struc + /* register EthAcc callbacks for this port */ + if (dev_rxtxcallback_register(portId, (UINT32)ndev)) + { ++ P_ERROR("%s: Failed to register callback %d\n", ++ ndev->name, priv->port_id); + goto error; + } + +@@ -3388,6 +3400,7 @@ static int __devinit dev_eth_probe(struc + + /* Error handling: enter here whenever error detected */ + error: ++ P_ERROR("%s: dev_eth_probe fails\n", ndev->name); + TRACE; + + #ifdef CONFIG_IXP400_ETH_QDISC_ENABLED +@@ -3523,6 +3536,9 @@ static int __init ixp400_eth_init(void) + TRACE; + + P_INFO("Initializing IXP400 NPE Ethernet driver software v. " MOD_VERSION " \n"); ++#ifdef IX_OSAL_ENSURE_ON ++ ixOsalLogLevelSet(IX_OSAL_LOG_LVL_ALL); ++#endif + + TRACE; + diff --git a/packages/ixp425-eth/ixp400-eth-1.5/device-name.patch b/packages/ixp425-eth/ixp400-eth-1.5/device-name.patch new file mode 100644 index 0000000000..b0e0d329e6 --- /dev/null +++ b/packages/ixp425-eth/ixp400-eth-1.5/device-name.patch @@ -0,0 +1,14 @@ +--- ./ixp400_eth.c 2005-11-20 16:58:48.973330982 -0800 ++++ ./ixp400_eth.c 2005-11-20 17:01:26.719257307 -0800 +@@ -161,7 +161,11 @@ MODULE_PARM(dev_max_count, "i"); + MODULE_PARM_DESC(dev_max_count, "Number of devices to initialize"); + + /* devices will be called ixp0 and ixp1 */ ++#ifdef IX_DEVICE_NAME_ETH ++#define DEVICE_NAME "eth" ++#else + #define DEVICE_NAME "ixp" ++#endif + + /* boolean values for PHY link speed, duplex, and autonegotiation */ + #define PHY_SPEED_10 0 diff --git a/packages/ixp425-eth/ixp400-eth-1.5/le.patch b/packages/ixp425-eth/ixp400-eth-1.5/le.patch new file mode 100644 index 0000000000..37c4150bc9 --- /dev/null +++ b/packages/ixp425-eth/ixp400-eth-1.5/le.patch @@ -0,0 +1,36 @@ +--- ./ixp400_eth.c 2005-11-20 18:25:26.812410374 -0800 ++++ ./ixp400_eth.c 2005-11-20 18:50:22.126504557 -0800 +@@ -2046,6 +2046,16 @@ static void rx_cb(UINT32 callbackTag, IX + skb->tail = skb->data + len; + skb->len = len; + ++#ifndef __ARMEB__ ++ { ++ /* Byte swap all words containing data from the buffer. */ ++ unsigned long *p = (unsigned long*)((unsigned)skb->data & ~0x3); ++ unsigned long *e = (unsigned long*)(((unsigned)skb->data + skb->len + 3) & ~0x3); ++ while (p < e) ++ *p = ntohl(*p), ++p; ++ } ++#endif ++ + #ifdef DEBUG_DUMP + skb_dump("rx", skb); + #endif +@@ -2436,6 +2446,16 @@ static int dev_hard_start_xmit(struct sk + return 0; + } + ++#ifndef __ARMEB__ ++ { ++ /* Byte swap all words containing data from the buffer. */ ++ unsigned long *p = (unsigned long*)((unsigned)skb->data & ~0x3); ++ unsigned long *e = (unsigned long*)(((unsigned)skb->data + skb->len + 3) & ~0x3); ++ while (p < e) ++ *p = ntohl(*p), ++p; ++ } ++#endif ++ + #ifdef DEBUG_DUMP + skb_dump("tx", skb); + #endif diff --git a/packages/ixp425-eth/ixp400-eth-1.5/poll-controller.patch b/packages/ixp425-eth/ixp400-eth-1.5/poll-controller.patch new file mode 100644 index 0000000000..22049c3491 --- /dev/null +++ b/packages/ixp425-eth/ixp400-eth-1.5/poll-controller.patch @@ -0,0 +1,45 @@ +--- ./ixp400_eth.c 2005-11-19 23:36:44.482912850 -0800 ++++ ./ixp400_eth.c 2005-11-19 23:39:13.080263492 -0800 +@@ -347,6 +347,12 @@ static int dev_pmu_timer_init(void); + extern void + ixEthTxFrameDoneQMCallback(IxQMgrQId qId, IxQMgrCallbackId callbackId); + ++#ifdef CONFIG_NET_POLL_CONTROLLER ++/* poll controller (needed for netconsole et al) */ ++static void ++ixp425eth_poll_controller(struct net_device *dev); ++#endif ++ + /* Private device data */ + typedef struct { + spinlock_t lock; /* multicast management lock */ +@@ -3056,6 +3062,19 @@ static int set_mac_address(struct net_de + return 0; + } + ++#ifdef CONFIG_NET_POLL_CONTROLLER ++/* ++ * Polling receive - used by netconsole and other diagnostic tools ++ * to allow network i/o with interrupts disabled. ++ * (stolen from 8139too.c by siddy) ++ */ ++static void ixp425eth_poll_controller(struct net_device *dev) ++{ ++ disable_irq(dev->irq); ++ dev_qmgr_os_isr(dev->irq, dev, NULL); ++ enable_irq(dev->irq); ++} ++#endif + + /* + * TX QDISC +@@ -3269,6 +3288,9 @@ static int __devinit dev_eth_probe(struc + ndev->get_stats = dev_get_stats; + ndev->set_multicast_list = dev_set_multicast_list; + ndev->flags |= IFF_MULTICAST; ++#ifdef CONFIG_NET_POLL_CONTROLLER ++ ndev->poll_controller = ixp425eth_poll_controller; ++#endif + + ndev->set_mac_address = set_mac_address; + diff --git a/packages/ixp425-eth/ixp400-eth_1.4.bb b/packages/ixp425-eth/ixp400-eth_1.4.bb index 623f609d7d..94024e9b75 100644 --- a/packages/ixp425-eth/ixp400-eth_1.4.bb +++ b/packages/ixp425-eth/ixp400-eth_1.4.bb @@ -9,7 +9,8 @@ SRC_URI += "file://makefile.patch;patch=1" SRC_URI += "file://2.6.13.patch;patch=1" SRC_URI += "file://2.6.14.patch;patch=1" SRC_URI += "file://ixp400_pollcontroller.patch;patch=1" -PR = "r5" +SRC_URI += "file://2.6.14-mm.patch;patch=1" +PR = "r7" DEPENDS = "ixp4xx-csr" RDEPENDS = "ixp4xx-csr" diff --git a/packages/ixp425-eth/ixp400-eth_1.5.bb b/packages/ixp425-eth/ixp400-eth_1.5.bb new file mode 100644 index 0000000000..86fef76c1d --- /dev/null +++ b/packages/ixp425-eth/ixp400-eth_1.5.bb @@ -0,0 +1,82 @@ +# This is the Intel GPL IXP4XX ethernet driver (Linux) plus patches +# to make it work on 2.6 kernels. +# +MAINTAINER = "NSLU2 Linux <nslu2-linux@yahoogroups.com>" +HOMEPAGE = "http://www.intel.com/design/network/products/npfamily/ixp420.htm" +LICENSE = "GPL" + +SRC_URI = "ftp://aiedownload.intel.com/df-support/9519/eng/GPL_ixp400LinuxEthernetDriverPatch-1_5.zip" +SRC_URI += "file://Makefile.patch;patch=1" +SRC_URI += "file://2.6.14.patch;patch=1" +SRC_URI += "file://2.6.15.patch;patch=1" +SRC_URI += "file://device-name.patch;patch=1" +SRC_URI += "file://poll-controller.patch;patch=1" +SRC_URI += "file://le.patch;patch=1" +SRC_URI += "file://debug.patch;patch=1" + +PR = "r0" + +DEPENDS = "ixp4xx-csr" +RDEPENDS = "ixp4xx-csr" + +S = "${WORKDIR}" + +COMPATIBLE_HOST = "^arm.*-linux.*" + +PROVIDES = "virtual/ixp-eth" + +inherit module + +# Add the architecture compiler flags to KERNEL_CC and KERNEL_LD as +# required. Notice that this has to be done for each separately built +# module as well! +KERNEL_CC += "${TARGET_CC_KERNEL_ARCH}" +KERNEL_LD += "${TARGET_LD_KERNEL_ARCH}" + +# This is a somewhat arbitrary choice: +OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal" + +IX_TARGET = "linux${ARCH_BYTE_SEX}" +IX_ENSURE = "" +#IX_ENSURE = "-DIX_OSAL_ENSURE_ON=1" +# The following controls the name of the ethernet devices which get +# registered, the default (if this is empty) is ixp0, ixp1, otherwise +# it is eth0, eth1 +DEVICE_NAME = "-DIX_DEVICE_NAME_ETH=1" + +IXP4XX_CSR_SYMVERS = "${STAGING_KERNEL_DIR}/ixp400-csr.symvers" + +EXTRA_OEMAKE = "'PWD=${S}' \ + 'IX_TARGET=${IX_TARGET}' \ + 'IXP4XX_CSR_DIR=${STAGING_INCDIR}/linux/ixp4xx-csr' \ + 'IXP4XX_CSR_SYMVERS=${IXP4XX_CSR_SYMVERS}' \ + 'OSAL_DIR=${OSAL_DIR}' \ + 'IX_CFLAGS=-DIX_UTOPIAMODE=0 -DIX_MPHYSINGLEPORT=1 -DCONFIG_IXP400_ETH_NPEB_ONLY=1 ${IX_ENSURE} ${DEVICE_NAME} -DIX_COMPONENT_NAME=-1' \ + 'LINUX_SRC=${STAGING_KERNEL_DIR}' \ + 'LINUX_CROSS_COMPILE=${HOST_PREFIX}' \ + " + +# This is to check for unresolved symbol errors and ensure the build +# fails, an error here probably means too much as been deconfigured +# out of ixp4xx-csr. +KCONFIG_FILE = "${STAGING_KERNEL_DIR}/kernel-config" +do_compile_append () { + . '${KCONFIG_FILE}' + echo "MODPOST: checking that all symbols are resolved" + if '${STAGING_KERNEL_DIR}/scripts/mod/modpost' \ + ${CONFIG_MODVERSIONS:+-m} \ + ${CONFIG_MODULE_SRCVERSION_ALL:+-a} \ + -i '${STAGING_KERNEL_DIR}/ixp400-csr.symvers' \ + ixp400_eth.o >&2 | egrep . + then + echo "MODPOST errors - see above" + return 1 + else + return 0 + fi +} + +do_install () { + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net + install -m 0644 ixp400_eth.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net/ +} diff --git a/packages/ixp4xx/ixp-osal-1.5/2.6.patch b/packages/ixp4xx/ixp-osal-1.5/2.6.patch index c762ddb9c7..3e47fe28de 100644 --- a/packages/ixp4xx/ixp-osal-1.5/2.6.patch +++ b/packages/ixp4xx/ixp-osal-1.5/2.6.patch @@ -49,10 +49,10 @@ diff -Naur ixp_osal.orig/include/linux-2.6.h ixp_osal/include/linux-2.6.h +# define IXP425_EXP_BUS_BASE2_PHYS IXP4XX_EXP_BUS_CS2_BASE_PHYS +#endif +#if !defined (IXP425_EthA_BASE_PHYS) -+# define IXP425_EthA_BASE_PHYS IXP4XX_EthA_BASE_PHYS ++# define IXP425_EthA_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0x9000) +#endif +#if !defined (IXP425_EthB_BASE_PHYS) -+# define IXP425_EthB_BASE_PHYS IXP4XX_EthB_BASE_PHYS ++# define IXP425_EthB_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0xA000) +#endif +#if !defined (IXP425_ICMR) +# define IXP425_ICMR IXP4XX_ICMR diff --git a/packages/ixp4xx/ixp-osal-2.0/2.6.patch b/packages/ixp4xx/ixp-osal-2.0/2.6.patch index 8dc31d48df..6c143859a4 100644 --- a/packages/ixp4xx/ixp-osal-2.0/2.6.patch +++ b/packages/ixp4xx/ixp-osal-2.0/2.6.patch @@ -37,10 +37,10 @@ diff -Naur ixp_osal.orig/include/linux-2.6.h ixp_osal/include/linux-2.6.h +# define IXP425_EXP_BUS_BASE2_PHYS IXP4XX_EXP_BUS_CS2_BASE_PHYS +#endif +#if !defined (IXP425_EthA_BASE_PHYS) -+# define IXP425_EthA_BASE_PHYS IXP4XX_EthA_BASE_PHYS ++# define IXP425_EthA_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0x9000) +#endif +#if !defined (IXP425_EthB_BASE_PHYS) -+# define IXP425_EthB_BASE_PHYS IXP4XX_EthB_BASE_PHYS ++# define IXP425_EthB_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0xA000) +#endif +#if !defined (IXP425_ICMR) +# define IXP425_ICMR IXP4XX_ICMR diff --git a/packages/ixp4xx/ixp-osal-2.0/le.patch b/packages/ixp4xx/ixp-osal-2.0/le.patch index c941bbc318..ecb93d7d76 100644 --- a/packages/ixp4xx/ixp-osal-2.0/le.patch +++ b/packages/ixp4xx/ixp-osal-2.0/le.patch @@ -1,329 +1,39 @@ -diff -bBdurN hannes/ixp_osal/include/IxOsalAssert.h merged/ixp_osal/include/IxOsalAssert.h ---- ixp_osal/include/IxOsalAssert.h 2005-04-17 20:56:26.000000000 -0700 -+++ ixp_osal/include/IxOsalAssert.h 2005-10-07 15:08:43.119207986 -0700 -@@ -70,6 +70,9 @@ - * This will be conditionally compiled out and - * may be used for test purposes. - */ -+#ifndef __ARMEB__ -+#define IX_OSAL_ENSURE_ON -+#endif /* ! __ARMEB__ */ - #ifdef IX_OSAL_ENSURE_ON - #define IX_OSAL_ENSURE(c, str) do { \ - if (!(c)) ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT, str, \ -@@ -79,5 +82,14 @@ - #define IX_OSAL_ENSURE(c, str) - #endif - -+#ifndef __ARMEB__ -+#ifdef DEBUG_ACDC -+#define TRACE() printk("ixp400: %s(): line %d\n", __FUNCTION__, __LINE__) -+#define PRINTK(args...) printk(args...) -+#else -+#define TRACE() while (0) {} -+#define PRINTK(args...) while (0) {} -+#endif -+#endif /* ! __ARMEB__ */ - - #endif /* IX_OSAL_ASSERT_H */ -diff -bBdurN hannes/ixp_osal/include/modules/ioMem/IxOsalMemAccess.h merged/ixp_osal/include/modules/ioMem/IxOsalMemAccess.h ---- ixp_osal/include/modules/ioMem/IxOsalMemAccess.h 2005-04-17 20:56:25.000000000 -0700 -+++ ixp_osal/include/modules/ioMem/IxOsalMemAccess.h 2005-10-07 15:08:43.115207734 -0700 -@@ -84,7 +84,12 @@ +diff -urp ixp_osal/.pc/le.patch/include/modules/ioMem/IxOsalMemAccess.h ixp_osal/include/modules/ioMem/IxOsalMemAccess.h +--- ixp_osal/.pc/le.patch/include/modules/ioMem/IxOsalMemAccess.h 2005-04-17 20:56:25.000000000 -0700 ++++ ixp_osal/include/modules/ioMem/IxOsalMemAccess.h 2005-11-19 16:44:33.414684841 -0800 +@@ -84,7 +84,7 @@ #elif defined (IX_OSAL_LINUX_LE) -+#ifndef __ARMEB__ -+//#define IX_SDRAM_LE_DATA_COHERENT +-#define IX_SDRAM_LE_DATA_COHERENT +#define IX_SDRAM_LE_ADDRESS_COHERENT -+#else /* __ARMEB__ */ - #define IX_SDRAM_LE_DATA_COHERENT -+#endif /* __ARMEB__ */ #elif defined (IX_OSAL_WINCE_LE) -@@ -232,7 +237,11 @@ - Redefine per OS if dynamic memory maps are used - and I/O memory is accessed via functions instead of raw pointer access. */ - -+#ifndef __ARMEB__ -+#define IX_OSAL_READ_LONG_COOKIE(wCookie) (BARF; readl((UINT32) (wCookie) )) -+#else /* __ARMEB__ */ - #define IX_OSAL_READ_LONG_COOKIE(wCookie) (readl((UINT32) (wCookie) )) -+#endif /* __ARMEB__ */ - #define IX_OSAL_READ_SHORT_COOKIE(sCookie) (readw((UINT32) (sCookie) )) - #define IX_OSAL_READ_BYTE_COOKIE(bCookie) (readb((UINT32) (bCookie) )) - #define IX_OSAL_WRITE_LONG_COOKIE(wCookie, wData) (writel(wData, (UINT32) (wCookie) )) -@@ -343,7 +352,11 @@ - #include <asm/io.h> - #endif /* ndef __wince */ - -+#ifndef __ARMEB__ -+#define IX_OSAL_READ_LONG_IO(wAddr) IX_OSAL_READ_LONG_COOKIE(wAddr); BARF; -+#else /* __ARMEB__ */ - #define IX_OSAL_READ_LONG_IO(wAddr) IX_OSAL_READ_LONG_COOKIE(wAddr) -+#endif /* __ARMEB__ */ - #define IX_OSAL_READ_SHORT_IO(sAddr) IX_OSAL_READ_SHORT_COOKIE(sAddr) - #define IX_OSAL_READ_BYTE_IO(bAddr) IX_OSAL_READ_BYTE_COOKIE(bAddr) - #define IX_OSAL_WRITE_LONG_IO(wAddr, wData) IX_OSAL_WRITE_LONG_COOKIE(wAddr, wData) -diff -bBdurN hannes/ixp_osal/os/linux/include/core/IxOsalOs.h merged/ixp_osal/os/linux/include/core/IxOsalOs.h ---- ixp_osal/os/linux/include/core/IxOsalOs.h 2005-10-07 09:29:02.388729473 -0700 -+++ ixp_osal/os/linux/include/core/IxOsalOs.h 2005-10-07 15:08:43.127208490 -0700 -@@ -53,10 +53,16 @@ - #error "Uncached memory not supported in linux environment" - #endif - -+#ifndef __ARMEB__ -+#include <linux/config.h> -+#include <linux/version.h> -+#endif /* ! __ARMEB__ */ - #include <linux/cache.h> - #include <linux/mm.h> -+#ifdef __ARMEB__ - #include <linux/config.h> - #include <linux/version.h> -+#endif /* __ARMEB__ */ - #include <asm/pgalloc.h> - - /** -@@ -67,21 +73,41 @@ - - #define IX_OSAL_OS_MMU_PHYS_TO_VIRT(addr) ((addr) ? phys_to_virt((unsigned int)(addr)) : 0) - -+ - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+#ifndef __ARMEB__ -+extern void ix_dcache_invalidate_range(unsigned long start, unsigned long size) -+; -+extern void ix_dcache_flush_range(unsigned long start, unsigned long size); -+ -+#else /* __ARMEB__ */ - /* - * 2.6 kernels do not export the required cache functions. - */ - extern void ixOsalCacheInvalidateRange(unsigned long start, unsigned long size); - extern void ixOsalCacheFlushRange(unsigned long start, unsigned long size); -+#endif /* __ARMEB__ */ - -+#ifndef __ARMEB__ -+#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) ( ix_dcache_invalidate_range((__u32)addr, (__u32)addr + size )) -+#else /* __ARMEB__ */ - #define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) \ - ixOsalCacheInvalidateRange((unsigned long)addr, (unsigned long)addr + size) - #define IX_OSAL_OS_CACHE_FLUSH(addr, size) \ - ixOsalCacheFlushRange((unsigned long)addr, (unsigned long)addr + size ) -+#endif /* __ARMEB__ */ - -+#ifndef __ARMEB__ -+#define IX_OSAL_OS_CACHE_FLUSH(addr, size) ( ix_dcache_flush_range((__u32)addr, (__u32)addr + size )) -+#endif /* ! __ARMEB__ */ - #else -+#ifndef __ARMEB__ -+#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) ( invalidate_dcache_range((__u32)addr, (__u32)addr + size )) -+#endif /* ! __ARMEB__ */ - -+#ifdef __ARMEB__ - #define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) ( invalidate_dcache_range((__u32)addr, (__u32)addr + size )) -+#endif /* __ARMEB__ */ - #define IX_OSAL_OS_CACHE_FLUSH(addr, size) ( clean_dcache_range((__u32)addr, (__u32)addr + size )) - #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */ - -diff -bBdurN hannes/ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400.h merged/ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400.h ---- ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400.h 2005-10-07 09:29:02.392729725 -0700 -+++ ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400.h 2005-10-07 15:08:43.147209748 -0700 -@@ -110,6 +149,9 @@ - #define IX_OSAL_IXP400_NPEB_VIRT_BASE IXP425_NPEB_BASE_VIRT - #define IX_OSAL_IXP400_NPEC_VIRT_BASE IXP425_NPEC_BASE_VIRT - #define IX_OSAL_IXP400_PERIPHERAL_VIRT_BASE IXP425_PERIPHERAL_BASE_VIRT -+#ifndef __ARMEB__ -+#define IX_OSAL_IXP400_QMGR_VIRT_BASE IXP425_QMGR_BASE_VIRT -+#endif /* ! __ARMEB__ */ - #define IX_OSAL_IXP400_OSTS_VIRT_BASE IXP425_TIMER_BASE_VIRT - #define IX_OSAL_IXP400_USB_VIRT_BASE IXP425_USB_BASE_VIRT - #define IX_OSAL_IXP400_EXP_CFG_VIRT_BASE IXP425_EXP_CFG_BASE_VIRT -diff -bBdurN hannes/ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h merged/ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h ---- ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h 2005-04-17 20:56:27.000000000 -0700 -+++ ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h 2005-10-07 15:08:43.147209748 -0700 -@@ -171,7 +171,12 @@ +diff -urp ixp_osal/.pc/le.patch/os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h +--- ixp_osal/.pc/le.patch/os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h 2005-04-17 20:56:27.000000000 -0700 ++++ ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h 2005-11-19 16:45:35.298578949 -0800 +@@ -171,7 +171,7 @@ ***************************/ #if (IX_COMPONENT_NAME == ix_qmgr) -+#ifndef __ARMEB__ -+//#define IX_OSAL_LE_DC_MAPPING +-#define IX_OSAL_LE_DC_MAPPING +#define IX_OSAL_LE_AC_MAPPING -+#else /* __ARMEB__ */ - #define IX_OSAL_LE_DC_MAPPING -+#endif /* __ARMEB__ */ #endif /* qmgr */ -diff -bBdurN hannes/ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h merged/ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h ---- ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h 2005-10-07 09:29:02.392729725 -0700 -+++ ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h 2005-10-07 15:08:43.143209496 -0700 -@@ -85,6 +85,17 @@ - * Queue Manager - */ - { -+#ifndef __ARMEB__ -+ IX_OSAL_DYNAMIC_MAP, /* type */ -+ IX_OSAL_IXP400_QMGR_PHYS_BASE, /* physicalAddress */ -+ IX_OSAL_IXP400_QMGR_MAP_SIZE, /* size */ -+ 0, -+ ixOsalLinuxMemMap, /* mapFunction */ -+ ixOsalLinuxMemUnmap, /* unmapFunction */ -+ 0, -+ IX_OSAL_BE | IX_OSAL_LE_AC, /* endianType */ -+ "qMgr" /* name */ -+#else /* __ARMEB__ */ - #ifdef IXP425_QMGR_BASE_VIRT - IX_OSAL_STATIC_MAP, /* type */ - IX_OSAL_IXP400_QMGR_PHYS_BASE, /* physicalAddress */ -@@ -103,6 +114,7 @@ +diff -urp ixp_osal/.pc/le.patch/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h +--- ixp_osal/.pc/le.patch/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h 2005-11-19 15:53:11.808771607 -0800 ++++ ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h 2005-11-19 16:51:40.729574072 -0800 +@@ -101,7 +101,7 @@ IxOsalMemoryMap ixOsalGlobalMemoryMap[] + ixOsalLinuxMemUnmap, /* unmapFunction */ + #endif 0, /* refCount */ - IX_OSAL_BE | IX_OSAL_LE_DC, /* endianType */ +- IX_OSAL_BE | IX_OSAL_LE_DC, /* endianType */ ++ IX_OSAL_BE | IX_OSAL_LE_AC, /* endianType */ "qMgr" /* name */ -+#endif /* __ARMEB__ */ }, - /* -diff -bBdurN hannes/ixp_osal/os/linux/src/core/IxOsalOsCacheMMU.c merged/ixp_osal/os/linux/src/core/IxOsalOsCacheMMU.c ---- ixp_osal/os/linux/src/core/IxOsalOsCacheMMU.c 2005-10-07 09:29:02.388729473 -0700 -+++ ixp_osal/os/linux/src/core/IxOsalOsCacheMMU.c 2005-10-07 15:08:43.159210503 -0700 -@@ -210,6 +210,7 @@ - free_pages ((unsigned int) memptr, order); - } - } -+#ifdef __ARMEB__ - - - /* -@@ -266,3 +267,4 @@ - #undef IX_CLM - - #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */ -+#endif /* __ARMEB__ */ -diff -bBdurN hannes/ixp_osal/os/linux/src/core/IxOsalOsMsgQ.c merged/ixp_osal/os/linux/src/core/IxOsalOsMsgQ.c ---- ixp_osal/os/linux/src/core/IxOsalOsMsgQ.c 2005-10-07 09:29:02.388729473 -0700 -+++ ixp_osal/os/linux/src/core/IxOsalOsMsgQ.c 2005-10-07 15:08:43.159210503 -0700 -@@ -48,6 +48,9 @@ - #include <linux/spinlock.h> - #include <linux/ipc.h> - #include <linux/msg.h> -+#ifndef __ARMEB__ -+#include <linux/spinlock.h> -+#endif /* ! __ARMEB__ */ - #include <linux/interrupt.h> - - #include "IxOsal.h" -diff -bBdurN hannes/ixp_osal/os/linux/src/core/IxOsalOsSemaphore.c merged/ixp_osal/os/linux/src/core/IxOsalOsSemaphore.c ---- ixp_osal/os/linux/src/core/IxOsalOsSemaphore.c 2005-10-07 09:29:02.388729473 -0700 -+++ ixp_osal/os/linux/src/core/IxOsalOsSemaphore.c 2005-10-07 15:08:43.163210755 -0700 -@@ -46,6 +46,9 @@ - */ - - #include <linux/slab.h> -+#ifndef __ARMEB__ -+//#include <asm-arm/hardirq.h> -+#endif /* ! __ARMEB__ */ - #include <linux/hardirq.h> - #include "IxOsal.h" - -@@ -93,7 +96,11 @@ - { - - IX_STATUS ixStatus = IX_SUCCESS; -+#ifndef __ARMEB__ -+ UINT32 timeoutTime; -+#else /* __ARMEB__ */ - unsigned long timeoutTime; -+#endif /* __ARMEB__ */ - - if (sid == NULL) - { -diff -bBdurN hannes/ixp_osal/os/linux/src/core/IxOsalOsServices.c merged/ixp_osal/os/linux/src/core/IxOsalOsServices.c ---- ixp_osal/os/linux/src/core/IxOsalOsServices.c 2005-10-07 09:29:02.392729725 -0700 -+++ ixp_osal/os/linux/src/core/IxOsalOsServices.c 2005-10-07 15:08:43.163210755 -0700 -@@ -90,8 +89,12 @@ - /* - * General interrupt handler - */ -+#ifndef __ARMEB__ -+static irqreturn_t ixOsalOsIsrProxy (int irq, void *dev_id, struct pt_regs *regs) -+#else /* __ARMEB__ */ - static irqreturn_t - ixOsalOsIsrProxy (int irq, void *dev_id, struct pt_regs *regs) -+#endif /* __ARMEB__ */ - { - IxOsalInfoType *isr_proxy_info = (IxOsalInfoType *) dev_id; - -@@ -197,12 +200,20 @@ - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) - unsigned long flags; - local_irq_save(flags); -+#ifndef __ARMEB__ -+ return (int)flags; -+#endif /* __ARMEB__ */ - #else - UINT32 flags; - save_flags (flags); - cli (); -+#ifndef __ARMEB__ -+ return flags; -+#endif /* ! __ARMEB__ */ - #endif -+#ifdef __ARMEB__ - return (UINT32)flags; -+#endif /* __ARMEB__ */ - } - - /* Enable interrupts and task scheduling, -@@ -212,11 +223,15 @@ - PUBLIC void - ixOsalIrqUnlock (UINT32 lockKey) - { --# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+#ifndef __ARMEB__ -+ local_irq_restore(lockKey); -+#else /* __ARMEB__ */ - local_irq_restore((unsigned long)lockKey); --# else -+#endif /* __ARMEB__ */ -+#else - restore_flags (lockKey); --# endif -+#endif - } - - PUBLIC UINT32 -@@ -341,7 +356,11 @@ - PUBLIC void - ixOsalSleep (UINT32 milliseconds) - { -+#ifndef __ARMEB__ -+ if (milliseconds != 0) -+#else /* __ARMEB__ */ - if (milliseconds*HZ >= 1000) -+#endif /* __ARMEB__ */ - { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout ((milliseconds * HZ) / 1000); -diff -bBdurN hannes/ixp_osal/os/linux/src/core/IxOsalOsSymbols.c merged/ixp_osal/os/linux/src/core/IxOsalOsSymbols.c ---- ixp_osal/os/linux/src/core/IxOsalOsSymbols.c 2005-10-07 09:29:02.388729473 -0700 -+++ ixp_osal/os/linux/src/core/IxOsalOsSymbols.c 2005-10-07 15:08:43.167211007 -0700 -@@ -64,10 +64,12 @@ - - EXPORT_SYMBOL (ixOsalCacheDmaMalloc); - EXPORT_SYMBOL (ixOsalCacheDmaFree); -+#ifdef __ARMEB__ - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) - EXPORT_SYMBOL (ixOsalCacheInvalidateRange); - EXPORT_SYMBOL (ixOsalCacheFlushRange); - #endif -+#endif /* __ARMEB__ */ - - EXPORT_SYMBOL (ixOsalThreadCreate); - EXPORT_SYMBOL (ixOsalThreadStart); diff -bBdurN hannes/ixp_osal/include/modules/ioMem/IxOsalIoMem.h merged/ixp_osal/include/modules/ioMem/IxOsalIoMem.h --- ixp_osal/include/modules/ioMem/IxOsalIoMem.h 2005-04-17 20:56:25.000000000 -0700 +++ ixp_osal/include/modules/ioMem/IxOsalIoMem.h 2005-10-07 16:20:27.786083595 -0700 diff --git a/packages/ixp4xx/ixp-osal-2.1/.mtn2git_empty b/packages/ixp4xx/ixp-osal-2.1/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/ixp4xx/ixp-osal-2.1/.mtn2git_empty diff --git a/packages/ixp4xx/ixp-osal-2.1/2.6.patch b/packages/ixp4xx/ixp-osal-2.1/2.6.patch new file mode 100644 index 0000000000..6bf1c2c32d --- /dev/null +++ b/packages/ixp4xx/ixp-osal-2.1/2.6.patch @@ -0,0 +1,137 @@ +--- ixp_osal/os/linux/src/core/IxOsalOsMsgQ.c 2005-08-24 00:16:37.000000000 +0200 ++++ ixp_osal/os/linux/src/core/IxOsalOsMsgQ.c 2005-08-24 00:18:02.000000000 +0200 +@@ -45,9 +45,9 @@ + * -- End Intel Copyright Notice -- + */ + #include <linux/linkage.h> ++#include <linux/spinlock.h> + #include <linux/ipc.h> + #include <linux/msg.h> +-#include <linux/spinlock.h> + #include <linux/interrupt.h> + + #include "IxOsal.h" +--- ixp_osal/os/linux/src/core/IxOsalOsSemaphore.c 2005-08-24 00:16:37.000000000 +0200 ++++ ixp_osal/os/linux/src/core/IxOsalOsSemaphore.c 2005-08-26 15:58:16.000000000 +0200 +@@ -46,7 +46,7 @@ + */ + + #include <linux/slab.h> +-#include <asm-arm/hardirq.h> ++#include <linux/hardirq.h> + #include "IxOsal.h" + + /* Define a large number */ +@@ -93,7 +93,7 @@ + { + + IX_STATUS ixStatus = IX_SUCCESS; +- UINT32 timeoutTime; ++ unsigned long timeoutTime; + + if (sid == NULL) + { +@@ -261,7 +261,7 @@ ixOsalMutexInit (IxOsalMutex * mutex) + PUBLIC IX_STATUS + ixOsalMutexLock (IxOsalMutex * mutex, INT32 timeout) + { +- UINT32 timeoutTime; ++ unsigned long timeoutTime; + + if (in_irq ()) + { +--- ixp_osal/os/linux/src/core/IxOsalOsServices.c 2005-04-17 20:56:28.000000000 -0700 ++++ ixp_osal/os/linux/src/core/IxOsalOsServices.c 2005-10-01 16:37:00.876444607 -0700 +@@ -54,6 +54,7 @@ + #include <linux/time.h> + #include <linux/sched.h> + #include <linux/slab.h> ++#include <linux/interrupt.h> + + #include "IxOsal.h" + +@@ -89,7 +90,7 @@ + /* + * General interrupt handler + */ +-static void ++static irqreturn_t + ixOsalOsIsrProxy (int irq, void *dev_id, struct pt_regs *regs) + { + IxOsalInfoType *isr_proxy_info = (IxOsalInfoType *) dev_id; +@@ -98,6 +99,7 @@ + "ixOsalOsIsrProxy: Interrupt used before ixOsalIrqBind was invoked"); + + isr_proxy_info->routine (isr_proxy_info->parameter); ++ return IRQ_HANDLED; + } + + /* +@@ -105,11 +107,12 @@ + * This handler saves the interrupted Program Counter (PC) + * into a global variable + */ +-static void ++static irqreturn_t + ixOsalOsIsrProxyWithPC (int irq, void *dev_id, struct pt_regs *regs) + { + ixOsalLinuxInterruptedPc = regs->ARM_pc; + ixOsalOsIsrProxy(irq, dev_id, regs); ++ return IRQ_HANDLED; + } + + /************************************** +@@ -191,10 +194,15 @@ + PUBLIC UINT32 + ixOsalIrqLock () + { ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) ++ unsigned long flags; ++ local_irq_save(flags); ++#else + UINT32 flags; + save_flags (flags); + cli (); +- return flags; ++#endif ++ return (UINT32)flags; + } + + /* Enable interrupts and task scheduling, +@@ -204,7 +212,11 @@ + PUBLIC void + ixOsalIrqUnlock (UINT32 lockKey) + { ++# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) ++ local_irq_restore((unsigned long)lockKey); ++# else + restore_flags (lockKey); ++# endif + } + + PUBLIC UINT32 +@@ -329,7 +341,7 @@ + PUBLIC void + ixOsalSleep (UINT32 milliseconds) + { +- if (milliseconds != 0) ++ if (milliseconds*HZ >= 1000) + { + set_current_state(TASK_INTERRUPTIBLE); + schedule_timeout ((milliseconds * HZ) / 1000); +--- ixp_osal/os/linux/src/core/IxOsalOsThread.c 2005-11-20 00:59:09.734097888 -0800 ++++ ixp_osal/os/linux/src/core/IxOsalOsThread.c 2005-11-20 01:00:07.057705036 -0800 +@@ -65,12 +65,7 @@ thread_internal (void *unused) + void *arg = IxOsalOsThreadData.arg; + static int seq = 0; + +- daemonize (); +- reparent_to_init (); +- +- exit_files (current); +- +- snprintf(current->comm, sizeof(current->comm), "IxOsal %d", ++seq); ++ daemonize ("IxOsal %d", ++seq); + + up (&IxOsalThreadMutex); + diff --git a/packages/ixp4xx/ixp-osal-2.1/Makefile.patch b/packages/ixp4xx/ixp-osal-2.1/Makefile.patch new file mode 100644 index 0000000000..f852ea2b26 --- /dev/null +++ b/packages/ixp4xx/ixp-osal-2.1/Makefile.patch @@ -0,0 +1,27 @@ +diff -Naur ixp_osal.orig/Makefile ixp_osal/Makefile +--- ixp_osal.orig/Makefile 2005-08-24 00:16:37.000000000 +0200 ++++ ixp_osal/Makefile 2005-08-24 00:18:02.000000000 +0200 +@@ -172,7 +172,7 @@ + + # TODO push this to linux make + ifeq ($(IX_OSAL_MK_HOST_OS), linux) +-INCLUDE_DIRS += $(LINUX_SRC)/include/asm-arm/arch-ixp425/ ++INCLUDE_DIRS += $(LINUX_SRC)/include/asm-arm/arch-ixp4xx/ + endif + + CFLAGS += $(INCLUDE_DIRS:%=-I%) +--- ixp_osal/os/linux/make/macros.mk.orig 2005-10-01 15:50:19.544167880 -0700 ++++ ixp_osal/os/linux/make/macros.mk 2005-10-01 15:50:43.053647239 -0700 +@@ -88,10 +88,10 @@ + # Compiler & linker options + + # Compiler flags +-LINUX_MACH_CFLAGS := -D__LINUX_ARM_ARCH__=5 -mcpu=xscale -mtune=xscale ++LINUX_MACH_CFLAGS := -D__LINUX_ARM_ARCH__=5 -mtune=xscale + + CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -Wall -Wno-trigraphs -fno-common \ +- -pipe -mapcs-32 -mshort-load-bytes -msoft-float -DMODULE \ ++ -pipe -mapcs-32 -msoft-float -DMODULE \ + -D__linux -DCPU=33 -DXSCALE=33 $(LINUX_MACH_CFLAGS) -DEXPORT_SYMTAB + + # Linux linker flags diff --git a/packages/ixp4xx/ixp-osal-2.1/assert.patch b/packages/ixp4xx/ixp-osal-2.1/assert.patch new file mode 100644 index 0000000000..1dfc84ed12 --- /dev/null +++ b/packages/ixp4xx/ixp-osal-2.1/assert.patch @@ -0,0 +1,37 @@ +# Unnecessary patch - reduces the code size slightly, gives clearer +# messages if IX_OSAL_ENSURE_ON is set +--- ixp_osal/include/IxOsalAssert.h 2005-11-20 15:19:59.128189352 -0800 ++++ ixp_osal/include/IxOsalAssert.h 2005-11-20 15:20:46.099145048 -0800 +@@ -72,8 +72,8 @@ + */ + #ifdef IX_OSAL_ENSURE_ON + #define IX_OSAL_ENSURE(c, str) do { \ +-if (!(c)) ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT, str, \ +-0, 0, 0, 0, 0, 0); } while (0) ++if (!(c)) ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT, __FILE__ ": line %d: " str, \ ++__LINE__, 0, 0, 0, 0, 0); } while (0) + + #else + #define IX_OSAL_ENSURE(c, str) +--- ixp_osal/os/linux/include/core/IxOsalOsAssert.h 2005-09-24 20:57:00.000000000 -0700 ++++ ixp_osal/os/linux/include/core/IxOsalOsAssert.h 2005-11-20 15:25:32.273152843 -0800 +@@ -47,11 +47,18 @@ + + #ifndef IxOsalOsAssert_H + #define IxOsalOsAssert_H ++#ifdef IX_OSAL_ENSURE_ON + #define IX_OSAL_OS_ASSERT(c) if(!(c)) \ + { \ +- ixOsalLog (IX_OSAL_LOG_LVL_ERROR, IX_OSAL_LOG_DEV_STDOUT, "Assertion failure \n", 0, 0, 0, 0, 0, 0);\ ++ ixOsalLog (IX_OSAL_LOG_LVL_ERROR, IX_OSAL_LOG_DEV_STDOUT, "%s line %d: Assertion failure: %s\n", (int)__FILE__, __LINE__, (int)#c, 0, 0, 0);\ + BUG(); \ + } ++#else ++#define IX_OSAL_OS_ASSERT(c) if(!(c)) \ ++ { \ ++ BUG(); \ ++ } ++#endif + + /* + * Place holder. diff --git a/packages/ixp4xx/ixp-osal-2.1/invalidate-cache.patch b/packages/ixp4xx/ixp-osal-2.1/invalidate-cache.patch new file mode 100644 index 0000000000..c6ec6ed6a7 --- /dev/null +++ b/packages/ixp4xx/ixp-osal-2.1/invalidate-cache.patch @@ -0,0 +1,110 @@ +--- ixp_osal/os/linux/include/core/IxOsalOs.h 2005-08-24 00:16:37.000000000 +0200 ++++ ixp_osal/os/linux/include/core/IxOsalOs.h 2005-08-26 01:56:22.000000000 +0200 +@@ -56,6 +56,7 @@ + #include <linux/cache.h> + #include <linux/mm.h> + #include <linux/config.h> ++#include <linux/version.h> + #include <asm/pgalloc.h> + + /** +@@ -66,9 +67,23 @@ + + #define IX_OSAL_OS_MMU_PHYS_TO_VIRT(addr) ((addr) ? phys_to_virt((unsigned int)(addr)) : 0) + +-#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) ( invalidate_dcache_range((__u32)addr, (__u32)addr + size )) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) ++/* ++ * 2.6 kernels do not export the required cache functions. ++ */ ++extern void ixOsalCacheInvalidateRange(unsigned long start, unsigned long size); ++extern void ixOsalCacheFlushRange(unsigned long start, unsigned long size); ++ ++#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) \ ++ixOsalCacheInvalidateRange((unsigned long)addr, (unsigned long)addr + size) ++#define IX_OSAL_OS_CACHE_FLUSH(addr, size) \ ++ixOsalCacheFlushRange((unsigned long)addr, (unsigned long)addr + size ) + ++#else ++ ++#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) ( invalidate_dcache_range((__u32)addr, (__u32)addr + size )) + #define IX_OSAL_OS_CACHE_FLUSH(addr, size) ( clean_dcache_range((__u32)addr, (__u32)addr + size )) ++#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */ + + #define printf printk /* For backword compatibility, needs to move to better location */ + +--- ixp_osal/os/linux/src/core/IxOsalOsCacheMMU.c 2005-08-24 00:16:37.000000000 +0200 ++++ ixp_osal/os/linux/src/core/IxOsalOsCacheMMU.c 2005-08-26 01:56:22.000000000 +0200 +@@ -210,3 +210,59 @@ + free_pages ((unsigned int) memptr, order); + } + } ++ ++ ++/* ++ * 2.6 kernels do not export the required cache functions. ++ */ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) ++ ++#define _IX_STR(x) #x ++#define IX_STR(x) _IX_STR(x) ++#define IX_CLM IX_STR(IX_OSAL_CACHE_LINE_SIZE-1) ++ ++/* ++ * reimplementation of kernel's invalidate_dcache_range() ++ */ ++void ++ixOsalCacheInvalidateRange(unsigned long start, unsigned long size) ++{ ++ __asm__ ++ (" tst %0, #" IX_CLM "\n" ++ " mcrne p15, 0, %0, c7, c10, 1 @ clean D cache line\n" ++ " bic %0, %0, #" IX_CLM "\n" ++ " tst %1, #" IX_CLM "\n" ++ " mcrne p15, 0, %1, c7, c10, 1 @ clean D cache line\n" ++ "1: mcr p15, 0, %0, c7, c6, 1 @ invalidate D cache line\n" ++ " add %0, %0, #" IX_STR(IX_OSAL_CACHE_LINE_SIZE) "\n" ++ " cmp %0, %1\n" ++ " blo 1b\n" ++ " mcr p15, 0, %0, c7, c10, 4 @ drain write & fill buffer\n" ++ : /* no output */ ++ : "r"(start), "r"(size) ++ : "cc"); ++} ++ ++/* ++ * reimplementation of kernel's invalidate_dcache_range() ++ */ ++void ++ixOsalCacheFlushRange(unsigned long start, unsigned long size) ++{ ++ __asm__ ++ (" bic %0, %0, #" IX_CLM "\n" ++ "1: mcr p15, 0, %0, c7, c10, 1 @ clean D cache line\n" ++ " add %0, %0, #" IX_STR(IX_OSAL_CACHE_LINE_SIZE) "\n" ++ " cmp %0, %1\n" ++ " blo 1b\n" ++ " mcr p15, 0, %0, c7, c10, 4 @ drain write & fill buffer\n" ++ : /* no output */ ++ : "r"(start), "r"(size) ++ : "cc"); ++} ++ ++#undef _IX_STR ++#undef IX_STR ++#undef IX_CLM ++ ++#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */ +--- ixp_osal/os/linux/src/core/IxOsalOsSymbols.c 2005-08-24 00:16:37.000000000 +0200 ++++ ixp_osal/os/linux/src/core/IxOsalOsSymbols.c 2005-08-30 19:19:33.000000000 +0200 +@@ -64,6 +64,10 @@ + + EXPORT_SYMBOL (ixOsalCacheDmaMalloc); + EXPORT_SYMBOL (ixOsalCacheDmaFree); ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) ++EXPORT_SYMBOL (ixOsalCacheInvalidateRange); ++EXPORT_SYMBOL (ixOsalCacheFlushRange); ++#endif + + EXPORT_SYMBOL (ixOsalThreadCreate); + EXPORT_SYMBOL (ixOsalThreadStart); diff --git a/packages/ixp4xx/ixp-osal-2.1/ixp4xx-header.patch b/packages/ixp4xx/ixp-osal-2.1/ixp4xx-header.patch new file mode 100644 index 0000000000..28bd3d362b --- /dev/null +++ b/packages/ixp4xx/ixp-osal-2.1/ixp4xx-header.patch @@ -0,0 +1,105 @@ +--- ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h 2005-11-20 00:51:37.637649252 -0800 ++++ ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h 2005-11-20 00:51:45.890168551 -0800 +@@ -53,6 +53,8 @@ + #error "Error: IxOsalOsIxp425Sys.h cannot be included directly before IxOsalOsIxp400.h" + #endif + ++#include "IxOsalOsIxp425Base.h" ++ + /* Memory Base Address */ + #define IX_OSAL_IXP400_EXP_BUS_PHYS_BASE IXP425_EXP_BUS_BASE2_PHYS + #define IX_OSAL_IXP400_EXP_BUS_BOOT_PHYS_BASE IXP425_EXP_BUS_BASE1_PHYS +@@ -98,14 +98,14 @@ IxOsalMemoryMap ixOsalGlobalMemoryMap[] + * Queue Manager + */ + { +- IX_OSAL_STATIC_MAP, /* type */ ++ IX_OSAL_DYNAMIC_MAP, /* type */ + IX_OSAL_IXP400_QMGR_PHYS_BASE, /* physicalAddress */ + IX_OSAL_IXP400_QMGR_MAP_SIZE, /* size */ +- IX_OSAL_IXP400_QMGR_VIRT_BASE, /* virtualAddress */ +- NULL, /* mapFunction */ +- NULL, /* unmapFunction */ ++ 0, /* virtualAddress */ ++ ixOsalLinuxMemMap, /* mapFunction */ ++ ixOsalLinuxMemUnmap, /* unmapFunction */ + 0, /* refCount */ + IX_OSAL_BE | IX_OSAL_LE_DC, /* endianType */ + "qMgr" /* name */ + }, + +--- ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Base.h 2005-09-06 00:17:15.000000000 -0700 ++++ ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Base.h 2005-11-20 08:25:18.402543995 -0800 +@@ -0,0 +1,72 @@ ++/* ++ * Glue for the current linux definitons of this stuff. ++ */ ++#ifndef IxOsalOsIxp425Base_H ++#define IxOsalOsIxp425Base_H 1 ++#include <asm-arm/arch-ixp4xx/ixp4xx-regs.h> ++ ++/* Force Address Coherent (the default) mapping on LE - Linux 2.6 ++ * does not have a way of changing it. ++ */ ++#if defined IX_OSAL_LINUX_LE ++# if !defined IX_OSAL_ENFORCED_LE_AC_MAPPING ++# define IX_OSAL_ENFORCED_LE_AC_MAPPING ++# endif ++# if defined IX_OSAL_LE_DC_MAPPING ++# error Little Endian Data Coherent mapping not supported on this platform ++# endif ++ ++/* This doesn't matter on a BE build because it will never be used, ++ * however it will be selected and will fail on an LE build. ++ */ ++# undef IX_OSAL_LE_DC ++# define IX_OSAL_LE_DC IX_OSAL_LE_DC_IS_INVALID_ON_THIS_PLATFORM ++#endif ++ ++/* Physical addresses. */ ++#define IXP425_PERIPHERAL_BASE_PHYS IXP4XX_PERIPHERAL_BASE_PHYS ++#define IXP425_EXP_CFG_BASE_PHYS IXP4XX_EXP_CFG_BASE_PHYS ++#define IXP425_PCI_CFG_BASE_PHYS IXP4XX_PCI_CFG_BASE_PHYS ++ ++//#define IXP425_EXP_BUS_BASE1_PHYS ++#define IXP425_EXP_BUS_BASE2_PHYS IXP4XX_EXP_BUS_CS2_BASE_PHYS ++//#define IXP425_EXP_BUS_CS0_BASE_PHYS ++//#define IXP425_EXP_BUS_CS1_BASE_PHYS ++//#define IXP425_EXP_BUS_CS4_BASE_PHYS ++#define IXP425_EthA_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0x9000) ++#define IXP425_EthB_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0xA000) ++//#define IXP425_GPIO_BASE_PHYS ++#define IXP425_INTC_BASE_PHYS IXP4XX_INTC_BASE_PHYS ++//#define IXP425_NPEA_BASE_PHYS ++//#define IXP425_NPEB_BASE_PHYS ++//#define IXP425_NPEC_BASE_PHYS ++//#define IXP425_PMU_BASE_PHYS ++#define IXP425_QMGR_BASE_PHYS IXP4XX_QMGR_BASE_PHYS ++#define IXP425_TIMER_BASE_PHYS IXP4XX_TIMER_BASE_PHYS ++//#define IXP425_UART1_BASE_PHYS ++//#define IXP425_UART2_BASE_PHYS ++#define IXP425_USB_BASE_PHYS IXP4XX_USB_BASE_PHYS ++ ++/* Virtual addresses. */ ++#define IXP425_PERIPHERAL_BASE_VIRT IXP4XX_PERIPHERAL_BASE_VIRT ++#define IXP425_PERIPHERAL_REGION_SIZE IXP4XX_PERIPHERAL_REGION_SIZE ++#define IXP425_EXP_CFG_BASE_VIRT IXP4XX_EXP_CFG_BASE_VIRT ++#define IXP425_PCI_CFG_BASE_VIRT IXP4XX_PCI_CFG_BASE_VIRT ++ ++//#define IXP425_EthA_BASE_VIRT ++//#define IXP425_EthB_BASE_VIRT ++//#define IXP425_GPIO_BASE_VIRT ++//#define IXP425_NPEA_BASE_VIRT ++//#define IXP425_NPEB_BASE_VIRT ++//#define IXP425_NPEC_BASE_VIRT ++//#define IXP425_QMGR_BASE_VIRT /* must be ioremapped on Linux 2.6 */ ++//#define IXP425_TIMER_BASE_VIRT ++//#define IXP425_UART1_BASE_VIRT ++//#define IXP425_UART2_BASE_VIRT ++//#define IXP425_USB_BASE_VIRT ++ ++/* Miscellaneous stuff. */ ++#define IRQ_IXP425_XSCALE_PMU IRQ_IXP4XX_XSCALE_PMU ++#define IXP425_ICMR IXP4XX_ICMR ++#define IRQ_IXP425_USB IRQ_IXP4XX_USB ++#endif diff --git a/packages/ixp4xx/ixp-osal-2.1/le.patch b/packages/ixp4xx/ixp-osal-2.1/le.patch new file mode 100644 index 0000000000..3fc5ddf624 --- /dev/null +++ b/packages/ixp4xx/ixp-osal-2.1/le.patch @@ -0,0 +1,64 @@ +--- ixp_osal/include/modules/ioMem/IxOsalIoMem.h 2005-04-17 20:56:25.000000000 -0700 ++++ ixp_osal/include/modules/ioMem/IxOsalIoMem.h 2005-10-07 16:20:27.786083595 -0700 +@@ -105,8 +105,8 @@ + #endif /* ndef __wince */ + + #define IX_OSAL_SWAP_SHORT(sData) ((sData >> 8) | ((sData & 0xFF) << 8)) +-#define IX_OSAL_SWAP_SHORT_ADDRESS(sAddr) ((sAddr) ^ 0x2) +-#define IX_OSAL_SWAP_BYTE_ADDRESS(bAddr) ((bAddr) ^ 0x3) ++#define IX_OSAL_SWAP_SHORT_ADDRESS(sAddr) ((UINT16*)((UINT32)(sAddr) ^ 0x2)) ++#define IX_OSAL_SWAP_BYTE_ADDRESS(bAddr) ((UINT8*)((UINT32)(bAddr) ^ 0x3)) + + #define IX_OSAL_BE_XSTOBUSL(wData) (wData) + #define IX_OSAL_BE_XSTOBUSS(sData) (sData) +--- ixp_osal/include/modules/ioMem/IxOsalMemAccess.h 2005-04-17 20:56:25.000000000 -0700 ++++ ixp_osal/include/modules/ioMem/IxOsalMemAccess.h 2005-11-19 16:44:33.414684841 -0800 +@@ -84,7 +84,7 @@ + + #elif defined (IX_OSAL_LINUX_LE) + +-#define IX_SDRAM_LE_DATA_COHERENT ++#define IX_SDRAM_LE_ADDRESS_COHERENT + + #elif defined (IX_OSAL_WINCE_LE) + +--- ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h 2005-04-17 20:56:27.000000000 -0700 ++++ ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h 2005-11-19 16:45:35.298578949 -0800 +@@ -171,7 +171,7 @@ + ***************************/ + #if (IX_COMPONENT_NAME == ix_qmgr) + +-#define IX_OSAL_LE_DC_MAPPING ++#define IX_OSAL_LE_AC_MAPPING + + #endif /* qmgr */ + +--- ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h 2005-11-19 15:53:11.808771607 -0800 ++++ ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h 2005-11-19 16:51:40.729574072 -0800 +@@ -101,6 +101,6 @@ IxOsalMemoryMap ixOsalGlobalMemoryMap[] + ixOsalLinuxMemUnmap, /* unmapFunction */ + 0, /* refCount */ +- IX_OSAL_BE | IX_OSAL_LE_DC, /* endianType */ ++ IX_OSAL_BE | IX_OSAL_LE_AC, /* endianType */ + "qMgr" /* name */ + }, + +--- ixp_osal/os/linux/src/modules/ioMem/IxOsalOsIoMem.c 2005-09-24 20:57:03.000000000 -0700 ++++ ixp_osal/os/linux/src/modules/ioMem/IxOsalOsIoMem.c 2005-11-20 15:21:33.670138502 -0800 +@@ -45,6 +45,7 @@ + * -- End Intel Copyright Notice -- + */ + ++#include <asm/page.h> + #include <asm/io.h> + #include <linux/ioport.h> + +@@ -54,6 +54,8 @@ + PUBLIC void + ixOsalLinuxMemMap (IxOsalMemoryMap * map) + { ++ /* Linux requires LE mappings to use address coherency */ ++ IX_OSAL_ENSURE((map->mapEndianType & IX_OSAL_LE_DC) == 0, "LE Data Coherency not supported"); + map->virtualAddress = (UINT32) ioremap (map->physicalAddress, map->size); + } + diff --git a/packages/ixp4xx/ixp-osal_1.5.bb b/packages/ixp4xx/ixp-osal_1.5.bb index 8de9983dda..c0e0cb930c 100644 --- a/packages/ixp4xx/ixp-osal_1.5.bb +++ b/packages/ixp4xx/ixp-osal_1.5.bb @@ -21,7 +21,7 @@ LICENSE_HOMEPAGE = "http://www.intel.com/design/network/products/npfamily/ixp425 SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/ixp400AccessLibrary-1_5.zip" SRC_URI += "file://2.6.patch;patch=1" S = "${WORKDIR}/ixp_osal" -PR = "r0" +PR = "r1" COMPATIBLE_HOST = "^armeb-linux.*" diff --git a/packages/ixp4xx/ixp-osal_2.0.bb b/packages/ixp4xx/ixp-osal_2.0.bb index be72d9215b..c5ddf66bef 100644 --- a/packages/ixp4xx/ixp-osal_2.0.bb +++ b/packages/ixp4xx/ixp-osal_2.0.bb @@ -17,13 +17,17 @@ LICENSE_HOMEPAGE = "http://www.intel.com/design/network/products/npfamily/ixp425 # not required.) # # Store the file with the name given below in your downloads directory +# and store the 32 character md5sum of the file in a file of the same +# name with the additional extension .md5: +# +# IPL_ixp400AccessLibrary-2_0.zip.md5 # SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400AccessLibrary-2_0.zip" SRC_URI += "file://Makefile.patch;patch=1" SRC_URI += "file://2.6.patch;patch=1" SRC_URI += "file://le.patch;patch=1" S = "${WORKDIR}/ixp_osal" -PR = "r2" +PR = "r4" COMPATIBLE_HOST = "^arm.*-linux.*" diff --git a/packages/ixp4xx/ixp-osal_2.1.bb b/packages/ixp4xx/ixp-osal_2.1.bb new file mode 100644 index 0000000000..7b5ec197ba --- /dev/null +++ b/packages/ixp4xx/ixp-osal_2.1.bb @@ -0,0 +1,95 @@ +# Intel ixp4xx access library software. Note that this has an Intel +# license which restricts its use. +MAINTAINER = "NSLU2 Linux <nslu2-linux@yahoogroups.com>" +HOMEPAGE = "http://www.intel.com/design/network/products/npfamily/ixp420.htm" +LICENSE = "http://www.intel.com/design/network/swsup/np_sla/ixp400.htm" +LICENSE_HOMEPAGE = "http://www.intel.com/design/network/products/npfamily/ixp425swr1.htm" +# You must download the following software to your OpenEmbedded downloads +# directory before using this package: +# +# IPL_ixp400AccessLibrary-2_1.zip +# +# To do this go to the LICENSE_HOMEPAGE above, register/login (using a +# web browser which is supported by the login page), this will give you +# access to the web page from which you can download the software - you +# need the: "Intel® IXP400 Software and RedBoot* Boot Loader" and, from +# this the "Intel Hardware Access Software" (versions 2.1 encryption is +# not required.) +# +# Store the file with the name given below in your downloads directory +# and store the 32 character md5sum of the file in a file of the same +# name with the additional extension .md5: +# +# IPL_ixp400AccessLibrary-2_1.zip.md5 +# +SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400AccessLibrary-2_1.zip" +SRC_URI += "file://Makefile.patch;patch=1" +SRC_URI += "file://2.6.patch;patch=1" +SRC_URI += "file://invalidate-cache.patch;patch=1" +SRC_URI += "file://ixp4xx-header.patch;patch=1" +SRC_URI += "file://le.patch;patch=1" +SRC_URI += "file://assert.patch;patch=1" + +S = "${WORKDIR}/ixp_osal" +PR = "r0" + +COMPATIBLE_HOST = "^arm.*-linux.*" + +inherit module + +# Add the architecture compiler flags to KERNEL_CC and KERNEL_LD as +# required. Notice that this has to be done for each separately built +# module as well! +KERNEL_CC += "${TARGET_CC_KERNEL_ARCH}" +KERNEL_LD += "${TARGET_LD_KERNEL_ARCH}" + +IX_TARGET = "linux${ARCH_BYTE_SEX}" +IX_ENSURE = "" +#IX_ENSURE = "IX_OSAL_ENSURE_ON=1" + +EXTRA_OEMAKE = "'CC=${KERNEL_CC}' \ + 'LD=${KERNEL_LD}' \ + 'AR=${AR}' \ + 'IX_XSCALE_SW=${S}' \ + 'IX_TARGET=${IX_TARGET}' \ + 'IX_DEVICE=ixp42X' \ + ${IX_ENSURE} \ + 'LINUX_SRC=${STAGING_KERNEL_DIR}' \ + 'LINUX_CROSS_COMPILE=${HOST_PREFIX}' \ + " + +OSAL_PATH = "lib/ixp425/linux/${IX_TARGET}" +# This is a somewhat arbitrary choice: +OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal" + +do_compile () { + oe_runmake ${OSAL_PATH}/libosal.a ${OSAL_PATH}/ixp_osal.o +} + +do_stage () { + # Clean the directory first, this ensures incremental builds have + # a slightly better chance of working + rm -rf ${OSAL_DIR} + install -d ${OSAL_DIR} + + # First the include files, maintain the tree structure (ixp4xx-csr + # expects the exact same tree) + cp -rf --dereference include ${OSAL_DIR} + install -d ${OSAL_DIR}/os/linux + cp -rf --dereference os/linux/include ${OSAL_DIR}/os/linux + + # Install the library/object + install -d ${OSAL_DIR}/${OSAL_PATH} + rm -f ${OSAL_DIR}/libosal + install -m 0644 ${OSAL_PATH}/libosal.a ${OSAL_DIR}/${OSAL_PATH} + touch ${OSAL_DIR}/libosal + rm -f ${OSAL_DIR}/module + install -m 0644 ${OSAL_PATH}/ixp_osal.o ${OSAL_DIR}/${OSAL_PATH} + touch ${OSAL_DIR}/module +} + +# This stuff doesn't install anything... +PACKAGES = "" + +do_install () { +} diff --git a/packages/ixp4xx/ixp4xx-csr-2.0/Makefile.patch b/packages/ixp4xx/ixp4xx-csr-2.0/Makefile.patch index 585320c7ec..c5a907e1f1 100644 --- a/packages/ixp4xx/ixp4xx-csr-2.0/Makefile.patch +++ b/packages/ixp4xx/ixp4xx-csr-2.0/Makefile.patch @@ -1,26 +1,6 @@ diff -Naur ixp400_xscale_sw.orig/Makefile ixp400_xscale_sw/Makefile --- ixp400_xscale_sw/.pc/Makefile.patch/Makefile 2005-04-17 20:54:58.000000000 -0700 +++ ixp400_xscale_sw/Makefile 2005-10-01 18:15:08.422924549 -0700 -@@ -104,8 +104,8 @@ - vxbe_COMPONENTS := $(BI_ENDIAN_COMPONENTS) perfProfAcc dmaAcc - vxle_COMPONENTS := $(BI_ENDIAN_COMPONENTS) perfProfAcc - vxsim_COMPONENTS := $(BI_ENDIAN_COMPONENTS) dmaAcc --linuxbe_COMPONENTS := $(BI_ENDIAN_COMPONENTS) perfProfAcc dmaAcc oslinux --linuxle_COMPONENTS := $(BI_ENDIAN_COMPONENTS) perfProfAcc oslinux -+linuxbe_COMPONENTS := $(BI_ENDIAN_COMPONENTS) dmaAcc oslinux -+linuxle_COMPONENTS := $(BI_ENDIAN_COMPONENTS) oslinux - - #The lists below contain the set of components available for each target platform - # specific to the ixp46X device -@@ -132,7 +132,7 @@ - # Codelet components - # Codeletes listed in BI_ENDIAN_CODELETS_COMPONENTS must work for both - # big and little endian OSs. --BI_ENDIAN_CODELETS_COMPONENTS := hssAcc ethAcc perfProfAcc atm -+BI_ENDIAN_CODELETS_COMPONENTS := hssAcc ethAcc atm - - #Codelet components only applicable to ixp46x - ixp46X_BI_ENDIAN_CODELETS_COMPONENTS := timeSyncAcc parityENAcc @@ -312,9 +312,9 @@ else # linux compiler flags diff --git a/packages/ixp4xx/ixp4xx-csr-2.0/le.patch b/packages/ixp4xx/ixp4xx-csr-2.0/le.patch index f1f0e09ff8..e32b795755 100644 --- a/packages/ixp4xx/ixp4xx-csr-2.0/le.patch +++ b/packages/ixp4xx/ixp4xx-csr-2.0/le.patch @@ -1,696 +1,24 @@ -diff -bBdurN hannes/ixp400_xscale_sw/src/codelets/dmaAcc/IxDmaAccCodelet_p.h merged/ixp400_xscale_sw/src/codelets/dmaAcc/IxDmaAccCodelet_p.h ---- ixp400_xscale_sw/src/codelets/dmaAcc/IxDmaAccCodelet_p.h 2005-10-07 09:28:48.147833350 -0700 -+++ ixp400_xscale_sw/src/codelets/dmaAcc/IxDmaAccCodelet_p.h 2005-10-07 15:08:42.343159153 -0700 -@@ -113,7 +113,11 @@ - * @return IX_FAIL - Error initialising codelet +--- ixp400_xscale_sw/.pc/le.patch/src/include/IxQMgr.h 2005-04-17 20:55:31.000000000 -0700 ++++ ixp400_xscale_sw/src/include/IxQMgr.h 2005-11-19 16:01:52.817556623 -0800 +@@ -87,7 +87,9 @@ + /* + * Define QMgr's IoMem macros, in DC mode if in LE + * regular if in BE. (Note: For Linux LSP gold release +- * may need to adjust mode. ++ * may need to adjust mode. For standard Linux kernels ++ * data coherent access is not used, therefore address ++ * coherency must be set. */ - IX_STATUS -+#ifndef __ARMEB__ -+ixDmaAccCodeletInit(IxDmaNpeId npeId); -+#else /* __ARMEB__ */ - ixDmaAccCodeletInit(IxNpeDlNpeId npeId); -+#endif /* __ARMEB__ */ + #if defined (__BIG_ENDIAN) - /** - * @fn ixDmaAccCodeletTestPerform( UINT16 transferLength, -diff -bBdurN hannes/ixp400_xscale_sw/src/ethAcc/IxEthAccDataPlane.c merged/ixp400_xscale_sw/src/ethAcc/IxEthAccDataPlane.c ---- ixp400_xscale_sw/src/ethAcc/IxEthAccDataPlane.c 2005-04-17 20:55:12.000000000 -0700 -+++ ixp400_xscale_sw/src/ethAcc/IxEthAccDataPlane.c 2005-10-07 15:08:42.511169725 -0700 -@@ -59,6 +59,16 @@ - #include "IxEthAcc_p.h" - #include "IxEthAccQueueAssign_p.h" - -+#ifndef __ARMEB__ -+#ifdef DEBUG_ACDC -+#define TRACE printk("%s: %s(): line %d\n", "IxEth", __FUNCTION__, __LINE__) -+#define PRINTK(args...) printk(args) -+#else -+#define TRACE while (0) {} -+#define PRINTK(args...) while (0) {} -+#endif -+ -+#endif /* ! __ARMEB__ */ - extern PUBLIC IxEthAccMacState ixEthAccMacState[]; - extern PUBLIC UINT32 ixEthAccNewSrcMask; - -@@ -252,7 +262,13 @@ - - if (qEntry != 0) - { -+#ifndef __ARMEB__ -+ PRINTK("qEntry = %p %d ",qEntry, mask); -+#endif /* ! __ARMEB__ */ - /* mask NPE bits (e.g. priority, port ...) */ -+#ifndef __ARMEB__ -+ TRACE; -+#endif /* ! __ARMEB__ */ - qEntry &= mask; - - #if IX_ACC_DRAM_PHYS_OFFSET != 0 -@@ -270,6 +286,14 @@ - - /* preload the cacheline used by xscale */ - IX_ACC_DATA_CACHE_PRELOAD(mbufPtr); -+#ifndef __ARMEB__ -+ PRINTK("%p\n", mbufPtr ); -+ -+#if 0 -+ {int junk = *(int*)mbufPtr; -+ printk("j=%d\n", junk);} -+#endif -+#endif /* ! __ARMEB__ */ - } - else - { -@@ -506,15 +530,30 @@ - ixEthAccMbufFromRxQ(IX_OSAL_MBUF *mbuf) - { - UINT32 len; -+#ifndef __ARMEB__ -+ TRACE; -+ PRINTK("mbuf=%p\n", mbuf); -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* endianess swap for tci and flags - note: this is done only once, even for chained buffers */ - IX_ETHACC_NE_FLAGS(mbuf) = IX_OSAL_SWAP_BE_SHARED_SHORT(IX_ETHACC_NE_FLAGS(mbuf)); -+#ifndef __ARMEB__ -+ TRACE; -+#endif /* ! __ARMEB__ */ - IX_ETHACC_NE_VLANTCI(mbuf) = IX_OSAL_SWAP_BE_SHARED_SHORT(IX_ETHACC_NE_VLANTCI(mbuf)); -+#ifndef __ARMEB__ -+ TRACE; -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* test for unchained mbufs */ - if (IX_ETHACC_NE_NEXT(mbuf) == 0) - { -+#ifndef __ARMEB__ -+ TRACE; -+#endif /* ! __ARMEB__ */ - /* unchained mbufs */ - IX_ETH_ACC_STATS_INC(ixEthAccDataStats.unchainedRxMBufs); - -@@ -531,11 +570,19 @@ - IX_OSAL_MBUF *ptr = mbuf; - IX_OSAL_MBUF *nextPtr; - UINT32 frmLen; -+#ifndef __ARMEB__ -+ TRACE; -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* convert the frame length */ - frmLen = IX_OSAL_SWAP_BE_SHARED_LONG(IX_ETHACC_NE_LEN(mbuf)); - IX_OSAL_MBUF_PKT_LEN(mbuf) = (frmLen & IX_ETHNPE_ACC_PKTLENGTH_MASK); -+#ifndef __ARMEB__ -+ PRINTK("frm len %d\n", frmLen); -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* chained mbufs */ - do - { -@@ -547,6 +594,9 @@ - - /* get the next pointer */ - PTR_NPE2VIRT(IX_OSAL_MBUF *,IX_ETHACC_NE_NEXT(ptr), nextPtr); -+#ifndef __ARMEB__ -+ PRINTK("nextptr %p\n", nextPtr); -+#endif /* ! __ARMEB__ */ - if (nextPtr != NULL) - { - nextPtr = (IX_OSAL_MBUF *)((UINT8 *)nextPtr - offsetof(IX_OSAL_MBUF,ix_ne)); -@@ -558,6 +608,9 @@ - ptr = nextPtr; - } - while (ptr != NULL); -+#ifndef __ARMEB__ -+ TRACE; -+#endif /* ! __ARMEB__ */ - } - } - -@@ -1449,7 +1502,11 @@ - { - UINT32 flags; - IxEthDBStatus result; -+#ifndef __ARMEB__ -+ TRACE; -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - #ifndef NDEBUG - /* Prudent to at least check the port is within range */ - if (portId >= IX_ETH_ACC_NUMBER_OF_PORTS) -@@ -1461,18 +1518,33 @@ - return FALSE; - } - #endif -+#ifndef __ARMEB__ -+ TRACE; -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* convert fields from mbuf header */ - ixEthAccMbufFromRxQ(mbufPtr); -+#ifndef __ARMEB__ -+ TRACE; -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* check about any special processing for this frame */ - flags = IX_ETHACC_NE_FLAGS(mbufPtr); - if ((flags & (IX_ETHACC_NE_FILTERMASK | IX_ETHACC_NE_NEWSRCMASK)) == 0) - { -+#ifndef __ARMEB__ -+ TRACE; -+#endif /* ! __ARMEB__ */ - /* "best case" scenario : nothing special to do for this frame */ - return TRUE; - } -+#ifndef __ARMEB__ -+ TRACE; -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* if a new source MAC address is detected by the NPE, - * update IxEthDB with the portId and the MAC address. - */ -@@ -1501,7 +1573,11 @@ - RX_STATS_INC(portId, rxUnlearnedMacAddress); - } - } -+#ifndef __ARMEB__ -+ TRACE; -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* check if this frame should have been filtered - * by the NPE and take the appropriate action - */ -@@ -1542,7 +1618,11 @@ - /* indicate that frame should not be subjected to further processing */ - return FALSE; - } -+#ifndef __ARMEB__ -+ TRACE; -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - return TRUE; - } - -@@ -1588,6 +1668,9 @@ - */ - IX_ETH_ACC_STATS_INC(ixEthAccDataStats.rxCallbackCounter); - -+#ifndef __ARMEB__ -+ TRACE; -+#endif /* ! __ARMEB__ */ - do - { - /* -@@ -1602,7 +1685,12 @@ - rxQReadStatus = ixQMgrQBurstRead(qId, - IX_ETH_ACC_MAX_RX_FRAME_CONSUME_PER_CALLBACK, - qEntryPtr); -+#ifndef __ARMEB__ -+ // TRACE; -+ PRINTK("rxQReadStatus = %d\n", rxQReadStatus); -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - #ifndef NDEBUG - if ((rxQReadStatus != IX_QMGR_Q_UNDERFLOW) - && (rxQReadStatus != IX_SUCCESS)) -@@ -1623,9 +1711,16 @@ - nextQEntry = *qEntryPtr; - nextMbufPtr = ixEthAccEntryFromQConvert(nextQEntry, - IX_ETHNPE_QM_Q_RXENET_ADDR_MASK); -+#ifndef __ARMEB__ -+ // TRACE; -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - while(nextQEntry != 0) - { -+#ifndef __ARMEB__ -+ int res; -+#endif /* ! __ARMEB__ */ - /* get the next entry */ - qEntry = nextQEntry; - mbufPtr = nextMbufPtr; -@@ -1648,7 +1743,11 @@ - nextQEntry = *(++qEntryPtr); - nextMbufPtr = ixEthAccEntryFromQConvert(nextQEntry, - IX_ETHNPE_QM_Q_RXENET_ADDR_MASK); -+#ifndef __ARMEB__ -+ TRACE; -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* - * Get Port and Npe ID from message. - */ -@@ -1659,7 +1758,12 @@ - /* process frame, check the return code and skip the remaining of - * the loop if the frame is to be filtered out - */ -+#ifndef __ARMEB__ -+ res = ixEthRxFrameProcess(portId, mbufPtr); -+ if (res) -+#else /* __ARMEB__ */ - if (ixEthRxFrameProcess(portId, mbufPtr)) -+#endif /* __ARMEB__ */ - { - /* destination portId for this packet */ - destPortId = IX_ETHACC_NE_DESTPORTID(mbufPtr); -@@ -1682,7 +1786,11 @@ - callbackId); - } - } -+#ifndef __ARMEB__ -+ TRACE; -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* - * increment priority stats - */ -@@ -1696,6 +1804,9 @@ - /* - * Call user level callback. - */ -+#ifndef __ARMEB__ -+ TRACE; -+#endif /* ! __ARMEB__ */ - ixEthAccPortData[portId].ixEthAccRxData.rxCallbackFn( - ixEthAccPortData[portId].ixEthAccRxData.rxCallbackTag, - mbufPtr, -@@ -1703,6 +1814,9 @@ - } - } - } while (rxQReadStatus == IX_SUCCESS); -+#ifndef __ARMEB__ -+ TRACE; -+#endif /* ! __ARMEB__ */ - } - - /** -@@ -2092,10 +2206,19 @@ - - do{ - qEntryPtr = txDoneQEntry; -+#ifndef __ARMEB__ -+ // TRACE; -+#endif /* ! __ARMEB__ */ - txDoneQReadStatus = ixQMgrQBurstRead(IX_ETH_ACC_TX_FRAME_DONE_ETH_Q, - IX_ETH_ACC_MAX_TX_FRAME_DONE_CONSUME_PER_CALLBACK, - qEntryPtr); -+#ifndef __ARMEB__ -+ if (txDoneQReadStatus == 0 && qEntryPtr[0] == 0) -+ return; -+ PRINTK("txDoneQReadStatus %d\n", txDoneQReadStatus); -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - #ifndef NDEBUG - if (txDoneQReadStatus != IX_QMGR_Q_UNDERFLOW - && (txDoneQReadStatus != IX_SUCCESS)) -@@ -2113,6 +2236,9 @@ - - while(qEntry != 0) - { -+#ifndef __ARMEB__ -+ TRACE; -+#endif /* ! __ARMEB__ */ - mbufPtr = ixEthAccEntryFromQConvert(qEntry, - IX_ETHNPE_QM_Q_TXENET_ADDR_MASK); - -@@ -2126,7 +2252,11 @@ - return; - } - #endif -+#ifndef __ARMEB__ -+ TRACE; -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* endianness conversions and stats updates */ - ixEthAccMbufFromTxQ(mbufPtr); - -@@ -2151,14 +2281,22 @@ - #endif - - TX_STATS_INC(portId,txDoneClientCallback); -+#ifndef __ARMEB__ -+ TRACE; -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* - * Call user level callback. - */ - ixEthAccPortData[portId].ixEthAccTxData.txBufferDoneCallbackFn( - ixEthAccPortData[portId].ixEthAccTxData.txCallbackTag, - mbufPtr); -+#ifndef __ARMEB__ -+ TRACE; -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* move to next queue entry */ - qEntry = *(++qEntryPtr); - -diff -bBdurN hannes/ixp400_xscale_sw/src/ethAcc/IxEthAccMii.c merged/ixp400_xscale_sw/src/ethAcc/IxEthAccMii.c ---- ixp400_xscale_sw/src/ethAcc/IxEthAccMii.c 2005-04-17 20:55:13.000000000 -0700 -+++ ixp400_xscale_sw/src/ethAcc/IxEthAccMii.c 2005-10-07 15:08:42.515169976 -0700 -@@ -94,6 +94,12 @@ - (mdioCommand >> 24) & 0xff); - } - -+#ifndef __ARMEB__ -+#if defined(IX_OSAL_LINUX_LE) -+//#error it is defined -+#endif -+ -+#endif /* ! __ARMEB__ */ - PRIVATE void - ixEthAccMdioCmdRead(UINT32 *data) - { -@@ -241,6 +246,9 @@ - - while(miiTimeout) - { -+#ifndef __ARMEB__ -+ ixOsalSleep(ixEthAccMiiAccessTimeout); -+#endif /* ! __ARMEB__ */ - - ixEthAccMdioCmdRead(®val); - -@@ -249,7 +257,9 @@ - break; - } - /* Sleep for a while */ -+#ifdef __ARMEB__ - ixOsalSleep(ixEthAccMiiAccessTimeout); -+#endif /* __ARMEB__ */ - miiTimeout--; - } - -@@ -321,6 +331,9 @@ - - while(miiTimeout) - { -+#ifndef __ARMEB__ -+ ixOsalSleep(ixEthAccMiiAccessTimeout); -+#endif /* ! __ARMEB__ */ - - ixEthAccMdioCmdRead(®val); - -@@ -330,7 +343,9 @@ - break; - } - /* Sleep for a while */ -+#ifdef __ARMEB__ - ixOsalSleep(ixEthAccMiiAccessTimeout); -+#endif /* __ARMEB__ */ - miiTimeout--; - } - -diff -bBdurN hannes/ixp400_xscale_sw/src/ethAcc/include/IxEthAccMac_p.h merged/ixp400_xscale_sw/src/ethAcc/include/IxEthAccMac_p.h ---- ixp400_xscale_sw/src/ethAcc/include/IxEthAccMac_p.h 2005-04-17 20:56:03.000000000 -0700 -+++ ixp400_xscale_sw/src/ethAcc/include/IxEthAccMac_p.h 2005-10-07 15:08:42.467166956 -0700 -@@ -46,7 +46,11 @@ - #define IxEthAccMac_p_H - - #include "IxOsal.h" -+#ifndef __ARMEB__ -+#define BIT(x) (1 << (x)) -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - #define IX_ETH_ACC_MAX_MULTICAST_ADDRESSES 256 - #define IX_ETH_ACC_NUM_PORTS 3 - #define IX_ETH_ACC_MAX_FRAME_SIZE_DEFAULT 1536 -diff -bBdurN hannes/ixp400_xscale_sw/src/ethMii/IxEthMii.c merged/ixp400_xscale_sw/src/ethMii/IxEthMii.c ---- ixp400_xscale_sw/src/ethMii/IxEthMii.c 2005-04-17 20:55:18.000000000 -0700 -+++ ixp400_xscale_sw/src/ethMii/IxEthMii.c 2005-10-07 15:08:42.575173752 -0700 -@@ -110,6 +110,14 @@ - /*Need to read the register twice here to flush PHY*/ - ixEthAccMiiReadRtn(i, IX_ETH_MII_PHY_ID1_REG, ®valId1); - ixEthAccMiiReadRtn(i, IX_ETH_MII_PHY_ID1_REG, ®valId1); -+#ifndef __ARMEB__ -+ ixEthAccMiiReadRtn(i, IX_ETH_MII_PHY_ID1_REG, ®valId1); -+ ixEthAccMiiReadRtn(i, IX_ETH_MII_PHY_ID1_REG, ®valId1); -+ ixEthAccMiiReadRtn(i, IX_ETH_MII_PHY_ID1_REG, ®valId1); -+ ixEthAccMiiReadRtn(i, IX_ETH_MII_PHY_ID2_REG, ®valId2); -+ ixEthAccMiiReadRtn(i, IX_ETH_MII_PHY_ID2_REG, ®valId2); -+ ixEthAccMiiReadRtn(i, IX_ETH_MII_PHY_ID2_REG, ®valId2); -+#endif /* ! __ARMEB__ */ - ixEthAccMiiReadRtn(i, IX_ETH_MII_PHY_ID2_REG, ®valId2); - ixEthMiiPhyId[i] = (regvalId1 << IX_ETH_MII_REG_SHL) | regvalId2; - if ((ixEthMiiPhyId[i] == IX_ETH_MII_KS8995_PHY_ID) -diff -bBdurN hannes/ixp400_xscale_sw/src/ethMii/IxEthMii_p.h merged/ixp400_xscale_sw/src/ethMii/IxEthMii_p.h ---- ixp400_xscale_sw/src/ethMii/IxEthMii_p.h 2005-04-17 20:55:18.000000000 -0700 -+++ ixp400_xscale_sw/src/ethMii/IxEthMii_p.h 2005-10-07 15:08:42.579174004 -0700 -@@ -52,7 +52,11 @@ - - #ifndef IxEthMii_p_H - #define IxEthMii_p_H -+#ifndef __ARMEB__ -+#define BIT(x) (1 << (x)) -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - - /* MII definitions - these have been verified against the LXT971 and - LXT972 PHYs*/ -diff -bBdurN hannes/ixp400_xscale_sw/src/include/IxQMgr.h merged/ixp400_xscale_sw/src/include/IxQMgr.h ---- ixp400_xscale_sw/src/include/IxQMgr.h 2005-04-17 20:55:31.000000000 -0700 -+++ ixp400_xscale_sw/src/include/IxQMgr.h 2005-10-07 15:08:42.723183066 -0700 -@@ -96,8 +96,13 @@ +@@ -96,8 +98,8 @@ #else -+#ifndef __ARMEB__ +-#define IX_QMGR_INLINE_READ_LONG IX_OSAL_READ_LONG_LE_DC +-#define IX_QMGR_INLINE_WRITE_LONG IX_OSAL_WRITE_LONG_LE_DC +#define IX_QMGR_INLINE_READ_LONG IX_OSAL_READ_LONG_LE_AC +#define IX_QMGR_INLINE_WRITE_LONG IX_OSAL_WRITE_LONG_LE_AC -+#else /* __ARMEB__ */ - #define IX_QMGR_INLINE_READ_LONG IX_OSAL_READ_LONG_LE_DC - #define IX_QMGR_INLINE_WRITE_LONG IX_OSAL_WRITE_LONG_LE_DC -+#endif /* __ARMEB__ */ #endif -@@ -1340,7 +1345,11 @@ - { - /* get the queue status */ - UINT32 status = IX_QMGR_INLINE_READ_LONG(infoPtr->qUOStatRegAddr); -+#ifndef __ARMEB__ -+ PRINTK("Qstatus %d\n", status); -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - if (status & infoPtr->qUflowStatBitMask) - { - /* clear the underflow status bit if it was set */ -diff -bBdurN hannes/ixp400_xscale_sw/src/include/IxTypes.h merged/ixp400_xscale_sw/src/include/IxTypes.h ---- ixp400_xscale_sw/src/include/IxTypes.h 2005-10-07 09:28:48.151833601 -0700 -+++ ixp400_xscale_sw/src/include/IxTypes.h 2005-10-07 15:08:42.735183821 -0700 -@@ -79,10 +79,12 @@ - #endif - #endif - -+#ifdef __ARMEB__ - #ifndef BIT - #define BIT(x) ((1)<<(x)) - #endif - -+#endif /* __ARMEB__ */ - #include "IxOsalBackward.h" - - #endif /* IxTypes_H */ -diff -bBdurN hannes/ixp400_xscale_sw/src/osServices/IxOsServices.c merged/ixp400_xscale_sw/src/osServices/IxOsServices.c ---- ixp400_xscale_sw/src/osServices/IxOsServices.c 2005-04-17 20:55:38.000000000 -0700 -+++ ixp400_xscale_sw/src/osServices/IxOsServices.c 2005-10-07 15:08:42.827189611 -0700 -@@ -172,3 +172,61 @@ - ixOsalYield (); - } - -+#ifndef __ARMEB__ -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+ -+/* -+ * 2.6 kernels do not export the required cache management routines so -+ * reimplement them here. -+ */ -+ -+#define _IX_STR(x) #x -+#define IX_STR(x) _IX_STR(x) -+#define IX_CLM IX_STR(IX_XSCALE_CACHE_LINE_SIZE-1) -+ -+/* -+ * IX_ACC_DATA_CACHE_INVALIDATE(addr, size) -+ */ -+void -+ix_dcache_invalidate_range(unsigned long start, unsigned long size) -+{ -+ __asm__ -+ (" tst %0, #" IX_CLM "\n" -+ " mcrne p15, 0, %0, c7, c10, 1 @ clean D cache line\n" -+ " bic %0, %0, #" IX_CLM "\n" -+ " tst %1, #" IX_CLM "\n" -+ " mcrne p15, 0, %1, c7, c10, 1 @ clean D cache line\n" -+ "1: mcr p15, 0, %0, c7, c6, 1 @ invalidate D cache line\n" -+ " add %0, %0, #" IX_STR(IX_XSCALE_CACHE_LINE_SIZE) "\n" -+ " cmp %0, %1\n" -+ " blo 1b\n" -+ " mcr p15, 0, %0, c7, c10, 4 @ drain write & fill buffer\n" -+ : /* no output */ -+ : "r"(start), "r"(size) -+ : "cc"); -+} -+ -+/* -+ * IX_ACC_DATA_CACHE_FLUSH(addr, size) -+ */ -+void -+ix_dcache_flush_range(unsigned long start, unsigned long size) -+{ -+ __asm__ -+ (" bic %0, %0, #" IX_CLM "\n" -+ "1: mcr p15, 0, %0, c7, c10, 1 @ clean D cache line\n" -+ " add %0, %0, #" IX_STR(IX_XSCALE_CACHE_LINE_SIZE) "\n" -+ " cmp %0, %1\n" -+ " blo 1b\n" -+ " mcr p15, 0, %0, c7, c10, 4 @ drain write & fill buffer\n" -+ : /* no output */ -+ : "r"(start), "r"(size) -+ : "cc"); -+} -+ -+#undef _IX_STR -+#undef IX_STR -+#undef IX_CLM -+ -+#endif -+#endif /* ! __ARMEB__ */ -diff -bBdurN hannes/ixp400_xscale_sw/src/osServices/IxOsServicesSymbols.c merged/ixp400_xscale_sw/src/osServices/IxOsServicesSymbols.c ---- ixp400_xscale_sw/src/osServices/IxOsServicesSymbols.c 2005-04-17 20:55:39.000000000 -0700 -+++ ixp400_xscale_sw/src/osServices/IxOsServicesSymbols.c 2005-10-07 15:08:42.827189611 -0700 -@@ -74,6 +74,11 @@ - EXPORT_SYMBOL (ixOsServYield); - EXPORT_SYMBOL (ixOsalOsIxp400BackwardPoolInit); - EXPORT_SYMBOL (ixOsalOsIxp400BackwardMbufPoolGet); -+#ifndef __ARMEB__ -+EXPORT_SYMBOL(ix_dcache_invalidate_range); -+EXPORT_SYMBOL(ix_dcache_flush_range); -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - #endif /* __linux */ - -diff -bBdurN hannes/ixp400_xscale_sw/src/oslinux/IxLinuxInit.c merged/ixp400_xscale_sw/src/oslinux/IxLinuxInit.c ---- ixp400_xscale_sw/src/oslinux/IxLinuxInit.c 2005-10-07 14:55:03.931659764 -0700 -+++ ixp400_xscale_sw/src/oslinux/IxLinuxInit.c 2005-10-07 15:08:42.831189862 -0700 -@@ -99,6 +99,9 @@ - /* Init and cleanup functions for module */ - static int __init ixp400_sw_init_module(void) - { -+#ifndef __ARMEB__ -+ ixOsalLogLevelSet(IX_OSAL_LOG_LVL_ALL); -+#endif /* ! __ARMEB__ */ - /* Add initialization code here */ - #ifdef DEBUG - printk("\n\n"__FUNCTION__": addr=%p\n\n", ixp400_sw_init_module); -diff -bBdurN hannes/ixp400_xscale_sw/src/qmgr/IxQMgrInit.c merged/ixp400_xscale_sw/src/qmgr/IxQMgrInit.c ---- ixp400_xscale_sw/src/qmgr/IxQMgrInit.c 2005-04-17 20:55:44.000000000 -0700 -+++ ixp400_xscale_sw/src/qmgr/IxQMgrInit.c 2005-10-07 15:08:42.923195652 -0700 -@@ -84,13 +84,25 @@ - - /* Initialise the QCfg component */ - ixQMgrQCfgInit (); -+#ifndef __ARMEB__ -+ TRACE(); -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* Initialise the Dispatcher component */ - ixQMgrDispatcherInit (); -+#ifndef __ARMEB__ -+ TRACE(); -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* Initialise the Access component */ - ixQMgrQAccessInit (); -+#ifndef __ARMEB__ -+ TRACE(); -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* Initialization complete */ - qMgrIsInitialized = TRUE; - -diff -bBdurN hannes/ixp400_xscale_sw/src/qmgr/IxQMgrQCfg.c merged/ixp400_xscale_sw/src/qmgr/IxQMgrQCfg.c ---- ixp400_xscale_sw/src/qmgr/IxQMgrQCfg.c 2005-04-17 20:55:45.000000000 -0700 -+++ ixp400_xscale_sw/src/qmgr/IxQMgrQCfg.c 2005-10-07 15:08:42.931196155 -0700 -@@ -150,7 +150,11 @@ - ixQMgrQCfgInit (void) - { - int loopIndex; -+#ifndef __ARMEB__ -+ TRACE(); -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - for (loopIndex=0; loopIndex < IX_QMGR_MAX_NUM_QUEUES;loopIndex++) - { - /* info for code inlining */ -@@ -167,10 +171,18 @@ - ixQMgrQInlinedReadWriteInfo[loopIndex].qSizeInEntries = 0; - ixQMgrQInlinedReadWriteInfo[loopIndex].qConfigRegAddr = zeroedPlaceHolder; - } -+#ifndef __ARMEB__ -+ TRACE(); -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* Initialise the AqmIf component */ - ixQMgrAqmIfInit (); -+#ifndef __ARMEB__ -+ TRACE(); -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - /* Reset all queues to have queue name = NULL, entry size = 0 and - * isConfigured = false - */ -@@ -188,11 +200,23 @@ - - /* Statistics */ - stats.wmSetCnt = 0; -+#ifndef __ARMEB__ -+ TRACE(); -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - ixQMgrAqmIfSramBaseAddressGet (&freeSramAddress); -+#ifndef __ARMEB__ -+ TRACE(); -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - ixOsalMutexInit(&ixQMgrQCfgMutex); -+#ifndef __ARMEB__ -+ TRACE(); -+#else /* __ARMEB__ */ - -+#endif /* __ARMEB__ */ - cfgInitialized = TRUE; - } - diff --git a/packages/ixp4xx/ixp4xx-csr-2.1/.mtn2git_empty b/packages/ixp4xx/ixp4xx-csr-2.1/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/ixp4xx/ixp4xx-csr-2.1/.mtn2git_empty diff --git a/packages/ixp4xx/ixp4xx-csr-2.1/Makefile.patch b/packages/ixp4xx/ixp4xx-csr-2.1/Makefile.patch new file mode 100644 index 0000000000..b90a3d7da4 --- /dev/null +++ b/packages/ixp4xx/ixp4xx-csr-2.1/Makefile.patch @@ -0,0 +1,59 @@ +--- ixp400_xscale_sw/Makefile 2005-11-20 08:43:17.610454268 -0800 ++++ ixp400_xscale_sw/Makefile 2005-11-20 08:44:37.387474319 -0800 +@@ -297,9 +297,9 @@ endif + else # IX_TARGET_OS == vxworks + # linux compiler flags + MAKE_DEP_FLAG := -M +-LINUX_MACH_CFLAGS := -D__LINUX_ARM_ARCH__=5 -mcpu=xscale -mtune=xscale ++LINUX_MACH_CFLAGS := -D__LINUX_ARM_ARCH__=5 -mtune=xscale + +-CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -Wall -Wno-trigraphs -fno-common -pipe -mapcs-32 -mshort-load-bytes -msoft-float -DMODULE -Isrc/include -D__linux -DCPU=33 -DXSCALE=33 $(LINUX_MACH_CFLAGS) ++CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -Wall -Wno-trigraphs -fno-common -pipe -mapcs-32 -msoft-float -DMODULE -Isrc/include -D__linux -DCPU=33 -DXSCALE=33 $(LINUX_MACH_CFLAGS) + ifndef IX_INCLUDE_MICROCODE + CFLAGS += -DIX_NPEDL_READ_MICROCODE_FROM_FILE + endif +@@ -867,9 +867,11 @@ $(NPE_DAT) : $(NPE_CONVERTER) + + ifeq ($(IX_HOST_OS),linux) + ifndef IX_INCLUDE_MICROCODE ++ifdef IX_BUILD_MICROCODE + Makefile: $(NPE_CONVERTER) $(NPE_DAT) + endif + endif ++endif + + ################################################################ + # Rules to check that macros are defined. +@@ -1321,10 +1323,18 @@ ixp400.o : $(OBJ_DIR)/ixp400.o + + ifndef IX_INCLUDE_MICROCODE + $(OBJ_DIR)/ixp400.o: $(COMPONENTS:%=$(OBJ_DIR)/ixp400_%.o) $(OSAL_MODULE) ++ touch $(OBJ_DIR)/ixp400.c ++ cp Makefile.kmod26 $(OBJ_DIR)/Makefile ++ make -C $(OBJ_DIR) + $(LD) $(LDFLAGS) $^ -o $@ ++ make -C $(OBJ_DIR) + else + $(OBJ_DIR)/ixp400.o: $(COMPONENTS:%=$(OBJ_DIR)/ixp400_%.o) $(NPE_PRODUCTION_HEADER_OBJ) $(OSAL_MODULE) ++ touch $(OBJ_DIR)/ixp400.c ++ cp Makefile.kmod26 $(OBJ_DIR)/Makefile ++ make -C $(OBJ_DIR) + $(LD) $(LDFLAGS) $^ -o $@ ++ make -C $(OBJ_DIR) + endif + + +--- ixp400_xscale_sw/Makefile.kmod26 1970-01-01 01:00:00.000000000 +0100 ++++ ixp400_xscale_sw/Makefile.kmod26 2005-08-24 22:33:12.000000000 +0200 +@@ -0,0 +1,11 @@ ++obj-m := ixp400.o ++ ++PWD := $(shell pwd) ++ ++LINUX_SRC := $($(IX_TARGET)_KERNEL_DIR) ++ ++default: ++ $(MAKE) ARCH=arm CROSS_COMPILE=$(LINUX_CROSS_COMPILE) $(KERNEL_VERBOSE) -C $(LINUX_SRC) SUBDIRS=$(PWD) modules ++ ++clean: ++ rm -f ixp400.ko diff --git a/packages/ixp4xx/ixp4xx-csr-2.1/bit-macro.patch b/packages/ixp4xx/ixp4xx-csr-2.1/bit-macro.patch new file mode 100644 index 0000000000..5cdb395f28 --- /dev/null +++ b/packages/ixp4xx/ixp4xx-csr-2.1/bit-macro.patch @@ -0,0 +1,14 @@ +--- ixp400_xscale_sw/src/include/IxTypes.h 2005-08-24 00:16:36.000000000 +0200 ++++ ixp400_xscale_sw/src/include/IxTypes.h 2005-08-26 01:19:15.000000000 +0200 +@@ -79,6 +79,10 @@ + #endif + #endif + ++#ifndef BIT ++#define BIT(x) ((1)<<(x)) ++#endif ++ + #include "IxOsalBackward.h" + + #endif /* IxTypes_H */ + diff --git a/packages/ixp4xx/ixp4xx-csr-2.1/ixethdb-header.patch b/packages/ixp4xx/ixp4xx-csr-2.1/ixethdb-header.patch new file mode 100644 index 0000000000..e426afe914 --- /dev/null +++ b/packages/ixp4xx/ixp4xx-csr-2.1/ixethdb-header.patch @@ -0,0 +1,11 @@ +--- ixp400_xscale_sw/src/ethDB/include/IxEthDB_p.h.orig 2005-11-20 08:51:54.710993353 -0800 ++++ ixp400_xscale_sw/src/ethDB/include/IxEthDB_p.h 2005-11-20 08:51:57.559172578 -0800 +@@ -693,7 +693,7 @@ IX_ETH_DB_PUBLIC UINT32 ixEthDBEntryXORH + IX_ETH_DB_PUBLIC UINT32 ixEthDBKeyXORHash(void *macAddress); + + /* Port updates */ +-IX_ETH_DB_PUBLIC IxEthDBStatus ixEthDBNPEUpdateHandler(IxEthDBPortId portID, IxEthDBFeature type); ++IX_ETH_DB_PUBLIC IxEthDBStatus ixEthDBNPEUpdateHandler(IxEthDBPortId portID, IxEthDBRecordType type); + IX_ETH_DB_PUBLIC void ixEthDBUpdatePortLearningTrees(IxEthDBPortMap triggerPorts); + IX_ETH_DB_PUBLIC void ixEthDBNPEAccessRequest(IxEthDBPortId portID); + IX_ETH_DB_PUBLIC void ixEthDBUpdateLock(void); diff --git a/packages/ixp4xx/ixp4xx-csr-2.1/ixnpemhconfigisr-is-private.patch b/packages/ixp4xx/ixp4xx-csr-2.1/ixnpemhconfigisr-is-private.patch new file mode 100644 index 0000000000..6f853ac19e --- /dev/null +++ b/packages/ixp4xx/ixp4xx-csr-2.1/ixnpemhconfigisr-is-private.patch @@ -0,0 +1,18 @@ +--- ixp400_xscale_sw/src/npeMh/IxNpeMhSymbols.c.orig 2005-11-20 08:59:46.816701092 -0800 ++++ ixp400_xscale_sw/src/npeMh/IxNpeMhSymbols.c 2005-11-20 08:59:54.561188422 -0800 +@@ -63,7 +63,6 @@ EXPORT_SYMBOL(ixNpeMhMessagesReceive); + EXPORT_SYMBOL(ixNpeMhShow); + EXPORT_SYMBOL(ixNpeMhShowReset); + +-extern void ixNpeMhConfigIsr (void *parameter); + extern BOOL ixNpeMhConfigInFifoIsFull(IxNpeMhNpeId npeId); + extern BOOL ixNpeMhConfigOutFifoIsEmpty (IxNpeMhNpeId npeId); + extern void ixNpeMhConfigLockRelease (IxNpeMhNpeId npeId); +@@ -72,7 +71,6 @@ extern void ixNpeMhConfigOutFifoRead (Ix + extern void ixNpeMhConfigInFifoWrite (IxNpeMhNpeId npeId,IxNpeMhMessage message); + extern struct ixNpeMhConfigNpeInfo ixNpeMhConfigNpeInfo[IX_NPEMH_NUM_NPES]; + +-EXPORT_SYMBOL(ixNpeMhConfigIsr); + EXPORT_SYMBOL(ixNpeMhConfigInFifoIsFull); + EXPORT_SYMBOL(ixNpeMhConfigOutFifoIsEmpty); + EXPORT_SYMBOL(ixNpeMhConfigLockRelease); diff --git a/packages/ixp4xx/ixp4xx-csr-2.1/le.patch b/packages/ixp4xx/ixp4xx-csr-2.1/le.patch new file mode 100644 index 0000000000..b62389cbee --- /dev/null +++ b/packages/ixp4xx/ixp4xx-csr-2.1/le.patch @@ -0,0 +1,13 @@ +--- ixp400_xscale_sw/.pc/le.patch/src/include/IxQMgr.h 2005-04-17 20:55:31.000000000 -0700 ++++ ixp400_xscale_sw/src/include/IxQMgr.h 2005-11-19 16:01:52.817556623 -0800 +@@ -96,8 +98,8 @@ + + #else + +-#define IX_QMGR_INLINE_READ_LONG IX_OSAL_READ_LONG_LE_DC +-#define IX_QMGR_INLINE_WRITE_LONG IX_OSAL_WRITE_LONG_LE_DC ++#define IX_QMGR_INLINE_READ_LONG IX_OSAL_READ_LONG_LE_AC ++#define IX_QMGR_INLINE_WRITE_LONG IX_OSAL_WRITE_LONG_LE_AC + + #endif + diff --git a/packages/ixp4xx/ixp4xx-csr_1.4.bb b/packages/ixp4xx/ixp4xx-csr_1.4.bb index ca502ca4d9..788d303c67 100644 --- a/packages/ixp4xx/ixp4xx-csr_1.4.bb +++ b/packages/ixp4xx/ixp4xx-csr_1.4.bb @@ -25,7 +25,7 @@ SRC_URI += "file://badpaths.patch;patch=1" SRC_URI += "file://build-timing-annoyance.patch;patch=1" S = "${WORKDIR}/ixp400_xscale_sw" -PR = "r5" +PR = "r6" COMPATIBLE_HOST = "^armeb-linux.*" diff --git a/packages/ixp4xx/ixp4xx-csr_1.5.bb b/packages/ixp4xx/ixp4xx-csr_1.5.bb index d07e464f91..2feef7ea4a 100644 --- a/packages/ixp4xx/ixp4xx-csr_1.5.bb +++ b/packages/ixp4xx/ixp4xx-csr_1.5.bb @@ -24,7 +24,7 @@ SRC_URI += "http://www.intel.com/Please-Read-The-BB-File/ixp400NpeLibrary-1_5.zi SRC_URI += "file://2.6.patch;patch=1" DEPENDS = "ixp-osal" S = "${WORKDIR}/ixp400_xscale_sw" -PR = "r0" +PR = "r1" COMPATIBLE_HOST = "^armeb-linux.*" diff --git a/packages/ixp4xx/ixp4xx-csr_2.0.bb b/packages/ixp4xx/ixp4xx-csr_2.0.bb index 025a5ed49b..963ecc2f64 100644 --- a/packages/ixp4xx/ixp4xx-csr_2.0.bb +++ b/packages/ixp4xx/ixp4xx-csr_2.0.bb @@ -18,6 +18,11 @@ LICENSE_HOMEPAGE = "http://www.intel.com/design/network/products/npfamily/ixp425 # versions 2.0, encryption is not required.) # # Store the files with the names given below in your downloads directory +# and store the 32 character md5sum of the file in a file of the same +# name with the additional extension .md5: +# +# IPL_ixp400AccessLibrary-2_0.zip.md5 +# IPL_ixp400NpeLibrary-2_0_5.zip.md5 # SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400AccessLibrary-2_0.zip" SRC_URI += "http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400NpeLibrary-2_0_5.zip" @@ -27,7 +32,7 @@ SRC_URI += "file://2.6.14.patch;patch=1" SRC_URI += "file://le.patch;patch=1" DEPENDS = "ixp-osal" S = "${WORKDIR}/ixp400_xscale_sw" -PR = "r3" +PR = "r6" COMPATIBLE_HOST = "^arm.*-linux.*" @@ -45,6 +50,12 @@ OSAL_PATH = "lib/ixp425/linux/${IX_TARGET}" # This is a somewhat arbitrary choice: OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal" +# COMPONENTS: do not build all the components, this just creates a +# ridiculously large module which duplicates functionality in the +# available Linux drivers. +COMPONENTS = "qmgr npeMh npeDl ethAcc ethDB ethMii featureCtrl osServices oslinux" +CODELETS_COMPONENTS = "" + # NOTE: IX_INCLUDE_MICROCODE causes the microcode to be included in # the ixp4xx-csr module, this *requires* the IPL_ixp400NpeLibrary-2_0.zip # to be added to the SRC_URI - see above. @@ -53,6 +64,8 @@ EXTRA_OEMAKE = "'CC=${KERNEL_CC}' \ 'AR=${AR}' \ 'IX_XSCALE_SW=${S}' \ 'IX_TARGET=${IX_TARGET}' \ + '${IX_TARGET}_COMPONENTS=${COMPONENTS}' \ + '${IX_TARGET}_CODELETS_COMPONENTS=${CODELETS_COMPONENTS}' \ 'IX_DEVICE=ixp42X' \ 'IX_MPHY=1' \ 'IX_MPHYSINGLEPORT=1' \ @@ -75,6 +88,8 @@ do_stage () { install -m 0644 src/include/*.h ${STAGING_INCDIR}/linux/ixp4xx-csr/ } +PACKAGES = "${PN}" + do_install () { install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/ixp400 install -m 0644 lib/${IX_TARGET}/ixp400.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/ixp400/ diff --git a/packages/ixp4xx/ixp4xx-csr_2.1.bb b/packages/ixp4xx/ixp4xx-csr_2.1.bb new file mode 100644 index 0000000000..6da973b0d7 --- /dev/null +++ b/packages/ixp4xx/ixp4xx-csr_2.1.bb @@ -0,0 +1,113 @@ +# Intel ixp4xx access library software. Note that this has an Intel +# license which restricts its use. +MAINTAINER = "NSLU2 Linux <nslu2-linux@yahoogroups.com>" +HOMEPAGE = "http://www.intel.com/design/network/products/npfamily/ixp420.htm" +LICENSE = "http://www.intel.com/design/network/swsup/np_sla/ixp400.htm" +LICENSE_HOMEPAGE = "http://www.intel.com/design/network/products/npfamily/ixp425swr1.htm" +# You must download the following software to your OpenEmbedded downloads +# directory before using this package: +# +# IPL_ixp400AccessLibrary-2_1.zip +# IPL_ixp400NpeLibrary-2_1.zip +# +# To do this go to the LICENSE_HOMEPAGE above, register/login (using a +# web browser which is supported by the login page), this will give you +# access to the web page from which you can download the software - you +# need the: "Intel® IXP400 Software and RedBoot* Boot Loader" and, from +# this the "Intel Hardware Access Software" and "NPE Microcode" (both +# versions 2.1, encryption is not required.) +# +# Store the files with the names given below in your downloads directory +# and store the 32 character md5sum of the file in a file of the same +# name with the additional extension .md5: +# +# IPL_ixp400AccessLibrary-2_1.zip.md5 +# IPL_ixp400NpeLibrary-2_1.zip.md5 +# +SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400AccessLibrary-2_1.zip" +SRC_URI += "http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400NpeLibrary-2_1.zip" +SRC_URI += "file://Makefile.patch;patch=1" +SRC_URI += "file://ixethdb-header.patch;patch=1" +SRC_URI += "file://bit-macro.patch;patch=1" +SRC_URI += "file://ixnpemhconfigisr-is-private.patch;patch=1" +SRC_URI += "file://le.patch;patch=1" + +DEPENDS = "ixp-osal" +S = "${WORKDIR}/ixp400_xscale_sw" +PR = "r0" + +COMPATIBLE_HOST = "^arm.*-linux.*" + +inherit module + +# Add the architecture compiler flags to KERNEL_CC and KERNEL_LD as +# required. Notice that this has to be done for each separately built +# module as well! +KERNEL_CC += "${TARGET_CC_KERNEL_ARCH}" +KERNEL_LD += "${TARGET_LD_KERNEL_ARCH}" + +IX_TARGET = "linux${ARCH_BYTE_SEX}" +IX_ENSURE = "" +#IX_ENSURE = "IX_OSAL_ENSURE_ON=1" + +OSAL_PATH = "lib/ixp425/linux/${IX_TARGET}" +# This is a somewhat arbitrary choice: +OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal" + +# COMPONENTS: do not build all the components, this just creates a +# ridiculously large module which duplicates functionality in the +# available Linux drivers. +COMPONENTS = "qmgr npeMh npeDl ethAcc ethDB ethMii featureCtrl osServices oslinux" +CODELETS_COMPONENTS = "" + +# NOTE: IX_INCLUDE_MICROCODE causes the microcode to be included in +# the ixp4xx-csr module, this *requires* the IPL_ixp400NpeLibrary-2_1.zip +# to be added to the SRC_URI - see above. +EXTRA_OEMAKE = "'AR=${AR}' \ + 'IX_XSCALE_SW=${S}' \ + 'IX_TARGET=${IX_TARGET}' \ + '${IX_TARGET}_COMPONENTS=${COMPONENTS}' \ + '${IX_TARGET}_CODELETS_COMPONENTS=${CODELETS_COMPONENTS}' \ + 'IX_DEVICE=ixp42X' \ + 'IX_MPHY=1' \ + 'IX_MPHYSINGLEPORT=1' \ + 'IX_INCLUDE_MICROCODE=1' \ + ${IX_ENSURE} \ + 'LINUX_SRC=${STAGING_KERNEL_DIR}' \ + 'LINUX_CROSS_COMPILE=${HOST_PREFIX}' \ + 'OSAL_DIR=${OSAL_DIR}' \ + 'OSAL_IMAGE=${OSAL_DIR}/${OSAL_PATH}/libosal.a' \ + 'OSAL_MODULE=${OSAL_DIR}/${OSAL_PATH}/ixp_osal.o' \ + " + +MAKE_TARGETS = "lib/${IX_TARGET}/ixp400.o" + +KCONFIG_FILE = "${STAGING_KERNEL_DIR}/kernel-config" +do_stage () { + install -d ${STAGING_INCDIR}/linux/ixp4xx-csr + install -m 0644 src/include/*.h ${STAGING_INCDIR}/linux/ixp4xx-csr/ + # Since Module.symvers in the kernel staging directory doesn't include + # the symbols from ixp400.o we need to add them to another file for + # the ixp400-eth build + rm -f '${STAGING_KERNEL_DIR}/ixp400-csr.symvers' + . '${KCONFIG_FILE}' + if '${STAGING_KERNEL_DIR}/scripts/mod/modpost' \ + ${CONFIG_MODVERSIONS:+-m} \ + ${CONFIG_MODULE_SRCVERSION_ALL:+-a} \ + -i '${STAGING_KERNEL_DIR}/Module.symvers' \ + -o '${STAGING_KERNEL_DIR}/ixp400-csr.symvers' \ + ${MAKE_TARGETS} >&2 | egrep . + then + echo "MODPOST errors - see above" + return 1 + else + return 0 + fi +} + +PACKAGES = "${PN}" + +do_install () { + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/ixp400 + install -m 0644 lib/${IX_TARGET}/ixp400.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/ixp400/ +} diff --git a/packages/libdbi/.mtn2git_empty b/packages/libdbi/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/libdbi/.mtn2git_empty diff --git a/packages/libdbi/libdbi-drivers_0.7.1.bb b/packages/libdbi/libdbi-drivers_0.7.1.bb new file mode 100644 index 0000000000..ec2bc9f11e --- /dev/null +++ b/packages/libdbi/libdbi-drivers_0.7.1.bb @@ -0,0 +1,41 @@ +# libdbi-drivers OE build file +# Copyright (C) 2005, Koninklijke Philips Electronics NV. All Rights Reserved +# Released under the MIT license (see packages/COPYING) + +DESCRIPTION = "Database Drivers for libdbi" +HOMEPAGE = "http://libdbi-drivers.sourceforge.net/" +LICENSE = "GPLv2" +SECTION = "libs" +MAINTAINER = "Eddy Pronk <epronk@muftor.com>" + +PROVIDES = "libdbd-sqlite" +DEPENDS = "libdbi sqlite" + +SRC_URI = "${SOURCEFORGE_MIRROR}/libdbi-drivers/libdbi-drivers-${PV}.tar.gz" + +inherit autotools + +PACKAGES = "libdbd-sqlite" + +EXTRA_OECONF = "--with-dbi-incdir=${STAGING_INCDIR} \ + --with-sqlite \ + --with-sqlite-libdir=${STAGING_LIBDIR} \ + --with-sqlite-incdir=${STAGING_INCDIR}" + +FILES_libdbd-sqlite = "/usr/lib/dbd/libsqlite.so \ + /usr/lib/dbd/libsqlite.la \ + /usr/lib/dbd/libsqlite.a" + +DESCRIPTION_libdbd-sqlite = "SQLite database driver for libdbi" + +do_configure_old () { + ./configure \ + --build=${BUILD_SYS} \ + --host=${HOST_SYS} \ + --target=${TARGET_SYS} \ + --prefix=${prefix} \ + --with-sqlite \ + --with-sqlite-libdir=${STAGING_LIBDIR} \ + --with-sqlite-incdir=${STAGING_INCDIR} +} +
\ No newline at end of file diff --git a/packages/libdbi/libdbi_0.7.2.bb b/packages/libdbi/libdbi_0.7.2.bb new file mode 100644 index 0000000000..ba47c68573 --- /dev/null +++ b/packages/libdbi/libdbi_0.7.2.bb @@ -0,0 +1,23 @@ +# libdbi OE build file +# Copyright (C) 2005, Koninklijke Philips Electronics NV. All Rights Reserved +# Released under the MIT license (see packages/COPYING) + +DESCRIPTION = "Database Independent Abstraction Layer for C" +HOMEPAGE = "http://libdbi.sourceforge.net/" +LICENSE = "LGPL" +SECTION = "libs" +MAINTAINER = "Eddy Pronk <epronk@muftor.com>" + +SRC_URI = "${SOURCEFORGE_MIRROR}/libdbi/libdbi-${PV}.tar.gz" + +inherit autotools + +do_stage () { + autotools_stage_includes + cd ./src/.libs/ + oe_libinstall -so libdbi ${STAGING_LIBDIR} +} + +do_configure () { + autotools_do_configure +}
\ No newline at end of file diff --git a/packages/libeina/libeina_0.96.5.bb b/packages/libeina/libeina_0.96.5.bb index eac539de20..821cd3323a 100644 --- a/packages/libeina/libeina_0.96.5.bb +++ b/packages/libeina/libeina_0.96.5.bb @@ -1,6 +1,6 @@ DESCRIPTION = "Multimedia library using gstreamer"" HOMEPAGE = "http://bolgo.cent.uji.es/proyectos/eina" -LICENCE = "GPL" +LICENSE = "GPL" MAINTAINER = "Koen Kooi <koen@handhelds.org>" DEPENDS = "file glib-2.0 gstreamer" diff --git a/packages/libeina/libeina_0.96.7.bb b/packages/libeina/libeina_0.96.7.bb index c62afb6b98..ac25e760dc 100644 --- a/packages/libeina/libeina_0.96.7.bb +++ b/packages/libeina/libeina_0.96.7.bb @@ -1,6 +1,6 @@ DESCRIPTION = "Multimedia library using gstreamer" HOMEPAGE = "http://bolgo.cent.uji.es/proyectos/eina" -LICENCE = "GPL" +LICENSE = "GPL" MAINTAINER = "Koen Kooi <koen@handhelds.org>" PR = "r2" diff --git a/packages/libeventdb/libeventdb_0.17.bb b/packages/libeventdb/libeventdb_0.17.bb new file mode 100644 index 0000000000..590533cae7 --- /dev/null +++ b/packages/libeventdb/libeventdb_0.17.bb @@ -0,0 +1,21 @@ +LICENSE = "LGPL" +DESCRIPTION = "Database access library for GPE calendar" +SECTION = "gpe/libs" +PRIORITY = "optional" +MAINTAINER = "Philip Blundell <pb@handhelds.org>" +DEPENDS = "libgpewidget libgpepimc sqlite" + +GPE_TARBALL_SUFFIX = "bz2" + +inherit pkgconfig gpe autotools + +headers = "event-db.h" + +do_stage () { + oe_libinstall -so libeventdb ${STAGING_LIBDIR} + + mkdir -p ${STAGING_INCDIR}/gpe + for h in ${headers}; do + install -m 0644 ${S}/gpe/$h ${STAGING_INCDIR}/gpe/$h + done +} diff --git a/packages/libexif/libexif_0.6.9.bb b/packages/libexif/libexif_0.6.9.bb new file mode 100644 index 0000000000..bef386aaa1 --- /dev/null +++ b/packages/libexif/libexif_0.6.9.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "Library to read the extended image information (EXIF) from JPEG pictures" +HOMEPAGE = "http://sourceforge.net/projects/libexif" +LICENSE = "LGPL" +SECTION = "libs" +MAINTAINER = "Eddy Pronk <epronk@muftor.com>" + +SRC_URI = "${SOURCEFORGE_MIRROR}/libexif/libexif-${PV}.tar.gz" + +inherit autotools pkgconfig + +do_stage() { + oe_libinstall -a -so -C libexif libexif ${STAGING_LIBDIR} + + install -d ${STAGING_INCDIR}/libexif + for X in exif-byte-order.h exif-data.h exif-format.h exif-loader.h exif-tag.h exif-content.h exif-entry.h exif-ifd.h exif-result.h exif-utils.h exif-log.h exif-mnote-data.h _stdint.h + do + install -m 0644 ${S}/libexif/$X ${STAGING_INCDIR}/libexif/$X + done +} diff --git a/packages/libgpeplugin/.mtn2git_empty b/packages/libgpeplugin/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/libgpeplugin/.mtn2git_empty diff --git a/packages/libgpeplugin/libgpeplugin_cvs.bb b/packages/libgpeplugin/libgpeplugin_cvs.bb new file mode 100644 index 0000000000..be56d0cbad --- /dev/null +++ b/packages/libgpeplugin/libgpeplugin_cvs.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "Plugin system for GPE applications" +AUTHOR = "Luce DeCicco <ldecicco@gmail.com>" +MAINTAINER = "Koen Kooi <koen@handhelds.org>" + +DEPENDS = "gtk+ libgpewidget" +PV = "0.0+cvs${CVSDATE}" +PR = "r0" + +#put examples in a seperate package +PACKAGES += ${PN}-examples +FILES_${PN}-examples = "${bindir}/* ${libexecdir}/*" +FILES_${PN} = "${libdir}/*.so.*" + + +SRC_URI = "${HANDHELDS_CVS};module=gpe/base/${PN}" +S = "${WORKDIR}/${PN}" + +inherit autotools pkgconfig + +do_stage() { +autotools_stage_all +} diff --git a/packages/libgpevtype/libgpevtype_0.13.bb b/packages/libgpevtype/libgpevtype_0.13.bb new file mode 100644 index 0000000000..bac11eeb7b --- /dev/null +++ b/packages/libgpevtype/libgpevtype_0.13.bb @@ -0,0 +1,25 @@ +LICENSE = "LGPL" +DESCRIPTION = "Data interchange library for GPE" +SECTION = "gpe/libs" +PRIORITY = "optional" +MAINTAINER = "Philip Blundell <pb@handhelds.org>" +DEPENDS = "libmimedir libeventdb" +PR = "r1" + +inherit pkgconfig gpe autotools + +SRC_URI = "${GPE_MIRROR}/${PN}-${PV}.tar.bz2" + +headers = "tag-db.h vcard.h vevent.h vtodo.h" + + +do_stage () { + oe_libinstall -so libgpevtype ${STAGING_LIBDIR} + + mkdir -p ${STAGING_INCDIR}/gpe + for h in ${headers}; do + install -m 0644 ${S}/gpe/$h ${STAGING_INCDIR}/gpe/${h} + done +} + + diff --git a/packages/libgpevtype/libgpevtype_0.14.bb b/packages/libgpevtype/libgpevtype_0.14.bb new file mode 100644 index 0000000000..bac11eeb7b --- /dev/null +++ b/packages/libgpevtype/libgpevtype_0.14.bb @@ -0,0 +1,25 @@ +LICENSE = "LGPL" +DESCRIPTION = "Data interchange library for GPE" +SECTION = "gpe/libs" +PRIORITY = "optional" +MAINTAINER = "Philip Blundell <pb@handhelds.org>" +DEPENDS = "libmimedir libeventdb" +PR = "r1" + +inherit pkgconfig gpe autotools + +SRC_URI = "${GPE_MIRROR}/${PN}-${PV}.tar.bz2" + +headers = "tag-db.h vcard.h vevent.h vtodo.h" + + +do_stage () { + oe_libinstall -so libgpevtype ${STAGING_LIBDIR} + + mkdir -p ${STAGING_INCDIR}/gpe + for h in ${headers}; do + install -m 0644 ${S}/gpe/$h ${STAGING_INCDIR}/gpe/${h} + done +} + + diff --git a/packages/libmimedir/libmimedir_0.3.1.bb b/packages/libmimedir/libmimedir_0.3.1.bb index f2386f1070..21fb6c7d8f 100644 --- a/packages/libmimedir/libmimedir_0.3.1.bb +++ b/packages/libmimedir/libmimedir_0.3.1.bb @@ -3,7 +3,7 @@ SECTION = "libs" PRIORITY = "optional" LICENSE = "LGPL" DEPENDS = "intltool-native" -PR = "r0" +PR = "r1" DEFAULT_PREFERENCE = 1 @@ -16,3 +16,8 @@ EXTRA_OECONF = "--disable-gtk-doc" do_stage() { autotools_stage_all } + + +PACKAGES += libmimedir-utils +FILES_libmimedir-utils = "${bindir}" +FILES_${PN} = "${libdir}" diff --git a/packages/libmimedir/libmimedir_cvs.bb b/packages/libmimedir/libmimedir_cvs.bb index 5be7074f35..bbdfd4f24a 100644 --- a/packages/libmimedir/libmimedir_cvs.bb +++ b/packages/libmimedir/libmimedir_cvs.bb @@ -3,7 +3,7 @@ SECTION = "libs" PRIORITY = "optional" LICENSE = "LGPL" DEPENDS = "intltool-native" -PR = "r0" +PR = "r1" PV = "0.3.1+cvs-${CVSDATE}" DEFAULT_PREFERENCE = -1 @@ -15,14 +15,11 @@ inherit autotools pkgconfig EXTRA_OECONF = "--disable-gtk-doc" -headers = "mimedir-attachment.h mimedir-attendee.h mimedir-attribute.h mimedir-datetime.h mimedir-init.h mimedir-marshal.h mimedir-period.h mimedir-profile.h mimedir-recurrence.h mimedir-utils.h mimedir-valarm.h mimedir-vcal.h mimedir-vcard-address.h mimedir-vcard-email.h mimedir-vcard-phone.h mimedir-vcard.h mimedir-vcomponent.h mimedir-vevent.h mimedir-vfreebusy.h mimedir-vjournal.h mimedir-vtimezone.h mimedir-vtodo.h mimedir.h" - do_stage() { - install -d ${STAGING_INCDIR}/mimedir-1.0/mimedir - for i in ${headers}; do - install -m 0644 ${S}/mimedir/$i ${STAGING_INCDIR}/mimedir-1.0/mimedir/$i - done - - oe_libinstall -so -C mimedir libmimedir-0.2 ${STAGING_LIBDIR} - ln -sf libmimedir-0.2.so ${STAGING_LIBDIR}/libmimedir.so + autotools_stage_all } + +PACKAGES += libmimedir-utils +FILES_libmimedir-utils = "${bindir}" +FILES_${PN} = "${libdir}" + diff --git a/packages/libnet/libnet-1.0.2a/configure.uclibc.patch b/packages/libnet/libnet-1.0.2a/configure.uclibc.patch new file mode 100644 index 0000000000..809640fb65 --- /dev/null +++ b/packages/libnet/libnet-1.0.2a/configure.uclibc.patch @@ -0,0 +1,11 @@ +--- Libnet-1.0.2a/config.sub.orig 2005-11-10 11:24:50.238457174 -0800 ++++ Libnet-1.0.2a/config.sub 2005-11-10 11:25:23.704563063 -0800 +@@ -68,7 +68,7 @@ esac + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- linux-gnu*) ++ linux-gnu*|linux-uclibc) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; diff --git a/packages/libnet/libnet-1.1.2.1/.mtn2git_empty b/packages/libnet/libnet-1.1.2.1/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/libnet/libnet-1.1.2.1/.mtn2git_empty diff --git a/packages/libnet/libnet-1.1.2.1/configure.patch b/packages/libnet/libnet-1.1.2.1/configure.patch new file mode 100644 index 0000000000..a2a4f3fc0d --- /dev/null +++ b/packages/libnet/libnet-1.1.2.1/configure.patch @@ -0,0 +1,3075 @@ +This is autogenerated, so not really needed. +Just here for completeness. + +--- libnet/configure 2005/11/15 03:56:13 1.1 ++++ libnet/configure 2005/11/15 03:56:28 +@@ -1,9 +1,8 @@ + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.57. ++# Generated by GNU Autoconf 2.59. + # +-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +-# Free Software Foundation, Inc. ++# Copyright (C) 2003 Free Software Foundation, Inc. + # This configure script is free software; the Free Software Foundation + # gives unlimited permission to copy, distribute and modify it. + ## --------------------- ## +@@ -20,9 +19,10 @@ + elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix + fi ++DUALCASE=1; export DUALCASE # for MKS sh + + # Support unset when possible. +-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset + else + as_unset=false +@@ -41,7 +41,7 @@ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME + do +- if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then ++ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var +@@ -218,16 +218,17 @@ + if mkdir -p . 2>/dev/null; then + as_mkdir_p=: + else ++ test -d ./-p && rmdir ./-p + as_mkdir_p=false + fi + + as_executable_p="test -f" + + # Sed expression to map a string onto a valid CPP name. +-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + + # Sed expression to map a string onto a valid variable name. +-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + # IFS +@@ -309,7 +310,7 @@ + #endif" + + ac_default_prefix=/usr +-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE RANLIB ac_ct_RANLIB CPP EGREP ENDIANESS LIBNET_VERSION HAVE_PACKET_SOCKET ADDITIONAL_LIBS LIBNET_CONFIG_DEFINES LIBNET_CONFIG_LIBS LIBNET_CONFIG_CFLAGS LIBOBJS LTLIBOBJS' ++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB CPP EGREP ENDIANESS LIBNET_VERSION HAVE_PACKET_SOCKET ADDITIONAL_LIBS LIBNET_CONFIG_DEFINES LIBNET_CONFIG_LIBS LIBNET_CONFIG_CFLAGS LIBOBJS LTLIBOBJS' + ac_subst_files='' + + # Initialize some variables set by options. +@@ -668,7 +669,7 @@ + + # Be sure to have absolute paths. + for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ +- localstatedir libdir includedir oldincludedir infodir mandir ++ localstatedir libdir includedir oldincludedir infodir mandir + do + eval ac_val=$`echo $ac_var` + case $ac_val in +@@ -708,10 +709,10 @@ + # Try the directory containing this script, then its parent. + ac_confdir=`(dirname "$0") 2>/dev/null || + $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$0" : 'X\(//\)[^/]' \| \ +- X"$0" : 'X\(//\)$' \| \ +- X"$0" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$0" : 'X\(//\)[^/]' \| \ ++ X"$0" : 'X\(//\)$' \| \ ++ X"$0" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -803,9 +804,9 @@ + cat <<_ACEOF + Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX +- [$ac_default_prefix] ++ [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX +- [PREFIX] ++ [PREFIX] + + By default, \`make install' will install all the files in + \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +@@ -850,10 +851,10 @@ + Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] +- --enable-maintainer-mode enable make rules and dependencies not useful +- (and sometimes confusing) to the casual installer +- --disable-dependency-tracking Speeds up one-time builds +- --enable-dependency-tracking Do not reject slow dependency extractors ++ --enable-maintainer-mode enable make rules and dependencies not useful ++ (and sometimes confusing) to the casual installer ++ --disable-dependency-tracking speeds up one-time build ++ --enable-dependency-tracking do not reject slow dependency extractors + + Some influential environment variables: + CC C compiler command +@@ -900,12 +901,45 @@ + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; + esac +-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +-# absolute. +-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` ++ ++# Do not use `cd foo && pwd` to compute absolute paths, because ++# the directories may not exist. ++case `pwd` in ++.) ac_abs_builddir="$ac_dir";; ++*) ++ case "$ac_dir" in ++ .) ac_abs_builddir=`pwd`;; ++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ++ *) ac_abs_builddir=`pwd`/"$ac_dir";; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_builddir=${ac_top_builddir}.;; ++*) ++ case ${ac_top_builddir}. in ++ .) ac_abs_top_builddir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_srcdir=$ac_srcdir;; ++*) ++ case $ac_srcdir in ++ .) ac_abs_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_srcdir=$ac_top_srcdir;; ++*) ++ case $ac_top_srcdir in ++ .) ac_abs_top_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ++ esac;; ++esac + + cd $ac_dir + # Check for guested configure; otherwise get Cygnus style configure. +@@ -916,7 +950,7 @@ + echo + $SHELL $ac_srcdir/configure --help=recursive + elif test -f $ac_srcdir/configure.ac || +- test -f $ac_srcdir/configure.in; then ++ test -f $ac_srcdir/configure.in; then + echo + $ac_configure --help + else +@@ -930,8 +964,7 @@ + if $ac_init_version; then + cat <<\_ACEOF + +-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +-Free Software Foundation, Inc. ++Copyright (C) 2003 Free Software Foundation, Inc. + This configure script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it. + _ACEOF +@@ -943,7 +976,7 @@ + running configure, to aid debugging if configure makes a mistake. + + It was created by $as_me, which was +-generated by GNU Autoconf 2.57. Invocation command line was ++generated by GNU Autoconf 2.59. Invocation command line was + + $ $0 $@ + +@@ -1020,19 +1053,19 @@ + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then +- ac_must_keep_next=false # Got value, back to normal. ++ ac_must_keep_next=false # Got value, back to normal. + else +- case $ac_arg in +- *=* | --config-cache | -C | -disable-* | --disable-* \ +- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ +- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ +- | -with-* | --with-* | -without-* | --without-* | --x) +- case "$ac_configure_args0 " in +- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; +- esac +- ;; +- -* ) ac_must_keep_next=true ;; +- esac ++ case $ac_arg in ++ *=* | --config-cache | -C | -disable-* | --disable-* \ ++ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ ++ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ ++ | -with-* | --with-* | -without-* | --without-* | --x) ++ case "$ac_configure_args0 " in ++ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; ++ esac ++ ;; ++ -* ) ac_must_keep_next=true ;; ++ esac + fi + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + # Get rid of the leading space. +@@ -1066,12 +1099,12 @@ + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) + sed -n \ +- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; +- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ++ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; + *) + sed -n \ +- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ++ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; + } +@@ -1100,7 +1133,7 @@ + for ac_var in $ac_subst_files + do + eval ac_val=$`echo $ac_var` +- echo "$ac_var='"'"'$ac_val'"'"'" ++ echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + fi +@@ -1119,7 +1152,7 @@ + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 +- rm -f core core.* *.core && ++ rm -f core *.core && + rm -rf conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status + ' 0 +@@ -1199,7 +1232,7 @@ + # value. + ac_cache_corrupted=false + for ac_var in `(set) 2>&1 | +- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do ++ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val="\$ac_cv_env_${ac_var}_value" +@@ -1216,13 +1249,13 @@ + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then +- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 ++ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 + echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} +- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 ++ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 + echo "$as_me: former value: $ac_old_val" >&2;} +- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 ++ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 + echo "$as_me: current value: $ac_new_val" >&2;} +- ac_cache_corrupted=: ++ ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. +@@ -1381,7 +1414,7 @@ + NONENONEs,x,x, && + program_prefix=${target_alias}- + +-am__api_version="1.6" ++am__api_version="1.9" + # Find a good install program. We prefer a C program (faster), + # so one script is as good as another. But avoid the broken or + # incompatible versions: +@@ -1393,6 +1426,7 @@ + # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag + # AFS /usr/afsws/bin/install, which mishandles nonexistent args + # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" ++# OS/2's system install, which has a completely different semantic + # ./install, which can be erroneously created by make from ./install.sh. + echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 + echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +@@ -1409,6 +1443,7 @@ + case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ++ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. +@@ -1416,20 +1451,20 @@ + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do +- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then +- if test $ac_prog = install && +- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then +- # AIX install. It has an incompatible calling convention. +- : +- elif test $ac_prog = install && +- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then +- # program-specific install script used by HP pwplus--don't use. +- : +- else +- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" +- break 3 +- fi +- fi ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ if test $ac_prog = install && ++ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # AIX install. It has an incompatible calling convention. ++ : ++ elif test $ac_prog = install && ++ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # program-specific install script used by HP pwplus--don't use. ++ : ++ else ++ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ++ break 3 ++ fi ++ fi + done + done + ;; +@@ -1517,7 +1552,6 @@ + program_transform_name=`echo $program_transform_name | sed -f conftest.sed` + rm conftest.sed + +- + # expand $ac_aux_dir to an absolute path + am_aux_dir=`cd $ac_aux_dir && pwd` + +@@ -1531,6 +1565,39 @@ + echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} + fi + ++if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then ++ # We used to keeping the `.' as first argument, in order to ++ # allow $(mkdir_p) to be used without argument. As in ++ # $(mkdir_p) $(somedir) ++ # where $(somedir) is conditionally defined. However this is wrong ++ # for two reasons: ++ # 1. if the package is installed by a user who cannot write `.' ++ # make install will fail, ++ # 2. the above comment should most certainly read ++ # $(mkdir_p) $(DESTDIR)$(somedir) ++ # so it does not work when $(somedir) is undefined and ++ # $(DESTDIR) is not. ++ # To support the latter case, we have to write ++ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), ++ # so the `.' trick is pointless. ++ mkdir_p='mkdir -p --' ++else ++ # On NextStep and OpenStep, the `mkdir' command does not ++ # recognize any option. It will interpret all options as ++ # directories to create, and then abort because `.' already ++ # exists. ++ for d in ./-p ./--version; ++ do ++ test -d $d && rmdir $d ++ done ++ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. ++ if test -f "$ac_aux_dir/mkinstalldirs"; then ++ mkdir_p='$(mkinstalldirs)' ++ else ++ mkdir_p='$(install_sh) -d' ++ fi ++fi ++ + for ac_prog in gawk mawk nawk awk + do + # Extract the first word of "$ac_prog", so it can be a program name with args. +@@ -1573,7 +1640,7 @@ + + echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 + echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 +-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` ++set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` + if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +@@ -1600,7 +1667,16 @@ + SET_MAKE="MAKE=${MAKE-make}" + fi + +- # test to see if srcdir already configured ++rm -rf .tst 2>/dev/null ++mkdir .tst 2>/dev/null ++if test -d .tst; then ++ am__leading_dot=. ++else ++ am__leading_dot=_ ++fi ++rmdir .tst 2>/dev/null ++ ++# test to see if srcdir already configured + if test "`cd $srcdir && pwd`" != "`pwd`" && + test -f $srcdir/config.status; then + { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +@@ -1608,6 +1684,16 @@ + { (exit 1); exit 1; }; } + fi + ++# test whether we have cygpath ++if test -z "$CYGPATH_W"; then ++ if (cygpath --version) >/dev/null 2>/dev/null; then ++ CYGPATH_W='cygpath -w' ++ else ++ CYGPATH_W=echo ++ fi ++fi ++ ++ + # Define the identity of the package. + PACKAGE=libnet + VERSION=$LIBNET_VERSION +@@ -1638,9 +1724,6 @@ + + MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +- +-AMTAR=${AMTAR-"${am_missing_run}tar"} +- + install_sh=${install_sh-"$am_aux_dir/install-sh"} + + # Installed binaries are usually stripped using `strip' when the user +@@ -1733,15 +1816,18 @@ + + # We need awk for the "check" target. The system "awk" is bad on + # some platforms. ++# Always define AMTAR for backward compatibility. + ++AMTAR=${AMTAR-"${am_missing_run}tar"} ++ ++am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + +-# Add the stamp file to the list of files AC keeps track of, +-# along with our hook. +- ac_config_headers="$ac_config_headers include/config.h" + + + ++ ac_config_headers="$ac_config_headers include/config.h" ++ + echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 + echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +@@ -2103,7 +2189,6 @@ + (exit $ac_status); } + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2123,8 +2208,8 @@ + # Try to create an executable without -o first, disregard a.out. + # It will help us diagnose broken compilers, and finding out an intuition + # of exeext. +-echo "$as_me:$LINENO: checking for C compiler default output" >&5 +-echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 ++echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 ++echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 + ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 + (eval $ac_link_default) 2>&5 +@@ -2144,23 +2229,23 @@ + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) +- ;; ++ ;; + conftest.$ac_ext ) +- # This is the source file. +- ;; ++ # This is the source file. ++ ;; + [ab].out ) +- # We found the default executable, but exeext='' is most +- # certainly right. +- break;; ++ # We found the default executable, but exeext='' is most ++ # certainly right. ++ break;; + *.* ) +- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` +- # FIXME: I believe we export ac_cv_exeext for Libtool, +- # but it would be cool to find out if it's true. Does anybody +- # maintain Libtool? --akim. +- export ac_cv_exeext +- break;; ++ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ++ # FIXME: I believe we export ac_cv_exeext for Libtool, ++ # but it would be cool to find out if it's true. Does anybody ++ # maintain Libtool? --akim. ++ export ac_cv_exeext ++ break;; + * ) +- break;; ++ break;; + esac + done + else +@@ -2234,8 +2319,8 @@ + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` +- export ac_cv_exeext +- break;; ++ export ac_cv_exeext ++ break;; + * ) break;; + esac + done +@@ -2260,7 +2345,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2311,7 +2395,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2331,11 +2414,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2348,7 +2441,7 @@ + + ac_compiler_gnu=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_c_compiler_gnu=$ac_compiler_gnu + + fi +@@ -2364,7 +2457,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2381,11 +2473,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2398,7 +2500,7 @@ + + ac_cv_prog_cc_g=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 + echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 +@@ -2425,7 +2527,6 @@ + ac_cv_prog_cc_stdc=no + ac_save_CC=$CC + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2453,6 +2554,16 @@ + va_end (v); + return s; + } ++ ++/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has ++ function prototypes and stuff, but not '\xHH' hex character constants. ++ These don't provoke an error unfortunately, instead are silently treated ++ as 'x'. The following induces an error, until -std1 is added to get ++ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an ++ array size at least. It's necessary to write '\x00'==0 to get something ++ that's true only with -std1. */ ++int osf4_cc_array ['\x00' == 0 ? 1 : -1]; ++ + int test (int i, double x); + struct s1 {int (*f) (int a);}; + struct s2 {int (*f) (double a);}; +@@ -2479,11 +2590,21 @@ + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2496,7 +2617,7 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext ++rm -f conftest.err conftest.$ac_objext + done + rm -f conftest.$ac_ext conftest.$ac_objext + CC=$ac_save_CC +@@ -2524,19 +2645,28 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ +- ''\ +- '#include <stdlib.h>' \ ++ '' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ +@@ -2544,14 +2674,13 @@ + 'void exit (int);' + do + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ +-#include <stdlib.h> + $ac_declaration ++#include <stdlib.h> + int + main () + { +@@ -2562,11 +2691,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2579,9 +2718,8 @@ + + continue + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2598,11 +2736,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2614,7 +2762,7 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + rm -f conftest* + if test -n "$ac_declaration"; then +@@ -2628,30 +2776,22 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_c_compiler_gnu +-rm -f .deps 2>/dev/null +-mkdir .deps 2>/dev/null +-if test -d .deps; then +- DEPDIR=.deps +-else +- # MS-DOS does not allow filenames that begin with a dot. +- DEPDIR=_deps +-fi +-rmdir .deps 2>/dev/null +- ++DEPDIR="${am__leading_dot}deps" + + ac_config_commands="$ac_config_commands depfiles" + + + am_make=${MAKE-make} + cat > confinc << 'END' +-doit: ++am__doit: + @echo done ++.PHONY: am__doit + END + # If we don't find an include directive, just comment out the code. + echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +@@ -2666,7 +2806,7 @@ + # In particular we don't look at `^make:' because GNU make might + # be invoked under some other name (usually "gmake"), in which + # case it prints its new name instead of `make'. +-if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then ++if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +@@ -2726,18 +2866,34 @@ + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir ++ # We will build objects and dependencies in a subdirectory because ++ # it helps to detect inapplicable dependency modes. For instance ++ # both Tru64's cc and ICC support -MD to output dependencies as a ++ # side effect of compilation, but ICC will put the dependencies in ++ # the current directory while Tru64 will put them in the object ++ # directory. ++ mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do ++ # Setup a source with many dependencies, because some compilers ++ # like to wrap large dependency lists on column 80 (with \), and ++ # we should not choose a depcomp mode which is confused by this. ++ # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. +- echo '#include "conftest.h"' > conftest.c +- echo 'int i;' > conftest.h +- echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf ++ : > sub/conftest.c ++ for i in 1 2 3 4 5 6; do ++ echo '#include "conftst'$i'.h"' >> sub/conftest.c ++ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with ++ # Solaris 8's {/usr,}/bin/sh. ++ touch sub/conftst$i.h ++ done ++ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) +@@ -2755,13 +2911,25 @@ + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ +- source=conftest.c object=conftest.o \ +- depfile=conftest.Po tmpdepfile=conftest.TPo \ +- $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && +- grep conftest.h conftest.Po > /dev/null 2>&1 && ++ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ ++ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ ++ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ ++ >/dev/null 2>conftest.err && ++ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && ++ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then +- am_cv_CC_dependencies_compiler_type=$depmode +- break ++ # icc doesn't choke on unknown options, it will just issue warnings ++ # or remarks (even with -Werror). So we grep stderr for any message ++ # that says an option was ignored or not supported. ++ # When given -MP, icc 7.0 and 7.1 complain thusly: ++ # icc: Command line warning: ignoring option '-M'; no argument required ++ # The diagnosis changed in icc 8.0: ++ # icc: Command line remark: option '-MP' not supported ++ if (grep 'ignoring option' conftest.err || ++ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else ++ am_cv_CC_dependencies_compiler_type=$depmode ++ break ++ fi + fi + done + +@@ -2777,6 +2945,18 @@ + CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + ++ ++if ++ test "x$enable_dependency_tracking" != xno \ ++ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then ++ am__fastdepCC_TRUE= ++ am__fastdepCC_FALSE='#' ++else ++ am__fastdepCC_TRUE='#' ++ am__fastdepCC_FALSE= ++fi ++ ++ + # Find a good install program. We prefer a C program (faster), + # so one script is as good as another. But avoid the broken or + # incompatible versions: +@@ -2788,6 +2968,7 @@ + # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag + # AFS /usr/afsws/bin/install, which mishandles nonexistent args + # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" ++# OS/2's system install, which has a completely different semantic + # ./install, which can be erroneously created by make from ./install.sh. + echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 + echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +@@ -2804,6 +2985,7 @@ + case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ++ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. +@@ -2811,20 +2993,20 @@ + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do +- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then +- if test $ac_prog = install && +- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then +- # AIX install. It has an incompatible calling convention. +- : +- elif test $ac_prog = install && +- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then +- # program-specific install script used by HP pwplus--don't use. +- : +- else +- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" +- break 3 +- fi +- fi ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ if test $ac_prog = install && ++ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # AIX install. It has an incompatible calling convention. ++ : ++ elif test $ac_prog = install && ++ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # program-specific install script used by HP pwplus--don't use. ++ : ++ else ++ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ++ break 3 ++ fi ++ fi + done + done + ;; +@@ -2964,7 +3146,6 @@ + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2975,7 +3156,7 @@ + #else + # include <assert.h> + #endif +- Syntax error ++ Syntax error + _ACEOF + if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +@@ -2987,6 +3168,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -3007,7 +3189,6 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3025,6 +3206,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -3071,7 +3253,6 @@ + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3082,7 +3263,7 @@ + #else + # include <assert.h> + #endif +- Syntax error ++ Syntax error + _ACEOF + if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +@@ -3094,6 +3275,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -3114,7 +3296,6 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3132,6 +3313,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -3192,7 +3374,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3213,11 +3394,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -3230,12 +3421,11 @@ + + ac_cv_header_stdc=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3257,7 +3447,6 @@ + if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3282,7 +3471,6 @@ + : + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3294,9 +3482,9 @@ + # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) + #else + # define ISLOWER(c) \ +- (('a' <= (c) && (c) <= 'i') \ +- || ('j' <= (c) && (c) <= 'r') \ +- || ('s' <= (c) && (c) <= 'z')) ++ (('a' <= (c) && (c) <= 'i') \ ++ || ('j' <= (c) && (c) <= 'r') \ ++ || ('s' <= (c) && (c) <= 'z')) + # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) + #endif + +@@ -3307,7 +3495,7 @@ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) +- || toupper (i) != TOUPPER (i)) ++ || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); + } +@@ -3332,7 +3520,7 @@ + ( exit $ac_status ) + ac_cv_header_stdc=no + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi + fi +@@ -3357,7 +3545,7 @@ + + + for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ +- inttypes.h stdint.h unistd.h ++ inttypes.h stdint.h unistd.h + do + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` + echo "$as_me:$LINENO: checking for $ac_header" >&5 +@@ -3366,7 +3554,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3378,11 +3565,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -3395,7 +3592,7 @@ + + eval "$as_ac_Header=no" + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -3426,7 +3623,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3437,11 +3633,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -3454,7 +3660,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -3462,7 +3668,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3480,6 +3685,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -3499,33 +3705,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -3536,7 +3741,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -3553,78 +3758,243 @@ + + + +-echo "$as_me:$LINENO: checking machine endianess" >&5 +-echo $ECHO_N "checking machine endianess... $ECHO_C" >&6 ++echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 ++echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6 ++if test "${ac_cv_c_bigendian+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ # See if sys/param.h defines the BYTE_ORDER macro. ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include <sys/types.h> ++#include <sys/param.h> + +- cat > conftest.c << EOF +-# include <stdio.h> +-# include <stdlib.h> ++int ++main () ++{ ++#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN ++ bogus endian macros ++#endif + +- int main() +- { +- union +- { +- short s; +- char c[sizeof(short)]; +- } un; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ # It does; now see whether it defined to BIG_ENDIAN or not. ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include <sys/types.h> ++#include <sys/param.h> + +- un.s = 0x0102; +- if (sizeof (short) == 2) +- { +- if (un.c [0] == 1 && un.c [1] == 2) +- { +- printf("B\n"); +- } +- else +- { +- if (un.c [0] == 2 && un.c [1] == 1) +- { +- printf("L\n"); +- } +- } +- } +- else +- { +- printf("?\n"); +- } +- return (EXIT_SUCCESS); +- } +-EOF +- ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS > /dev/null 2>&1 +- # Oopz 4.3 BSD doesn't have this. Sorry. +- if test ! -x conftest ; then +- ac_cv_libnet_endianess=unknown +- else +- ./conftest > conftest.out +- result=`cat conftest.out` +- if test $result = "B"; then +- ac_cv_libnet_endianess=big +- elif test $result = "L"; then +- ac_cv_libnet_endianess=lil +- else +- ac_cv_libnet_endianess=unknown +- fi +- fi +- rm -f conftest* core core.conftest ++int ++main () ++{ ++#if BYTE_ORDER != BIG_ENDIAN ++ not big endian ++#endif + +- echo "$as_me:$LINENO: result: $ac_cv_libnet_endianess" >&5 +-echo "${ECHO_T}$ac_cv_libnet_endianess" >&6 ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_c_bigendian=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 + +- if test $ac_cv_libnet_endianess = big ; then +- cat >>confdefs.h <<\_ACEOF ++ac_cv_c_bigendian=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++# It does not; compile a test program. ++if test "$cross_compiling" = yes; then ++ # try to guess the endianness by grepping values into an object file ++ ac_cv_c_bigendian=unknown ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; ++short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; ++void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } ++short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; ++short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; ++void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } ++int ++main () ++{ ++ _ascii (); _ebcdic (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then ++ ac_cv_c_bigendian=yes ++fi ++if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then ++ if test "$ac_cv_c_bigendian" = unknown; then ++ ac_cv_c_bigendian=no ++ else ++ # finding both strings is unlikely to happen, but who knows? ++ ac_cv_c_bigendian=unknown ++ fi ++fi ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++int ++main () ++{ ++ /* Are we little or big endian? From Harbison&Steele. */ ++ union ++ { ++ long l; ++ char c[sizeof (long)]; ++ } u; ++ u.l = 1; ++ exit (u.c[sizeof (long) - 1] == 1); ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_c_bigendian=no ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++( exit $ac_status ) ++ac_cv_c_bigendian=yes ++fi ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 ++echo "${ECHO_T}$ac_cv_c_bigendian" >&6 ++case $ac_cv_c_bigendian in ++ yes) ++ ++ cat >>confdefs.h <<\_ACEOF + #define LIBNET_BIG_ENDIAN 1 + _ACEOF + +- ENDIANESS="LIBNET_BIG_ENDIAN" +- LIBNET_CONFIG_DEFINES="$LIBNET_CONFIG_DEFINES -DLIBNET_BIG_ENDIAN" +- elif test $ac_cv_libnet_endianess = lil ; then +- cat >>confdefs.h <<\_ACEOF ++ ENDIANESS="LIBNET_BIG_ENDIAN" ++ LIBNET_CONFIG_DEFINES="$LIBNET_CONFIG_DEFINES -DLIBNET_BIG_ENDIAN" ++ ;; ++ no) ++ ++ cat >>confdefs.h <<\_ACEOF + #define LIBNET_LIL_ENDIAN 1 + _ACEOF + +- ENDIANESS="LIBNET_LIL_ENDIAN" +- LIBNET_CONFIG_DEFINES="$LIBNET_CONFIG_DEFINES -DLIBNET_LIL_ENDIAN" +- fi ++ ENDIANESS="LIBNET_LIL_ENDIAN" ++ LIBNET_CONFIG_DEFINES="$LIBNET_CONFIG_DEFINES -DLIBNET_LIL_ENDIAN" ++ ;; ++ *) ++ { echo "$as_me:$LINENO: WARNING: cannot detect endianess. try setting ac_cv_c_bigendian to yes or no" >&5 ++echo "$as_me: WARNING: cannot detect endianess. try setting ac_cv_c_bigendian to yes or no" >&2;} ;; ++esac ++ + + echo "$as_me:$LINENO: checking if unaligned accesses fail" >&5 + echo $ECHO_N "checking if unaligned accesses fail... $ECHO_C" >&6 +@@ -3714,7 +4084,6 @@ + else + ac_pattern="Autoconf.*'x'" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3734,7 +4103,6 @@ + + if test $ac_cv_prog_gcc_traditional = no; then + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3774,21 +4142,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. ++ For example, HP-UX 11i <limits.h> declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include <limits.h> + #else + # include <assert.h> + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -3819,11 +4194,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -3836,7 +4221,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -3853,27 +4239,69 @@ + echo $ECHO_N "checking link-layer packet interface type... $ECHO_C" >&6 + + if test -r /dev/bpf0 ; then +- LIBOBJS="$LIBOBJS libnet_link_bpf.$ac_objext" ++ case $LIBOBJS in ++ "libnet_link_bpf.$ac_objext" | \ ++ *" libnet_link_bpf.$ac_objext" | \ ++ "libnet_link_bpf.$ac_objext "* | \ ++ *" libnet_link_bpf.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS libnet_link_bpf.$ac_objext" ;; ++esac ++ + echo "$as_me:$LINENO: result: found bpf" >&5 + echo "${ECHO_T}found bpf" >&6 + elif test -r /usr/include/net/pfilt.h ; then +- LIBOBJS="$LIBOBJS libnet_link_pf.$ac_objext" ++ case $LIBOBJS in ++ "libnet_link_pf.$ac_objext" | \ ++ *" libnet_link_pf.$ac_objext" | \ ++ "libnet_link_pf.$ac_objext "* | \ ++ *" libnet_link_pf.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS libnet_link_pf.$ac_objext" ;; ++esac ++ + echo "$as_me:$LINENO: result: found pf" >&5 + echo "${ECHO_T}found pf" >&6 + elif test -r /dev/nit ; then +- LIBOBJS="$LIBOBJS libnet_link_snit.$ac_objext" ++ case $LIBOBJS in ++ "libnet_link_snit.$ac_objext" | \ ++ *" libnet_link_snit.$ac_objext" | \ ++ "libnet_link_snit.$ac_objext "* | \ ++ *" libnet_link_snit.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS libnet_link_snit.$ac_objext" ;; ++esac ++ + echo "$as_me:$LINENO: result: found snit" >&5 + echo "${ECHO_T}found snit" >&6 + elif test -r /usr/include/sys/net/nit.h ; then +- LIBOBJS="$LIBOBJS libnet_link_nit.$ac_objext" ++ case $LIBOBJS in ++ "libnet_link_nit.$ac_objext" | \ ++ *" libnet_link_nit.$ac_objext" | \ ++ "libnet_link_nit.$ac_objext "* | \ ++ *" libnet_link_nit.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS libnet_link_nit.$ac_objext" ;; ++esac ++ + echo "$as_me:$LINENO: result: found nit" >&5 + echo "${ECHO_T}found nit" >&6 + elif test -r /usr/include/net/raw.h ; then +- LIBOBJS="$LIBOBJS libnet_link_snoop.$ac_objext" ++ case $LIBOBJS in ++ "libnet_link_snoop.$ac_objext" | \ ++ *" libnet_link_snoop.$ac_objext" | \ ++ "libnet_link_snoop.$ac_objext "* | \ ++ *" libnet_link_snoop.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS libnet_link_snoop.$ac_objext" ;; ++esac ++ + echo "$as_me:$LINENO: result: found snoop" >&5 + echo "${ECHO_T}found snoop" >&6 + elif test -r /usr/include/sys/dlpi.h ; then +- LIBOBJS="$LIBOBJS libnet_link_dlpi.$ac_objext" ++ case $LIBOBJS in ++ "libnet_link_dlpi.$ac_objext" | \ ++ *" libnet_link_dlpi.$ac_objext" | \ ++ "libnet_link_dlpi.$ac_objext "* | \ ++ *" libnet_link_dlpi.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS libnet_link_dlpi.$ac_objext" ;; ++esac ++ + echo "$as_me:$LINENO: result: found dlpi" >&5 + echo "${ECHO_T}found dlpi" >&6 + cat >>confdefs.h <<\_ACEOF +@@ -3881,7 +4309,14 @@ + _ACEOF + + elif test -r /usr/include/linux/socket.h ; then +- LIBOBJS="$LIBOBJS libnet_link_linux.$ac_objext" ++ case $LIBOBJS in ++ "libnet_link_linux.$ac_objext" | \ ++ *" libnet_link_linux.$ac_objext" | \ ++ "libnet_link_linux.$ac_objext "* | \ ++ *" libnet_link_linux.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS libnet_link_linux.$ac_objext" ;; ++esac ++ + echo "$as_me:$LINENO: result: found linux primitives" >&5 + echo "${ECHO_T}found linux primitives" >&6 + +@@ -3995,19 +4430,47 @@ + + fi + elif test -c /dev/bpf0 ; then # check again in case not readable +- LIBOBJS="$LIBOBJS libnet_link_bpf.$ac_objext" ++ case $LIBOBJS in ++ "libnet_link_bpf.$ac_objext" | \ ++ *" libnet_link_bpf.$ac_objext" | \ ++ "libnet_link_bpf.$ac_objext "* | \ ++ *" libnet_link_bpf.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS libnet_link_bpf.$ac_objext" ;; ++esac ++ + echo "$as_me:$LINENO: result: found bpf" >&5 + echo "${ECHO_T}found bpf" >&6 + elif test -c /dev/nit ; then # check again in case not readable +- LIBOBJS="$LIBOBJS libnet_link_snit.$ac_objext" ++ case $LIBOBJS in ++ "libnet_link_snit.$ac_objext" | \ ++ *" libnet_link_snit.$ac_objext" | \ ++ "libnet_link_snit.$ac_objext "* | \ ++ *" libnet_link_snit.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS libnet_link_snit.$ac_objext" ;; ++esac ++ + echo "$as_me:$LINENO: result: found snit" >&5 + echo "${ECHO_T}found snit" >&6 + elif test "$target_os" = "cygwin" ; then +- LIBOBJS="$LIBOBJS libnet_link_win32.$ac_objext" ++ case $LIBOBJS in ++ "libnet_link_win32.$ac_objext" | \ ++ *" libnet_link_win32.$ac_objext" | \ ++ "libnet_link_win32.$ac_objext "* | \ ++ *" libnet_link_win32.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS libnet_link_win32.$ac_objext" ;; ++esac ++ + echo "$as_me:$LINENO: result: found win32 wpcap" >&5 + echo "${ECHO_T}found win32 wpcap" >&6 + else +- LIBOBJS="$LIBOBJS libnet_link_none.$ac_objext" ++ case $LIBOBJS in ++ "libnet_link_none.$ac_objext" | \ ++ *" libnet_link_none.$ac_objext" | \ ++ "libnet_link_none.$ac_objext "* | \ ++ *" libnet_link_none.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS libnet_link_none.$ac_objext" ;; ++esac ++ + { echo "$as_me:$LINENO: WARNING: could not find a link-layer packet interface" >&5 + echo "$as_me: WARNING: could not find a link-layer packet interface" >&2;} + { echo "$as_me:$LINENO: WARNING: link-layer packet injection will not be available" >&5 +@@ -4054,7 +4517,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4065,11 +4527,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4082,7 +4554,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -4090,7 +4562,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4108,6 +4579,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -4127,33 +4599,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -4164,7 +4635,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -4265,7 +4736,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4276,11 +4746,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4293,7 +4773,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -4301,7 +4781,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4319,6 +4798,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -4338,33 +4818,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -4375,7 +4854,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -4426,7 +4905,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lsocket $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4450,11 +4928,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4467,7 +4955,8 @@ + + ac_cv_lib_socket_socket=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 +@@ -4494,7 +4983,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lnsl $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4518,11 +5006,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4535,7 +5033,8 @@ + + ac_cv_lib_nsl_gethostbyname=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 +@@ -4616,7 +5115,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4627,11 +5125,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4644,7 +5152,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -4652,7 +5160,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4670,6 +5177,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -4689,33 +5197,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -4726,7 +5233,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -4763,7 +5270,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lpacket $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4787,11 +5293,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4804,7 +5320,8 @@ + + ac_cv_lib_packet_PacketSetMode=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_packet_PacketSetMode" >&5 +@@ -4831,7 +5348,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lwpcap $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4855,11 +5371,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4872,7 +5398,8 @@ + + ac_cv_lib_wpcap_pcap_setmode=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_wpcap_pcap_setmode" >&5 +@@ -4934,13 +5461,13 @@ + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ +- "s/'/'\\\\''/g; +- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ++ "s/'/'\\\\''/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n \ +- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ++ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; + } | +@@ -4970,13 +5497,13 @@ + # trailing colons and then remove the whole line if VPATH becomes empty + # (actually we leave an empty line to preserve line numbers). + if test "x$srcdir" = x.; then +- ac_vpsub='/^[ ]*VPATH[ ]*=/{ ++ ac_vpsub='/^[ ]*VPATH[ ]*=/{ + s/:*\$(srcdir):*/:/; + s/:*\${srcdir}:*/:/; + s/:*@srcdir@:*/:/; +-s/^\([^=]*=[ ]*\):*/\1/; ++s/^\([^=]*=[ ]*\):*/\1/; + s/:*$//; +-s/^[^=]*=[ ]*$//; ++s/^[^=]*=[ ]*$//; + }' + fi + +@@ -4987,7 +5514,7 @@ + for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_i=`echo "$ac_i" | +- sed 's/\$U\././;s/\.o$//;s/\.obj$//'` ++ sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + # 2. Add them. + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' +@@ -5011,6 +5538,13 @@ + Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } + fi ++if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then ++ { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi + + : ${CONFIG_STATUS=./config.status} + ac_clean_files_save=$ac_clean_files +@@ -5045,9 +5579,10 @@ + elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix + fi ++DUALCASE=1; export DUALCASE # for MKS sh + + # Support unset when possible. +-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset + else + as_unset=false +@@ -5066,7 +5601,7 @@ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME + do +- if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then ++ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var +@@ -5245,16 +5780,17 @@ + if mkdir -p . 2>/dev/null; then + as_mkdir_p=: + else ++ test -d ./-p && rmdir ./-p + as_mkdir_p=false + fi + + as_executable_p="test -f" + + # Sed expression to map a string onto a valid CPP name. +-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + + # Sed expression to map a string onto a valid variable name. +-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + # IFS +@@ -5281,7 +5817,7 @@ + cat >&5 <<_CSEOF + + This file was extended by $as_me, which was +-generated by GNU Autoconf 2.57. Invocation command line was ++generated by GNU Autoconf 2.59. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS +@@ -5325,9 +5861,9 @@ + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] +- instantiate the configuration file FILE ++ instantiate the configuration file FILE + --header=FILE[:TEMPLATE] +- instantiate the configuration header FILE ++ instantiate the configuration header FILE + + Configuration files: + $config_files +@@ -5344,11 +5880,10 @@ + cat >>$CONFIG_STATUS <<_ACEOF + ac_cs_version="\\ + config.status +-configured by $0, generated by GNU Autoconf 2.57, ++configured by $0, generated by GNU Autoconf 2.59, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" + +-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +-Free Software Foundation, Inc. ++Copyright (C) 2003 Free Software Foundation, Inc. + This config.status script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it." + srcdir=$srcdir +@@ -5565,6 +6100,7 @@ + s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t + s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t + s,@INSTALL_DATA@,$INSTALL_DATA,;t t ++s,@CYGPATH_W@,$CYGPATH_W,;t t + s,@PACKAGE@,$PACKAGE,;t t + s,@VERSION@,$VERSION,;t t + s,@ACLOCAL@,$ACLOCAL,;t t +@@ -5572,13 +6108,17 @@ + s,@AUTOMAKE@,$AUTOMAKE,;t t + s,@AUTOHEADER@,$AUTOHEADER,;t t + s,@MAKEINFO@,$MAKEINFO,;t t +-s,@AMTAR@,$AMTAR,;t t + s,@install_sh@,$install_sh,;t t + s,@STRIP@,$STRIP,;t t + s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t + s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t ++s,@mkdir_p@,$mkdir_p,;t t + s,@AWK@,$AWK,;t t + s,@SET_MAKE@,$SET_MAKE,;t t ++s,@am__leading_dot@,$am__leading_dot,;t t ++s,@AMTAR@,$AMTAR,;t t ++s,@am__tar@,$am__tar,;t t ++s,@am__untar@,$am__untar,;t t + s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t + s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t + s,@MAINT@,$MAINT,;t t +@@ -5596,6 +6136,8 @@ + s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t + s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t + s,@CCDEPMODE@,$CCDEPMODE,;t t ++s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t ++s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t + s,@RANLIB@,$RANLIB,;t t + s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t + s,@CPP@,$CPP,;t t +@@ -5638,9 +6180,9 @@ + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then +- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" ++ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else +- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" ++ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end +@@ -5658,21 +6200,21 @@ + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin +- cat >$tmp/stdin +- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` +- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ cat >$tmp/stdin ++ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` +- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || + $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$ac_file" : 'X\(//\)[^/]' \| \ +- X"$ac_file" : 'X\(//\)$' \| \ +- X"$ac_file" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$ac_file" : 'X\(//\)[^/]' \| \ ++ X"$ac_file" : 'X\(//\)$' \| \ ++ X"$ac_file" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -5688,10 +6230,10 @@ + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || + $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$as_dir" : 'X\(//\)[^/]' \| \ +- X"$as_dir" : 'X\(//\)$' \| \ +- X"$as_dir" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -5729,12 +6271,45 @@ + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; + esac +-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +-# absolute. +-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` ++ ++# Do not use `cd foo && pwd` to compute absolute paths, because ++# the directories may not exist. ++case `pwd` in ++.) ac_abs_builddir="$ac_dir";; ++*) ++ case "$ac_dir" in ++ .) ac_abs_builddir=`pwd`;; ++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ++ *) ac_abs_builddir=`pwd`/"$ac_dir";; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_builddir=${ac_top_builddir}.;; ++*) ++ case ${ac_top_builddir}. in ++ .) ac_abs_top_builddir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_srcdir=$ac_srcdir;; ++*) ++ case $ac_srcdir in ++ .) ac_abs_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_srcdir=$ac_top_srcdir;; ++*) ++ case $ac_top_srcdir in ++ .) ac_abs_top_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ++ esac;; ++esac + + + case $INSTALL in +@@ -5756,7 +6331,7 @@ + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | +- sed 's,.*/,,'` by configure." ++ sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. +@@ -5765,24 +6340,24 @@ + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) +- # Absolute (can't be DOS-style, as IFS=:) +- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++ # Absolute (can't be DOS-style, as IFS=:) ++ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } +- echo $f;; ++ echo "$f";; + *) # Relative +- if test -f "$f"; then +- # Build tree +- echo $f +- elif test -f "$srcdir/$f"; then +- # Source tree +- echo $srcdir/$f +- else +- # /dev/null tree +- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++ if test -f "$f"; then ++ # Build tree ++ echo "$f" ++ elif test -f "$srcdir/$f"; then ++ # Source tree ++ echo "$srcdir/$f" ++ else ++ # /dev/null tree ++ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } +- fi;; ++ fi;; + esac + done` || { (exit 1); exit 1; } + _ACEOF +@@ -5824,12 +6399,12 @@ + # NAME is the cpp macro being defined and VALUE is the value it is being given. + # + # ac_d sets the value in "#define NAME VALUE" lines. +-ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' +-ac_dB='[ ].*$,\1#\2' ++ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ++ac_dB='[ ].*$,\1#\2' + ac_dC=' ' + ac_dD=',;t' + # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +-ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ++ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' + ac_uB='$,\1#\2define\3' + ac_uC=' ' + ac_uD=',;t' +@@ -5838,11 +6413,11 @@ + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin +- cat >$tmp/stdin +- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` +- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ cat >$tmp/stdin ++ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` +- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + +@@ -5856,28 +6431,29 @@ + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) +- # Absolute (can't be DOS-style, as IFS=:) +- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++ # Absolute (can't be DOS-style, as IFS=:) ++ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } +- echo $f;; ++ # Do quote $f, to prevent DOS paths from being IFS'd. ++ echo "$f";; + *) # Relative +- if test -f "$f"; then +- # Build tree +- echo $f +- elif test -f "$srcdir/$f"; then +- # Source tree +- echo $srcdir/$f +- else +- # /dev/null tree +- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++ if test -f "$f"; then ++ # Build tree ++ echo "$f" ++ elif test -f "$srcdir/$f"; then ++ # Source tree ++ echo "$srcdir/$f" ++ else ++ # /dev/null tree ++ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } +- fi;; ++ fi;; + esac + done` || { (exit 1); exit 1; } + # Remove the trailing spaces. +- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in ++ sed 's/[ ]*$//' $ac_file_inputs >$tmp/in + + _ACEOF + +@@ -5900,9 +6476,9 @@ + s,[\\$`],\\&,g + t clear + : clear +-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp ++s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp + t end +-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp ++s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp + : end + _ACEOF + # If some macros were called several times there might be several times +@@ -5916,13 +6492,13 @@ + # example, in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + cat >>conftest.undefs <<\_ACEOF +-s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, ++s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, + _ACEOF + + # Break up conftest.defines because some shells have a limit on the size + # of here documents, and old seds have small limits too (100 cmds). + echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS +-echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS ++echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS + echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS + echo ' :' >>$CONFIG_STATUS + rm -f conftest.tail +@@ -5931,7 +6507,7 @@ + # Write a limited-size here document to $tmp/defines.sed. + echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS + # Speed up: don't consider the non `#define' lines. +- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS ++ echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS +@@ -5958,7 +6534,7 @@ + # Write a limited-size here document to $tmp/undefs.sed. + echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS + # Speed up: don't consider the non `#undef' +- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS ++ echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS +@@ -5992,10 +6568,10 @@ + else + ac_dir=`(dirname "$ac_file") 2>/dev/null || + $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$ac_file" : 'X\(//\)[^/]' \| \ +- X"$ac_file" : 'X\(//\)$' \| \ +- X"$ac_file" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$ac_file" : 'X\(//\)[^/]' \| \ ++ X"$ac_file" : 'X\(//\)$' \| \ ++ X"$ac_file" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -6011,10 +6587,10 @@ + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || + $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$as_dir" : 'X\(//\)[^/]' \| \ +- X"$as_dir" : 'X\(//\)$' \| \ +- X"$as_dir" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -6034,13 +6610,29 @@ + cat $tmp/config.h + rm -f $tmp/config.h + fi +- # Run the commands associated with the file. +- case $ac_file in +- include/config.h ) # update the timestamp +-echo 'timestamp for include/config.h' >"include/stamp-h1" +- ;; ++# Compute $ac_file's index in $config_headers. ++_am_stamp_count=1 ++for _am_header in $config_headers :; do ++ case $_am_header in ++ $ac_file | $ac_file:* ) ++ break ;; ++ * ) ++ _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac + done ++echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || ++$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X$ac_file : 'X\(//\)[^/]' \| \ ++ X$ac_file : 'X\(//\)$' \| \ ++ X$ac_file : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X$ac_file | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ++ /^X\(\/\/\)[^/].*/{ s//\1/; q; } ++ /^X\(\/\/\)$/{ s//\1/; q; } ++ /^X\(\/\).*/{ s//\1/; q; } ++ s/.*/./; q'`/stamp-h$_am_stamp_count ++done + _ACEOF + cat >>$CONFIG_STATUS <<\_ACEOF + +@@ -6052,16 +6644,41 @@ + ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_dir=`(dirname "$ac_dest") 2>/dev/null || + $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$ac_dest" : 'X\(//\)[^/]' \| \ +- X"$ac_dest" : 'X\(//\)$' \| \ +- X"$ac_dest" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$ac_dest" : 'X\(//\)[^/]' \| \ ++ X"$ac_dest" : 'X\(//\)$' \| \ ++ X"$ac_dest" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$ac_dest" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` ++ { if $as_mkdir_p; then ++ mkdir -p "$ac_dir" ++ else ++ as_dir="$ac_dir" ++ as_dirs= ++ while test ! -d "$as_dir"; do ++ as_dirs="$as_dir $as_dirs" ++ as_dir=`(dirname "$as_dir") 2>/dev/null || ++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X"$as_dir" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ++ /^X\(\/\/\)[^/].*/{ s//\1/; q; } ++ /^X\(\/\/\)$/{ s//\1/; q; } ++ /^X\(\/\).*/{ s//\1/; q; } ++ s/.*/./; q'` ++ done ++ test ! -n "$as_dirs" || mkdir $as_dirs ++ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 ++echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} ++ { (exit 1); exit 1; }; }; } ++ + ac_builddir=. + + if test "$ac_dir" != .; then +@@ -6087,12 +6704,45 @@ + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; + esac +-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +-# absolute. +-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` ++ ++# Do not use `cd foo && pwd` to compute absolute paths, because ++# the directories may not exist. ++case `pwd` in ++.) ac_abs_builddir="$ac_dir";; ++*) ++ case "$ac_dir" in ++ .) ac_abs_builddir=`pwd`;; ++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ++ *) ac_abs_builddir=`pwd`/"$ac_dir";; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_builddir=${ac_top_builddir}.;; ++*) ++ case ${ac_top_builddir}. in ++ .) ac_abs_top_builddir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_srcdir=$ac_srcdir;; ++*) ++ case $ac_srcdir in ++ .) ac_abs_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_srcdir=$ac_top_srcdir;; ++*) ++ case $ac_top_srcdir in ++ .) ac_abs_top_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ++ esac;; ++esac + + + { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 +@@ -6110,10 +6760,10 @@ + if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then + dirpart=`(dirname "$mf") 2>/dev/null || + $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$mf" : 'X\(//\)[^/]' \| \ +- X"$mf" : 'X\(//\)$' \| \ +- X"$mf" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$mf" : 'X\(//\)[^/]' \| \ ++ X"$mf" : 'X\(//\)$' \| \ ++ X"$mf" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -6123,36 +6773,30 @@ + else + continue + fi +- grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue +- # Extract the definition of DEP_FILES from the Makefile without +- # running `make'. +- DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` ++ # Extract the definition of DEPDIR, am__include, and am__quote ++ # from the Makefile without running `make'. ++ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue ++ am__include=`sed -n 's/^am__include = //p' < "$mf"` ++ test -z "am__include" && continue ++ am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it +- U=`sed -n -e '/^U = / s///p' < "$mf"` +- test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" +- # We invoke sed twice because it is the simplest approach to +- # changing $(DEPDIR) to its actual value in the expansion. +- for file in `sed -n -e ' +- /^DEP_FILES = .*\\\\$/ { +- s/^DEP_FILES = // +- :loop +- s/\\\\$// +- p +- n +- /\\\\$/ b loop +- p +- } +- /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ ++ U=`sed -n 's/^U = //p' < "$mf"` ++ # Find all dependency output files, they are included files with ++ # $(DEPDIR) in their names. We invoke sed twice because it is the ++ # simplest approach to changing $(DEPDIR) to its actual value in the ++ # expansion. ++ for file in `sed -n " ++ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`(dirname "$file") 2>/dev/null || + $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$file" : 'X\(//\)[^/]' \| \ +- X"$file" : 'X\(//\)$' \| \ +- X"$file" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$file" : 'X\(//\)[^/]' \| \ ++ X"$file" : 'X\(//\)$' \| \ ++ X"$file" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -6168,10 +6812,10 @@ + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || + $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$as_dir" : 'X\(//\)[^/]' \| \ +- X"$as_dir" : 'X\(//\)$' \| \ +- X"$as_dir" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } diff --git a/packages/libnet/libnet-1.1.2.1/fix-endianess-test.patch b/packages/libnet/libnet-1.1.2.1/fix-endianess-test.patch new file mode 100644 index 0000000000..e75ce6737a --- /dev/null +++ b/packages/libnet/libnet-1.1.2.1/fix-endianess-test.patch @@ -0,0 +1,126 @@ +Use autoconf's endian check instead of the locally defined check +so that we can determine the endianess without having to compile +a program. + +Idea from http://www.security-lists.org/lists/libnet/2003/03/00001.html + +Also remove the old test from aclocal.m4. + +--- libnet/configure.in 2005/11/15 03:49:30 1.1 ++++ libnet/configure.in 2005/11/15 03:50:29 +@@ -7,6 +7,7 @@ + dnl Process this file with autoconf to produce a configure script. + + ++AC_PREREQ(2.52) + AC_INIT(src/libnet_build_ip.c) + LIBNET_VERSION=`cat VERSION` + AC_MSG_RESULT(beginning autoconfiguration process for libnet-$LIBNET_VERSION...) +@@ -29,7 +30,16 @@ + dnl And some custom things + dnl + +-AC_LIBNET_ENDIAN_CHECK ++AC_C_BIGENDIAN([ ++ AC_DEFINE(LIBNET_BIG_ENDIAN) ++ ENDIANESS="LIBNET_BIG_ENDIAN" ++ LIBNET_CONFIG_DEFINES="$LIBNET_CONFIG_DEFINES -DLIBNET_BIG_ENDIAN" ++],[ ++ AC_DEFINE(LIBNET_LIL_ENDIAN) ++ ENDIANESS="LIBNET_LIL_ENDIAN" ++ LIBNET_CONFIG_DEFINES="$LIBNET_CONFIG_DEFINES -DLIBNET_LIL_ENDIAN" ++], AC_MSG_WARN(cannot detect endianess. try setting ac_cv_c_bigendian to yes or no)) ++ + AC_LBL_UNALIGNED_ACCESS + dnl AC_LBL_LIBRARY_NET + +--- libnet/aclocal.m4 2005/11/15 04:02:01 1.1 ++++ libnet/aclocal.m4 2005/11/15 04:03:43 +@@ -279,87 +279,6 @@ + + + dnl +-dnl Checks endianess +-dnl +-dnl usage: +-dnl +-dnl AC_LIBNET_ENDIAN_CHECK +-dnl +-dnl results: +-dnl +-dnl LIBNET_BIG_ENDIAN = 1 or +-dnl LIBNET_LIL_ENDIAN = 1 +-dnl +- +-AC_DEFUN(AC_LIBNET_ENDIAN_CHECK, +- [AC_MSG_CHECKING(machine endianess) +- +- cat > conftest.c << EOF +-# include <stdio.h> +-# include <stdlib.h> +- +- int main() +- { +- union +- { +- short s; +- char c[[sizeof(short)]]; +- } un; +- +- un.s = 0x0102; +- if (sizeof (short) == 2) +- { +- if (un.c [[0]] == 1 && un.c [[1]] == 2) +- { +- printf("B\n"); +- } +- else +- { +- if (un.c [[0]] == 2 && un.c [[1]] == 1) +- { +- printf("L\n"); +- } +- } +- } +- else +- { +- printf("?\n"); +- } +- return (EXIT_SUCCESS); +- } +-EOF +- ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS > /dev/null 2>&1 +- # Oopz 4.3 BSD doesn't have this. Sorry. +- if test ! -x conftest ; then +-dnl failed to compile for some reason +- ac_cv_libnet_endianess=unknown +- else +- ./conftest > conftest.out +- result=`cat conftest.out` +- if test $result = "B"; then +- ac_cv_libnet_endianess=big +- elif test $result = "L"; then +- ac_cv_libnet_endianess=lil +- else +- ac_cv_libnet_endianess=unknown +- fi +- fi +- rm -f conftest* core core.conftest +- +- AC_MSG_RESULT($ac_cv_libnet_endianess) +- +- if test $ac_cv_libnet_endianess = big ; then +- AC_DEFINE(LIBNET_BIG_ENDIAN) +- ENDIANESS="LIBNET_BIG_ENDIAN" +- LIBNET_CONFIG_DEFINES="$LIBNET_CONFIG_DEFINES -DLIBNET_BIG_ENDIAN" +- elif test $ac_cv_libnet_endianess = lil ; then +- AC_DEFINE(LIBNET_LIL_ENDIAN) +- ENDIANESS="LIBNET_LIL_ENDIAN" +- LIBNET_CONFIG_DEFINES="$LIBNET_CONFIG_DEFINES -DLIBNET_LIL_ENDIAN" +- fi +- ]) +- +-dnl + dnl Improved version of AC_CHECK_LIB + dnl + dnl Thanks to John Hawkinson (jhawk@mit.edu) diff --git a/packages/libnet/libnet-1.1.2.1/support-uclibc.patch b/packages/libnet/libnet-1.1.2.1/support-uclibc.patch new file mode 100644 index 0000000000..84d117c2e9 --- /dev/null +++ b/packages/libnet/libnet-1.1.2.1/support-uclibc.patch @@ -0,0 +1,13 @@ +Add support for building with uclibc. + +--- libnet/config.sub 2005/11/16 12:34:11 1.1 ++++ libnet/config.sub 2005/11/16 12:35:56 +@@ -117,7 +117,7 @@ + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-*) ++ nto-qnx* | linux-gnu* | linux-uclibc* | storm-chaos* | os2-emx* | windows32-*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; diff --git a/packages/libnet/libnet_1.0.2a.bb b/packages/libnet/libnet_1.0.2a.bb index c986bb9f90..9cfcdf8a2a 100644 --- a/packages/libnet/libnet_1.0.2a.bb +++ b/packages/libnet/libnet_1.0.2a.bb @@ -4,9 +4,12 @@ portable framework for low-level network packet shaping, \ handling, and injection." SECTION = "libs/network" LICENSE = "GPL" +PR = "r1" SRC_URI = "http://www.packetfactory.net/libnet/dist/deprecated/libnet-${PV}.tar.gz \ - file://configure.patch;patch=1" + file://configure.patch;patch=1 \ + file://configure.uclibc.patch;patch=1 \ + " S = "${WORKDIR}/Libnet-${PV}" inherit autotools @@ -15,7 +18,7 @@ CPPFLAGS_prepend = "-I${S}/libnet/include -DHAVE_PF_PACKET " EXTRA_OEMAKE = "'LIB_PREFIX=${libdir}/' 'MAN_PREFIX=${mandir}/' \ 'BIN_PREFIX=${bindir}/' 'INC_PREFIX=${includedir}/'" -#FIXME: +#FIXME: (fixing this would remove the need for configure.uclibc.patch above) do_configure() { oe_runconf } diff --git a/packages/libnet/libnet_1.1.2.1.bb b/packages/libnet/libnet_1.1.2.1.bb new file mode 100644 index 0000000000..4c862dce9e --- /dev/null +++ b/packages/libnet/libnet_1.1.2.1.bb @@ -0,0 +1,38 @@ +SECTION = "libs" +DESCRIPTION = "A packet dissection and creation library" +HOMEPAGE = "http://www.packetfactory.net/libnet/" +LICENSE = "BSD" +PRIORITY = "optional" +DEPENDS = "libpcap" +PR = "r0" + +SRC_URI = "http://www.packetfactory.net/libnet/dist/libnet-${PV}.tar.gz \ + file://support-uclibc.patch;patch=1 \ + file://fix-endianess-test.patch;patch=1 \ + file://configure.patch;patch=1" + +S = "${WORKDIR}/libnet" + +inherit autotools binconfig + +CPPFLAGS_prepend = "-I${S}/libnet/include " + +do_configure() { + oe_runconf +} + +do_stage () { + oe_runmake -C src 'DESTDIR=${STAGING_LIBDIR}' 'libdir=' install-libLIBRARIES + oe_runmake -C include 'DESTDIR=${STAGING_INCDIR}' 'includedir=' install-includeHEADERS + oe_runmake -C include/libnet 'DESTDIR=${STAGING_INCDIR}' 'includedir=' install-libnetincludeHEADERS +} + +do_install_append () { + install -d ${D}${datadir}/man/man3/ + install -d ${D}${bindir} + install -m 0644 ${S}/doc/man/man3/*.3 ${D}${datadir}/man/man3/ + install -m 0755 ${S}/libnet-config ${D}${bindir} +} + +PACKAGES = "${PN}-dev ${PN}-doc" +FILES_${PN}-dev += "${bindir}/libnet-config" diff --git a/packages/libsexy/.mtn2git_empty b/packages/libsexy/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/libsexy/.mtn2git_empty diff --git a/packages/libsexy/libsexy_0.1.4.bb b/packages/libsexy/libsexy_0.1.4.bb new file mode 100644 index 0000000000..526e1bd6ed --- /dev/null +++ b/packages/libsexy/libsexy_0.1.4.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "Libsexy is a collection of GTK+ widgets that extend the functionality of such standard widgets as GtkEntry and GtkLabel" +HOMEPAGE = "http://wiki.chipx86.com/wiki/Libsexy" +AUTHOR = "Christian Hammond <chipx86@chipx86.com>" +MAINTAINER = "Koen Kooi <koen@handhelds.org>"" +PR = "r1" + +DEPENDS = "gtk+ enchant libxml2" + +SRC_URI = "http://osiris.chipx86.com/projects/libsexy/releases/${P}.tar.gz" + +inherit autotools pkgconfig + +do_stage() { +autotools_stage_all +} + + diff --git a/packages/libxml/files/.mtn2git_empty b/packages/libxml/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/libxml/files/.mtn2git_empty diff --git a/packages/libxml/files/no-testapi.patch b/packages/libxml/files/no-testapi.patch new file mode 100644 index 0000000000..15a4dea0ee --- /dev/null +++ b/packages/libxml/files/no-testapi.patch @@ -0,0 +1,51 @@ +--- /tmp/Makefile.am 2005-11-13 14:33:15.844432536 +0100 ++++ libxml2-2.6.22/Makefile.am 2005-11-13 14:33:25.796919528 +0100 +@@ -8,7 +8,7 @@ + + noinst_PROGRAMS=testSchemas testRelax testSAX testHTML testXPath testURI \ + testThreads testC14N testAutomata testRegexp \ +- testReader testapi testModule runtest runsuite ++ testReader testModule runtest runsuite + + bin_PROGRAMS = xmllint xmlcatalog + +@@ -135,20 +135,9 @@ + testdso_la_LDFLAGS = -module -rpath $(libdir) + + # that one forces the rebuild when "make rebuild" is run on doc/ +-rebuild_testapi: +- -@(if [ "$(PYTHON)" != "" ] ; then \ +- $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi ) + + # that one is just to make sure it is rebuilt if missing + # but adding the dependances generate mess +-testapi.c: +- -@(if [ "$(PYTHON)" != "" ] ; then \ +- $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi ) +- +-testapi_SOURCES=testapi.c +-testapi_LDFLAGS = +-testapi_DEPENDENCIES = $(DEPS) +-testapi_LDADD= $(LDADDS) + + #testOOM_SOURCES=testOOM.c testOOMlib.h testOOMlib.c + #testOOM_LDFLAGS = +@@ -169,9 +158,6 @@ + @echo '## Go get a cup of coffee it is gonna take a while ...' + $(MAKE) CHECKER='valgrind' tests + +-APItests: testapi$(EXEEXT) +- @echo "## Running the API regression tests this may take a little while" +- -@($(CHECKER) $(top_builddir)/testapi -q) + + HTMLtests : testHTML$(EXEEXT) + @(echo > .memdump) +@@ -1116,7 +1102,7 @@ + dist-test: distdir + (mkdir -p $(distdir)) + (cd $(srcdir) ; tar -cf - --exclude CVS xstc/Tests) | (cd $(distdir); tar xf -) +- tar -cf - $(distdir)/test $(distdir)/result $(distdir)/xstc/Tests $(distdir)/Makefile.tests $(distdir)/README $(distdir)/README.tests $(distdir)/AUTHORS $(distdir)/testapi.c $(distdir)/runtest.c $(distdir)/runsuite.c | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-tests+"`.tar.gz ++ tar -cf - $(distdir)/test $(distdir)/result $(distdir)/xstc/Tests $(distdir)/Makefile.tests $(distdir)/README $(distdir)/README.tests $(distdir)/AUTHORS $(distdir)/runtest.c $(distdir)/runsuite.c | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-tests+"`.tar.gz + @(rm -rf $(distdir)/xstc/Test) + + cleantar: diff --git a/packages/libxml/libxml2_2.6.22.bb b/packages/libxml/libxml2_2.6.22.bb new file mode 100644 index 0000000000..2aba2ea071 --- /dev/null +++ b/packages/libxml/libxml2_2.6.22.bb @@ -0,0 +1,40 @@ +PR = "r0" +DESCRIPTION = "GNOME XML library" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "MIT" +PACKAGES = "${PN}-dev ${PN}-utils ${PN} ${PN}-doc ${PN}-locale" + +FILES_${PN}-dev += "${bindir}/xml-config" +FILES_${PN}-utils += "${bindir}" + +SRC_URI = "http://xmlsoft.org/sources/libxml2-${PV}.tar.gz \ + file://no-testapi.patch;patch=1" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--without-python --without-debug --without-legacy --without-schemas --without-catalog --without-docbook --without-c14n" + +headers = "DOCBparser.h HTMLparser.h HTMLtree.h SAX.h SAX2.h c14n.h catalog.h chvalid.h debugXML.h dict.h encoding.h entities.h globals.h hash.h list.h nanoftp.h nanohttp.h parser.h parserInternals.h pattern.h relaxng.h schemasInternals.h threads.h tree.h uri.h valid.h xinclude.h xlink.h xmlIO.h xmlautomata.h xmlerror.h xmlexports.h xmlmemory.h xmlreader.h xmlregexp.h xmlschemas.h xmlschemastypes.h xmlstring.h xmlunicode.h xmlversion.h xmlwriter.h xpath.h xpathInternals.h xpointer.h" + +do_stage () { + oe_libinstall -so libxml2 ${STAGING_LIBDIR} + + mkdir -p ${STAGING_INCDIR}/libxml2/libxml + for i in ${headers}; do + install -m 0644 include/libxml/$i ${STAGING_INCDIR}/libxml2/libxml/$i + done + + cat xml2-config | sed -e "s,^prefix=.*,prefix=${STAGING_BINDIR}/..," \ + -e "s,^exec_prefix=.*,exec_prefix=${STAGING_BINDIR}/..," \ + -e "s,^includedir=.*,includedir=${STAGING_INCDIR}," \ + -e "s,^libdir=.*,libdir=${STAGING_LIBDIR}," > ${STAGING_BINDIR}/xml2-config + chmod a+rx ${STAGING_BINDIR}/xml2-config + install -m 0644 libxml.m4 ${STAGING_DATADIR}/aclocal/ +} + +python populate_packages_prepend () { + # autonamer would call this libxml2-2, but we don't want that + if bb.data.getVar('DEBIAN_NAMES', d, 1): + bb.data.setVar('PKG_libxml2', 'libxml2', d) +} diff --git a/packages/linux/handhelds-pxa-2.6/ipaq-pxa270/defconfig b/packages/linux/handhelds-pxa-2.6/ipaq-pxa270/defconfig index f90fb80edf..9bd18034ed 100644 --- a/packages/linux/handhelds-pxa-2.6/ipaq-pxa270/defconfig +++ b/packages/linux/handhelds-pxa-2.6/ipaq-pxa270/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.12-hh2 -# Mon Aug 15 19:13:48 2005 +# Linux kernel version: 2.6.12-hh1 +# Wed Jul 13 18:54:32 2005 # CONFIG_ARM=y CONFIG_MMU=y @@ -102,7 +102,6 @@ CONFIG_PXA27x=y CONFIG_PXA_KEYS=y # CONFIG_ARCH_ESERIES is not set # CONFIG_MACH_A620 is not set -# CONFIG_MACH_A716 is not set # CONFIG_ARCH_H1900 is not set # CONFIG_ARCH_H2200 is not set # CONFIG_ARCH_H3900 is not set @@ -125,9 +124,6 @@ CONFIG_HX4700_LEDS=m # CONFIG_ARCH_ROVERP1 is not set # CONFIG_ARCH_ROVERP5P is not set # CONFIG_PXA_SHARPSL is not set -# CONFIG_SA1100_H3100 is not set -# CONFIG_SA1100_H3600 is not set -# CONFIG_SA1100_H3800 is not set # # Linux As Bootloader @@ -153,32 +149,24 @@ CONFIG_ARM_THUMB=y CONFIG_XSCALE_PMU=y # -# Compaq/iPAQ Platforms -# -CONFIG_PXA_IPAQ=y - -# -# XScale-based iPAQ +# Bus support # -CONFIG_IPAQ_HANDHELD=y +CONFIG_ISA_DMA_API=y # -# Compaq/iPAQ Drivers +# Compaq/iPAQ Options # +CONFIG_PXA_IPAQ=y # -# Compaq/HP iPAQ Drivers +# XScale-based iPAQ # +CONFIG_IPAQ_HANDHELD=y # CONFIG_IPAQ_SLEEVE is not set # CONFIG_IPAQ_SAMCOP is not set # CONFIG_IPAQ_HAMCOP is not set # -# Bus support -# -CONFIG_ISA_DMA_API=y - -# # PCCARD (PCMCIA/CardBus) support # CONFIG_PCCARD=m @@ -377,6 +365,7 @@ CONFIG_BLK_DEV_IDECS=m # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set # CONFIG_IDE_TASK_IOCTL is not set # @@ -699,6 +688,7 @@ CONFIG_NET_RADIO=y # # CONFIG_AIRO_CS is not set # CONFIG_PCMCIA_WL3501 is not set +# CONFIG_PCMCIA_ACX100 is not set CONFIG_NET_WIRELESS=y # CONFIG_HOSTAP is not set @@ -745,6 +735,7 @@ CONFIG_INPUT=y # Userland interfaces # # CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set # CONFIG_INPUT_JOYDEV is not set # CONFIG_INPUT_TSDEV is not set CONFIG_INPUT_EVDEV=m @@ -1047,8 +1038,6 @@ CONFIG_SND_GENERIC_PM=y # # ALSA ARM devices # -# CONFIG_SND_A716 is not set -# CONFIG_SND_H1910 is not set # CONFIG_SND_H2200 is not set CONFIG_SND_HX4700=m # CONFIG_SND_PXA2XX_UDA1380 is not set @@ -1099,7 +1088,7 @@ CONFIG_USB_PXA27X=m # CONFIG_USB_ZERO is not set CONFIG_USB_ETH=m # CONFIG_USB_ETH_RNDIS is not set -# CONFIG_USB_GADGETFS is not set +CONFIG_USB_GADGETFS=m CONFIG_USB_FILE_STORAGE=m # CONFIG_USB_FILE_STORAGE_TEST is not set CONFIG_USB_G_SERIAL=m @@ -1131,7 +1120,7 @@ CONFIG_EXT2_FS_POSIX_ACL=y # CONFIG_EXT2_FS_SECURITY is not set # CONFIG_EXT3_FS is not set # CONFIG_JBD is not set -CONFIG_FS_MBCACHE=m +CONFIG_FS_MBCACHE=y # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y @@ -1242,7 +1231,7 @@ CONFIG_MSDOS_PARTITION=y # Native Language Support # CONFIG_NLS=m -CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_DEFAULT="iso8859-1" CONFIG_NLS_CODEPAGE_437=m # CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_775 is not set diff --git a/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/.mtn2git_empty b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/.mtn2git_empty diff --git a/packages/linux/linux-openzaurus-2.6.14-rc1/add-elpp-stuff.patch b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/add-elpp-stuff.patch index 04ab185f4f..04ab185f4f 100644 --- a/packages/linux/linux-openzaurus-2.6.14-rc1/add-elpp-stuff.patch +++ b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/add-elpp-stuff.patch diff --git a/packages/linux/linux-openzaurus-2.6.14-rc1/add-oz-release-string.patch b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/add-oz-release-string.patch index 22a6fd3943..22a6fd3943 100644 --- a/packages/linux/linux-openzaurus-2.6.14-rc1/add-oz-release-string.patch +++ b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/add-oz-release-string.patch diff --git a/packages/linux/linux-openzaurus-2.6.14-rc1/connectplus-remove-ide-HACK.patch b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/connectplus-remove-ide-HACK.patch index 4414b21191..4414b21191 100644 --- a/packages/linux/linux-openzaurus-2.6.14-rc1/connectplus-remove-ide-HACK.patch +++ b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/connectplus-remove-ide-HACK.patch diff --git a/packages/linux/linux-openzaurus-2.6.14-rc1/defconfig-c7x0 b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-c7x0 index 9dd7c230e7..20b44b7197 100644 --- a/packages/linux/linux-openzaurus-2.6.14-rc1/defconfig-c7x0 +++ b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-c7x0 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.13-rc3-mm1 -# Sun Jul 24 18:32:14 2005 +# Linux kernel version: 2.6.15-rc2 +# Fri Nov 25 17:06:09 2005 # CONFIG_ARM=y CONFIG_MMU=y @@ -22,23 +22,19 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 # General setup # CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set - -# -# Class Based Kernel Resource Management -# -# CONFIG_CKRM is not set CONFIG_SYSCTL=y # CONFIG_AUDIT is not set CONFIG_HOTPLUG=y CONFIG_KOBJECT_UEVENT=y # CONFIG_IKCONFIG is not set +CONFIG_INITRAMFS_SOURCE="" CONFIG_EMBEDDED=y -# CONFIG_DELAY_ACCT is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set @@ -68,6 +64,23 @@ CONFIG_OBSOLETE_MODPARM=y CONFIG_KMOD=y # +# Block layer +# + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=m +CONFIG_IOSCHED_CFQ=m +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" + +# # System Type # # CONFIG_ARCH_CLPS7500 is not set @@ -89,6 +102,7 @@ CONFIG_ARCH_PXA=y # CONFIG_ARCH_LH7A40X is not set # CONFIG_ARCH_OMAP is not set # CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_REALVIEW is not set # CONFIG_ARCH_IMX is not set # CONFIG_ARCH_H720X is not set # CONFIG_ARCH_AAEC2000 is not set @@ -101,6 +115,8 @@ CONFIG_ARCH_PXA=y # CONFIG_ARCH_PXA_IDP is not set CONFIG_PXA_SHARPSL=y # CONFIG_MACH_HX2750 is not set +CONFIG_PXA_SHARPSL_25x=y +# CONFIG_PXA_SHARPSL_27x is not set # CONFIG_MACH_POODLE is not set CONFIG_MACH_CORGI=y CONFIG_MACH_SHEPHERD=y @@ -109,6 +125,7 @@ CONFIG_MACH_HUSKY=y CONFIG_PXA25x=y # CONFIG_PXA_KEYS is not set CONFIG_PXA_SHARP_C7xx=y +CONFIG_PXA_SSP=y # # Processor Type @@ -145,15 +162,13 @@ CONFIG_PCMCIA_IOCTL=y # # PC-card bridges # -# CONFIG_TCIC is not set CONFIG_PCMCIA_PXA2XX=y # # Kernel Features # -# CONFIG_SMP is not set CONFIG_PREEMPT=y -# CONFIG_NO_IDLE_HZ is not set +CONFIG_NO_IDLE_HZ=y # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -161,6 +176,8 @@ CONFIG_FLATMEM_MANUAL=y # 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=4096 CONFIG_ALIGNMENT_TRAP=y # @@ -168,10 +185,27 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 " +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" # CONFIG_XIP_KERNEL is not set # +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_DEBUG=y +CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_FREQ_STAT_DETAILS is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_PXA25x=y + +# # Floating point emulation # @@ -194,6 +228,8 @@ CONFIG_BINFMT_MISC=m # Power management options # CONFIG_PM=y +CONFIG_PM_LEGACY=y +# CONFIG_PM_DEBUG is not set CONFIG_APM=y # @@ -223,8 +259,8 @@ CONFIG_SYN_COOKIES=y # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_INET_TUNNEL is not set -# CONFIG_IP_TCPDIAG is not set -# CONFIG_IP_TCPDIAG_IPV6 is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_BIC=y @@ -243,16 +279,24 @@ CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set # +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set + +# # IP: Netfilter Configuration # CONFIG_IP_NF_CONNTRACK=m # CONFIG_IP_NF_CT_ACCT is not set # CONFIG_IP_NF_CONNTRACK_MARK is not set +# CONFIG_IP_NF_CONNTRACK_EVENTS is not set CONFIG_IP_NF_CT_PROTO_SCTP=m CONFIG_IP_NF_FTP=m CONFIG_IP_NF_IRC=m +# CONFIG_IP_NF_NETBIOS_NS is not set CONFIG_IP_NF_TFTP=m CONFIG_IP_NF_AMANDA=m +# CONFIG_IP_NF_PPTP is not set CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_LIMIT=m @@ -276,13 +320,16 @@ CONFIG_IP_NF_MATCH_OWNER=m CONFIG_IP_NF_MATCH_ADDRTYPE=m CONFIG_IP_NF_MATCH_REALM=m CONFIG_IP_NF_MATCH_SCTP=m +# CONFIG_IP_NF_MATCH_DCCP is not set CONFIG_IP_NF_MATCH_COMMENT=m CONFIG_IP_NF_MATCH_HASHLIMIT=m +# CONFIG_IP_NF_MATCH_STRING is not set CONFIG_IP_NF_FILTER=m # CONFIG_IP_NF_TARGET_REJECT is not set CONFIG_IP_NF_TARGET_LOG=m CONFIG_IP_NF_TARGET_ULOG=m CONFIG_IP_NF_TARGET_TCPMSS=m +# CONFIG_IP_NF_TARGET_NFQUEUE is not set CONFIG_IP_NF_NAT=m CONFIG_IP_NF_NAT_NEEDED=y # CONFIG_IP_NF_TARGET_MASQUERADE is not set @@ -300,6 +347,7 @@ CONFIG_IP_NF_MANGLE=m # CONFIG_IP_NF_TARGET_DSCP is not set # CONFIG_IP_NF_TARGET_MARK is not set # CONFIG_IP_NF_TARGET_CLASSIFY is not set +# CONFIG_IP_NF_TARGET_TTL is not set CONFIG_IP_NF_RAW=m # CONFIG_IP_NF_TARGET_NOTRACK is not set CONFIG_IP_NF_ARPTABLES=m @@ -326,11 +374,19 @@ CONFIG_IP6_NF_MATCH_LENGTH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_FILTER=m # CONFIG_IP6_NF_TARGET_LOG is not set +# CONFIG_IP6_NF_TARGET_REJECT is not set +# CONFIG_IP6_NF_TARGET_NFQUEUE is not set CONFIG_IP6_NF_MANGLE=m # CONFIG_IP6_NF_TARGET_MARK is not set +# CONFIG_IP6_NF_TARGET_HL is not set CONFIG_IP6_NF_RAW=m # +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# # SCTP Configuration (EXPERIMENTAL) # # CONFIG_IP_SCTP is not set @@ -346,6 +402,10 @@ CONFIG_IP6_NF_RAW=m # CONFIG_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# # CONFIG_NET_SCHED is not set CONFIG_NET_CLS_ROUTE=y @@ -353,11 +413,6 @@ CONFIG_NET_CLS_ROUTE=y # Network testing # # CONFIG_NET_PKTGEN is not set -# CONFIG_KGDBOE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NETPOLL_RX is not set -# CONFIG_NETPOLL_TRAP is not set -# CONFIG_NET_POLL_CONTROLLER is not set # CONFIG_HAMRADIO is not set CONFIG_IRDA=m @@ -427,7 +482,6 @@ CONFIG_BT_HCIUSB=m CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIUART_BCSP_TXCRC=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m @@ -436,7 +490,11 @@ CONFIG_BT_HCIBT3C=m CONFIG_BT_HCIBLUECARD=m CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m -# CONFIG_IEEE80211 is not set +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +# CONFIG_IEEE80211_CRYPT_CCMP is not set +# CONFIG_IEEE80211_CRYPT_TKIP is not set # # Device Drivers @@ -451,6 +509,11 @@ CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set # +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# # Memory Technology Devices (MTD) # CONFIG_MTD=y @@ -469,6 +532,7 @@ 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 # # RAM/ROM/Flash chip drivers @@ -524,6 +588,11 @@ CONFIG_MTD_NAND_SHARPSL=y # CONFIG_MTD_NAND_NANDSIM is not set # +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# # Parallel port support # # CONFIG_PARPORT is not set @@ -542,16 +611,7 @@ CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_UB is not set # CONFIG_BLK_DEV_RAM is not set CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_INITRAMFS_SOURCE="" # CONFIG_CDROM_PKTCDVD is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y # CONFIG_ATA_OVER_ETH is not set # @@ -585,6 +645,7 @@ CONFIG_IDE_GENERIC=y # # SCSI device support # +# CONFIG_RAID_ATTRS is not set CONFIG_SCSI=m CONFIG_SCSI_PROC_FS=y @@ -612,10 +673,12 @@ CONFIG_SCSI_MULTI_LUN=y # CONFIG_SCSI_SPI_ATTRS is not set # CONFIG_SCSI_FC_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set # # SCSI low-level drivers # +# CONFIG_ISCSI_TCP is not set # CONFIG_SCSI_SATA is not set # CONFIG_SCSI_DEBUG is not set @@ -656,6 +719,11 @@ CONFIG_NETDEVICES=y # CONFIG_TUN is not set # +# PHY device support +# +# CONFIG_PHYLIB is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y @@ -708,7 +776,6 @@ CONFIG_PCMCIA_SPECTRUM=m CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y CONFIG_HOSTAP_CS=m -# CONFIG_ACX is not set CONFIG_NET_WIRELESS=y # @@ -733,13 +800,15 @@ CONFIG_PPP=m # CONFIG_PPP_FILTER is not set CONFIG_PPP_ASYNC=m # CONFIG_PPP_SYNC_TTY is not set -# CONFIG_PPP_DEFLATE is not set +CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m # CONFIG_PPP_MPPE is not set # CONFIG_PPPOE is not set # CONFIG_SLIP 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 # # ISDN subsystem @@ -771,6 +840,7 @@ CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_NEWTON is not set CONFIG_KEYBOARD_CORGI=y +# CONFIG_KEYBOARD_SPITZ is not set # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set CONFIG_INPUT_TOUCHSCREEN=y @@ -836,11 +906,15 @@ CONFIG_SA1100_RTC=y # PCMCIA character devices # # CONFIG_SYNCLINK_CS is not set +# CONFIG_CARDMAN_4000 is not set +# CONFIG_CARDMAN_4040 is not set # CONFIG_RAW_DRIVER is not set # # TPM devices # +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK is not set # # I2C support @@ -860,11 +934,9 @@ CONFIG_I2C_ALGOBIT=y # CONFIG_I2C_PXA=y # CONFIG_I2C_PXA_SLAVE is not set -CONFIG_I2C_ISA=m # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_STUB is not set # CONFIG_I2C_PCA_ISA is not set -# CONFIG_I2C_SENSOR is not set # # Miscellaneous I2C Chip support @@ -877,6 +949,7 @@ CONFIG_I2C_ISA=m # CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_RTC8564 is not set # CONFIG_SENSORS_MAX6875 is not set +# CONFIG_RTC_X1205_I2C is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -885,48 +958,29 @@ CONFIG_I2C_ISA=m # # Hardware Monitoring support # -CONFIG_HWMON=y -# CONFIG_SENSORS_ADM1021 is not set -# CONFIG_SENSORS_ADM1025 is not set -# CONFIG_SENSORS_ADM1026 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_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_LM75 is not set -# 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_MAX1619 is not set -# CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_W83781D 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 +# CONFIG_HWMON is not set +# CONFIG_HWMON_VID is not set # # Misc devices # # -# SoC drivers +# Multimedia Capabilities Port drivers +# + +# +# Multi-Function Devices +# + +# +# LED devices # -# CONFIG_SOC is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_CORGI=y +CONFIG_LEDS_TRIGGER_TIMER=y # # Multimedia devices @@ -944,7 +998,10 @@ CONFIG_VIDEO_DEV=m # CONFIG_VIDEO_SAA5246A is not set # CONFIG_VIDEO_SAA5249 is not set # CONFIG_TUNER_3036 is not set +# CONFIG_VIDEO_EM28XX is not set # CONFIG_VIDEO_OVCAMCHIP is not set +# CONFIG_VIDEO_AUDIO_DECODER is not set +# CONFIG_VIDEO_DECODER is not set # # Radio Adapters @@ -963,14 +1020,12 @@ CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_SOFT_CURSOR=y # CONFIG_FB_MACMODES is not set # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set -# CONFIG_FB_ELPP is not set +# CONFIG_FB_S1D13XXX is not set # CONFIG_FB_PXA is not set CONFIG_FB_W100=y -# CONFIG_FB_S1D13XXX is not set # CONFIG_FB_VIRTUAL is not set # @@ -979,6 +1034,7 @@ CONFIG_FB_W100=y # CONFIG_VGA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set CONFIG_FONTS=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y @@ -1002,12 +1058,6 @@ CONFIG_BACKLIGHT_DEVICE=y CONFIG_BACKLIGHT_CORGI=y # -# Speakup console speech -# -# CONFIG_SPEAKUP is not set -CONFIG_SPEAKUP_DEFAULT="none" - -# # Sound # CONFIG_SOUND=y @@ -1015,49 +1065,97 @@ CONFIG_SOUND=y # # Advanced Linux Sound Architecture # -# CONFIG_SND is not set +CONFIG_SND=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_AC97_BUS=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_SEQUENCER=m +# CONFIG_SND_SEQ_DUMMY is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +# CONFIG_SND_SEQUENCER_OSS is not set +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_DETECT is not set + +# +# Generic devices +# +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_VIRMIDI is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# ALSA ARM devices +# +CONFIG_SND_PXA2XX_PCM=m +CONFIG_SND_PXA2XX_AC97=m + +# +# USB devices +# +# CONFIG_SND_USB_AUDIO is not set + +# +# PCMCIA devices +# + +# +# SoC audio support +# +CONFIG_SND_SOC=m + +# +# Soc Platforms +# +CONFIG_SND_PXA2xx_SOC=m +# CONFIG_SND_PXA2xx_SOC_AC97 is not set +CONFIG_SND_PXA2xx_SOC_I2S=m +# CONFIG_SND_PXA2xx_SOC_SSP is not set + +# +# PXA2xx machine support +# +# CONFIG_SND_PXA2xx_SOC_MAINSTONE is not set +CONFIG_SND_PXA2xx_SOC_CORGI=m + +# +# Soc Codecs +# +# CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_WM8753 is not set +CONFIG_SND_SOC_WM8731=m +# CONFIG_SND_SOC_WM8750 is not set +# CONFIG_SND_SOC_WM8971 is not set # # Open Sound System # -CONFIG_SOUND_PRIME=y -# CONFIG_SOUND_BT878 is not set -# CONFIG_SOUND_FUSION is not set -# CONFIG_SOUND_CS4281 is not set -# CONFIG_SOUND_SONICVIBES is not set -# CONFIG_SOUND_TRIDENT is not set +CONFIG_SOUND_PRIME=m +# CONFIG_OBSOLETE_OSS_DRIVER is not set # CONFIG_SOUND_MSNDCLAS is not set # CONFIG_SOUND_MSNDPIN is not set -CONFIG_SOUND_OSS=y +CONFIG_SOUND_OSS=m # CONFIG_SOUND_TRACEINIT is not set # CONFIG_SOUND_DMAP is not set # CONFIG_SOUND_AD1816 is not set -# CONFIG_SOUND_SGALAXY is not set # CONFIG_SOUND_ADLIB is not set # CONFIG_SOUND_ACI_MIXER is not set -# CONFIG_SOUND_CS4232 is not set -# CONFIG_SOUND_SSCAPE is not set -# CONFIG_SOUND_GUS is not set # CONFIG_SOUND_VMIDI is not set # CONFIG_SOUND_TRIX is not set # CONFIG_SOUND_MSS is not set # CONFIG_SOUND_MPU401 is not set -# CONFIG_SOUND_NM256 is not set -# CONFIG_SOUND_MAD16 is not set # CONFIG_SOUND_PAS is not set # CONFIG_SOUND_PSS is not set -CONFIG_SOUND_CORGI=y # CONFIG_SOUND_SB is not set -# CONFIG_SOUND_AWE32_SYNTH is not set -# CONFIG_SOUND_WAVEFRONT is not set -# CONFIG_SOUND_MAUI is not set -# CONFIG_SOUND_YM3812 is not set -# CONFIG_SOUND_OPL3SA1 is not set # CONFIG_SOUND_OPL3SA2 is not set # CONFIG_SOUND_UART6850 is not set # CONFIG_SOUND_AEDSP16 is not set # CONFIG_SOUND_TVMIXER is not set -# CONFIG_SOUND_AD1980 is not set # # USB support @@ -1086,17 +1184,16 @@ CONFIG_USB_SL811_CS=m # # USB Device Class drivers # -CONFIG_USB_AUDIO=m +# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m # -# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' # -CONFIG_USB_MIDI=m -CONFIG_USB_ACM=m -CONFIG_USB_PRINTER=m # -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information +# may also be needed; see USB_STORAGE Help for more information # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set @@ -1164,30 +1261,14 @@ CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m CONFIG_USB_USBNET=m - -# -# USB Host-to-Host Cables -# -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_GENESYS=y -CONFIG_USB_NET1080=y -CONFIG_USB_PL2301=y -CONFIG_USB_KC2190=y - -# -# Intelligent USB Devices/Gadgets -# -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_ZAURUS=y -CONFIG_USB_CDCETHER=y - -# -# USB Network Adapters -# -CONFIG_USB_AX8817X=y +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +# CONFIG_USB_NET_GL620A is not set +CONFIG_USB_NET_NET1080=m +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +CONFIG_USB_NET_ZAURUS=m # CONFIG_USB_ZD1201 is not set CONFIG_USB_MON=y @@ -1201,6 +1282,7 @@ CONFIG_USB_MON=y CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y # CONFIG_USB_SERIAL_AIRPRIME is not set +# CONFIG_USB_SERIAL_ANYDATA is not set CONFIG_USB_SERIAL_BELKIN=m # CONFIG_USB_SERIAL_WHITEHEAT is not set CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m @@ -1253,7 +1335,6 @@ CONFIG_USB_LEGOTOWER=m CONFIG_USB_LCD=m CONFIG_USB_LED=m CONFIG_USB_CYTHERM=m -# CONFIG_USB_GOTEMP is not set CONFIG_USB_PHIDGETKIT=m CONFIG_USB_PHIDGETSERVO=m CONFIG_USB_IDMOUSE=m @@ -1304,14 +1385,9 @@ CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XIP is not set # CONFIG_EXT3_FS is not set # CONFIG_JBD is not set -# CONFIG_REISER4_FS is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set # CONFIG_FS_POSIX_ACL is not set - -# -# XFS support -# # CONFIG_XFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set @@ -1320,11 +1396,6 @@ CONFIG_INOTIFY=y CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set - -# -# Caches -# -# CONFIG_FSCACHE is not set # CONFIG_FUSE_FS is not set # @@ -1348,12 +1419,9 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_PROC_FS=y CONFIG_SYSFS=y -# CONFIG_DEVPTS_FS_XATTR is not set CONFIG_TMPFS=y -# CONFIG_TMPFS_XATTR is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y -# CONFIG_CONFIGFS_FS is not set # CONFIG_RELAYFS_FS is not set # @@ -1361,7 +1429,6 @@ CONFIG_RAMFS=y # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set -# CONFIG_ASFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set @@ -1371,6 +1438,7 @@ CONFIG_RAMFS=y CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y +CONFIG_JFFS2_SUMMARY=y CONFIG_JFFS2_COMPRESSION_OPTIONS=y CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y @@ -1404,7 +1472,10 @@ CONFIG_RPCSEC_GSS_KRB5=m CONFIG_SMB_FS=m CONFIG_SMB_NLS_DEFAULT=y CONFIG_SMB_NLS_REMOTE="cp437" -# CONFIG_CIFS is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_XATTR 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 @@ -1497,7 +1568,9 @@ CONFIG_DETECT_SOFTLOCKUP=y CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_VM is not set CONFIG_FRAME_POINTER=y +# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_WAITQ is not set CONFIG_DEBUG_ERRORS=y @@ -1547,6 +1620,7 @@ CONFIG_CRYPTO_TEST=m # Library routines # CONFIG_CRC_CCITT=y +# CONFIG_CRC16 is not set CONFIG_CRC32=y CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y diff --git a/packages/linux/linux-openzaurus-2.6.14-rc1/defconfig-collie b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-collie index 9f51b61169..354d0c2854 100644 --- a/packages/linux/linux-openzaurus-2.6.14-rc1/defconfig-collie +++ b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-collie @@ -1,14 +1,13 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.11-rc2 -# Sat Jan 22 20:41:45 2005 +# Linux kernel version: 2.6.14-git3 +# Thu Nov 3 09:37:28 2005 # CONFIG_ARM=y CONFIG_MMU=y CONFIG_UID16=y CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_GENERIC_IOMAP=y # # Code maturity level options @@ -18,11 +17,13 @@ CONFIG_EXPERIMENTAL=y CONFIG_BROKEN=y CONFIG_BROKEN_ON_SMP=y CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 # # General setup # CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set @@ -30,14 +31,17 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set CONFIG_SYSCTL=y # CONFIG_AUDIT is not set -CONFIG_LOG_BUF_SHIFT=14 CONFIG_HOTPLUG=y CONFIG_KOBJECT_UEVENT=y # CONFIG_IKCONFIG is not set +CONFIG_INITRAMFS_SOURCE="" CONFIG_EMBEDDED=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set @@ -47,6 +51,7 @@ CONFIG_CC_ALIGN_LABELS=0 CONFIG_CC_ALIGN_LOOPS=0 CONFIG_CC_ALIGN_JUMPS=0 # CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 # # Loadable module support @@ -83,6 +88,7 @@ CONFIG_ARCH_SA1100=y # CONFIG_ARCH_VERSATILE is not set # CONFIG_ARCH_IMX is not set # CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_AAEC2000 is not set # # SA11x0 Implementations @@ -101,8 +107,6 @@ CONFIG_SA1100_COLLIE=y # CONFIG_SA1100_SHANNON is not set # CONFIG_SA1100_SIMPAD is not set # CONFIG_SA1100_SSP is not set -CONFIG_SHARP_LOCOMO=y -CONFIG_SHARP_SCOOP=y # # Processor Type @@ -114,68 +118,177 @@ CONFIG_CPU_ABRT_EV4=y CONFIG_CPU_CACHE_V4WB=y CONFIG_CPU_CACHE_VIVT=y CONFIG_CPU_TLB_V4WB=y -CONFIG_CPU_MINICACHE=y # # Processor Features # +CONFIG_SHARP_LOCOMO=y +CONFIG_SHARP_PARAM=y +CONFIG_SHARP_SCOOP=y # -# General setup +# Bus support # -CONFIG_DISCONTIGMEM=y CONFIG_ISA=y +CONFIG_ISA_DMA_API=y + +# +# PCCARD (PCMCIA/CardBus) support +# +CONFIG_PCCARD=y +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y + +# +# PC-card bridges +# +# CONFIG_I82365 is not set +# CONFIG_TCIC is not set +CONFIG_PCMCIA_SA1100=y + +# +# Kernel Features +# +# CONFIG_SMP is not set +CONFIG_PREEMPT=y +CONFIG_NO_IDLE_HZ=y +CONFIG_ARCH_DISCONTIGMEM_ENABLE=y +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_DISCONTIGMEM_MANUAL=y +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_DISCONTIGMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_NEED_MULTIPLE_NODES=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_LEDS is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 mem=32M debug" # CONFIG_XIP_KERNEL is not set -# CONFIG_CPU_FREQ is not set # -# PCCARD (PCMCIA/CardBus) support +# CPU Frequency scaling # -# CONFIG_PCCARD is not set +# CONFIG_CPU_FREQ is not set # -# PC-card bridges +# Floating point emulation # # -# At least one math emulation must be selected +# At least one emulation must be selected # CONFIG_FPE_NWFPE=y # CONFIG_FPE_NWFPE_XP is not set # CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# CONFIG_BINFMT_ELF=y CONFIG_BINFMT_AOUT=m CONFIG_BINFMT_MISC=m +# CONFIG_ARTHUR is not set # -# Generic Driver Options +# Power management options # -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=m -# CONFIG_DEBUG_DRIVER is not set CONFIG_PM=y -CONFIG_PREEMPT=y CONFIG_APM=y -# CONFIG_ARTHUR is not set -CONFIG_CMDLINE="noinitrd root=/dev/mtdblock2 rootfstype=jffs2" -# CONFIG_LEDS is not set -CONFIG_ALIGNMENT_TRAP=y # -# Parallel port support +# Networking # -# CONFIG_PARPORT is not set +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_PNP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_TUNNEL is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y +# CONFIG_IPV6 is not set +# CONFIG_NETFILTER is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_NET_DIVERT is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_SCHED is not set +# CONFIG_NET_CLS_ROUTE is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +# CONFIG_IEEE80211 is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_DEBUG_DRIVER is not set # # Memory Technology Devices (MTD) # CONFIG_MTD=y # CONFIG_MTD_DEBUG is not set -CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set # CONFIG_MTD_CMDLINE_PARTS is not set # CONFIG_MTD_AFS_PARTS is not set @@ -216,7 +329,7 @@ CONFIG_MTD_SHARP=y # Mapping drivers for chip access # # CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_SA1100=y +# CONFIG_MTD_PLATRAM is not set # # Self-contained MTD device drivers @@ -240,6 +353,11 @@ CONFIG_MTD_SA1100=y # CONFIG_MTD_NAND is not set # +# Parallel port support +# +# CONFIG_PARPORT is not set + +# # Plug and Play support # # CONFIG_PNP is not set @@ -247,7 +365,6 @@ CONFIG_MTD_SA1100=y # # Block devices # -# CONFIG_BLK_DEV_FD is not set # CONFIG_BLK_DEV_XD is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y @@ -257,7 +374,6 @@ CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=1024 CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" # CONFIG_CDROM_PKTCDVD is not set # @@ -265,101 +381,145 @@ CONFIG_INITRAMFS_SOURCE="" # CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_DEADLINE=m +CONFIG_IOSCHED_CFQ=m +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" CONFIG_ATA_OVER_ETH=m # +# ATA/ATAPI/MFM/RLL support +# +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +# CONFIG_SCSI is not set + +# # Multi-device support (RAID and LVM) # # CONFIG_MD is not set # -# Networking support +# Fusion MPT device support # -CONFIG_NET=y +# CONFIG_FUSION is not set # -# Networking options +# IEEE 1394 (FireWire) support # -CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y -# CONFIG_NETLINK_DEV is not set -CONFIG_UNIX=y -# CONFIG_NET_KEY is not set -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -# CONFIG_IP_PNP is not set -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE is not set -# CONFIG_ARPD is not set -CONFIG_SYN_COOKIES=y -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -# CONFIG_INET_TUNNEL is not set -CONFIG_IP_TCPDIAG=y -# CONFIG_IP_TCPDIAG_IPV6 is not set -# CONFIG_IPV6 is not set -# CONFIG_NETFILTER is not set +# CONFIG_IEEE1394 is not set # -# SCTP Configuration (EXPERIMENTAL) +# I2O device support # -# CONFIG_IP_SCTP is not set -# CONFIG_ATM is not set -# CONFIG_BRIDGE is not set -# CONFIG_VLAN_8021Q is not set -# CONFIG_DECNET is not set -# CONFIG_LLC2 is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set # -# QoS and/or fair queueing +# Network device support # -# CONFIG_NET_SCHED is not set -# CONFIG_NET_CLS_ROUTE is not set +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set # -# Network testing +# PHY device support # -# CONFIG_NET_PKTGEN is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -# CONFIG_HAMRADIO is not set -# CONFIG_IRDA is not set -# CONFIG_BT is not set -# CONFIG_NETDEVICES is not set +# CONFIG_PHYLIB is not set # -# ATA/ATAPI/MFM/RLL support +# Ethernet (10 or 100Mbit) # -# CONFIG_IDE is not set +CONFIG_NET_ETHERNET=y +CONFIG_MII=m +# CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set # -# SCSI device support +# Ethernet (1000 Mbit) # -# CONFIG_SCSI is not set # -# Fusion MPT device support +# Ethernet (10000 Mbit) # # -# IEEE 1394 (FireWire) support +# Token Ring devices # -# CONFIG_IEEE1394 is not set # -# I2O device support +# Wireless LAN (non-hamradio) +# +CONFIG_NET_RADIO=y + +# +# Obsolete Wireless cards support (pre-802.11) +# +# CONFIG_STRIP is not set +# CONFIG_PCMCIA_WAVELAN is not set +# CONFIG_PCMCIA_NETWAVE is not set + +# +# Wireless 802.11 Frequency Hopping cards support # +# CONFIG_PCMCIA_RAYCS is not set + +# +# Wireless 802.11b ISA/PCI cards support +# +CONFIG_HERMES=m +# CONFIG_ATMEL is not set + +# +# Wireless 802.11b Pcmcia/Cardbus cards support +# +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +# CONFIG_AIRO_CS is not set +# CONFIG_PCMCIA_WL3501 is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_CS=m +CONFIG_NET_WIRELESS=y + +# +# PCMCIA network device support +# +CONFIG_NET_PCMCIA=y +# CONFIG_PCMCIA_3C589 is not set +# CONFIG_PCMCIA_3C574 is not set +# CONFIG_PCMCIA_FMVJ18X is not set +CONFIG_PCMCIA_PCNET=m +# CONFIG_PCMCIA_NMCLAN is not set +# CONFIG_PCMCIA_SMC91C92 is not set +# CONFIG_PCMCIA_XIRC2PS is not set +# CONFIG_PCMCIA_AXNET is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +CONFIG_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +# CONFIG_PPPOE is not set +# CONFIG_SLIP 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 + # # ISDN subsystem @@ -381,17 +541,7 @@ CONFIG_INPUT_TSDEV_SCREEN_X=240 CONFIG_INPUT_TSDEV_SCREEN_Y=320 CONFIG_INPUT_EVDEV=y CONFIG_INPUT_EVBUG=y - -# -# Input I/O drivers -# -# CONFIG_GAMEPORT is not set -CONFIG_SOUND_GAMEPORT=y -CONFIG_SERIO=y -# CONFIG_SERIO_SERPORT is not set -# CONFIG_SERIO_CT82C710 is not set -# CONFIG_SERIO_LIBPS2 is not set -# CONFIG_SERIO_RAW is not set +# CONFIG_INPUT_POWER is not set # # Input Device Drivers @@ -409,6 +559,15 @@ CONFIG_KEYBOARD_LOCOMO=y # CONFIG_INPUT_MISC is not set # +# Hardware I/O ports +# +CONFIG_SERIO=y +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_LIBPS2 is not set +# CONFIG_SERIO_RAW is not set +# CONFIG_GAMEPORT is not set + +# # Character devices # CONFIG_VT=y @@ -441,17 +600,26 @@ CONFIG_UNIX98_PTYS=y # # CONFIG_WATCHDOG is not set # CONFIG_NVRAM is not set -# CONFIG_RTC is not set +# CONFIG_SA1100_RTC is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set # # Ftape, the floppy tape device driver # -# CONFIG_DRM is not set + +# +# PCMCIA character devices +# +# CONFIG_SYNCLINK_CS is not set # CONFIG_RAW_DRIVER is not set # +# TPM devices +# +# CONFIG_TELCLOCK is not set + +# # I2C support # CONFIG_I2C=m @@ -468,54 +636,48 @@ CONFIG_I2C_ALGOBIT=m # I2C Hardware Bus support # # CONFIG_I2C_ELEKTOR is not set -CONFIG_I2C_ISA=m # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_STUB is not set # CONFIG_I2C_PCA_ISA is not set # -# Hardware Sensors Chip support -# -# CONFIG_I2C_SENSOR is not set -# CONFIG_SENSORS_ADM1021 is not set -# CONFIG_SENSORS_ADM1025 is not set -# CONFIG_SENSORS_ADM1026 is not set -# CONFIG_SENSORS_ADM1031 is not set -# CONFIG_SENSORS_ASB100 is not set -# CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_FSCHER is not set -# CONFIG_SENSORS_GL518SM is not set -# CONFIG_SENSORS_IT87 is not set -# CONFIG_SENSORS_LM63 is not set -# CONFIG_SENSORS_LM75 is not set -# 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_MAX1619 is not set -# CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_SMSC47M1 is not set -# CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83L785TS is not set -# CONFIG_SENSORS_W83627HF is not set - -# -# Other I2C Chip support +# Miscellaneous I2C Chip support # +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 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_RTC8564 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_RTC_X1205_I2C is not set +# CONFIG_MAX7310 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 # +# Hardware Monitoring support +# +# CONFIG_HWMON is not set + +# +# Misc devices +# + +# +# Multimedia Capabilities Port drivers +# +# CONFIG_MCP_SA11X0 is not set + +# +# SoC drivers +# +# CONFIG_SOC is not set + +# # Multimedia devices # CONFIG_VIDEO_DEV=m @@ -556,12 +718,87 @@ CONFIG_VIDEO_DEV=m # CONFIG_DVB is not set # +# Graphics support +# +CONFIG_FB=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_MACMODES is not set +CONFIG_FB_MODE_HELPERS=y +# CONFIG_FB_TILEBLITTING is not set +CONFIG_FB_SA1100=y +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_VIRTUAL is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +# CONFIG_MDA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +# CONFIG_FONT_8x16 is not set +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set + +# +# Logo configuration +# +# CONFIG_LOGO is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +# CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_PXA2XX 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_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set + +# +# MMC/SD Card support +# +# CONFIG_MMC is not set + +# # File systems # CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y +# CONFIG_EXT2_FS_XIP is not set # CONFIG_EXT3_FS is not set # CONFIG_JBD is not set CONFIG_FS_MBCACHE=y @@ -571,10 +808,12 @@ CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set # CONFIG_MINIX_FS is not set CONFIG_ROMFS_FS=y +CONFIG_INOTIFY=y # CONFIG_QUOTA is not set # CONFIG_DNOTIFY is not set # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set # # CD-ROM/DVD Filesystems @@ -597,15 +836,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_PROC_FS=y CONFIG_SYSFS=y -CONFIG_DEVFS_FS=y -CONFIG_DEVFS_MOUNT=y -# CONFIG_DEVFS_DEBUG is not set -# CONFIG_DEVPTS_FS_XATTR is not set CONFIG_TMPFS=y -# CONFIG_TMPFS_XATTR is not set # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y +# CONFIG_RELAYFS_FS is not set # # Miscellaneous filesystems @@ -620,11 +855,11 @@ CONFIG_RAMFS=y # CONFIG_JFFS_FS is not set CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 -# CONFIG_JFFS2_FS_NAND is not set -# CONFIG_JFFS2_FS_NOR_ECC is not set +CONFIG_JFFS2_FS_WRITEBUFFER=y # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y +CONFIG_JFFS2_SUMMARY=y # CONFIG_JFFS2_RUBIN is not set CONFIG_CRAMFS=y # CONFIG_VXFS_FS is not set @@ -638,12 +873,12 @@ CONFIG_CRAMFS=y # # CONFIG_NFS_FS is not set # CONFIG_NFSD is not set -# CONFIG_EXPORTFS 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 # CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set # # Partition Types @@ -701,96 +936,25 @@ CONFIG_NLS_UTF8=m # CONFIG_PROFILING is not set # -# Graphics support -# -CONFIG_FB=y -CONFIG_FB_MODE_HELPERS=y -# CONFIG_FB_TILEBLITTING is not set -CONFIG_FB_SA1100=y -# CONFIG_FB_VIRTUAL is not set - -# -# Console display driver support -# -# CONFIG_VGA_CONSOLE is not set -# CONFIG_MDA_CONSOLE is not set -CONFIG_DUMMY_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_FONTS=y -CONFIG_FONT_8x8=y -# CONFIG_FONT_8x16 is not set -# CONFIG_FONT_6x11 is not set -# CONFIG_FONT_PEARL_8x8 is not set -# CONFIG_FONT_ACORN_8x8 is not set -# CONFIG_FONT_MINI_4x6 is not set -# CONFIG_FONT_SUN8x16 is not set -# CONFIG_FONT_SUN12x22 is not set - -# -# Logo configuration -# -# CONFIG_LOGO is not set -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set - -# -# Sound -# -# CONFIG_SOUND is not set - -# -# Misc devices -# - -# -# USB support -# -# CONFIG_USB is not set -CONFIG_USB_ARCH_HAS_HCD=y -# CONFIG_USB_ARCH_HAS_OHCI is not set - -# -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information -# - -# -# USB Gadget Support -# -CONFIG_USB_GADGET=y -# CONFIG_USB_GADGET_DEBUG_FILES is not set -# CONFIG_USB_GADGET_NET2280 is not set -# CONFIG_USB_GADGET_PXA2XX is not set -# CONFIG_USB_GADGET_GOKU is not set -CONFIG_USB_GADGET_SA1100=y -CONFIG_USB_SA1100=y -# CONFIG_USB_GADGET_LH7A40X is not set -# CONFIG_USB_GADGET_DUMMY_HCD is not set -# CONFIG_USB_GADGET_OMAP is not set -# CONFIG_USB_GADGET_DUALSPEED is not set -# CONFIG_USB_ZERO is not set -# CONFIG_USB_ETH is not set -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FILE_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set - -# -# MMC/SD Card support -# -# CONFIG_MMC is not set - -# # Kernel hacking # +# CONFIG_PRINTK_TIME is not set CONFIG_DEBUG_KERNEL=y CONFIG_MAGIC_SYSRQ=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set CONFIG_DEBUG_PREEMPT=y # CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_VM is not set CONFIG_FRAME_POINTER=y +# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_WAITQ is not set CONFIG_DEBUG_ERRORS=y @@ -815,6 +979,7 @@ CONFIG_DEBUG_ERRORS=y # Library routines # # CONFIG_CRC_CCITT is not set +# CONFIG_CRC16 is not set CONFIG_CRC32=y # CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y diff --git a/packages/linux/linux-openzaurus-2.6.14-rc1/defconfig-cxx00 b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-cxx00 index f838a497a3..b1748c9268 100644 --- a/packages/linux/linux-openzaurus-2.6.14-rc1/defconfig-cxx00 +++ b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-cxx00 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.13-mm3 -# Fri Sep 16 13:04:01 2005 +# Linux kernel version: 2.6.15-rc2 +# Fri Nov 25 16:39:44 2005 # CONFIG_ARM=y CONFIG_MMU=y @@ -64,6 +64,23 @@ CONFIG_OBSOLETE_MODPARM=y CONFIG_KMOD=y # +# Block layer +# + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=m +CONFIG_IOSCHED_CFQ=m +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" + +# # System Type # # CONFIG_ARCH_CLPS7500 is not set @@ -85,6 +102,7 @@ CONFIG_ARCH_PXA=y # CONFIG_ARCH_LH7A40X is not set # CONFIG_ARCH_OMAP is not set # CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_REALVIEW is not set # CONFIG_ARCH_IMX is not set # CONFIG_ARCH_H720X is not set # CONFIG_ARCH_AAEC2000 is not set @@ -105,7 +123,9 @@ CONFIG_MACH_BORZOI=y # CONFIG_MACH_TOSA is not set CONFIG_PXA27x=y # CONFIG_PXA_KEYS is not set +CONFIG_IWMMXT=y CONFIG_PXA_SHARP_Cxx00=y +CONFIG_PXA_SSP=y # # Processor Type @@ -142,14 +162,13 @@ CONFIG_PCMCIA_IOCTL=y # # PC-card bridges # -# CONFIG_TCIC is not set CONFIG_PCMCIA_PXA2XX=y # # Kernel Features # CONFIG_PREEMPT=y -# CONFIG_NO_IDLE_HZ is not set +CONFIG_NO_IDLE_HZ=y # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -158,6 +177,7 @@ CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 CONFIG_ALIGNMENT_TRAP=y # @@ -165,10 +185,15 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/hda1 rootfstype=ext3 rw debug" +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/hda1 rootfstype=ext3 rw fbcon=rotate:1 debug" # CONFIG_XIP_KERNEL is not set # +# CPU Frequency scaling +# +# CONFIG_CPU_FREQ is not set + +# # Floating point emulation # @@ -191,6 +216,8 @@ CONFIG_BINFMT_MISC=m # Power management options # CONFIG_PM=y +CONFIG_PM_LEGACY=y +# CONFIG_PM_DEBUG is not set CONFIG_APM=y # @@ -220,8 +247,8 @@ CONFIG_SYN_COOKIES=y # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_INET_TUNNEL is not set -CONFIG_INET_DIAG=y -CONFIG_INET_TCP_DIAG=y +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_BIC=y @@ -240,6 +267,11 @@ CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set # +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set + +# # IP: Netfilter Configuration # CONFIG_IP_NF_CONNTRACK=m @@ -252,6 +284,7 @@ CONFIG_IP_NF_IRC=m # CONFIG_IP_NF_NETBIOS_NS is not set CONFIG_IP_NF_TFTP=m CONFIG_IP_NF_AMANDA=m +# CONFIG_IP_NF_PPTP is not set CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_LIMIT=m @@ -284,6 +317,7 @@ CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_LOG=m CONFIG_IP_NF_TARGET_ULOG=m CONFIG_IP_NF_TARGET_TCPMSS=m +# CONFIG_IP_NF_TARGET_NFQUEUE is not set CONFIG_IP_NF_NAT=m CONFIG_IP_NF_NAT_NEEDED=y # CONFIG_IP_NF_TARGET_MASQUERADE is not set @@ -329,6 +363,7 @@ CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_FILTER=m # CONFIG_IP6_NF_TARGET_LOG is not set # CONFIG_IP6_NF_TARGET_REJECT is not set +# CONFIG_IP6_NF_TARGET_NFQUEUE is not set CONFIG_IP6_NF_MANGLE=m # CONFIG_IP6_NF_TARGET_MARK is not set # CONFIG_IP6_NF_TARGET_HL is not set @@ -355,6 +390,10 @@ CONFIG_IP6_NF_RAW=m # CONFIG_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# # CONFIG_NET_SCHED is not set CONFIG_NET_CLS_ROUTE=y @@ -362,7 +401,6 @@ CONFIG_NET_CLS_ROUTE=y # Network testing # # CONFIG_NET_PKTGEN is not set -# CONFIG_NETFILTER_NETLINK is not set # CONFIG_HAMRADIO is not set CONFIG_IRDA=m @@ -432,7 +470,6 @@ CONFIG_BT_HCIUSB=m CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIUART_BCSP_TXCRC=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m @@ -460,6 +497,11 @@ CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set # +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# # Memory Technology Devices (MTD) # CONFIG_MTD=y @@ -478,6 +520,7 @@ 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 # # RAM/ROM/Flash chip drivers @@ -533,6 +576,11 @@ CONFIG_MTD_NAND_SHARPSL=y # CONFIG_MTD_NAND_NANDSIM is not set # +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# # Parallel port support # # CONFIG_PARPORT is not set @@ -552,14 +600,6 @@ CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_RAM is not set CONFIG_BLK_DEV_RAM_COUNT=16 # CONFIG_CDROM_PKTCDVD is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y # CONFIG_ATA_OVER_ETH is not set # @@ -624,11 +664,6 @@ CONFIG_SCSI_MULTI_LUN=y # CONFIG_SCSI_SAS_ATTRS is not set # -# SCSI Transport Layers -# -# CONFIG_SAS_CLASS is not set - -# # SCSI low-level drivers # # CONFIG_ISCSI_TCP is not set @@ -729,7 +764,6 @@ CONFIG_PCMCIA_SPECTRUM=m CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y CONFIG_HOSTAP_CS=m -# CONFIG_ACX is not set CONFIG_NET_WIRELESS=y # @@ -754,17 +788,14 @@ CONFIG_PPP=m # CONFIG_PPP_FILTER is not set CONFIG_PPP_ASYNC=m # CONFIG_PPP_SYNC_TTY is not set -# CONFIG_PPP_DEFLATE is not set +CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m # CONFIG_PPP_MPPE is not set # CONFIG_PPPOE is not set # CONFIG_SLIP is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set -# CONFIG_KGDBOE is not set # CONFIG_NETPOLL is not set -# CONFIG_NETPOLL_RX is not set -# CONFIG_NETPOLL_TRAP is not set # CONFIG_NET_POLL_CONTROLLER is not set # @@ -863,23 +894,60 @@ CONFIG_SA1100_RTC=y # PCMCIA character devices # # CONFIG_SYNCLINK_CS is not set +# CONFIG_CARDMAN_4000 is not set +# CONFIG_CARDMAN_4040 is not set # CONFIG_RAW_DRIVER is not set # # TPM devices # +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK is not set # # I2C support # -# CONFIG_I2C is not set +CONFIG_I2C=y +# CONFIG_I2C_CHARDEV is not set + +# +# 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_PXA=y +# CONFIG_I2C_PXA_SLAVE is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_PCA_ISA is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 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_RTC8564 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_RTC_X1205_I2C 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 # # Hardware Monitoring support # -CONFIG_HWMON=y +# CONFIG_HWMON is not set # CONFIG_HWMON_VID is not set -# CONFIG_HWMON_DEBUG_CHIP is not set # # Misc devices @@ -890,9 +958,17 @@ CONFIG_HWMON=y # # -# SoC drivers +# Multi-Function Devices +# + +# +# LED devices # -# CONFIG_SOC is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_SPITZ=y +CONFIG_LEDS_TRIGGER_TIMER=y # # Multimedia devices @@ -911,15 +987,13 @@ CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_SOFT_CURSOR=y # CONFIG_FB_MACMODES is not set # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set -# CONFIG_FB_ELPP is not set +# CONFIG_FB_S1D13XXX is not set CONFIG_FB_PXA=y -# CONFIG_FB_W100 is not set # CONFIG_FB_PXA_PARAMETERS is not set -# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_W100 is not set # CONFIG_FB_VIRTUAL is not set # @@ -928,6 +1002,7 @@ CONFIG_FB_PXA=y # CONFIG_VGA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y CONFIG_FONTS=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y @@ -952,14 +1027,84 @@ CONFIG_LCD_DEVICE=y CONFIG_BACKLIGHT_CORGI=y # -# Speakup console speech +# Sound # -# CONFIG_SPEAKUP is not set +CONFIG_SOUND=m # -# Sound +# Advanced Linux Sound Architecture +# +CONFIG_SND=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_AC97_BUS=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_SEQUENCER=m +# CONFIG_SND_SEQ_DUMMY is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +# CONFIG_SND_SEQUENCER_OSS is not set +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_DETECT is not set + +# +# Generic devices +# +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_VIRMIDI is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# ALSA ARM devices +# +CONFIG_SND_PXA2XX_PCM=m +CONFIG_SND_PXA2XX_AC97=m + +# +# USB devices +# +# CONFIG_SND_USB_AUDIO is not set + +# +# PCMCIA devices +# + +# +# SoC audio support +# +CONFIG_SND_SOC=m + +# +# Soc Platforms +# +CONFIG_SND_PXA2xx_SOC=m +# CONFIG_SND_PXA2xx_SOC_AC97 is not set +CONFIG_SND_PXA2xx_SOC_I2S=m +# CONFIG_SND_PXA2xx_SOC_SSP is not set + +# +# PXA2xx machine support # -# CONFIG_SOUND is not set +# CONFIG_SND_PXA2xx_SOC_MAINSTONE is not set +CONFIG_SND_PXA2xx_SOC_CORGI=m + +# +# Soc Codecs +# +# CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_WM8753 is not set +# CONFIG_SND_SOC_WM8731 is not set +CONFIG_SND_SOC_WM8750=m +# CONFIG_SND_SOC_WM8971 is not set + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set # # USB support @@ -991,15 +1136,16 @@ CONFIG_USB_SL811_CS=m # # USB Device Class drivers # +# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m # -# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' # -CONFIG_USB_ACM=m -CONFIG_USB_PRINTER=m # -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information +# may also be needed; see USB_STORAGE Help for more information # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set @@ -1011,7 +1157,6 @@ CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_SDDR09 is not set # CONFIG_USB_STORAGE_SDDR55 is not set # CONFIG_USB_STORAGE_JUMPSHOT is not set -# CONFIG_USB_STORAGE_ONETOUCH is not set # # USB Input Devices @@ -1084,6 +1229,7 @@ CONFIG_USB_MON=y CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y # CONFIG_USB_SERIAL_AIRPRIME is not set +# CONFIG_USB_SERIAL_ANYDATA is not set CONFIG_USB_SERIAL_BELKIN=m # CONFIG_USB_SERIAL_WHITEHEAT is not set CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m @@ -1137,7 +1283,6 @@ CONFIG_USB_LEGOTOWER=m CONFIG_USB_LCD=m CONFIG_USB_LED=m CONFIG_USB_CYTHERM=m -# CONFIG_USB_GOTEMP is not set CONFIG_USB_PHIDGETKIT=m CONFIG_USB_PHIDGETSERVO=m CONFIG_USB_IDMOUSE=m @@ -1176,7 +1321,6 @@ CONFIG_USB_G_SERIAL=m CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=y -# CONFIG_MMC_BULKTRANSFER is not set CONFIG_MMC_PXA=y # CONFIG_MMC_WBSD is not set @@ -1184,21 +1328,16 @@ CONFIG_MMC_PXA=y # File systems # CONFIG_EXT2_FS=y -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y +# CONFIG_EXT2_FS_XATTR is not set # CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=y # CONFIG_EXT3_FS_XATTR is not set CONFIG_JBD=y # CONFIG_JBD_DEBUG is not set -CONFIG_FS_MBCACHE=y -# CONFIG_REISER4_FS is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set -CONFIG_FS_POSIX_ACL=y +# CONFIG_FS_POSIX_ACL is not set # CONFIG_XFS_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 @@ -1233,14 +1372,12 @@ CONFIG_TMPFS=y # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y # CONFIG_RELAYFS_FS is not set -# CONFIG_CONFIGFS_FS is not set # # Miscellaneous filesystems # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set -# CONFIG_ASFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set @@ -1250,6 +1387,7 @@ CONFIG_RAMFS=y CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y +CONFIG_JFFS2_SUMMARY=y CONFIG_JFFS2_COMPRESSION_OPTIONS=y CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y @@ -1283,7 +1421,10 @@ CONFIG_RPCSEC_GSS_KRB5=m CONFIG_SMB_FS=m CONFIG_SMB_NLS_DEFAULT=y CONFIG_SMB_NLS_REMOTE="cp437" -# CONFIG_CIFS is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_XATTR 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 @@ -1366,7 +1507,7 @@ CONFIG_OPROFILE=m CONFIG_DEBUG_KERNEL=y CONFIG_MAGIC_SYSRQ=y CONFIG_LOG_BUF_SHIFT=14 -CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_DETECT_SOFTLOCKUP is not set # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_PREEMPT is not set @@ -1376,12 +1517,13 @@ CONFIG_DETECT_SOFTLOCKUP=y CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_VM is not set CONFIG_FRAME_POINTER=y +# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_WAITQ is not set CONFIG_DEBUG_ERRORS=y -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set +# CONFIG_DEBUG_LL is not set # # Security options diff --git a/packages/linux/linux-openzaurus-2.6.14-rc1/defconfig-ipaq-pxa270 b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-ipaq-pxa270 index 8b41380784..fe4cf247c1 100644 --- a/packages/linux/linux-openzaurus-2.6.14-rc1/defconfig-ipaq-pxa270 +++ b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-ipaq-pxa270 @@ -1,14 +1,13 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.11 -# Thu Apr 14 17:15:01 2005 +# Linux kernel version: 2.6.15-rc1-git7 +# Sat Nov 19 23:13:51 2005 # CONFIG_ARM=y CONFIG_MMU=y CONFIG_UID16=y CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_GENERIC_IOMAP=y # # Code maturity level options @@ -18,36 +17,40 @@ CONFIG_EXPERIMENTAL=y CONFIG_BROKEN=y CONFIG_BROKEN_ON_SMP=y CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 # # General setup # +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y # CONFIG_SWAP is not set # CONFIG_SYSVIPC is not set # CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y # CONFIG_AUDIT is not set -CONFIG_LOG_BUF_SHIFT=14 CONFIG_HOTPLUG=y CONFIG_KOBJECT_UEVENT=y # CONFIG_IKCONFIG is not set -# CONFIG_MINIMAL_OOPS is not set +CONFIG_INITRAMFS_SOURCE="" CONFIG_EMBEDDED=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SHMEM=y -CONFIG_USELIB=y -CONFIG_CORE_DUMP=y CONFIG_CC_ALIGN_FUNCTIONS=0 CONFIG_CC_ALIGN_LABELS=0 CONFIG_CC_ALIGN_LOOPS=0 CONFIG_CC_ALIGN_JUMPS=0 # CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 # # Loadable module support @@ -61,6 +64,23 @@ CONFIG_OBSOLETE_MODPARM=y # CONFIG_KMOD is not set # +# Block layer +# + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=m +CONFIG_IOSCHED_CFQ=m +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" + +# # System Type # # CONFIG_ARCH_CLPS7500 is not set @@ -82,120 +102,202 @@ CONFIG_ARCH_PXA=y # CONFIG_ARCH_LH7A40X is not set # CONFIG_ARCH_OMAP is not set # CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_REALVIEW is not set # CONFIG_ARCH_IMX is not set # CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_AAEC2000 is not set # # Intel PXA2xx Implementations # -# CONFIG_PXA25x is not set -CONFIG_PXA27x=y # CONFIG_ARCH_LUBBOCK is not set # CONFIG_MACH_MAINSTONE is not set # CONFIG_ARCH_PXA_IDP is not set -CONFIG_PXA_KEYS=y -# CONFIG_ARCH_ESERIES is not set -# CONFIG_MACH_A620 is not set -# CONFIG_ARCH_H1900 is not set -# CONFIG_ARCH_H2200 is not set -# CONFIG_ARCH_H3900 is not set -# CONFIG_MACH_H4000 is not set -# CONFIG_MACH_H4700 is not set +# CONFIG_PXA_SHARPSL is not set CONFIG_MACH_HX2750=y -# CONFIG_ARCH_H5400 is not set -# CONFIG_MACH_HIMALAYA is not set -# CONFIG_ARCH_AXIMX5 is not set -# CONFIG_ARCH_AXIMX3 is not set -# CONFIG_ARCH_ROVERP1 is not set -# CONFIG_ARCH_ROVERP5P is not set - -# -# Linux As Bootloader -# -# CONFIG_LAB is not set +CONFIG_PXA27x=y +CONFIG_PXA_KEYS=y +CONFIG_PXA_SSP=y # # Processor Type # CONFIG_CPU_32=y CONFIG_CPU_XSCALE=y -# CONFIG_CPU_XSCALE_PXA250 is not set CONFIG_CPU_32v5=y CONFIG_CPU_ABRT_EV5T=y CONFIG_CPU_CACHE_VIVT=y CONFIG_CPU_TLB_V4WBI=y -CONFIG_CPU_MINICACHE=y # # Processor Features # -# CONFIG_ARM_FASTCALL is not set CONFIG_ARM_THUMB=y CONFIG_XSCALE_PMU=y # -# Compaq/iPAQ Options +# Bus support # -CONFIG_PXA_IPAQ=y +CONFIG_ISA_DMA_API=y # -# XScale-based iPAQ +# PCCARD (PCMCIA/CardBus) support # -CONFIG_IPAQ_HANDHELD=y -# CONFIG_IPAQ_SLEEVE is not set -# CONFIG_IPAQ_SAMCOP is not set -# CONFIG_IPAQ_HAMCOP is not set +CONFIG_PCCARD=y +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y # -# General setup +# PC-card bridges +# +CONFIG_PCMCIA_PXA2XX=y + +# +# Kernel Features +# +CONFIG_PREEMPT=y +CONFIG_NO_IDLE_HZ=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +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=4096 +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="keepinitrd" # CONFIG_XIP_KERNEL is not set # -# PCCARD (PCMCIA/CardBus) support +# CPU Frequency scaling # -CONFIG_PCCARD=y -# CONFIG_PCMCIA_DEBUG is not set -CONFIG_PCMCIA=y +# CONFIG_CPU_FREQ is not set # -# PC-card bridges +# Floating point emulation # -# CONFIG_TCIC is not set -CONFIG_PCMCIA_PXA2XX=y # -# At least one math emulation must be selected +# At least one emulation must be selected # CONFIG_FPE_NWFPE=y # CONFIG_FPE_NWFPE_XP is not set # CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set +# CONFIG_ARTHUR is not set + +# +# Power management options +# +CONFIG_PM=y +CONFIG_PM_LEGACY=y +# CONFIG_PM_DEBUG is not set +CONFIG_APM=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_PNP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_TUNNEL is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y +# CONFIG_IPV6 is not set +# CONFIG_NETFILTER is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_NET_DIVERT is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +# CONFIG_IEEE80211_CRYPT_CCMP is not set +# CONFIG_IEEE80211_CRYPT_TKIP is not set + +# +# Device Drivers +# # # Generic Driver Options # CONFIG_STANDALONE=y # CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set -CONFIG_SOC_DEVICE=y -CONFIG_DOCKING_HOTPLUG=y +CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set -CONFIG_PM=y -CONFIG_PREEMPT=y -CONFIG_APM=y -# CONFIG_ARTHUR is not set -CONFIG_CMDLINE="keepinitrd" -CONFIG_ALIGNMENT_TRAP=y # -# Parallel port support +# Connector - unified userspace <-> kernelspace linker # -# CONFIG_PARPORT is not set +# CONFIG_CONNECTOR is not set # # Memory Technology Devices (MTD) @@ -216,6 +318,7 @@ 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 # # RAM/ROM/Flash chip drivers @@ -254,10 +357,7 @@ CONFIG_MTD_CFI_UTIL=y # # CONFIG_MTD_COMPLEX_MAPPINGS is not set # CONFIG_MTD_PHYSMAP is not set -# CONFIG_MTD_MULTI_PHYSMAP is not set # CONFIG_MTD_ARM_INTEGRATOR is not set -CONFIG_MTD_IPAQ=y -# CONFIG_MTD_EDB7312 is not set # CONFIG_MTD_SHARP_SL is not set # CONFIG_MTD_PLATRAM is not set @@ -283,13 +383,22 @@ CONFIG_MTD_IPAQ=y # CONFIG_MTD_NAND is not set # +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# # Plug and Play support # # # Block devices # -# CONFIG_BLK_DEV_FD is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_CRYPTOLOOP is not set @@ -298,85 +407,64 @@ CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=8192 CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" # CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set # -# IO Schedulers +# ATA/ATAPI/MFM/RLL support # -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -# CONFIG_ATA_OVER_ETH is not set +CONFIG_IDE=y +CONFIG_BLK_DEV_IDE=y # -# Multi-device support (RAID and LVM) +# Please see Documentation/ide.txt for help/info on IDE drives # -# CONFIG_MD is not set +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_BLK_DEV_IDECS=y +# CONFIG_BLK_DEV_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_IDE_TASK_IOCTL is not set # -# Networking support +# IDE chipset support/bugfixes # -CONFIG_NET=y +CONFIG_IDE_GENERIC=y +# CONFIG_IDE_ARM is not set +# CONFIG_BLK_DEV_IDEDMA is not set +# CONFIG_IDEDMA_AUTO is not set +# CONFIG_BLK_DEV_HD is not set # -# Networking options +# SCSI device support # -CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y -# CONFIG_NETLINK_DEV is not set -CONFIG_UNIX=y -# CONFIG_NET_KEY is not set -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -# CONFIG_IP_PNP is not set -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE is not set -# CONFIG_ARPD is not set -CONFIG_SYN_COOKIES=y -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -# CONFIG_INET_TUNNEL is not set -CONFIG_IP_TCPDIAG=y -# CONFIG_IP_TCPDIAG_IPV6 is not set -# CONFIG_IPV6 is not set -# CONFIG_NETFILTER is not set +# CONFIG_RAID_ATTRS is not set +# CONFIG_SCSI is not set # -# SCTP Configuration (EXPERIMENTAL) +# Multi-device support (RAID and LVM) # -# CONFIG_IP_SCTP is not set -# CONFIG_ATM is not set -# CONFIG_BRIDGE is not set -# CONFIG_VLAN_8021Q is not set -# CONFIG_DECNET is not set -# CONFIG_LLC2 is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set +# CONFIG_MD is not set # -# QoS and/or fair queueing +# Fusion MPT device support # -# CONFIG_NET_SCHED is not set -# CONFIG_NET_CLS_ROUTE is not set +# CONFIG_FUSION is not set # -# Network testing +# IEEE 1394 (FireWire) support +# +# CONFIG_IEEE1394 is not set + +# +# I2O device support +# + +# +# Network device support # -# CONFIG_NET_PKTGEN is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -# CONFIG_HAMRADIO is not set -# CONFIG_IRDA is not set -# CONFIG_BT is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set @@ -384,11 +472,17 @@ CONFIG_NETDEVICES=y # CONFIG_TUN is not set # +# PHY device support +# +# CONFIG_PHYLIB is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y -# CONFIG_MII is not set +CONFIG_MII=m # CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set # # Ethernet (1000 Mbit) @@ -405,67 +499,70 @@ CONFIG_NET_ETHERNET=y # # Wireless LAN (non-hamradio) # -# CONFIG_NET_RADIO is not set -# CONFIG_HOSTAP is not set - -# -# PCMCIA network device support -# -# CONFIG_NET_PCMCIA is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set +CONFIG_NET_RADIO=y # -# ATA/ATAPI/MFM/RLL support +# Obsolete Wireless cards support (pre-802.11) # -CONFIG_IDE=y -CONFIG_BLK_DEV_IDE=y +# CONFIG_STRIP is not set +# CONFIG_PCMCIA_WAVELAN is not set +# CONFIG_PCMCIA_NETWAVE is not set # -# Please see Documentation/ide.txt for help/info on IDE drives -# -# CONFIG_BLK_DEV_IDE_SATA is not set -CONFIG_BLK_DEV_IDEDISK=y -# CONFIG_IDEDISK_MULTI_MODE is not set -CONFIG_BLK_DEV_IDECS=y -# CONFIG_BLK_DEV_IDECD is not set -# CONFIG_BLK_DEV_IDETAPE is not set -# CONFIG_BLK_DEV_IDEFLOPPY is not set -# CONFIG_IDE_TASK_IOCTL is not set - -# -# IDE chipset support/bugfixes +# Wireless 802.11 Frequency Hopping cards support # -CONFIG_IDE_GENERIC=y -# CONFIG_IDE_ARM is not set -# CONFIG_BLK_DEV_IDEDMA is not set -# CONFIG_IDEDMA_AUTO is not set -# CONFIG_BLK_DEV_HD is not set +# CONFIG_PCMCIA_RAYCS is not set # -# SCSI device support +# Wireless 802.11b ISA/PCI cards support # -# CONFIG_SCSI is not set +# CONFIG_AIRO is not set +CONFIG_HERMES=m +# CONFIG_ATMEL is not set # -# Fusion MPT device support +# Wireless 802.11b Pcmcia/Cardbus cards support # +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +# CONFIG_AIRO_CS is not set +# CONFIG_PCMCIA_WL3501 is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_CS=m +CONFIG_NET_WIRELESS=y # -# IEEE 1394 (FireWire) support +# PCMCIA network device support # -# CONFIG_IEEE1394 is not set +CONFIG_NET_PCMCIA=y +# CONFIG_PCMCIA_3C589 is not set +# CONFIG_PCMCIA_3C574 is not set +# CONFIG_PCMCIA_FMVJ18X is not set +CONFIG_PCMCIA_PCNET=m +# CONFIG_PCMCIA_NMCLAN is not set +# CONFIG_PCMCIA_SMC91C92 is not set +# CONFIG_PCMCIA_XIRC2PS is not set +# CONFIG_PCMCIA_AXNET is not set # -# I2O device support +# Wan interfaces # +# CONFIG_WAN is not set +CONFIG_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +# CONFIG_PPP_MPPE is not set +# CONFIG_PPPOE is not set +# CONFIG_SLIP 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 # # ISDN subsystem @@ -488,13 +585,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_TSDEV is not set CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set - -# -# Input I/O drivers -# -# CONFIG_GAMEPORT is not set -CONFIG_SOUND_GAMEPORT=y -# CONFIG_SERIO is not set +# CONFIG_INPUT_POWER is not set # # Input Device Drivers @@ -504,10 +595,19 @@ CONFIG_SOUND_GAMEPORT=y # CONFIG_INPUT_JOYSTICK is not set CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_MK712 is not set CONFIG_TOUCHSCREEN_TSC2101=y # CONFIG_INPUT_MISC is not set # +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# # Character devices # CONFIG_VT=y @@ -523,7 +623,6 @@ CONFIG_HW_CONSOLE=y # # Non-8250 serial port support # -# CONFIG_SERIAL_DZ is not set CONFIG_SERIAL_PXA=y CONFIG_SERIAL_PXA_CONSOLE=y CONFIG_SERIAL_CORE=y @@ -533,21 +632,6 @@ CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 # -# I2C support -# -# CONFIG_I2C is not set - -# -# L3 serial bus support -# -# CONFIG_L3 is not set - -# -# Mice -# -# CONFIG_BUSMOUSE is not set - -# # IPMI # # CONFIG_IPMI_HANDLER is not set @@ -557,30 +641,50 @@ CONFIG_LEGACY_PTY_COUNT=256 # # CONFIG_WATCHDOG is not set # CONFIG_NVRAM is not set -# CONFIG_RTC is not set +# CONFIG_SA1100_RTC is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set # # Ftape, the floppy tape device driver # -# CONFIG_DRM is not set # # PCMCIA character devices # # CONFIG_SYNCLINK_CS is not set +# CONFIG_CARDMAN_4000 is not set +# CONFIG_CARDMAN_4040 is not set # CONFIG_RAW_DRIVER is not set # -# SoC drivers +# TPM devices # -# CONFIG_SOC_MQ11XX is not set -# CONFIG_SOC_T7L66XB is not set -# CONFIG_SOC_TC6393XB is not set -# CONFIG_SOC_ASIC2 is not set -# CONFIG_SOC_ASIC3 is not set -CONFIG_SOC_TSC2101=y +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK is not set + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# Hardware Monitoring support +# +CONFIG_HWMON is not set + +# +# Misc devices +# + +# +# Multimedia Capabilities Port drivers +# + +# +# Multi-Function Devices +# +CONFIG_MFD_TSC2101=y # # Multimedia devices @@ -593,25 +697,92 @@ CONFIG_SOC_TSC2101=y # CONFIG_DVB is not set # +# Graphics support +# +CONFIG_FB=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set +# CONFIG_FB_S1D13XXX is not set +CONFIG_FB_PXA=y +# CONFIG_FB_PXA_PARAMETERS is not set +# CONFIG_FB_VIRTUAL is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y + +# +# Logo configuration +# +# CONFIG_LOGO is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_LCD_DEVICE=y +CONFIG_BACKLIGHT_HX2750=y + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +# CONFIG_USB is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set + +# +# MMC/SD Card support +# +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_BLOCK=y +CONFIG_MMC_PXA=y +# CONFIG_MMC_WBSD is not set + +# # File systems # CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set # CONFIG_EXT3_FS is not set # CONFIG_JBD is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set - -# -# XFS support -# +# CONFIG_FS_POSIX_ACL is not set # CONFIG_XFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y # CONFIG_QUOTA is not set CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set # # CD-ROM/DVD Filesystems @@ -634,12 +805,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_PROC_FS=y CONFIG_SYSFS=y -# CONFIG_DEVFS_FS is not set -# CONFIG_DEVPTS_FS_XATTR is not set # CONFIG_TMPFS is not set # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y +# CONFIG_RELAYFS_FS is not set # # Miscellaneous filesystems @@ -655,12 +825,12 @@ CONFIG_RAMFS=y CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y +CONFIG_JFFS2_SUMMARY=y # CONFIG_JFFS2_RUBIN is not set -# CONFIG_JFFS3_FS is not set -# CONFIG_JFFS3_COMPRESSION_OPTIONS is not set CONFIG_CRAMFS=y # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set @@ -678,6 +848,7 @@ CONFIG_CRAMFS=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set # # Partition Types @@ -749,94 +920,25 @@ CONFIG_NLS_UTF8=y # CONFIG_PROFILING is not set # -# Graphics support -# -CONFIG_FB=y -# CONFIG_FB_MODES is not set -# CONFIG_FB_MODE_HELPERS is not set -# CONFIG_FB_TILEBLITTING is not set -# CONFIG_FB_VSFB is not set -# CONFIG_FB_IMAGEON is not set -CONFIG_FB_PXA=y -# CONFIG_FB_W100 is not set -# CONFIG_FB_PXA_PARAMETERS is not set -# CONFIG_FB_VIRTUAL is not set - -# -# Console display driver support -# -# CONFIG_VGA_CONSOLE is not set -CONFIG_DUMMY_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FONTS is not set -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y - -# -# Logo configuration -# -# CONFIG_LOGO is not set -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_DEVICE=y -CONFIG_LCD_CLASS_DEVICE=y -CONFIG_LCD_DEVICE=y -CONFIG_BACKLIGHT_HX2750=y - -# -# Sound -# -# CONFIG_SOUND is not set - -# -# Misc devices -# -# CONFIG_BATTERY_MONITOR is not set - -# -# Dallas's 1-wire bus -# -# CONFIG_W1 is not set - -# -# USB support -# -# CONFIG_USB is not set -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y - -# -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information -# - -# -# USB Gadget Support -# -# CONFIG_USB_GADGET is not set - -# -# MMC/SD Card support -# -CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set -CONFIG_MMC_BLOCK=y -CONFIG_MMC_PXA=y -# CONFIG_MMC_TMIO is not set - -# # Kernel hacking # +# CONFIG_PRINTK_TIME is not set CONFIG_DEBUG_KERNEL=y # CONFIG_MAGIC_SYSRQ is not set +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set CONFIG_DEBUG_PREEMPT=y # CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_VM is not set CONFIG_FRAME_POINTER=y +# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_WAITQ is not set CONFIG_DEBUG_ERRORS=y @@ -861,6 +963,7 @@ CONFIG_CRYPTO=y # CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_TGR192 is not set # CONFIG_CRYPTO_DES is not set # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_TWOFISH is not set @@ -869,7 +972,7 @@ CONFIG_CRYPTO=y # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set # CONFIG_CRYPTO_TEA is not set -# CONFIG_CRYPTO_ARC4 is not set +CONFIG_CRYPTO_ARC4=m # CONFIG_CRYPTO_KHAZAD is not set # CONFIG_CRYPTO_ANUBIS is not set CONFIG_CRYPTO_DEFLATE=y @@ -884,7 +987,8 @@ CONFIG_CRYPTO_CRC32C=y # # Library routines # -# CONFIG_CRC_CCITT is not set +CONFIG_CRC_CCITT=m +# CONFIG_CRC16 is not set CONFIG_CRC32=y CONFIG_LIBCRC32C=y CONFIG_ZLIB_INFLATE=y diff --git a/packages/linux/linux-openzaurus-2.6.14-rc1/defconfig-poodle b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-poodle index a0810f8381..34e9ddfb86 100644 --- a/packages/linux/linux-openzaurus-2.6.14-rc1/defconfig-poodle +++ b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-poodle @@ -259,8 +259,8 @@ CONFIG_INITRAMFS_SOURCE="" # CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_DEADLINE=m +CONFIG_IOSCHED_CFQ=m # CONFIG_ATA_OVER_ETH is not set # @@ -375,15 +375,20 @@ CONFIG_NET_RADIO=y # # Wireless 802.11b ISA/PCI cards support # -# CONFIG_HERMES is not set +CONFIG_HERMES=m # CONFIG_ATMEL is not set # # Wireless 802.11b Pcmcia/Cardbus cards support # +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m # CONFIG_AIRO_CS is not set # CONFIG_PCMCIA_WL3501 is not set -CONFIG_NET_WIRELESS=y +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_CS=m +CONFIG_NET_WIRELESS=yt # # PCMCIA network device support @@ -407,7 +412,7 @@ CONFIG_PPP=m # CONFIG_PPP_FILTER is not set CONFIG_PPP_ASYNC=m # CONFIG_PPP_SYNC_TTY is not set -# CONFIG_PPP_DEFLATE is not set +CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m # CONFIG_PPPOE is not set # CONFIG_SLIP is not set @@ -711,6 +716,7 @@ CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_NAND=y # CONFIG_JFFS2_FS_NOR_ECC is not set CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_SUMMARY=y CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y CONFIG_JFFS2_RUBIN=y diff --git a/packages/linux/linux-openzaurus-2.6.14-rc1/defconfig-tosa b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-tosa index dd1e70fa03..0c39ed8544 100644 --- a/packages/linux/linux-openzaurus-2.6.14-rc1/defconfig-tosa +++ b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/defconfig-tosa @@ -150,7 +150,7 @@ CONFIG_PCMCIA_PXA2XX=y # Kernel Features # CONFIG_PREEMPT=y -# CONFIG_NO_IDLE_HZ is not set +CONFIG_NO_IDLE_HZ=y # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -558,9 +558,9 @@ CONFIG_BLK_DEV_RAM_COUNT=16 # IO Schedulers # CONFIG_IOSCHED_NOOP=y -# CONFIG_IOSCHED_AS is not set -# CONFIG_IOSCHED_DEADLINE is not set -# CONFIG_IOSCHED_CFQ is not set +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=m +CONFIG_IOSCHED_CFQ=m # CONFIG_ATA_OVER_ETH is not set # @@ -710,15 +710,19 @@ CONFIG_NET_RADIO=y # # Wireless 802.11b ISA/PCI cards support # -# CONFIG_HERMES is not set +CONFIG_HERMES=m # CONFIG_ATMEL is not set # # Wireless 802.11b Pcmcia/Cardbus cards support # +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m # CONFIG_AIRO_CS is not set # CONFIG_PCMCIA_WL3501 is not set -# CONFIG_HOSTAP is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_CS=m CONFIG_NET_WIRELESS=y # @@ -743,7 +747,7 @@ CONFIG_PPP=m # CONFIG_PPP_FILTER is not set CONFIG_PPP_ASYNC=m # CONFIG_PPP_SYNC_TTY is not set -# CONFIG_PPP_DEFLATE is not set +CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m # CONFIG_PPP_MPPE is not set # CONFIG_PPPOE is not set @@ -900,41 +904,7 @@ CONFIG_I2C_PXA=y # # Hardware Monitoring support # -CONFIG_HWMON=y -# CONFIG_HWMON_VID is not set -# CONFIG_SENSORS_ADM1021 is not set -# CONFIG_SENSORS_ADM1025 is not set -# CONFIG_SENSORS_ADM1026 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_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_LM75 is not set -# 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_MAX1619 is not set -# CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83792D 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 +# CONFIG_HWMON is not set # # Misc devices @@ -1368,6 +1338,7 @@ CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_SUMMARY=y CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y CONFIG_JFFS2_RUBIN=y diff --git a/packages/linux/linux-openzaurus-2.6.14-rc1/dtl1_cs-add-socket-revE.patch b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/dtl1_cs-add-socket-revE.patch index 9fe3bd06d3..9fe3bd06d3 100644 --- a/packages/linux/linux-openzaurus-2.6.14-rc1/dtl1_cs-add-socket-revE.patch +++ b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/dtl1_cs-add-socket-revE.patch diff --git a/packages/linux/linux-openzaurus-2.6.14-rc1/pxa-serial-hack.patch b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/pxa-serial-hack.patch index 7892a0f929..b3a7f786ea 100644 --- a/packages/linux/linux-openzaurus-2.6.14-rc1/pxa-serial-hack.patch +++ b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/pxa-serial-hack.patch @@ -1,8 +1,8 @@ -Index: linux-2.6.13/drivers/serial/8250.c +Index: linux-2.6.14/drivers/serial/8250.c =================================================================== ---- linux-2.6.13.orig/drivers/serial/8250.c 2005-09-15 09:26:00.000000000 +0100 -+++ linux-2.6.13/drivers/serial/8250.c 2005-09-15 09:28:49.000000000 +0100 -@@ -2312,7 +2312,12 @@ +--- linux-2.6.14.orig/drivers/serial/8250.c 2005-11-07 18:10:50.000000000 +0000 ++++ linux-2.6.14/drivers/serial/8250.c 2005-11-07 19:01:21.000000000 +0000 +@@ -2333,7 +2333,12 @@ .devfs_name = "tts/", .dev_name = "ttyS", .major = TTY_MAJOR, @@ -15,20 +15,11 @@ Index: linux-2.6.13/drivers/serial/8250.c .nr = UART_NR, .cons = SERIAL8250_CONSOLE, }; -Index: linux-2.6.13/drivers/serial/serial_core.c +Index: linux-2.6.14/drivers/serial/serial_core.c =================================================================== ---- linux-2.6.13.orig/drivers/serial/serial_core.c 2005-09-15 09:26:00.000000000 +0100 -+++ linux-2.6.13/drivers/serial/serial_core.c 2005-09-15 09:30:16.000000000 +0100 -@@ -1969,7 +1969,7 @@ - } - - printk(KERN_INFO "%s%d at %s (irq = %d) is a %s\n", -- drv->dev_name, port->line, address, port->irq, uart_type(port)); -+ drv->dev_name, port->line + drv->name_base, address, port->irq, uart_type(port)); - } - - static void -@@ -2133,6 +2133,7 @@ +--- linux-2.6.14.orig/drivers/serial/serial_core.c 2005-11-07 18:10:50.000000000 +0000 ++++ linux-2.6.14/drivers/serial/serial_core.c 2005-11-07 19:01:21.000000000 +0000 +@@ -2126,6 +2126,7 @@ normal->driver_name = drv->driver_name; normal->devfs_name = drv->devfs_name; normal->name = drv->dev_name; @@ -36,11 +27,11 @@ Index: linux-2.6.13/drivers/serial/serial_core.c normal->major = drv->major; normal->minor_start = drv->minor; normal->type = TTY_DRIVER_TYPE_SERIAL; -Index: linux-2.6.13/include/linux/serial_core.h +Index: linux-2.6.14/include/linux/serial_core.h =================================================================== ---- linux-2.6.13.orig/include/linux/serial_core.h 2005-09-15 09:26:03.000000000 +0100 -+++ linux-2.6.13/include/linux/serial_core.h 2005-09-15 09:28:49.000000000 +0100 -@@ -318,6 +318,7 @@ +--- linux-2.6.14.orig/include/linux/serial_core.h 2005-11-07 18:10:56.000000000 +0000 ++++ linux-2.6.14/include/linux/serial_core.h 2005-11-07 19:01:21.000000000 +0000 +@@ -322,6 +322,7 @@ const char *driver_name; const char *dev_name; const char *devfs_name; @@ -48,11 +39,11 @@ Index: linux-2.6.13/include/linux/serial_core.h int major; int minor; int nr; -Index: linux-2.6.13/drivers/serial/serial_cs.c +Index: linux-2.6.14/drivers/serial/serial_cs.c =================================================================== ---- linux-2.6.13.orig/drivers/serial/serial_cs.c 2005-09-15 09:26:00.000000000 +0100 -+++ linux-2.6.13/drivers/serial/serial_cs.c 2005-09-15 09:28:49.000000000 +0100 -@@ -298,7 +298,7 @@ +--- linux-2.6.14.orig/drivers/serial/serial_cs.c 2005-10-28 01:02:08.000000000 +0100 ++++ linux-2.6.14/drivers/serial/serial_cs.c 2005-11-07 19:01:21.000000000 +0000 +@@ -294,7 +294,7 @@ kio_addr_t iobase, int irq) { struct uart_port port; @@ -61,7 +52,7 @@ Index: linux-2.6.13/drivers/serial/serial_cs.c memset(&port, 0, sizeof (struct uart_port)); port.iobase = iobase; -@@ -315,10 +315,16 @@ +@@ -311,10 +311,16 @@ return -EINVAL; } diff --git a/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch new file mode 100644 index 0000000000..18bf4268fc --- /dev/null +++ b/packages/linux/linux-openzaurus-2.6.14+2.6.15-rc2/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch @@ -0,0 +1,155 @@ + +From: Petr Vandrovec <vandrove@vc.cvut.cz> + +Patch below adds support for using different prescaler than 16 for 16c950 +chips. This is needed for using Fujitsu-Siemens Connect2Air compact-flash +card, which comes (apparently) with 806kHz clocks, and so you have to +program prescaler for division by 7, and DLAB to 1, to get 115200Bd. + +To get card properly running you also have to add lines below to +/etc/pcmcia/serial.opts so kernel knows that base speed is not 115200 but +50400 (50400 * 16 = 806400; 806400 / 7 = 115200). As I've found no code +specifying baud_rate in serial_cs, I assume that specifying it in +serial.opts is right way to do this type of things. + +Patch also fixes problem that for UPF_MAGIC_MULTIPLIER maximum possible +baud rate passed to uart code was uartclk / 16 while correct value for +these devices (and for 16c950) is uartclk / 4. + +Patch also fixes problem that for UPF_MAGIC_MULTIPLIER devices with +baud_rate 19200 or 9600 spd_cust did not work correctly. Not that such +devices exist, but we should not ignore spd_cust, user probably knows why +he asked for spd_cust. + +serial.opts: + +case "$MANFID-$FUNCID-$PRODID_1-$PRODID_2-$PRODID_3-$PRODID_4" in +'0279,950b-2-GPRS Modem---') + SERIAL_OPTS="baud_base 50400" + ;; +esac + +Cc: David Woodhouse <dwmw2@infradead.org> +Signed-off-by: Andrew Morton <akpm@osdl.org> +--- + + drivers/serial/8250.c | 82 +++++++++++++++++++++++++++++++++++++++----------- + 1 files changed, 64 insertions(+), 18 deletions(-) + +diff -puN drivers/serial/8250.c~serial-add-support-for-non-standard-xtals-to-16c950-driver drivers/serial/8250.c +--- devel/drivers/serial/8250.c~serial-add-support-for-non-standard-xtals-to-16c950-driver 2005-09-12 03:34:57.000000000 -0700 ++++ devel-akpm/drivers/serial/8250.c 2005-09-12 03:34:57.000000000 -0700 +@@ -1653,24 +1653,58 @@ static void serial8250_shutdown(struct u + serial_unlink_irq_chain(up); + } + +-static unsigned int serial8250_get_divisor(struct uart_port *port, unsigned int baud) ++static unsigned int serial8250_get_divisor(struct uart_port *port, unsigned int baud, ++ unsigned int *prescaler) + { +- unsigned int quot; +- +- /* +- * Handle magic divisors for baud rates above baud_base on +- * SMSC SuperIO chips. ++ /* ++ * Use special handling only if user did not supply its own divider. ++ * spd_cust is defined in terms of baud_base, so always use default ++ * prescaler when spd_cust is requested. + */ +- if ((port->flags & UPF_MAGIC_MULTIPLIER) && +- baud == (port->uartclk/4)) +- quot = 0x8001; +- else if ((port->flags & UPF_MAGIC_MULTIPLIER) && +- baud == (port->uartclk/8)) +- quot = 0x8002; +- else +- quot = uart_get_divisor(port, baud); + +- return quot; ++ *prescaler = 16; ++ if (baud != 38400 || (port->flags & UPF_SPD_MASK) != UPF_SPD_CUST) { ++ unsigned int quot = port->uartclk / baud; ++ ++ /* ++ * Handle magic divisors for baud rates above baud_base on ++ * SMSC SuperIO chips. ++ */ ++ if (port->flags & UPF_MAGIC_MULTIPLIER) { ++ if (quot == 4) { ++ return 0x8001; ++ } else if (quot == 8) { ++ return 0x8002; ++ } ++ } ++ if (port->type == PORT_16C950) { ++ /* ++ * This computes TCR value (4 to 16), not CPR value (which can ++ * be between 1.000 and 31.875) - chip I have uses XTAL of ++ * 806400Hz, and so a division by 7 is required to get 115200Bd. ++ * I'm leaving CPR disabled for now, until someone will ++ * hit even more exotic XTAL (it is needed to get 500kbps ++ * or 1000kbps from 18.432MHz XTAL, but I have no device ++ * which would benefit from doing that). ++ * ++ * If we can use divide by 16, use it. Otherwise look for ++ * better prescaler, from 15 to 4. If quotient cannot ++ * be divided by any integer value between 4 and 15, use 4. ++ */ ++ if (quot & 0x0F) { ++ unsigned int div; ++ ++ for (div = 15; div > 4; div--) { ++ if (quot % div == 0) { ++ break; ++ } ++ } ++ *prescaler = div; ++ return quot / div; ++ } ++ } ++ } ++ return uart_get_divisor(port, baud); + } + + static void +@@ -1680,7 +1714,7 @@ serial8250_set_termios(struct uart_port + struct uart_8250_port *up = (struct uart_8250_port *)port; + unsigned char cval, fcr = 0; + unsigned long flags; +- unsigned int baud, quot; ++ unsigned int baud, quot, prescaler; + + switch (termios->c_cflag & CSIZE) { + case CS5: +@@ -1712,8 +1746,13 @@ serial8250_set_termios(struct uart_port + /* + * Ask the core to calculate the divisor for us. + */ +- baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); +- quot = serial8250_get_divisor(port, baud); ++ ++ if (port->type == PORT_16C950 || (port->flags & UPF_MAGIC_MULTIPLIER)) { ++ baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/4); ++ } else { ++ baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); ++ } ++ quot = serial8250_get_divisor(port, baud, &prescaler); + + /* + * Oxford Semi 952 rev B workaround +@@ -1817,6 +1856,13 @@ serial8250_set_termios(struct uart_port + serial_outp(up, UART_DLM, quot >> 8); /* MS of divisor */ + + /* ++ * Program prescaler for 16C950 chips. ++ */ ++ if (up->port.type == PORT_16C950) { ++ serial_icr_write(up, UART_TCR, prescaler == 16 ? 0 : prescaler); ++ } ++ ++ /* + * LCR DLAB must be set to enable 64-byte FIFO mode. If the FCR + * is written without DLAB set, this mode will be disabled. + */ +_ diff --git a/packages/linux/linux-openzaurus.inc b/packages/linux/linux-openzaurus.inc index cb43f5aef1..4bd71d7601 100644 --- a/packages/linux/linux-openzaurus.inc +++ b/packages/linux/linux-openzaurus.inc @@ -3,7 +3,7 @@ SECTION = "kernel" MAINTAINER = "Richard Purdie <rpurdie@rpsys.net>, Michael 'Mickey' Lauer <mickey@vanille.de>" LICENSE = "GPL" -DOSRC = "http://www.do13.in-berlin.de/openzaurus/patches" +DOSRC = "http://www.do13.de/openzaurus/patches" RPSRC = "http://www.rpsys.net/openzaurus/patches" JLSRC = "http://www.cs.wisc.edu/~lenz/zaurus/files" BASRC = "http://www.orca.cx/zaurus/patches" @@ -21,8 +21,8 @@ COMPATIBLE_HOST = "arm.*-linux" CMDLINE_CON = "console=ttyS0,115200n8 console=tty1 noinitrd" CMDLINE_ROOT = "root=/dev/mtdblock2 rootfstype=jffs2 " -CMDLINE_ROOT_poodle = "root=/dev/mtdblock1 rootfstype=jffs2 " CMDLINE_ROOT_spitz = "root=/dev/hda1 rootfstype=ext3 rw " +CMDLINE_ROOT_borzoi = "root=/dev/hda1 rootfstype=ext3 rw " ############################################################## # Configure memory/ramdisk split for collie @@ -93,9 +93,10 @@ do_configure() { do_compile_append() { case ${MACHINE} in c7x0 | akita | poodle | spitz | borzoi | tosa ) - size=`ls arch/${ARCH}/boot/${KERNEL_IMAGETYPE} -s | cut -d ' ' -f 1` - if [ $size -ge 1271 ]; then + size=`ls -l arch/${ARCH}/boot/${KERNEL_IMAGETYPE} | awk '{ print $5}'` + if [ $size -ge 1302000 ]; then rm arch/${ARCH}/boot/${KERNEL_IMAGETYPE} + echo "Size is $size" die "This kernel is too big for your PXA Zaurus and will destroy data if you flash it. Please reduce the size of the kernel by making more of it modular." fi ;; diff --git a/packages/linux/linux-openzaurus_2.6.14+2.6.15-rc2.bb b/packages/linux/linux-openzaurus_2.6.14+2.6.15-rc2.bb new file mode 100644 index 0000000000..9687967d92 --- /dev/null +++ b/packages/linux/linux-openzaurus_2.6.14+2.6.15-rc2.bb @@ -0,0 +1,94 @@ +include linux-openzaurus.inc + +PR = "r2" + +#DEFAULT_PREFERENCE = "-1" + +# Handy URLs +# git://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git \ +# http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.gz \ +# http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.15-rc1.bz2;patch=1 \ +# http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.15-rc2-git1.bz2;patch=1 \ +# http://www.kernel.org/pub/linux/kernel/people/alan/linux-2.6/2.6.10/patch-2.6.10-ac8.gz;patch=1 \ +# http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc2/2.6.14-rc2-mm1/2.6.14-rc2-mm1.bz2;patch=1 \ + +# Patches submitted upstream are towards top of this list +# Hacks should clearly named and at the bottom +SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.15-rc2.tar.bz2 \ + ${RPSRC}/pxa_ohci_platform-r5.patch;patch=1 \ + ${RPSRC}/pxa_ohci_suspend-r5.patch;patch=1 \ + ${RPSRC}/pxa_ohci_fixes-r0.patch;patch=1 \ + ${RPSRC}/spitz_ohci-r0.patch;patch=1 \ + ${RPSRC}/enable_iwmmxt-r0.patch;patch=1 \ + ${RPSRC}/pxa_i2c_fixes-r4.patch;patch=1 \ + ${RPSRC}/ide_not_removable-r0.patch;patch=1 \ + ${RPSRC}/led_core-r0.patch;patch=1 \ + ${RPSRC}/led_triggers-r0.patch;patch=1 \ + ${RPSRC}/led_trig_timer-r0.patch;patch=1 \ + ${RPSRC}/led_zaurus-r0.patch;patch=1 \ + ${RPSRC}/led_locomo-r0.patch;patch=1 \ + ${RPSRC}/led_ide-r0.patch;patch=1 \ + ${RPSRC}/led_nand-r0.patch;patch=1 \ + ${RPSRC}/pxa_timerfix-r0.patch;patch=1 \ + ${RPSRC}/pxa_rtc-r2.patch;patch=1 \ + ${RPSRC}/input_power-r4.patch;patch=1 \ + ${RPSRC}/arm_apm_pm_legacy-r1.patch;patch=1 \ + ${RPSRC}/collie_mtd_sharp-r0.patch;patch=1 \ + ${RPSRC}/jffs2_longfilename-r0.patch;patch=1 \ + ${RPSRC}/pxa25x_cpufreq-r0.patch;patch=1 \ + ${RPSRC}/ipaq/hx2750_base-r24.patch;patch=1 \ + ${RPSRC}/ipaq/hx2750_bl-r4.patch;patch=1 \ + ${RPSRC}/ipaq/hx2750_pcmcia-r2.patch;patch=1 \ + ${RPSRC}/ipaq/pxa_keys-r5.patch;patch=1 \ + ${RPSRC}/ipaq/tsc2101-r12.patch;patch=1 \ + ${RPSRC}/ipaq/hx2750_test1-r3.patch;patch=1 \ + ${DOSRC}/tosa-platform-device-r0.patch;patch=1 \ + ${DOSRC}/tc6393-device-r8.patch;patch=1 \ + ${DOSRC}/tc6393_nand-r7.patch;patch=1 \ + ${DOSRC}/tosa-keyboard-r9.patch;patch=1 \ + ${DOSRC}/tosa-pxaac97-r5.patch;patch=1 \ + ${DOSRC}/tosa-tc6393-r1.patch;patch=1 \ + ${DOSRC}/tosa-power-r9.patch;patch=1 \ + ${DOSRC}/tc6393fb-r9.patch;patch=1 \ + ${DOSRC}/tosa-lcd-r6.patch;patch=1 \ + ${DOSRC}/tosa-bl-r9.patch;patch=1 \ + ${DOSRC}/tosa-bluetooth-r2.patch;patch=1 \ + ${RPSRC}/pcmcia_dev_ids-r2.patch;patch=1 \ + ${RPSRC}/mmc_timeout-r0.patch;patch=1 \ + ${RPSRC}/pxa_cf_initorder_hack-r1.patch;patch=1 \ + ${RPSRC}/alsa/alsa-soc-0.7.patch;patch=1 \ + ${RPSRC}/alsa_snd_corgi-r2.patch;patch=1 \ + ${RPSRC}/soc_platform_upd-r1.patch;patch=1 \ + file://add-oz-release-string.patch;patch=1 \ + file://pxa-serial-hack.patch;patch=1 \ + ${RPSRC}/jl1/pxa-linking-bug.patch;patch=1 \ + file://dtl1_cs-add-socket-revE.patch;patch=1 \ + file://serial-add-support-for-non-standard-xtals-to-16c950-driver.patch;patch=1 \ + file://connectplus-remove-ide-HACK.patch;patch=1 \ + file://defconfig-c7x0 \ + file://defconfig-ipaq-pxa270 \ + file://defconfig-collie \ + file://defconfig-poodle \ + file://defconfig-cxx00 \ + file://defconfig-tosa " + +# Old things we don't care about anymore +# ${RPSRC}/corgi_snd-r14.patch;patch=1 \ +# file://add-elpp-stuff.patch;patch=1 + +# These patches would really help collie/poodle but we +# need someone to maintain them +# ${JLSRC}/zaurus-lcd-2.6.11.diff.gz;patch=1 +# (Pavel Machek's git tree has updated versions of this?) +# Also parts were recently committed to mainline by rmk (drivers/mfd/) +# ${JLSRC}/zaurus-base-2.6.11.diff.gz;patch=1 +# (This is mostly in mainline now?) +# ${JLSRC}/zaurus-local-2.6.11.diff.gz;patch=1 \ +# ${JLSRC}/zaurus-leds-2.6.11.diff.gz;patch=1 \ + +SRC_URI_append_tosa = "${DOSRC}/nand-readid-r1.patch;patch=1 \ + ${DOSRC}/ac97codec-rename-revert-r0.patch;patch=1 \ + ${DOSRC}/wm97xx-touch-lg2-r0.patch;patch=1 \ + ${DOSRC}/wm9712-pm-r0.patch;patch=1 " + +S = "${WORKDIR}/linux-2.6.15-rc2" diff --git a/packages/linux/linux-openzaurus_2.6.14-git3.bb b/packages/linux/linux-openzaurus_2.6.14-git3.bb index c5552f2b83..c30c207eac 100644 --- a/packages/linux/linux-openzaurus_2.6.14-git3.bb +++ b/packages/linux/linux-openzaurus_2.6.14-git3.bb @@ -1,8 +1,8 @@ include linux-openzaurus.inc -PR = "r4" +PR = "r6" -DEFAULT_PREFERENCE = "-1" +DEFAULT_PREFERENCE = "+1" # Handy URLs # http://www.kernel.org/pub/linux/kernel/people/alan/linux-2.6/2.6.10/patch-2.6.10-ac8.gz;patch=1 \ @@ -16,38 +16,37 @@ DEFAULT_PREFERENCE = "-1" # Hacks should clearly named and at the bottom SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.gz \ http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.14-git3.bz2;patch=1 \ - ${RPSRC}/revert_bootmem-r1.patch;patch=1 \ - ${RPSRC}/pxa_pmops_static-r2.patch;patch=1 \ - ${RPSRC}/pxa_ohci_platform-r2.patch;patch=1 \ - ${RPSRC}/pxa_ohci_suspend-r2.patch;patch=1 \ - ${RPSRC}/akita_mtd_fix-r0.patch;patch=1 \ - ${RPSRC}/spitz_cf-r7.patch;patch=1 \ - ${RPSRC}/sharpsl_pm-r12.patch;patch=1 \ - ${RPSRC}/corgi_pm-r5.patch;patch=1 \ - ${RPSRC}/spitz_pm-r8.patch;patch=1 \ - ${RPSRC}/spitz_base_extras-r11.patch;patch=1 \ - ${RPSRC}/max7310-r1.patch;patch=1 \ + ${RPSRC}/archive/revert_bootmem-r1.patch;patch=1 \ + ${RPSRC}/archive/pxa_pmops_static-r2.patch;patch=1 \ + ${RPSRC}/archive/pxa_ohci_platform-r2.patch;patch=1 \ + ${RPSRC}/archive/pxa_ohci_suspend-r2.patch;patch=1 \ + ${RPSRC}/archive/akita_mtd_fix-r0.patch;patch=1 \ + ${RPSRC}/archive/spitz_cf-r7.patch;patch=1 \ + ${RPSRC}/archive/sharpsl_pm-r12.patch;patch=1 \ + ${RPSRC}/archive/corgi_pm-r5.patch;patch=1 \ + ${RPSRC}/archive/spitz_pm-r8.patch;patch=1 \ + ${RPSRC}/archive/spitz_base_extras-r12.patch;patch=1 \ ${RPSRC}/enable_iwmmxt-r0.patch;patch=1 \ - ${RPSRC}/pxa_i2c_fixes-r3.patch;patch=1 \ + ${RPSRC}/archive/pxa_i2c_fixes-r3.patch;patch=1 \ ${RPSRC}/ide_not_removable-r0.patch;patch=1 \ ${RPSRC}/pxa_timerfix-r0.patch;patch=1 \ - ${RPSRC}/pxa_rtc-r1.patch;patch=1 \ - ${RPSRC}/input_power-r2.patch;patch=1 \ + ${RPSRC}/archive/pxa_rtc-r1.patch;patch=1 \ + ${RPSRC}/archive/input_power-r2.patch;patch=1 \ ${RPSRC}/jffs2_longfilename-r0.patch;patch=1 \ - ${RPSRC}/corgi_snd-r14.patch;patch=1 \ + ${RPSRC}/archive/corgi_snd-r14.patch;patch=1 \ ${RPSRC}/pxa25x_cpufreq-r0.patch;patch=1 \ - ${RPSRC}/fbdev/fbdev-r0.patch;patch=1 \ - ${RPSRC}/fbdev/fbdev1-r0.patch;patch=1 \ - ${RPSRC}/fbdev/fbdev2-r0.patch;patch=1 \ - ${RPSRC}/fbdev/fbdev3-r0.patch;patch=1 \ - ${RPSRC}/fbdev/con_rotate-r0.patch;patch=1 \ - ${RPSRC}/fbdev/con_rotate1-r1.patch;patch=1 \ - ${RPSRC}/ipaq/hx2750_base-r22.patch;patch=1 \ - ${RPSRC}/ipaq/hx2750_bl-r3.patch;patch=1 \ - ${RPSRC}/ipaq/hx2750_pcmcia-r1.patch;patch=1 \ - ${RPSRC}/ipaq/pxa_keys-r3.patch;patch=1 \ - ${RPSRC}/ipaq/tsc2101-r9.patch;patch=1 \ - ${RPSRC}/ipaq/hx2750_test1-r2.patch;patch=1 \ + ${RPSRC}/archive/fbdev-r0.patch;patch=1 \ + ${RPSRC}/archive/fbdev1-r0.patch;patch=1 \ + ${RPSRC}/archive/fbdev2-r0.patch;patch=1 \ + ${RPSRC}/archive/fbdev3-r0.patch;patch=1 \ + ${RPSRC}/archive/con_rotate-r0.patch;patch=1 \ + ${RPSRC}/archive/con_rotate1-r1.patch;patch=1 \ + ${RPSRC}/archive/hx2750_base-r22.patch;patch=1 \ + ${RPSRC}/archive/hx2750_bl-r3.patch;patch=1 \ + ${RPSRC}/archive/hx2750_pcmcia-r1.patch;patch=1 \ + ${RPSRC}/archive/pxa_keys-r3.patch;patch=1 \ + ${RPSRC}/archive/tsc2101-r9.patch;patch=1 \ + ${RPSRC}/archive/hx2750_test1-r2.patch;patch=1 \ ${DOSRC}/tc6393-device-r5.patch;patch=1 \ ${DOSRC}/tc6393_nand-r6.patch;patch=1 \ ${DOSRC}/tosa-machine-base-r12.patch;patch=1 \ @@ -62,7 +61,7 @@ SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.gz \ ${RPSRC}/mmc_timeout-r0.patch;patch=1 \ ${RPSRC}/pxa_cf_initorder_hack-r1.patch;patch=1 \ ${RPSRC}/alsa/alsa_soc_0.5-r0.patch;patch=1 \ - ${RPSRC}/alsa_snd_corgi-r0.patch;patch=1 \ + ${RPSRC}/archive/alsa_snd_corgi-r0.patch;patch=1 \ file://add-oz-release-string.patch;patch=1 \ file://pxa-serial-hack.patch;patch=1 \ ${RPSRC}/jl1/pxa-linking-bug.patch;patch=1 \ diff --git a/packages/linux/linux-openzaurus_2.6.14-rc1.bb b/packages/linux/linux-openzaurus_2.6.14-rc1.bb deleted file mode 100644 index f50dba5d0d..0000000000 --- a/packages/linux/linux-openzaurus_2.6.14-rc1.bb +++ /dev/null @@ -1,101 +0,0 @@ -include linux-openzaurus.inc - -PR = "r3" - -# Handy URLs -# http://www.kernel.org/pub/linux/kernel/people/alan/linux-2.6/2.6.10/patch-2.6.10-ac8.gz;patch=1 \ -# http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.12-rc4-git1.bz2;patch=1 \ -# ftp://ftp.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.14-rc1.bz2;patch=1 \ -# git://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git \ - -# Patches submitted upstream are towards top of this list -# Hacks should clearly named and at the bottom -SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.tar.gz \ - ftp://ftp.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.14-rc1.bz2;patch=1 \ - ${RPSRC}/borzoi_machtype-r0.patch;patch=1 \ - ${RPSRC}/sharpsl_ssp-r4.patch;patch=1 \ - ${RPSRC}/sharpsl_lcd-r4.patch;patch=1 \ - ${RPSRC}/sharpsl_ts-r6.patch;patch=1 \ - ${RPSRC}/sharpsl_bl-r5a.patch;patch=1 \ - ${RPSRC}/spitzkbd-r3.patch;patch=1 \ - ${RPSRC}/spitz_base-r17.patch;patch=1 \ - ${RPSRC}/corgi_addinclude-r0.patch;patch=1 \ - ${RPSRC}/sharpsl_mtd_extras-r1.patch;patch=1 \ - ${RPSRC}/corgi_cleanup-r0.patch;patch=1 \ - ${RPSRC}/poodle_cleanup-r0.patch;patch=1 \ - ${RPSRC}/poodle_mmc-r0.patch;patch=1 \ - ${RPSRC}/scoop_collie_fix-r0.patch;patch=1 \ - ${RPSRC}/collie_scoop_fix1-r0.patch;patch=1 \ - ${RPSRC}/scoop_susres-r1.patch;patch=1 \ - ${RPSRC}/pxa_i2c_fixes-r0.patch;patch=1 \ - ${RPSRC}/pxa_ohci_platform-r1.patch;patch=1 \ - ${RPSRC}/pxa_ohci_suspend-r0.patch;patch=1 \ - ${RPSRC}/poodle_irda-r0.patch;patch=1 \ - ${RPSRC}/ide_not_removable-r0.patch;patch=1 \ - ${RPSRC}/sharpsl_pm-r8.patch;patch=1 \ - ${RPSRC}/corgi_pm-r4.patch;patch=1 \ - ${RPSRC}/spitz_base_extras-r2.patch;patch=1 \ - ${RPSRC}/spitz_pm-r4.patch;patch=1 \ - ${RPSRC}/spitz_kbd_fix1-r0.patch;patch=1 \ - ${RPSRC}/spitzcf-r3.patch;patch=1 \ - ${RPSRC}/pxa_timerfix-r0.patch;patch=1 \ - ${RPSRC}/pxa_remove_static-r0.patch;patch=1 \ - ${RPSRC}/pxa_irda-r4.patch;patch=1 \ - ${RPSRC}/corgi_irda-r3.patch;patch=1 \ - ${RPSRC}/pxa_rtc-r1.patch;patch=1 \ - ${RPSRC}/input_power-r2.patch;patch=1 \ - ${RPSRC}/jffs2_longfilename-r0.patch;patch=1 \ - ${RPSRC}/sharpsl_bl_kick-r1.patch;patch=1 \ - ${RPSRC}/corgi_snd-r10.patch;patch=1 \ - ${RPSRC}/ipaq/hx2750_base-r21.patch;patch=1 \ - ${RPSRC}/ipaq/hx2750_bl-r2.patch;patch=1 \ - ${RPSRC}/ipaq/hx2750_pcmcia-r1.patch;patch=1 \ - ${RPSRC}/ipaq/pxa_keys-r2.patch;patch=1 \ - ${RPSRC}/ipaq/tsc2101-r8.patch;patch=1 \ - ${RPSRC}/ipaq/hx2750_test1-r2.patch;patch=1 \ - ${DOSRC}/pxa2xx-ir-dma-r0.patch;patch=1 \ - ${DOSRC}/tc6393-device-r5.patch;patch=1 \ - ${DOSRC}/tc6393_nand-r6.patch;patch=1 \ - ${DOSRC}/tosa-machine-base-r9.patch;patch=1 \ - ${DOSRC}/tosa-keyboard-r6.patch;patch=1 \ - ${RPSRC}/temp/tc6393fb-r7.patch;patch=1 \ - ${DOSRC}/tosa-power-r6.patch;patch=1 \ - ${DOSRC}/tosa-mmc-r5.patch;patch=1 \ - ${DOSRC}/tosa-udc-r4.patch;patch=1 \ - ${DOSRC}/tosa-irda-r3.patch;patch=1 \ - ${DOSRC}/tosa-lcd-r3.patch;patch=1 \ - ${RPSRC}/temp/tosa-bl-r5a.patch;patch=1 \ - ${RPSRC}/pcmcia_dev_ids-r2.patch;patch=1 \ - ${RPSRC}/mmc_timeout-r0.patch;patch=1 \ - ${RPSRC}/pxa_cf_initorder_hack-r1.patch;patch=1 \ - file://add-oz-release-string.patch;patch=1 \ - file://add-elpp-stuff.patch;patch=1 \ - file://pxa-serial-hack.patch;patch=1 \ - ${RPSRC}/jl1/pxa-linking-bug.patch;patch=1 \ - file://dtl1_cs-add-socket-revE.patch;patch=1 \ - file://connectplus-remove-ide-HACK.patch;patch=1 \ - file://defconfig-c7x0 \ - file://defconfig-ipaq-pxa270 \ - file://defconfig-collie \ - file://defconfig-poodle \ - file://defconfig-cxx00 \ - file://defconfig-tosa " - -# These patches would really help collie/poodle but we -# need someone to maintain them -# ${JLSRC}/zaurus-lcd-2.6.11.diff.gz;patch=1 -# (Pavel Machek's git tree has updated versions of this?) -# Also parts were recently committed to mainline by rmk (drivers/mfd/) -# ${JLSRC}/zaurus-base-2.6.11.diff.gz;patch=1 -# (This is mostly in mainline now?) -# ${JLSRC}/zaurus-local-2.6.11.diff.gz;patch=1 \ -# ${JLSRC}/zaurus-leds-2.6.11.diff.gz;patch=1 \ - -SRC_URI_append_tosa = "${DOSRC}/nand-readid-r1.patch;patch=1 \ - ${DOSRC}/pxa-ac97-suspend-r0.patch;patch=1 \ - ${DOSRC}/ac97codec-rename-revert-r0.patch;patch=1 \ - ${DOSRC}/wm9712-ts-r3.patch;patch=1 \ - ${DOSRC}/tosa-pxaac97-r4.patch;patch=1 \ - ${DOSRC}/tosa-bluetooth-r0.patch;patch=1 " - -S = "${WORKDIR}/linux-2.6.13" diff --git a/packages/linux/nas100d-kernel.inc b/packages/linux/nas100d-kernel.inc new file mode 100644 index 0000000000..6dd8a46001 --- /dev/null +++ b/packages/linux/nas100d-kernel.inc @@ -0,0 +1,231 @@ +# nas100d-kernel.inc +# +# Standard definitions for any NAS 100d Linux kernel. +# Include this file in a .bb which specifies, at least, +# PN,PV,PR for the desired kernel +# +# Define the following *before* including this file as +# required: +# +# N1K_FILES - kernel-tree path of files to install +# N1K_PATCHES - full list of patches to apply +# +# N1K_SUFFIX - the suffix to add after 'zImage-' in the +# deploy/images directory - defaults to "ludeos" +# +# -------------------------------------------------------------- +# +# Within this file bitbake variables local to the file are +# named N1K_FOO +# +SECTION = "kernel" +DESCRIPTION = "Linux kernel for the Iomega NAS 100d device" +LICENSE = "GPL" +MAINTAINER = "John Bowler <jbowler@acm.org>" + +DEPENDS += "devio-native" + +# Linux kernel source has the general form linux-X.Y.Z-patchP, +# X.Y is the major version number, Z (which may have multiple +# parts) is a sub-version and 'patch' is something like 'mm' or +# 'ac' with a patch version. The original bz2 archive will be +# in a directory/file vX.Y/linux-X.Y.Z.tar.bz2. The unpacked +# source will be in the directory linux-X.Y.Z and this directory +# name corresponds to the module directory (in /lib/modules). +# +# The corresponding .bb file should be called: +# +# package_X.Y.Z-patchP +# +# Giving PN=package PV=X.Y.Z-patchP (and PR is set in the .bb +# file). Files, including the all important defconfig, are +# searched for in the following directories (last one first): +# +# ludeos-kernel-2.6.11.2 +# nas100d-kernel/files +# nas100d-kernel/X.Y +# nas100d-kernel/X.Y.Z +# nas100d-kernel/X.Y.Z-patch +# nas100d-kernel/X.Y.Z-patchP +# package-X.Y.Z-patchP +# +# This allows sharing of patch files and other useful source! +# To share a file or patch with an earlier version put it in +# the shared directory - e.g. to use foo.patch on 2.6.11.2 and +# 2.6.11.4 it should be in directory nas100d-kernel/2.6.11. +# +# Note that when there are multiple patches the X.Y.Z-patch form +# uses base-patch (e.g. 2.6.12-mm) whereas X.Y.Z-patchP has the +# full form, for example 2.6.12-rc3-mm1 (in the same case). + +#PN=package-name +#PV=package-version (full) + +# The patch has the general form (rcN|preN|acN|mmN|bkN)* with the +# separate patch items being separated by '-' characters. The +# rc patch is first and has the important property that it +# requires the *preceding* kernel base version and that this +# will be the source directory name. +python () { + # The patches list may be empty. This code starts with the base + # kernel version and steps through the patches. Because the rc and + # pre patches actually require the *preceding* kernel version the code + # fixes that up appropriately. + pv = bb.data.getVar("PV",d,1).split('-') + kernel = pv[0].split('.') + base = pv[0] + name = [base] + major = '.'.join(name[0].split('.')[0:2]) + minor = '.'.join(name[0].split('.')[0:3]) + patch_uri = [ None ] + filedir = "${FILE_DIRNAME}/nas100d-kernel/%s" + # This entry will become the last one (everything is inserted before it) + filepath = [ filedir % "files" ] + pref = 10 + mmac = 0 + for patch in pv[1:]: + name.append(patch) + pname = '-'.join(name) + if patch[0:2] == "rc" or patch[0:3] == "pre": + patch_uri.append("ftp://ftp.kernel.org/pub/linux/kernel/v%s/testing/patch-%s.bz2;patch=1;pname=%s" % (major, pname, pname)) + kernel[-1] = str(int(kernel[-1]) - 1) + if patch[0:2] == "rc" and pref == 10: + pref = 6 + filepath[0:0] = [ filedir % name[0] ] + filepath[0:0] = [ filedir % (name[0] + "-rc") ] + else: + pref = 2 + elif patch[0:2] == "bk" or patch[0:3] == "git": + patch_uri.append("ftp://ftp.kernel.org/pub/linux/kernel/v%s/snapshots/patch-%s.bz2;patch=1;pname=%s" % (major, pname, pname)) + pref = 2 + elif patch[0:2] == "ac": + patch_uri.append("ftp://ftp.kernel.org/pub/linux/kernel/people/alan/linux-%s/%s/patch-%s" % (major, base, pname)) + mmac = 2 + filepath[0:0] = [ filedir % (name[0] + "-ac") ] + elif patch[0:2] == "mm": + patch_uri.append("ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/%s/%s/%s/%s.bz2;patch=1;pname=%s" % (major, base, pname, pname, pname)) + mmac = 2 + filepath[0:0] = [ filedir % (name[0] + "-mm") ] + else: + raise bb.build.FuncFailed("nas100d-kernel: patch %s not recognized in %s" % (patch, '-'.join(pv))) + filepath[0:0] = [ filedir % pname ] + base = pname + + base = '.'.join(kernel) + patch_uri[0] = "ftp://ftp.kernel.org/pub/linux/kernel/v%s/linux-%s.tar.bz2" % (major, base) + filepath[-1:-1] = [ filedir % base ] + if base != minor: + filepath[-1:-1] = [ filedir % minor ] + filepath[-1:-1] = [ filedir % major ] + + bb.data.setVar("N1K_SRCMAJ", major, d) + # bb.note("N1K_SRCMAJ := %s" % major) + bb.data.setVar("N1K_SRCVER", base, d) + # bb.note("N1K_SRCVER := %s" % base) + bb.data.setVar("N1K_SRCURI", ' '.join(patch_uri), d) + # bb.note("N1K_SRCURI := %s" % ' '.join(patch_uri)) + bb.data.setVar("N1K_FILESPATH", ':'.join(filepath), d) + # bb.note("N1K_FILESPATH := %s" % ' '.join(filepath)) + bb.data.setVar("DEFAULT_PREFERENCE", pref-mmac, d) + # bb.note("DEFAULT_PREFERENCE := %s" % (pref-mmac)) +} + +# FILESPATH: this list is in order last-searched-first, therefore +# the first entry is the *latest* and/or most specific +FILESPATH = "${N1K_FILESPATH}:${FILE_DIRNAME}/nas100d-kernel/" + +# The working directory will be the 'base' version (which may not be the +# same as implied by the PV variable because it corresponds to the prior +# minor version for rc and pre patched versions). +S = "${WORKDIR}/linux-${N1K_SRCVER}" + +# N1K_FILES is a list of additional files added to the source, these are +# put in place before the patches, so may themselves be patched. The list +# gives the path name relative to the base of the kernel source tree, the +# base file name is used to *find* the file. +N1K_FILES ?= "" + +N1K_SRCFILES = "${@( ' '.join([ ("file://" + n2k_file.split('/')[-1]) for n2k_file in bb.data.getVar("N1K_FILES",d,1).split(None) ]) )}" + +# N1K_PATCHES is a list of additional patches, the list specified +# here comes from the ludeos-2.6.11.2 kernel, typically extra +# patches will be required and very often patches will need to +# be removed (i.e. the default is typically not very useful!) +N1K_PATCHES ?= "" + +N1K_SUFFIX ?= "ludeos" + +SRC_URI = "${N1K_SRCURI}" +SRC_URI += "${N1K_SRCFILES}" +SRC_URI += "${N1K_PATCHES}" +SRC_URI += "file://defconfig" + +COMPATIBLE_HOST = 'arm.*-linux' + +inherit kernel + +ARCH = "arm" +KERNEL_IMAGETYPE = "zImage" +# To specify the console set KERNEL_CONSOLE in the .bb file. +# CMDLINE_ROOT contains the boot options, CMDLINE_KERNEL_OPTIONS +# contains the things for a specific kernel. +# CMDLINE_KERNEL_OPTIONS ?= "reboot=s" +CMDLINE_KERNEL_OPTIONS ?= +CMDLINE_ROOT = "root=/dev/mtdblock2 rw rootfstype=jffs2 mem=64M@0x00000000 init=/linuxrc" +CMDLINE_DEBUG = +CMDLINE = "${CMDLINE_ROOT} ${CMDLINE_KERNEL_OPTIONS} ${CMDLINE_DEBUG} ${CMDLINE_CONSOLE}" + +# Add the architecture compiler flags to KERNEL_CC and KERNEL_LD as +# required. Notice that this has to be done for each separately built +# module as well! +KERNEL_CC += "${TARGET_CC_KERNEL_ARCH}" +KERNEL_LD += "${TARGET_LD_KERNEL_ARCH}" + +# Set EXTRAVERSION and LOCALVERSION to "" so that the kernel version +# remains pinned to the x.y.z form, also turn off the directory +# printing which provides almost all the output of an incremental build. +EXTRA_OEMAKE += "EXTRAVERSION=" +EXTRA_OEMAKE += "LOCALVERSION=" +EXTRA_OEMAKE += "MAKEFLAGS='--no-print-directory'" + +# Override KERNEL_RELEASE from kernel.bbclass to match: +KERNEL_RELEASE = "${KERNEL_VERSION}" + +# By putting the added files in place in a separate task before +# do_patch it becomes possible to patch these files. +do_unpacklocal() { + for f in ${N1K_FILES} + do + s="$(basename "$f")" + install -m 0644 "${WORKDIR}/$s" "${S}/$f" + done +} + +addtask unpacklocal before do_patch after do_unpack + +do_configure_prepend() { + rm -f ${S}/.config + echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >>'${S}/.config' + if test '${ARCH_BYTE_SEX}' = be + then + echo 'CONFIG_CPU_BIG_ENDIAN=y' >>'${S}/.config' + fi + sed -e '/CONFIG_CPU_BIG_ENDIAN/d' -e '/CONFIG_CMDLINE=/d' '${WORKDIR}/defconfig' >>'${S}/.config' + rm -rf ${S}/include/asm-arm/arch ${S}/include/asm-arm/proc \ + ${S}/include/asm-arm/.proc ${S}/include/asm-arm/.arch +} + +do_deploy[dirs] = "${S}" +do_deploy() { + install -d ${DEPLOY_DIR}/images + install -m 644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${N1K_SUFFIX} +} + +addtask deploy before do_build after do_compile + +python () { + # Don't build the kernel unless we're targeting an nas100d + mach = bb.data.getVar("MACHINE", d, 1) + if mach != 'nas100d': + raise bb.parse.SkipPackage("LudeOS only builds for the Iomega NAS 100d") +} diff --git a/packages/linux/nas100d-kernel/.mtn2git_empty b/packages/linux/nas100d-kernel/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/nas100d-kernel/.mtn2git_empty diff --git a/packages/linux/nas100d-kernel/2.6.14/.mtn2git_empty b/packages/linux/nas100d-kernel/2.6.14/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/.mtn2git_empty diff --git a/packages/linux/nas100d-kernel/2.6.14/10-ixp4xx-copy-from.patch b/packages/linux/nas100d-kernel/2.6.14/10-ixp4xx-copy-from.patch new file mode 100644 index 0000000000..f3da2e093f --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/10-ixp4xx-copy-from.patch @@ -0,0 +1,73 @@ +--- linux-2.6.14/drivers/mtd/maps/ixp4xx.c 2005-10-27 17:02:08.000000000 -0700 ++++ linux-2.6.14/drivers/mtd/maps/ixp4xx.c 2005-10-29 23:11:24.990820968 -0700 +@@ -38,10 +38,14 @@ + #define BYTE1(h) ((h) & 0xFF) + #endif + ++#define FLASHWORD(a) (*(__u16*)(a)) ++#define FLASHVAL(a) FLASHWORD(a) ++#define FLASHSET(a,v) do { FLASHWORD(a) = (v); } while (0) ++ + static map_word ixp4xx_read16(struct map_info *map, unsigned long ofs) + { + map_word val; +- val.x[0] = *(__u16 *) (map->map_priv_1 + ofs); ++ val.x[0] = FLASHVAL(map->map_priv_1 + ofs); + return val; + } + +@@ -53,19 +57,25 @@ static map_word ixp4xx_read16(struct map + static void ixp4xx_copy_from(struct map_info *map, void *to, + unsigned long from, ssize_t len) + { +- int i; +- u8 *dest = (u8 *) to; +- u16 *src = (u16 *) (map->map_priv_1 + from); +- u16 data; +- +- for (i = 0; i < (len / 2); i++) { +- data = src[i]; +- dest[i * 2] = BYTE0(data); +- dest[i * 2 + 1] = BYTE1(data); ++ u8 *dest, *src; ++ ++ if (len <= 0) ++ return; ++ ++ dest = (u8 *) to; ++ src = (u8 *) (map->map_priv_1 + from); ++ if (from & 1) ++ *dest++ = BYTE1(FLASHVAL(src-1)), ++src, --len; ++ ++ while (len >= 2) { ++ u16 data = FLASHVAL(src); src += 2; ++ *dest++ = BYTE0(data); ++ *dest++ = BYTE1(data); ++ len -= 2; + } + +- if (len & 1) +- dest[len - 1] = BYTE0(src[i]); ++ if (len > 0) ++ *dest++ = BYTE0(FLASHVAL(src)); + } + + /* +@@ -75,7 +85,7 @@ static void ixp4xx_copy_from(struct map_ + static void ixp4xx_probe_write16(struct map_info *map, map_word d, unsigned long adr) + { + if (!(adr & 1)) +- *(__u16 *) (map->map_priv_1 + adr) = d.x[0]; ++ FLASHSET(map->map_priv_1 + adr, d.x[0]); + } + + /* +@@ -83,7 +93,7 @@ static void ixp4xx_probe_write16(struct + */ + static void ixp4xx_write16(struct map_info *map, map_word d, unsigned long adr) + { +- *(__u16 *) (map->map_priv_1 + adr) = d.x[0]; ++ FLASHSET(map->map_priv_1 + adr, d.x[0]); + } + + struct ixp4xx_flash_info { diff --git a/packages/linux/nas100d-kernel/2.6.14/10-ixp4xx-le.patch b/packages/linux/nas100d-kernel/2.6.14/10-ixp4xx-le.patch new file mode 100644 index 0000000000..0b50e4e1a0 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/10-ixp4xx-le.patch @@ -0,0 +1,54 @@ +--- linux-2.6.14/drivers/mtd/maps/ixp4xx.c 2005-10-27 17:02:08.000000000 -0700 ++++ linux-2.6.14/drivers/mtd/maps/ixp4xx.c 2005-10-29 23:11:24.990820968 -0700 +@@ -22,6 +22,7 @@ + #include <linux/string.h> + #include <linux/mtd/mtd.h> + #include <linux/mtd/map.h> ++#include <linux/mtd/cfi_endian.h> + #include <linux/mtd/partitions.h> + #include <linux/ioport.h> + #include <linux/device.h> +@@ -30,17 +31,40 @@ + + #include <linux/reboot.h> + ++/* On a little-endian IXP4XX system (tested on NSLU2) an LDRH or STRH ++ * will flip the second address bit - i.e. XOR the address with 10b. ++ * This causes the cfi commands (sent to the command address, 0xAA for ++ * 16 bit flash) to fail. This is fixed here by XOR'ing the address ++ * before use with 10b. The cost of this is that the flash layout ends ++ * up with pdp-endiannes (on an LE system), however this is not a problem ++ * as the access code consistently only accesses half words - so the ++ * endianness is not determinable on stuff which is written and read ++ * consistently in the little endian world. ++ * ++ * For flash data from the big-endian world, however, the results are ++ * weird - the pdp-endianness results in the data apparently being ++ * 2-byte swapped (as in dd conv=swab). To work round this the 16 ++ * bit values are written and read using cpu_to_cfi16 and cfi16_to_cpu, ++ * by default these are no-ops, but if the MTD driver is configed with ++ * CONFIG_MTD_CFI_BE_BYTE_SWAP the macros will byte swap the data, ++ * resulting in a consistently BE view of the flash on both BE (no ++ * op) and LE systems. This config setting also causes the command ++ * data from the CFI implementation to get swapped - as is required ++ * so that this code will *unswap* it and give the correct command ++ * data to the flash. ++ */ + #ifndef __ARMEB__ + #define BYTE0(h) ((h) & 0xFF) + #define BYTE1(h) (((h) >> 8) & 0xFF) ++#define FLASHWORD(a) (*(__u16*)((u32)(a) ^ 2)) + #else + #define BYTE0(h) (((h) >> 8) & 0xFF) + #define BYTE1(h) ((h) & 0xFF) ++#define FLASHWORD(a) (*(__u16*)(a)) + #endif + +-#define FLASHWORD(a) (*(__u16*)(a)) +-#define FLASHVAL(a) FLASHWORD(a) +-#define FLASHSET(a,v) do { FLASHWORD(a) = (v); } while (0) ++#define FLASHVAL(a) cfi16_to_cpu(FLASHWORD(a)) ++#define FLASHSET(a,v) (FLASHWORD(a) = cpu_to_cfi16(v)) + + static map_word ixp4xx_read16(struct map_info *map, unsigned long ofs) + { diff --git a/packages/linux/nas100d-kernel/2.6.14/10-mtdpart-redboot-fis-byteswap.patch b/packages/linux/nas100d-kernel/2.6.14/10-mtdpart-redboot-fis-byteswap.patch new file mode 100644 index 0000000000..37d19bd1b0 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/10-mtdpart-redboot-fis-byteswap.patch @@ -0,0 +1,44 @@ +On IXP4XX systems the FIS directory is big endian even with a little +endian kernel. This patch recognises the FIS directory on such a +system and byte swaps it to obtain a valid table based on the 'size' +field of the FIS directory (the size field is know to always match the +erase block size on such systems, and probably all systems.) + +--- linux-2.6.13/.pc/10-mtdpart-redboot-fis-byteswap.patch/drivers/mtd/redboot.c 2005-08-28 16:41:01.000000000 -0700 ++++ linux-2.6.13/drivers/mtd/redboot.c 2005-10-23 21:44:59.999694674 -0700 +@@ -89,8 +89,34 @@ + i = numslots; + break; + } +- if (!memcmp(buf[i].name, "FIS directory", 14)) ++ if (!memcmp(buf[i].name, "FIS directory", 14)) { ++ /* This is apparently the FIS directory entry for the ++ * FIS directory itself. The FIS directory size is ++ * one erase block, if the buf[i].size field is ++ * swab32(erasesize) then we know we are looking at ++ * a byte swapped FIS directory - swap all the entries! ++ * (NOTE: this is 'size' not 'data_length', size is ++ * the full size of the entry.) ++ */ ++ if (swab32(buf[i].size) == master->erasesize) { ++ int j; ++ for (j = 0; j < numslots && buf[j].name[0] != 0xff; ++j) { ++ /* The unsigned long fields were written with the ++ * wrong byte sex, name and pad have no byte sex. ++ */ ++# define do_swab32(x) (x) = swab32(x) ++ do_swab32(buf[j].flash_base); ++ do_swab32(buf[j].mem_base); ++ do_swab32(buf[j].size); ++ do_swab32(buf[j].entry_point); ++ do_swab32(buf[j].data_length); ++ do_swab32(buf[j].desc_cksum); ++ do_swab32(buf[j].file_cksum); ++# undef do_swab32 ++ } ++ } + break; ++ } + } + if (i == numslots) { + /* Didn't find it */ diff --git a/packages/linux/nas100d-kernel/2.6.14/15-ixp4xx-writesb-l-w.patch b/packages/linux/nas100d-kernel/2.6.14/15-ixp4xx-writesb-l-w.patch new file mode 100644 index 0000000000..6ac0807f1e --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/15-ixp4xx-writesb-l-w.patch @@ -0,0 +1,31 @@ +# The inline caller of these APIs were changed to have +# const vaddr parameters... +--- linux-2.6.13/include/asm-arm/arch-ixp4xx/io.h.orig 2005-09-24 17:06:19.968099976 -0700 ++++ linux-2.6.13/include/asm-arm/arch-ixp4xx/io.h 2005-09-24 17:06:52.542149731 -0700 +@@ -113,7 +113,7 @@ + } + + static inline void +-__ixp4xx_writesb(u32 bus_addr, u8 *vaddr, int count) ++__ixp4xx_writesb(u32 bus_addr, const u8 *vaddr, int count) + { + while (count--) + writeb(*vaddr++, bus_addr); +@@ -136,7 +136,7 @@ + } + + static inline void +-__ixp4xx_writesw(u32 bus_addr, u16 *vaddr, int count) ++__ixp4xx_writesw(u32 bus_addr, const u16 *vaddr, int count) + { + while (count--) + writew(*vaddr++, bus_addr); +@@ -154,7 +154,7 @@ + } + + static inline void +-__ixp4xx_writesl(u32 bus_addr, u32 *vaddr, int count) ++__ixp4xx_writesl(u32 bus_addr, const u32 *vaddr, int count) + { + while (count--) + writel(*vaddr++, bus_addr); diff --git a/packages/linux/nas100d-kernel/2.6.14/18-ixp4xx-io-h-addr.patch b/packages/linux/nas100d-kernel/2.6.14/18-ixp4xx-io-h-addr.patch new file mode 100644 index 0000000000..5813bbb7ac --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/18-ixp4xx-io-h-addr.patch @@ -0,0 +1,287 @@ +--- linux-2.6.14/include/asm-arm/arch-ixp4xx/io.h 2005-10-29 23:33:21.757679882 -0700 ++++ linux-2.6.14/include/asm-arm/arch-ixp4xx/io.h 2005-10-29 23:47:02.581331058 -0700 +@@ -80,9 +80,9 @@ __ixp4xx_iounmap(void __iomem *addr) + #define __arch_ioremap(a, s, f, x) __ixp4xx_ioremap(a, s, f, x) + #define __arch_iounmap(a) __ixp4xx_iounmap(a) + +-#define writeb(p, v) __ixp4xx_writeb(p, v) +-#define writew(p, v) __ixp4xx_writew(p, v) +-#define writel(p, v) __ixp4xx_writel(p, v) ++#define writeb(v, p) __ixp4xx_writeb(v, p) ++#define writew(v, p) __ixp4xx_writew(v, p) ++#define writel(v, p) __ixp4xx_writel(v, p) + + #define writesb(p, v, l) __ixp4xx_writesb(p, v, l) + #define writesw(p, v, l) __ixp4xx_writesw(p, v, l) +@@ -97,8 +97,9 @@ __ixp4xx_iounmap(void __iomem *addr) + #define readsl(p, v, l) __ixp4xx_readsl(p, v, l) + + static inline void +-__ixp4xx_writeb(u8 value, u32 addr) ++__ixp4xx_writeb(u8 value, volatile void __iomem *p) + { ++ u32 addr = (u32)p; + u32 n, byte_enables, data; + + if (addr >= VMALLOC_START) { +@@ -113,15 +114,16 @@ __ixp4xx_writeb(u8 value, u32 addr) + } + + static inline void +-__ixp4xx_writesb(u32 bus_addr, const u8 *vaddr, int count) ++__ixp4xx_writesb(volatile void __iomem *bus_addr, const u8 *vaddr, int count) + { + while (count--) + writeb(*vaddr++, bus_addr); + } + + static inline void +-__ixp4xx_writew(u16 value, u32 addr) ++__ixp4xx_writew(u16 value, volatile void __iomem *p) + { ++ u32 addr = (u32)p; + u32 n, byte_enables, data; + + if (addr >= VMALLOC_START) { +@@ -136,15 +138,16 @@ __ixp4xx_writew(u16 value, u32 addr) + } + + static inline void +-__ixp4xx_writesw(u32 bus_addr, const u16 *vaddr, int count) ++__ixp4xx_writesw(volatile void __iomem *bus_addr, const u16 *vaddr, int count) + { + while (count--) + writew(*vaddr++, bus_addr); + } + + static inline void +-__ixp4xx_writel(u32 value, u32 addr) ++__ixp4xx_writel(u32 value, volatile void __iomem *p) + { ++ u32 addr = (u32)p; + if (addr >= VMALLOC_START) { + __raw_writel(value, addr); + return; +@@ -154,15 +157,16 @@ __ixp4xx_writel(u32 value, u32 addr) + } + + static inline void +-__ixp4xx_writesl(u32 bus_addr, const u32 *vaddr, int count) ++__ixp4xx_writesl(volatile void __iomem *bus_addr, const u32 *vaddr, int count) + { + while (count--) + writel(*vaddr++, bus_addr); + } + + static inline unsigned char +-__ixp4xx_readb(u32 addr) ++__ixp4xx_readb(const volatile void __iomem *p) + { ++ u32 addr = (u32)p; + u32 n, byte_enables, data; + + if (addr >= VMALLOC_START) +@@ -177,15 +181,16 @@ __ixp4xx_readb(u32 addr) + } + + static inline void +-__ixp4xx_readsb(u32 bus_addr, u8 *vaddr, u32 count) ++__ixp4xx_readsb(const volatile void __iomem *bus_addr, u8 *vaddr, u32 count) + { + while (count--) + *vaddr++ = readb(bus_addr); + } + + static inline unsigned short +-__ixp4xx_readw(u32 addr) ++__ixp4xx_readw(const volatile void __iomem *p) + { ++ u32 addr = (u32)p; + u32 n, byte_enables, data; + + if (addr >= VMALLOC_START) +@@ -200,15 +205,16 @@ __ixp4xx_readw(u32 addr) + } + + static inline void +-__ixp4xx_readsw(u32 bus_addr, u16 *vaddr, u32 count) ++__ixp4xx_readsw(const volatile void __iomem *bus_addr, u16 *vaddr, u32 count) + { + while (count--) + *vaddr++ = readw(bus_addr); + } + + static inline unsigned long +-__ixp4xx_readl(u32 addr) ++__ixp4xx_readl(const volatile void __iomem *p) + { ++ u32 addr = (u32)p; + u32 data; + + if (addr >= VMALLOC_START) +@@ -221,7 +227,7 @@ __ixp4xx_readl(u32 addr) + } + + static inline void +-__ixp4xx_readsl(u32 bus_addr, u32 *vaddr, u32 count) ++__ixp4xx_readsl(const volatile void __iomem *bus_addr, u32 *vaddr, u32 count) + { + while (count--) + *vaddr++ = readl(bus_addr); +@@ -239,7 +245,7 @@ __ixp4xx_readsl(u32 bus_addr, u32 *vaddr + eth_copy_and_sum((s),__mem_pci(c),(l),(b)) + + static inline int +-check_signature(unsigned long bus_addr, const unsigned char *signature, ++check_signature(const unsigned char __iomem *bus_addr, const unsigned char *signature, + int length) + { + int retval = 0; +@@ -389,7 +395,7 @@ __ixp4xx_insl(u32 io_addr, u32 *vaddr, u + #define __is_io_address(p) (((unsigned long)p >= PIO_OFFSET) && \ + ((unsigned long)p <= (PIO_MASK + PIO_OFFSET))) + static inline unsigned int +-__ixp4xx_ioread8(void __iomem *addr) ++__ixp4xx_ioread8(const void __iomem *addr) + { + unsigned long port = (unsigned long __force)addr; + if (__is_io_address(port)) +@@ -398,12 +404,12 @@ __ixp4xx_ioread8(void __iomem *addr) + #ifndef CONFIG_IXP4XX_INDIRECT_PCI + return (unsigned int)__raw_readb(port); + #else +- return (unsigned int)__ixp4xx_readb(port); ++ return (unsigned int)__ixp4xx_readb(addr); + #endif + } + + static inline void +-__ixp4xx_ioread8_rep(void __iomem *addr, void *vaddr, u32 count) ++__ixp4xx_ioread8_rep(const void __iomem *addr, void *vaddr, u32 count) + { + unsigned long port = (unsigned long __force)addr; + if (__is_io_address(port)) +@@ -412,12 +418,12 @@ __ixp4xx_ioread8_rep(void __iomem *addr, + #ifndef CONFIG_IXP4XX_INDIRECT_PCI + __raw_readsb(addr, vaddr, count); + #else +- __ixp4xx_readsb(port, vaddr, count); ++ __ixp4xx_readsb(addr, vaddr, count); + #endif + } + + static inline unsigned int +-__ixp4xx_ioread16(void __iomem *addr) ++__ixp4xx_ioread16(const void __iomem *addr) + { + unsigned long port = (unsigned long __force)addr; + if (__is_io_address(port)) +@@ -426,12 +432,12 @@ __ixp4xx_ioread16(void __iomem *addr) + #ifndef CONFIG_IXP4XX_INDIRECT_PCI + return le16_to_cpu(__raw_readw((u32)port)); + #else +- return (unsigned int)__ixp4xx_readw((u32)port); ++ return (unsigned int)__ixp4xx_readw(addr); + #endif + } + + static inline void +-__ixp4xx_ioread16_rep(void __iomem *addr, void *vaddr, u32 count) ++__ixp4xx_ioread16_rep(const void __iomem *addr, void *vaddr, u32 count) + { + unsigned long port = (unsigned long __force)addr; + if (__is_io_address(port)) +@@ -440,12 +446,12 @@ __ixp4xx_ioread16_rep(void __iomem *addr + #ifndef CONFIG_IXP4XX_INDIRECT_PCI + __raw_readsw(addr, vaddr, count); + #else +- __ixp4xx_readsw(port, vaddr, count); ++ __ixp4xx_readsw(addr, vaddr, count); + #endif + } + + static inline unsigned int +-__ixp4xx_ioread32(void __iomem *addr) ++__ixp4xx_ioread32(const void __iomem *addr) + { + unsigned long port = (unsigned long __force)addr; + if (__is_io_address(port)) +@@ -454,13 +460,13 @@ __ixp4xx_ioread32(void __iomem *addr) + #ifndef CONFIG_IXP4XX_INDIRECT_PCI + return le32_to_cpu(__raw_readl((u32)port)); + #else +- return (unsigned int)__ixp4xx_readl((u32)port); ++ return (unsigned int)__ixp4xx_readl(addr); + #endif + } + } + + static inline void +-__ixp4xx_ioread32_rep(void __iomem *addr, void *vaddr, u32 count) ++__ixp4xx_ioread32_rep(const void __iomem *addr, void *vaddr, u32 count) + { + unsigned long port = (unsigned long __force)addr; + if (__is_io_address(port)) +@@ -469,7 +475,7 @@ __ixp4xx_ioread32_rep(void __iomem *addr + #ifndef CONFIG_IXP4XX_INDIRECT_PCI + __raw_readsl(addr, vaddr, count); + #else +- __ixp4xx_readsl(port, vaddr, count); ++ __ixp4xx_readsl(addr, vaddr, count); + #endif + } + +@@ -483,7 +489,7 @@ __ixp4xx_iowrite8(u8 value, void __iomem + #ifndef CONFIG_IXP4XX_INDIRECT_PCI + __raw_writeb(value, port); + #else +- __ixp4xx_writeb(value, port); ++ __ixp4xx_writeb(value, addr); + #endif + } + +@@ -497,7 +503,7 @@ __ixp4xx_iowrite8_rep(void __iomem *addr + #ifndef CONFIG_IXP4XX_INDIRECT_PCI + __raw_writesb(addr, vaddr, count); + #else +- __ixp4xx_writesb(port, vaddr, count); ++ __ixp4xx_writesb(addr, vaddr, count); + #endif + } + +@@ -511,7 +517,7 @@ __ixp4xx_iowrite16(u16 value, void __iom + #ifndef CONFIG_IXP4XX_INDIRECT_PCI + __raw_writew(cpu_to_le16(value), addr); + #else +- __ixp4xx_writew(value, port); ++ __ixp4xx_writew(value, addr); + #endif + } + +@@ -525,7 +531,7 @@ __ixp4xx_iowrite16_rep(void __iomem *add + #ifndef CONFIG_IXP4XX_INDIRECT_PCI + __raw_writesw(addr, vaddr, count); + #else +- __ixp4xx_writesw(port, vaddr, count); ++ __ixp4xx_writesw(addr, vaddr, count); + #endif + } + +@@ -539,7 +545,7 @@ __ixp4xx_iowrite32(u32 value, void __iom + #ifndef CONFIG_IXP4XX_INDIRECT_PCI + __raw_writel(cpu_to_le32(value), port); + #else +- __ixp4xx_writel(value, port); ++ __ixp4xx_writel(value, addr); + #endif + } + +@@ -553,7 +559,7 @@ __ixp4xx_iowrite32_rep(void __iomem *add + #ifndef CONFIG_IXP4XX_INDIRECT_PCI + __raw_writesl(addr, vaddr, count); + #else +- __ixp4xx_writesl(port, vaddr, count); ++ __ixp4xx_writesl(addr, vaddr, count); + #endif + } + diff --git a/packages/linux/nas100d-kernel/2.6.14/28-spinlock-up.patch b/packages/linux/nas100d-kernel/2.6.14/28-spinlock-up.patch new file mode 100644 index 0000000000..3ae5178cff --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/28-spinlock-up.patch @@ -0,0 +1,32 @@ +--- linux-2.6.14-rc5/include/linux/spinlock_up.h 2005-10-26 08:37:20.164248408 -0700 ++++ patched/include/linux/spinlock_up.h 2005-10-26 12:15:13.458898975 -0700 +@@ -47,6 +47,14 @@ static inline void __raw_spin_unlock(raw + lock->slock = 1; + } + ++#else /* DEBUG_SPINLOCK */ ++#define __raw_spin_is_locked(lock) ((void)(lock), 0) ++/* for sched.c and kernel_lock.c: */ ++# define __raw_spin_lock(lock) do { (void)(lock); } while (0) ++# define __raw_spin_unlock(lock) do { (void)(lock); } while (0) ++# define __raw_spin_trylock(lock) ({ (void)(lock); 1; }) ++#endif /* DEBUG_SPINLOCK */ ++ + /* + * Read-write spinlocks. No debug version. + */ +@@ -57,14 +65,6 @@ static inline void __raw_spin_unlock(raw + #define __raw_read_unlock(lock) do { (void)(lock); } while (0) + #define __raw_write_unlock(lock) do { (void)(lock); } while (0) + +-#else /* DEBUG_SPINLOCK */ +-#define __raw_spin_is_locked(lock) ((void)(lock), 0) +-/* for sched.c and kernel_lock.c: */ +-# define __raw_spin_lock(lock) do { (void)(lock); } while (0) +-# define __raw_spin_unlock(lock) do { (void)(lock); } while (0) +-# define __raw_spin_trylock(lock) ({ (void)(lock); 1; }) +-#endif /* DEBUG_SPINLOCK */ +- + #define __raw_read_can_lock(lock) (((void)(lock), 1)) + #define __raw_write_can_lock(lock) (((void)(lock), 1)) + diff --git a/packages/linux/nas100d-kernel/2.6.14/29-ipv4-route-c-spinlock.patch b/packages/linux/nas100d-kernel/2.6.14/29-ipv4-route-c-spinlock.patch new file mode 100644 index 0000000000..93e070518c --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/29-ipv4-route-c-spinlock.patch @@ -0,0 +1,11 @@ +--- linux-2.6.14-rc5/net/ipv4/route.c 2005-10-26 08:37:20.752285410 -0700 ++++ patched/net/ipv4/route.c 2005-10-26 12:17:00.761651111 -0700 +@@ -231,7 +231,7 @@ static spinlock_t *rt_hash_locks; + spin_lock_init(&rt_hash_locks[i]); \ + } + #else +-# define rt_hash_lock_addr(slot) NULL ++# define rt_hash_lock_addr(slot) ((spinlock_t*)NULL) + # define rt_hash_lock_init() + #endif + diff --git a/packages/linux/nas100d-kernel/2.6.14/50-nas100d-arch.patch b/packages/linux/nas100d-kernel/2.6.14/50-nas100d-arch.patch new file mode 100644 index 0000000000..51ab586010 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/50-nas100d-arch.patch @@ -0,0 +1,64 @@ + arch/arm/mach-ixp4xx/Kconfig | 8 ++++++++ + arch/arm/mach-ixp4xx/Makefile | 1 + + arch/arm/tools/mach-types | 1 + + include/asm-arm/arch-ixp4xx/hardware.h | 1 + + include/asm-arm/arch-ixp4xx/irqs.h | 9 +++++++++ + 5 files changed, 20 insertions(+) + +--- linux-2.6.14.orig/arch/arm/mach-ixp4xx/Kconfig 2005-11-09 00:58:58.000000000 +0100 ++++ linux-2.6.14/arch/arm/mach-ixp4xx/Kconfig 2005-11-11 22:23:08.000000000 +0100 +@@ -61,6 +61,14 @@ config ARCH_PRPMC1100 + PrPCM1100 Processor Mezanine Module. For more information on + this platform, see <file:Documentation/arm/IXP4xx>. + ++config MACH_NAS100D ++ bool ++ prompt "NAS100D" ++ help ++ Say 'Y' here if you want your kernel to support Iomega's ++ NAS 100d device. For more information on this platform, ++ see http://www.nslu2-linux.org/wiki/NAS100d/HomePage ++ + # + # Avila and IXDP share the same source for now. Will change in future + # +--- linux-2.6.14.orig/arch/arm/mach-ixp4xx/Makefile 2005-11-09 00:58:58.000000000 +0100 ++++ linux-2.6.14/arch/arm/mach-ixp4xx/Makefile 2005-11-11 22:23:08.000000000 +0100 +@@ -8,4 +8,5 @@ obj-$(CONFIG_ARCH_IXDP4XX) += ixdp425-pc + obj-$(CONFIG_MACH_IXDPG425) += ixdpg425-pci.o coyote-setup.o + obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o + obj-$(CONFIG_MACH_GTWX5715) += gtwx5715-pci.o gtwx5715-setup.o ++obj-$(CONFIG_MACH_NAS100D) += nas100d-pci.o nas100d-setup.o nas100d-power.o + +--- linux-2.6.14.orig/include/asm-arm/arch-ixp4xx/hardware.h 2005-11-09 00:59:41.000000000 +0100 ++++ linux-2.6.14/include/asm-arm/arch-ixp4xx/hardware.h 2005-11-11 22:23:08.000000000 +0100 +@@ -44,5 +44,6 @@ extern unsigned int processor_id; + #include "ixdp425.h" + #include "coyote.h" + #include "prpmc1100.h" ++#include "nas100d.h" + + #endif /* _ASM_ARCH_HARDWARE_H */ +--- linux-2.6.14.orig/include/asm-arm/arch-ixp4xx/irqs.h 2005-11-09 00:59:41.000000000 +0100 ++++ linux-2.6.14/include/asm-arm/arch-ixp4xx/irqs.h 2005-11-11 23:01:50.000000000 +0100 +@@ -93,4 +93,13 @@ + #define IRQ_COYOTE_PCI_SLOT1 IRQ_IXP4XX_GPIO11 + #define IRQ_COYOTE_IDE IRQ_IXP4XX_GPIO5 + ++/* ++ * NAS100D board IRQs ++ */ ++#define IRQ_NAS100D_PCI_INTA IRQ_IXP4XX_GPIO11 ++#define IRQ_NAS100D_PCI_INTB IRQ_IXP4XX_GPIO10 ++#define IRQ_NAS100D_PCI_INTC IRQ_IXP4XX_GPIO9 ++#define IRQ_NAS100D_PCI_INTD IRQ_IXP4XX_GPIO8 ++#define IRQ_NAS100D_PCI_INTE IRQ_IXP4XX_GPIO7 ++ + #endif +--- linux-2.6.14.orig/arch/arm/tools/mach-types 2005-11-09 00:58:59.000000000 +0100 ++++ linux-2.6.14/arch/arm/tools/mach-types 2005-11-11 22:23:08.000000000 +0100 +@@ -869,3 +869,4 @@ davinci_dvdp MACH_DAVINCI_DVDP DAVINCI_ + htcuniversal MACH_HTCUNIVERSAL HTCUNIVERSAL 855 + tpad MACH_TPAD TPAD 856 + roverp3 MACH_ROVERP3 ROVERP3 857 ++nas100d MACH_NAS100D NAS100D 865 diff --git a/packages/linux/nas100d-kernel/2.6.14/60-nas100d-i2c.patch b/packages/linux/nas100d-kernel/2.6.14/60-nas100d-i2c.patch new file mode 100644 index 0000000000..5e180093a4 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/60-nas100d-i2c.patch @@ -0,0 +1,649 @@ + drivers/i2c/busses/i2c-ixp4xx.c | 9 + drivers/i2c/chips/Kconfig | 9 + drivers/i2c/chips/Makefile | 1 + drivers/i2c/chips/pcf8563.c | 547 ++++++++++++++++++++++++++++++++++++++++ + include/linux/pcf8563.h | 24 + + 5 files changed, 587 insertions(+), 3 deletions(-) + +--- linux-nas100d.orig/drivers/i2c/busses/i2c-ixp4xx.c 2005-11-11 22:22:43.000000000 +0100 ++++ linux-nas100d/drivers/i2c/busses/i2c-ixp4xx.c 2005-11-15 22:06:23.000000000 +0100 +@@ -65,7 +65,6 @@ static int ixp4xx_bit_getscl(void *data) + + gpio_line_config(ixp4xx_scl_pin(data), IXP4XX_GPIO_IN ); + gpio_line_get(ixp4xx_scl_pin(data), &scl); +- + return scl; + } + +@@ -75,7 +74,6 @@ static int ixp4xx_bit_getsda(void *data) + + gpio_line_config(ixp4xx_sda_pin(data), IXP4XX_GPIO_IN ); + gpio_line_get(ixp4xx_sda_pin(data), &sda); +- + return sda; + } + +@@ -127,7 +125,10 @@ static int ixp4xx_i2c_probe(struct devic + drv_data->algo_data.udelay = 10; + drv_data->algo_data.mdelay = 10; + drv_data->algo_data.timeout = 100; +- ++#ifdef CONFIG_MACH_NAS100D ++ drv_data->algo_data.udelay = 100; ++ drv_data->algo_data.mdelay = 100; ++#endif + drv_data->adapter.id = I2C_HW_B_IXP4XX; + drv_data->adapter.algo_data = &drv_data->algo_data; + +@@ -145,6 +146,8 @@ static int ixp4xx_i2c_probe(struct devic + return err; + } + ++ printk(KERN_INFO "i2c: ixp4xx 0.0.4\n"); ++ + dev_set_drvdata(&plat_dev->dev, drv_data); + + return 0; +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-nas100d/drivers/i2c/chips/pcf8563.c 2005-11-16 11:34:15.000000000 +0100 +@@ -0,0 +1,547 @@ ++/* ++ * pcf8563.c - An i2c driver for the Philips PCF8563 RTC ++ * Copyright 2005 Alessandro Zummo ++ * ++ * please send all reports to: ++ * a dot zummo at towertech dot it ++ * ++ * based on the other drivers in this same directory. ++ * ++ * http://www.semiconductors.philips.com/acrobat/datasheets/PCF8563-04.pdf ++ * ++ * 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. ++ */ ++ ++#include <linux/module.h> ++#include <linux/init.h> ++#include <linux/slab.h> ++#include <linux/i2c.h> ++#include <linux/string.h> ++#include <linux/bcd.h> ++#include <linux/rtc.h> ++#include <linux/list.h> ++ ++#include <linux/pcf8563.h> ++ ++#define DRV_VERSION "0.3.1" ++ ++/* Addresses to scan */ ++static unsigned short normal_i2c[] = { 0x51, I2C_CLIENT_END }; ++ ++/* Module parameters */ ++I2C_CLIENT_INSMOD; ++I2C_CLIENT_MODULE_PARM(hctosys, ++ "Set the system time from the hardware clock upon initialization"); ++ ++#define PCF8563_REG_ST1 0x00 /* status */ ++#define PCF8563_REG_ST2 0x01 ++ ++#define PCF8563_REG_SC 0x02 /* datetime */ ++#define PCF8563_REG_MN 0x03 ++#define PCF8563_REG_HR 0x04 ++#define PCF8563_REG_DM 0x05 ++#define PCF8563_REG_DW 0x06 ++#define PCF8563_REG_MO 0x07 ++#define PCF8563_REG_YR 0x08 ++ ++#define PCF8563_REG_AMN 0x09 /* alarm */ ++#define PCF8563_REG_AHR 0x0A ++#define PCF8563_REG_ADM 0x0B ++#define PCF8563_REG_ADW 0x0C ++ ++#define PCF8563_REG_CLKO 0x0D /* clock out */ ++#define PCF8563_REG_TMRC 0x0E /* timer control */ ++#define PCF8563_REG_TMR 0x0F /* timer */ ++ ++#define PCF8563_SC_LV 0x80 /* low voltage */ ++ ++/* Prototypes */ ++static int pcf8563_attach(struct i2c_adapter *adapter); ++static int pcf8563_detach(struct i2c_client *client); ++static int pcf8563_probe(struct i2c_adapter *adapter, int address, int kind); ++static int pcf8563_command(struct i2c_client *client, unsigned int cmd, ++ void *arg); ++ ++static struct i2c_driver pcf8563_driver = { ++ .owner = THIS_MODULE, ++ .name = "pcf8563", ++ .flags = I2C_DF_NOTIFY, ++ .attach_adapter = &pcf8563_attach, ++ .detach_client = &pcf8563_detach, ++}; ++ ++struct pcf8563_data { ++ struct i2c_client client; ++ struct list_head list; ++}; ++ ++static const unsigned char days_in_mo[] = ++ { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; ++ ++static LIST_HEAD(pcf8563_clients); ++ ++/* Workaround until the I2C subsytem will allow to send ++ * commands to a specific client. This function will send the command ++ * to the first client. ++ */ ++int pcf8563_do_command(unsigned int cmd, void *arg) ++{ ++ struct list_head *walk; ++ struct list_head *tmp; ++ struct pcf8563_data *data; ++ ++ list_for_each_safe(walk, tmp, &pcf8563_clients) { ++ data = list_entry(walk, struct pcf8563_data, list); ++ return pcf8563_command(&data->client, cmd, arg); ++ } ++ ++ return -ENODEV; ++} ++ ++#define is_leap(year) \ ++ ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) ++ ++/* make sure the rtc_time values are in bounds */ ++ ++static int pcf8563_validate_tm(struct rtc_time *tm) ++{ ++ int year = tm->tm_year + 1900; ++ ++ if ((tm->tm_year < 70) || (tm->tm_year > 255)) ++ return -EINVAL; ++ ++ if ((tm->tm_mon > 11) || (tm->tm_mday == 0)) ++ return -EINVAL; ++ ++ if (tm->tm_mday > days_in_mo[tm->tm_mon] ++ + ((tm->tm_mon == 1) && is_leap(year))) ++ return -EINVAL; ++ ++ if ((tm->tm_hour >= 24) || (tm->tm_min >= 60) || (tm->tm_sec >= 60)) ++ return -EINVAL; ++ ++ return 0; ++} ++ ++/* ++ * In the routines that deal directly with the pcf8563 hardware, we use ++ * rtc_time -- month 0-11, hour 0-23, yr = calendar year-epoch. ++ */ ++static int pcf8563_get_datetime(struct i2c_client *client, struct rtc_time *tm) ++{ ++ unsigned char buf[13]; ++ unsigned char addr = PCF8563_REG_ST1; ++ ++ struct i2c_msg msgs[] = { ++ { client->addr, 0, 1, &addr }, /* setup read ptr */ ++ { client->addr, I2C_M_RD, 13, buf }, /* read status + date */ ++ }; ++ ++ /* read registers */ ++ if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) { ++ dev_err(&client->dev, "%s: read error\n", __FUNCTION__); ++ return -EIO; ++ } ++ ++ if (buf[PCF8563_REG_SC] & PCF8563_SC_LV) ++ dev_info(&client->dev, ++ "low voltage detected, date/time is not reliable.\n"); ++ ++ dev_dbg(&client->dev, ++ "%s: raw read data - st1=%02x, st2=%02x, sec=%02x, min=%02x, hr=%02x, " ++ "mday=%02x, wday=%02x, mon=%02x, year=%02x\n", ++ __FUNCTION__, ++ buf[0], buf[1], buf[2], buf[3], ++ buf[4], buf[5], buf[6], buf[7], ++ buf[8]); ++ ++ ++ tm->tm_sec = BCD2BIN(buf[PCF8563_REG_SC] & 0x7F); ++ tm->tm_min = BCD2BIN(buf[PCF8563_REG_MN] & 0x7F); ++ tm->tm_hour = BCD2BIN(buf[PCF8563_REG_HR] & 0x3F); /* rtc hr 0-23 */ ++ tm->tm_mday = BCD2BIN(buf[PCF8563_REG_DM] & 0x3F); ++ tm->tm_wday = buf[PCF8563_REG_DW] & 0x07; ++ tm->tm_mon = BCD2BIN(buf[PCF8563_REG_MO] & 0x1F) - 1; /* rtc mn 1-12 */ ++ tm->tm_year = BCD2BIN(buf[PCF8563_REG_YR]) ++ + (buf[PCF8563_REG_MO] & 0x80 ? 100 : 0); ++ ++ dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d, " ++ "mday=%d, mon=%d, year=%d, wday=%d\n", ++ __FUNCTION__, ++ tm->tm_sec, tm->tm_min, tm->tm_hour, ++ tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); ++ ++ if (pcf8563_validate_tm(tm) < 0) { ++ dev_err(&client->dev, "retrieved date/time is not valid.\n"); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++#if 0 ++static int pcf8563_set_datetime(struct i2c_client *client, struct rtc_time *tm, ++ int datetoo, u8 reg_base) ++{ ++ int i, err, xfer; ++ ++ unsigned char buf[8]; ++ ++ static const unsigned char wel[3] = { 0, PCF8563_REG_SR, ++ PCF8563_SR_WEL }; ++ ++ static const unsigned char rwel[3] = { 0, PCF8563_REG_SR, ++ PCF8563_SR_WEL | PCF8563_SR_RWEL }; ++ ++ static const unsigned char diswe[3] = { 0, PCF8563_REG_SR, 0 }; ++ ++ struct pcf8563_data *data = i2c_get_clientdata(client); ++ ++ /* check if all values in the tm struct are correct */ ++ if ((err = pcf8563_validate_tm(tm)) < 0) ++ return err; ++ ++ dev_dbg(&client->dev, "%s: secs=%d, mins=%d, hours=%d, " ++ "mday=%d, mon=%d, year=%d, wday=%d\n", ++ __FUNCTION__, ++ tm->tm_sec, tm->tm_min, tm->tm_hour, ++ tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); ++ ++ buf[PCF8563_REG_SEC] = BIN2BCD(tm->tm_sec); ++ buf[PCF8563_REG_MIN] = BIN2BCD(tm->tm_min); ++ ++ /* set hour and 24hr bit */ ++ buf[PCF8563_REG_HOUR] = BIN2BCD(tm->tm_hour) | PCF8563_HR_MIL; ++ ++ /* should we also set the date? */ ++ if (datetoo) { ++ buf[PCF8563_REG_MDAY] = BIN2BCD(tm->tm_mday); ++ ++ /* month, 0 - 11 */ ++ buf[PCF8563_REG_MONTH] = BIN2BCD(tm->tm_mon); ++ ++ /* year, since 1900 */ ++ buf[PCF8563_REG_YEAR] = BIN2BCD(tm->tm_year + 1900 - data->epoch); ++ buf[PCF8563_REG_WDAY] = tm->tm_wday & 0x07; ++ buf[PCF8563_REG_Y2K] = BIN2BCD(data->epoch / 100); ++ } ++ ++ /* this sequence is required to unlock the chip */ ++ xfer = i2c_master_send(client, wel, 3); ++ if (xfer != 3) { ++ dev_err(&client->dev, "%s: wel - %d\n", __FUNCTION__, xfer); ++ return -EIO; ++ } ++ ++ xfer = i2c_master_send(client, rwel, 3); ++ if (xfer != 3) { ++ dev_err(&client->dev, "%s: rwel - %d\n", __FUNCTION__, xfer); ++ return -EIO; ++ } ++ ++ /* write register's data */ ++ for (i = 0; i < (datetoo ? 8 : 3); i++) { ++ unsigned char rdata[3] = { 0, reg_base + i, buf[i] }; ++ ++ xfer = i2c_master_send(client, rdata, 3); ++ if (xfer != 3) { ++ dev_err(&client->dev, ++ "%s: xfer=%d addr=%02x, data=%02x\n", ++ __FUNCTION__, ++ xfer, rdata[1], rdata[2]); ++ return -EIO; ++ } ++ }; ++ ++ /* disable further writes */ ++ xfer = i2c_master_send(client, diswe, 3); ++ if (xfer != 3) { ++ dev_err(&client->dev, "%s: diswe - %d\n", __FUNCTION__, xfer); ++ return -EIO; ++ } ++ ++ return 0; ++} ++#endif ++ ++static int pcf8563_hctosys(struct i2c_client *client) ++{ ++ int err; ++ ++ struct rtc_time tm; ++ struct timespec tv; ++ ++ err = pcf8563_command(client, PCF8563_CMD_GETDATETIME, &tm); ++ ++ if (err) { ++ dev_err(&client->dev, ++ "Unable to set the system clock\n"); ++ return err; ++ } ++ ++ /* IMPORTANT: the RTC only stores whole seconds. It is arbitrary ++ * whether it stores the most close value or the value with partial ++ * seconds truncated. However, it is important that we use it to store ++ * the truncated value. This is because otherwise it is necessary, ++ * in an rtc sync function, to read both xtime.tv_sec and ++ * xtime.tv_nsec. On some processors (i.e. ARM), an atomic read ++ * of >32bits is not possible. So storing the most close value would ++ * slow down the sync API. So here we have the truncated value and ++ * the best guess is to add 0.5s. ++ */ ++ ++ tv.tv_nsec = NSEC_PER_SEC >> 1; ++ ++ /* WARNING: this is not the C library 'mktime' call, it is a built in ++ * inline function from include/linux/time.h. It expects (requires) ++ * the month to be in the range 1-12 ++ */ ++ ++ tv.tv_sec = mktime(tm.tm_year + 1900, tm.tm_mon + 1, ++ tm.tm_mday, tm.tm_hour, ++ tm.tm_min, tm.tm_sec); ++ ++ do_settimeofday(&tv); ++ ++ dev_info(&client->dev, ++ "setting the system clock to %d-%d-%d %d:%d:%d\n", ++ tm.tm_year + 1900, tm.tm_mon + 1, ++ tm.tm_mday, tm.tm_hour, tm.tm_min, ++ tm.tm_sec); ++ ++ return 0; ++} ++#if 0 ++struct pcf8563_limit ++{ ++ unsigned char reg; ++ unsigned char mask; ++ unsigned char min; ++ unsigned char max; ++}; ++ ++static int pcf8563_validate_client(struct i2c_client *client) ++{ ++ int i, xfer; ++ ++ /* Probe array. We will read the register at the specified ++ * address and check if the given bits are zero. ++ */ ++ static const unsigned char probe_zero_pattern[] = { ++ /* register, mask */ ++ PCF8563_REG_SR, 0x18, ++ PCF8563_REG_DTR, 0xF8, ++ PCF8563_REG_ATR, 0xC0, ++ PCF8563_REG_INT, 0x18, ++ PCF8563_REG_0, 0xFF, ++ }; ++ ++ static const struct pcf8563_limit probe_limits_pattern[] = { ++ /* register, mask, min, max */ ++ { PCF8563_REG_Y2K, 0xFF, 19, 20 }, ++ { PCF8563_REG_DW, 0xFF, 0, 6 }, ++ { PCF8563_REG_YR, 0xFF, 0, 99 }, ++ { PCF8563_REG_MO, 0xFF, 0, 12 }, ++ { PCF8563_REG_DT, 0xFF, 0, 31 }, ++ { PCF8563_REG_HR, 0x7F, 0, 23 }, ++ { PCF8563_REG_MN, 0xFF, 0, 59 }, ++ { PCF8563_REG_SC, 0xFF, 0, 59 }, ++ { PCF8563_REG_Y2K1, 0xFF, 19, 20 }, ++ { PCF8563_REG_Y2K0, 0xFF, 19, 20 }, ++ }; ++ ++ /* check that registers have bits at 0 where expected */ ++ for (i = 0; i < ARRAY_SIZE(probe_zero_pattern); i += 2) { ++ unsigned char buf; ++ ++ struct i2c_msg msgs[2] = { ++ { client->addr, 0, 1, &probe_zero_pattern[i] }, ++ { client->addr, I2C_M_RD, 1, &buf }, ++ }; ++ ++ xfer = i2c_transfer(client->adapter, msgs, 2); ++ if (xfer != 2) { ++ dev_err(&client->adapter->dev, ++ "%s: could not read register %x\n", ++ __FUNCTION__, probe_zero_pattern[i]); ++ ++ return -EIO; ++ } ++ ++ if ((buf & probe_zero_pattern[i+1]) != 0) { ++ dev_err(&client->adapter->dev, ++ "%s: register=%02x, zero pattern=%d, value=%x\n", ++ __FUNCTION__, probe_zero_pattern[i], i, buf); ++ ++ return -ENODEV; ++ } ++ } ++ ++ /* check limits (only registers with bcd values) */ ++ for (i = 0; i < ARRAY_SIZE(probe_limits_pattern); i++) { ++ unsigned char reg, value; ++ ++ struct i2c_msg msgs[2] = { ++ { client->addr, 0, 2, &probe_limits_pattern[i].reg}, ++ { client->addr, I2C_M_RD, 1, ® }, ++ }; ++ ++ xfer = i2c_transfer(client->adapter, msgs, 2); ++ ++ if (xfer != 2) { ++ dev_err(&client->adapter->dev, ++ "%s: could not read register %x\n", ++ __FUNCTION__, probe_limits_pattern[i].reg); ++ ++ return -EIO; ++ } ++ ++ value = BCD2BIN(reg & probe_limits_pattern[i].mask); ++ ++ if (value > probe_limits_pattern[i].max || ++ value < probe_limits_pattern[i].min) { ++ dev_dbg(&client->adapter->dev, ++ "%s: register=%x, lim pattern=%d, value=%d\n", ++ __FUNCTION__, probe_limits_pattern[i].reg, i, value); ++ ++ return -ENODEV; ++ } ++ } ++ ++ return 0; ++} ++#endif ++static int pcf8563_attach(struct i2c_adapter *adapter) ++{ ++ return i2c_probe(adapter, &addr_data, pcf8563_probe); ++} ++ ++static int pcf8563_probe(struct i2c_adapter *adapter, int address, int kind) ++{ ++ struct i2c_client *client; ++ struct pcf8563_data *data; ++ ++ int err = 0; ++ ++ dev_dbg(&adapter->dev, "%s\n", __FUNCTION__); ++ ++ if (!i2c_check_functionality(adapter, I2C_FUNC_I2C)) { ++ err = -ENODEV; ++ goto exit; ++ } ++ ++ if (!(data = kzalloc(sizeof(struct pcf8563_data), GFP_KERNEL))) { ++ err = -ENOMEM; ++ goto exit; ++ } ++ ++ client = &data->client; ++ client->addr = address; ++ client->driver = &pcf8563_driver; ++ client->adapter = adapter; ++ ++ strlcpy(client->name, "pcf8563", I2C_NAME_SIZE); ++ ++ i2c_set_clientdata(client, data); ++ ++ /* Verify the chip is really an PCF8563 */ ++ if (kind < 0) { ++/* if (pcf8563_validate_client(client) < 0) { ++ err = -ENODEV; ++ goto exit_kfree; ++ } ++*/ } ++ ++ /* Inform the i2c layer */ ++ if ((err = i2c_attach_client(client))) ++ goto exit_kfree; ++ ++ list_add(&data->list, &pcf8563_clients); ++ ++ dev_info(&client->dev, "chip found, driver version " DRV_VERSION "\n"); ++ ++ /* If requested, set the system time */ ++ if (hctosys) ++ pcf8563_hctosys(client); ++ ++ return 0; ++ ++exit_kfree: ++ kfree(data); ++ ++exit: ++ return err; ++} ++ ++static int pcf8563_detach(struct i2c_client *client) ++{ ++ int err; ++ struct pcf8563_data *data = i2c_get_clientdata(client); ++ ++ if ((err = i2c_detach_client(client))) ++ return err; ++ ++ list_del(&data->list); ++ ++ kfree(data); ++ ++ return 0; ++} ++ ++static int pcf8563_command(struct i2c_client *client, unsigned int cmd, ++ void *param) ++{ ++ if (param == NULL) ++ return -EINVAL; ++ ++ if (!capable(CAP_SYS_TIME)) ++ return -EACCES; ++ ++ dev_dbg(&client->dev, "%s: cmd=%d\n", __FUNCTION__, cmd); ++ ++ switch (cmd) { ++ case PCF8563_CMD_GETDATETIME: ++ return pcf8563_get_datetime(client, param); ++/* ++ case PCF8563_CMD_SETTIME: ++ return pcf8563_set_datetime(client, param, 0, ++ PCF8563_CCR_BASE); ++ ++ case PCF8563_CMD_SETDATETIME: ++ return pcf8563_set_datetime(client, param, 1, ++ PCF8563_CCR_BASE); ++ ++ case PCF8563_CMD_GETALARM: ++ return pcf8563_get_datetime(client, param, PCF8563_ALM0_BASE); ++ ++ case PCF8563_CMD_SETALARM: ++ return pcf8563_set_datetime(client, param, 1, ++ PCF8563_ALM0_BASE); ++*/ ++ default: ++ return -EINVAL; ++ } ++} ++ ++static int __init pcf8563_init(void) ++{ ++ return i2c_add_driver(&pcf8563_driver); ++} ++ ++static void __exit pcf8563_exit(void) ++{ ++ i2c_del_driver(&pcf8563_driver); ++} ++ ++MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>"); ++MODULE_DESCRIPTION("Philips PCF8563 RTC driver"); ++MODULE_LICENSE("GPL"); ++MODULE_VERSION(DRV_VERSION); ++ ++EXPORT_SYMBOL_GPL(pcf8563_do_command); ++ ++module_init(pcf8563_init); ++module_exit(pcf8563_exit); +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-nas100d/include/linux/pcf8563.h 2005-11-15 20:55:54.000000000 +0100 +@@ -0,0 +1,24 @@ ++/* ++ * pcf8563.h - defines for drivers/i2c/chips/pcf8563.c ++ * Copyright 2005 Alessandro Zummo ++ * ++ * 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. ++ */ ++ ++#ifndef __LINUX_PCF8563_H__ ++#define __LINUX_PCF8563_H__ ++ ++/* commands */ ++ ++#define PCF8563_CMD_GETDATETIME 0 ++#define PCF8563_CMD_SETTIME 1 ++#define PCF8563_CMD_SETDATETIME 2 ++#define PCF8563_CMD_GETALARM 3 ++#define PCF8563_CMD_SETALARM 4 ++ ++extern int pcf8563_do_command(unsigned int cmd, void *arg); ++ ++#endif /* __LINUX_PCF8563_H__ */ +--- linux-nas100d.orig/drivers/i2c/chips/Kconfig 2005-11-11 22:22:43.000000000 +0100 ++++ linux-nas100d/drivers/i2c/chips/Kconfig 2005-11-15 22:37:25.000000000 +0100 +@@ -126,4 +126,13 @@ config SENSORS_MAX6875 + This driver can also be built as a module. If so, the module + will be called max6875. + ++config RTC_PCF8563_I2C ++ tristate "Philips PCF8563 RTC" ++ depends on I2C && EXPERIMENTAL ++ help ++ If you say yes here you get support for the Philips PCF8563 ++ Real Time Clock chip. This chip is used by the Iomega NAS100D. ++ ++ This driver can also be built as a module. If so, the module ++ will be called pcf8563. + endmenu +--- linux-nas100d.orig/drivers/i2c/chips/Makefile 2005-11-11 22:22:43.000000000 +0100 ++++ linux-nas100d/drivers/i2c/chips/Makefile 2005-11-15 21:11:26.000000000 +0100 +@@ -13,6 +13,7 @@ obj-$(CONFIG_SENSORS_PCF8591) += pcf8591 + obj-$(CONFIG_SENSORS_RTC8564) += rtc8564.o + obj-$(CONFIG_ISP1301_OMAP) += isp1301_omap.o + obj-$(CONFIG_TPS65010) += tps65010.o ++obj-$(CONFIG_RTC_PCF8563_I2C) += pcf8563.o + + ifeq ($(CONFIG_I2C_DEBUG_CHIP),y) + EXTRA_CFLAGS += -DDEBUG diff --git a/packages/linux/nas100d-kernel/2.6.14/60-nas100d-ide.patch b/packages/linux/nas100d-kernel/2.6.14/60-nas100d-ide.patch new file mode 100644 index 0000000000..9f5d164356 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/60-nas100d-ide.patch @@ -0,0 +1,143 @@ + drivers/ide/pci/aec62xx.c | 51 +++++++++++++++++++++++++++++++++++++++++++--- + drivers/ide/setup-pci.c | 12 +++++++++- + 2 files changed, 59 insertions(+), 4 deletions(-) + +--- linux-nas100d.orig/drivers/ide/pci/aec62xx.c 2005-11-12 15:38:03.000000000 +0100 ++++ linux-nas100d/drivers/ide/pci/aec62xx.c 2005-11-13 01:45:26.000000000 +0100 +@@ -145,6 +145,15 @@ static int aec6210_tune_chipset (ide_dri + unsigned long flags; + + local_irq_save(flags); ++ ++#ifdef CONFIG_MACH_NAS100D ++ printk(KERN_INFO "aec62xx: nas100d tuning\n"); ++ pci_write_config_byte(hwif->pci_dev, PCI_LATENCY_TIMER, 0x90); ++ /* Enable burst mode & force 2 ports enable */ ++ pci_read_config_byte(hwif->pci_dev, 0x4a, &tmp0); ++ pci_write_config_byte(hwif->pci_dev, 0x4a, tmp0 | 0x80); ++#endif ++ + /* 0x40|(2*drive->dn): Active, 0x41|(2*drive->dn): Recovery */ + pci_read_config_word(dev, 0x40|(2*drive->dn), &d_conf); + tmp0 = pci_bus_clock_list(speed, BUSCLOCK(dev)); +@@ -263,7 +272,7 @@ static int aec62xx_irq_timeout (ide_driv + case PCI_DEVICE_ID_ARTOP_ATP865: + case PCI_DEVICE_ID_ARTOP_ATP865R: + printk(" AEC62XX time out "); +-#if 0 ++#ifdef CONFIG_MACH_NAS100D + { + int i = 0; + u8 reg49h = 0; +@@ -277,7 +286,7 @@ static int aec62xx_irq_timeout (ide_driv + default: + break; + } +-#if 0 ++#ifdef CONFIG_MACH_NAS100D + { + ide_hwif_t *hwif = HWIF(drive); + struct pci_dev *dev = hwif->pci_dev; +@@ -299,6 +308,14 @@ static unsigned int __devinit init_chips + { + int bus_speed = system_bus_clock(); + ++#ifdef CONFIG_MACH_NAS100D ++ /* enable both ports */ ++ byte tmp; ++ printk(KERN_INFO "%s: nas100d ports enable\n", name); ++ pci_read_config_byte(dev, 0x4a, &tmp); ++ pci_write_config_byte(dev, 0x4a, tmp | 0x06); ++#endif ++ + if (dev->resource[PCI_ROM_RESOURCE].start) { + pci_write_config_dword(dev, PCI_ROM_ADDRESS, dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE); + printk(KERN_INFO "%s: ROM enabled at 0x%08lx\n", name, dev->resource[PCI_ROM_RESOURCE].start); +@@ -312,12 +329,35 @@ static unsigned int __devinit init_chips + return dev->irq; + } + ++#ifdef CONFIG_MACH_NAS100D ++static void nas100d_insw (unsigned long port, u16 *addr, u32 count) ++{ ++ while (count--) ++ *addr++ = __cpu_to_le16(inw(port)); ++} ++ ++static void nas100d_outw (u16 val, unsigned long port) ++{ ++ u32 n, byte_enables, data; ++ n = port % 4; ++ byte_enables = (0xf & ~(BIT(n) | BIT(n+1))) << IXP4XX_PCI_NP_CBE_BESL; ++ data = val << (8*n); ++ ixp4xx_pci_write(port, byte_enables | NP_CMD_IOWRITE, __le16_to_cpu(data)); ++} ++#endif ++ + static void __devinit init_hwif_aec62xx(ide_hwif_t *hwif) + { + hwif->autodma = 0; + hwif->tuneproc = &aec62xx_tune_drive; + hwif->speedproc = &aec62xx_tune_chipset; + ++#ifdef CONFIG_MACH_NAS100D ++ printk(KERN_INFO "aec62xx: enabling nas100d iops\n"); ++ hwif->OUTW = nas100d_outw; ++ hwif->INSW = nas100d_insw; ++#endif ++ + if (hwif->pci_dev->device == PCI_DEVICE_ID_ARTOP_ATP850UF) { + hwif->serialized = hwif->channel; + hwif->no_dsc = 1; +@@ -360,7 +400,7 @@ static void __devinit init_dma_aec62xx(i + } else { + u8 ata66 = 0; + pci_read_config_byte(hwif->pci_dev, 0x49, &ata66); +- if (!(hwif->udma_four)) ++ if (!(hwif->udma_four)) + hwif->udma_four = (ata66&(hwif->channel?0x02:0x01))?0:1; + } + +@@ -427,6 +467,9 @@ static ide_pci_device_t aec62xx_chipsets + .init_dma = init_dma_aec62xx, + .channels = 2, + .autodma = AUTODMA, ++#ifdef CONFIG_MACH_NAS100D ++ .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, ++#endif + .bootable = OFF_BOARD, + },{ /* 4 */ + .name = "AEC6X80R", +@@ -454,6 +497,8 @@ static int __devinit aec62xx_init_one(st + { + ide_pci_device_t *d = &aec62xx_chipsets[id->driver_data]; + ++ printk(KERN_INFO "aec62xx: using config %lx\n", id->driver_data); ++ + return d->init_setup(dev, d); + } + +--- linux-nas100d.orig/drivers/ide/setup-pci.c 2005-11-12 15:38:03.000000000 +0100 ++++ linux-nas100d/drivers/ide/setup-pci.c 2005-11-13 01:36:30.000000000 +0100 +@@ -602,10 +602,20 @@ void ide_pci_setup_ports(struct pci_dev + if ((d->flags & IDEPCI_FLAG_FORCE_PDC) && + (secondpdc++==1) && (port==1)) + goto controller_ok; +- ++ + if (e->reg && (pci_read_config_byte(dev, e->reg, &tmp) || + (tmp & e->mask) != e->val)) ++#ifdef CONFIG_MACH_NAS100D ++ { ++ pci_write_config_byte(dev, e->reg, tmp & ~0x01); ++#endif + continue; /* port not enabled */ ++#ifdef CONFIG_MACH_NAS100D ++ } ++ else ++ pci_write_config_byte(dev, e->reg, tmp & ~0x01); ++#endif ++ + controller_ok: + + if (d->channels <= port) diff --git a/packages/linux/nas100d-kernel/2.6.14/90-ixp4xx-pci-le.patch b/packages/linux/nas100d-kernel/2.6.14/90-ixp4xx-pci-le.patch new file mode 100644 index 0000000000..1a37b13a79 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/90-ixp4xx-pci-le.patch @@ -0,0 +1,11 @@ +--- linux-2.6.13/.pc/90-ixp4xx-pci-le.patch/arch/arm/mach-ixp4xx/common-pci.c 2005-08-28 16:41:01.000000000 -0700 ++++ linux-2.6.13/arch/arm/mach-ixp4xx/common-pci.c 2005-10-26 15:24:30.337542292 -0700 +@@ -427,7 +427,7 @@ void __init ixp4xx_pci_preinit(void) + #ifdef __ARMEB__ + *PCI_CSR = PCI_CSR_IC | PCI_CSR_ABE | PCI_CSR_PDS | PCI_CSR_ADS; + #else +- *PCI_CSR = PCI_CSR_IC; ++ *PCI_CSR = PCI_CSR_IC | PCI_CSR_ABE; + #endif + + pr_debug("DONE\n"); diff --git a/packages/linux/openslug-kernel-2.6.11.2/defconfig b/packages/linux/nas100d-kernel/2.6.14/defconfig index c14c06c32c..939a5d437e 100644 --- a/packages/linux/openslug-kernel-2.6.11.2/defconfig +++ b/packages/linux/nas100d-kernel/2.6.14/defconfig @@ -1,14 +1,13 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.11.2 -# Sat Jun 18 15:52:14 2005 +# Linux kernel version: 2.6.14 +# Sun Nov 13 02:06:49 2005 # CONFIG_ARM=y CONFIG_MMU=y CONFIG_UID16=y CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_GENERIC_IOMAP=y # # Code maturity level options @@ -16,24 +15,28 @@ CONFIG_GENERIC_IOMAP=y CONFIG_EXPERIMENTAL=y CONFIG_CLEAN_COMPILE=y CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 # # General setup # CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set -CONFIG_BSD_PROCESS_ACCT=y -# CONFIG_BSD_PROCESS_ACCT_V3 is not set +# CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y # CONFIG_AUDIT is not set -CONFIG_LOG_BUF_SHIFT=14 CONFIG_HOTPLUG=y CONFIG_KOBJECT_UEVENT=y # CONFIG_IKCONFIG is not set +CONFIG_INITRAMFS_SOURCE="" CONFIG_EMBEDDED=y # CONFIG_KALLSYMS is not set +CONFIG_PRINTK=y +CONFIG_BUG=y +# CONFIG_BASE_FULL is not set CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y @@ -43,6 +46,7 @@ CONFIG_CC_ALIGN_LABELS=0 CONFIG_CC_ALIGN_LOOPS=0 CONFIG_CC_ALIGN_JUMPS=0 # CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=1 # # Loadable module support @@ -79,6 +83,7 @@ CONFIG_ARCH_IXP4XX=y # CONFIG_ARCH_VERSATILE is not set # CONFIG_ARCH_IMX is not set # CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_AAEC2000 is not set CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y # @@ -93,15 +98,14 @@ CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y # CONFIG_ARCH_IXDP425 is not set # CONFIG_MACH_IXDPG425 is not set # CONFIG_MACH_IXDP465 is not set -CONFIG_ARCH_NSLU2=y # CONFIG_ARCH_PRPMC1100 is not set +CONFIG_MACH_NAS100D=y # CONFIG_MACH_GTWX5715 is not set # # IXP4xx Options # CONFIG_IXP4XX_INDIRECT_PCI=y -CONFIG_DMABOUNCE=y # # Processor Type @@ -112,24 +116,21 @@ CONFIG_CPU_32v5=y CONFIG_CPU_ABRT_EV5T=y CONFIG_CPU_CACHE_VIVT=y CONFIG_CPU_TLB_V4WBI=y -CONFIG_CPU_MINICACHE=y # # Processor Features # -# CONFIG_ARM_THUMB is not set +CONFIG_ARM_THUMB=y CONFIG_CPU_BIG_ENDIAN=y CONFIG_XSCALE_PMU=y +CONFIG_DMABOUNCE=y # -# General setup +# Bus support # +CONFIG_ISA_DMA_API=y CONFIG_PCI=y -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -# CONFIG_XIP_KERNEL is not set CONFIG_PCI_LEGACY_PROC=y -# CONFIG_PCI_NAMES is not set # # PCCARD (PCMCIA/CardBus) support @@ -137,49 +138,261 @@ CONFIG_PCI_LEGACY_PROC=y # CONFIG_PCCARD is not set # -# PC-card bridges +# Kernel Features +# +# CONFIG_PREEMPT is not set +# CONFIG_NO_IDLE_HZ is not set +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +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_ALIGNMENT_TRAP=y + +# +# Boot options # +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="root=/dev/mtdblock3 rw rootfstype=jffs2 mem=64M@0x00000000 init=/linuxrc noirqdebug console=ttyS0,115200n8" +# CONFIG_XIP_KERNEL is not set # -# At least one math emulation must be selected +# Floating point emulation +# + +# +# At least one emulation must be selected # CONFIG_FPE_NWFPE=y # CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set +# CONFIG_ARTHUR is not set # -# Generic Driver Options +# Power management options # -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -# CONFIG_FW_LOADER is not set -# CONFIG_DEBUG_DRIVER is not set -CONFIG_PM=y -# CONFIG_PREEMPT is not set -CONFIG_APM=y -# CONFIG_ARTHUR is not set -CONFIG_CMDLINE="root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc reboot=s console=ttyS0,115200n8" -CONFIG_ALIGNMENT_TRAP=y +# CONFIG_PM is not set # -# Parallel port support +# Networking # -# CONFIG_PARPORT is not set +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=m +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set +# CONFIG_NET_KEY is not set +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_PNP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +CONFIG_IPV6=m +# CONFIG_IPV6_PRIVACY is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_INET6_TUNNEL=m +CONFIG_IPV6_TUNNEL=m +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_BRIDGE_NETFILTER=y +# CONFIG_NETFILTER_NETLINK is not set + +# +# IP: Netfilter Configuration +# +CONFIG_IP_NF_CONNTRACK=m +# CONFIG_IP_NF_CT_ACCT is not set +# CONFIG_IP_NF_CONNTRACK_MARK is not set +# CONFIG_IP_NF_CONNTRACK_EVENTS is not set +CONFIG_IP_NF_CT_PROTO_SCTP=m +CONFIG_IP_NF_FTP=m +CONFIG_IP_NF_IRC=m +# CONFIG_IP_NF_NETBIOS_NS is not set +CONFIG_IP_NF_TFTP=m +CONFIG_IP_NF_AMANDA=m +# CONFIG_IP_NF_PPTP is not set +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_LIMIT=m +CONFIG_IP_NF_MATCH_IPRANGE=m +CONFIG_IP_NF_MATCH_MAC=m +CONFIG_IP_NF_MATCH_PKTTYPE=m +CONFIG_IP_NF_MATCH_MARK=m +CONFIG_IP_NF_MATCH_MULTIPORT=m +CONFIG_IP_NF_MATCH_TOS=m +CONFIG_IP_NF_MATCH_RECENT=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_DSCP=m +CONFIG_IP_NF_MATCH_AH_ESP=m +CONFIG_IP_NF_MATCH_LENGTH=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_MATCH_TCPMSS=m +CONFIG_IP_NF_MATCH_HELPER=m +CONFIG_IP_NF_MATCH_STATE=m +CONFIG_IP_NF_MATCH_CONNTRACK=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_MATCH_PHYSDEV=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_MATCH_REALM=m +# CONFIG_IP_NF_MATCH_SCTP is not set +# CONFIG_IP_NF_MATCH_DCCP is not set +CONFIG_IP_NF_MATCH_COMMENT=m +CONFIG_IP_NF_MATCH_HASHLIMIT=m +# CONFIG_IP_NF_MATCH_STRING is not set +CONFIG_IP_NF_FILTER=m +# CONFIG_IP_NF_TARGET_REJECT is not set +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_IP_NF_TARGET_TCPMSS=m +# CONFIG_IP_NF_TARGET_NFQUEUE is not set +CONFIG_IP_NF_NAT=m +CONFIG_IP_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_IP_NF_NAT_SNMP_BASIC=m +CONFIG_IP_NF_NAT_IRC=m +CONFIG_IP_NF_NAT_FTP=m +CONFIG_IP_NF_NAT_TFTP=m +CONFIG_IP_NF_NAT_AMANDA=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_TOS=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_DSCP=m +CONFIG_IP_NF_TARGET_MARK=m +CONFIG_IP_NF_TARGET_CLASSIFY=m +# CONFIG_IP_NF_TARGET_TTL is not set +# CONFIG_IP_NF_RAW is not set +# CONFIG_IP_NF_ARPTABLES is not set + +# +# IPv6: Netfilter Configuration (EXPERIMENTAL) +# +# CONFIG_IP6_NF_QUEUE is not set +# CONFIG_IP6_NF_IPTABLES is not set +# CONFIG_IP6_NF_TARGET_NFQUEUE is not set + +# +# Bridge: Netfilter Configuration +# +# CONFIG_BRIDGE_NF_EBTABLES is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set +# CONFIG_ATM is not set +CONFIG_BRIDGE=m +CONFIG_VLAN_8021Q=m +# CONFIG_DECNET is not set +CONFIG_LLC=m +# CONFIG_LLC2 is not set +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=y +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +CONFIG_IPDDP_DECAP=y +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_NET_DIVERT is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_SCHED is not set +CONFIG_NET_CLS_ROUTE=y + +# +# Network testing +# +CONFIG_NET_PKTGEN=m +# 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_HIDP is not set + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUSB=m +CONFIG_BT_HCIUSB_SCO=y +# CONFIG_BT_HCIUART is not set +CONFIG_BT_HCIBCM203X=m +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_IEEE80211 is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=m # # Memory Technology Devices (MTD) # CONFIG_MTD=y # CONFIG_MTD_DEBUG is not set -CONFIG_MTD_PARTITIONS=y CONFIG_MTD_CONCAT=y +CONFIG_MTD_PARTITIONS=y CONFIG_MTD_REDBOOT_PARTS=y CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 # CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set # CONFIG_MTD_REDBOOT_PARTS_READONLY is not set -CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_CMDLINE_PARTS is not set # CONFIG_MTD_AFS_PARTS is not set # @@ -197,10 +410,14 @@ CONFIG_MTD_BLOCK=y 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_CFI_ADV_OPTIONS=y +# CONFIG_MTD_CFI_NOSWAP is not set +CONFIG_MTD_CFI_BE_BYTE_SWAP=y +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +CONFIG_MTD_CFI_GEOMETRY=y +# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set # 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 @@ -208,6 +425,7 @@ 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_OTP is not set CONFIG_MTD_CFI_INTELEXT=y # CONFIG_MTD_CFI_AMDSTD is not set # CONFIG_MTD_CFI_STAA is not set @@ -226,6 +444,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y CONFIG_MTD_IXP4XX=y # CONFIG_MTD_EDB7312 is not set # CONFIG_MTD_PCI is not set +# CONFIG_MTD_PLATRAM is not set # # Self-contained MTD device drivers @@ -250,13 +469,17 @@ CONFIG_MTD_IXP4XX=y # CONFIG_MTD_NAND is not set # +# Parallel port support +# +# CONFIG_PARPORT is not set + +# # Plug and Play support # # # Block devices # -# 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 @@ -268,11 +491,12 @@ CONFIG_BLK_DEV_LOOP=m # 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_COUNT=4 CONFIG_BLK_DEV_RAM_SIZE=10240 CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -# CONFIG_CDROM_PKTCDVD is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set # # IO Schedulers @@ -284,198 +508,183 @@ CONFIG_IOSCHED_DEADLINE=y # CONFIG_ATA_OVER_ETH is not set # -# Multi-device support (RAID and LVM) -# -CONFIG_MD=y -CONFIG_BLK_DEV_MD=m -# CONFIG_MD_LINEAR is not set -CONFIG_MD_RAID0=m -CONFIG_MD_RAID1=m -# CONFIG_MD_RAID10 is not set -CONFIG_MD_RAID5=m -# CONFIG_MD_RAID6 is not set -# CONFIG_MD_MULTIPATH is not set -# CONFIG_MD_FAULTY is not set -# CONFIG_BLK_DEV_DM is not set - -# -# Networking support +# ATA/ATAPI/MFM/RLL support # -CONFIG_NET=y +CONFIG_IDE=y +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +# CONFIG_BLK_DEV_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_IDE_TASK_IOCTL is not set + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=y +CONFIG_BLK_DEV_IDEPCI=y +# CONFIG_IDEPCI_SHARE_IRQ is not set +# CONFIG_BLK_DEV_OFFBOARD is not set +CONFIG_BLK_DEV_GENERIC=y +# CONFIG_BLK_DEV_OPTI621 is not set +# CONFIG_BLK_DEV_SL82C105 is not set +CONFIG_BLK_DEV_IDEDMA_PCI=y +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +CONFIG_IDEDMA_PCI_AUTO=y +# CONFIG_IDEDMA_ONLYDISK is not set +CONFIG_BLK_DEV_AEC62XX=m +# CONFIG_BLK_DEV_ALI15X3 is not set +# CONFIG_BLK_DEV_AMD74XX is not set +# CONFIG_BLK_DEV_CMD64X is not set +# CONFIG_BLK_DEV_TRIFLEX is not set +# CONFIG_BLK_DEV_CY82C693 is not set +# CONFIG_BLK_DEV_CS5520 is not set +# CONFIG_BLK_DEV_CS5530 is not set +# CONFIG_BLK_DEV_HPT34X is not set +# CONFIG_BLK_DEV_HPT366 is not set +# CONFIG_BLK_DEV_SC1200 is not set +# CONFIG_BLK_DEV_PIIX is not set +# CONFIG_BLK_DEV_IT821X is not set +# CONFIG_BLK_DEV_NS87415 is not set +# CONFIG_BLK_DEV_PDC202XX_OLD is not set +# CONFIG_BLK_DEV_PDC202XX_NEW is not set +# CONFIG_BLK_DEV_SVWKS is not set +# CONFIG_BLK_DEV_SIIMAGE is not set +# CONFIG_BLK_DEV_SLC90E66 is not set +# CONFIG_BLK_DEV_TRM290 is not set +# CONFIG_BLK_DEV_VIA82CXXX is not set +# CONFIG_IDE_ARM is not set +CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_IDEDMA_IVB is not set +CONFIG_IDEDMA_AUTO=y +# CONFIG_BLK_DEV_HD is not set # -# Networking options +# SCSI device support # -CONFIG_PACKET=m -CONFIG_PACKET_MMAP=y -CONFIG_NETLINK_DEV=m -CONFIG_UNIX=y -# CONFIG_NET_KEY is not set -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -# CONFIG_IP_PNP_RARP is not set -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE=m -# CONFIG_ARPD is not set -CONFIG_SYN_COOKIES=y -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -CONFIG_INET_TUNNEL=m -CONFIG_IP_TCPDIAG=y -# CONFIG_IP_TCPDIAG_IPV6 is not set +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_PROC_FS=y # -# IP: Virtual Server Configuration +# SCSI support type (disk, tape, CD-ROM) # -CONFIG_IP_VS=m -CONFIG_IP_VS_DEBUG=y -CONFIG_IP_VS_TAB_BITS=12 +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=m +# CONFIG_CHR_DEV_SCH is not set # -# IPVS transport protocol load balancing support +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs # -# CONFIG_IP_VS_PROTO_TCP is not set -# CONFIG_IP_VS_PROTO_UDP is not set -# CONFIG_IP_VS_PROTO_ESP is not set -# CONFIG_IP_VS_PROTO_AH is not set +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set # -# IPVS scheduler +# SCSI Transport Attributes # -CONFIG_IP_VS_RR=m -CONFIG_IP_VS_WRR=m -CONFIG_IP_VS_LC=m -CONFIG_IP_VS_WLC=m -CONFIG_IP_VS_LBLC=m -CONFIG_IP_VS_LBLCR=m -CONFIG_IP_VS_DH=m -CONFIG_IP_VS_SH=m -# CONFIG_IP_VS_SED is not set -# CONFIG_IP_VS_NQ is not set +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set # -# IPVS application helper +# SCSI low-level drivers # -# CONFIG_IPV6 is not set -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set -CONFIG_BRIDGE_NETFILTER=y +# 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_DPT_I2O is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_SATA 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_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_FC is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +CONFIG_SCSI_QLA2XXX=y +# CONFIG_SCSI_QLA21XX is not set +# CONFIG_SCSI_QLA22XX is not set +# CONFIG_SCSI_QLA2300 is not set +# CONFIG_SCSI_QLA2322 is not set +# CONFIG_SCSI_QLA6312 is not set +# CONFIG_SCSI_QLA24XX is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_DEBUG is not set # -# IP: Netfilter Configuration +# Multi-device support (RAID and LVM) # -# CONFIG_IP_NF_CONNTRACK is not set -# CONFIG_IP_NF_CONNTRACK_MARK is not set -# CONFIG_IP_NF_QUEUE is not set -# CONFIG_IP_NF_IPTABLES is not set -# CONFIG_IP_NF_ARPTABLES is not set +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID5=m +CONFIG_MD_RAID6=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_CRYPT is not set +# CONFIG_DM_SNAPSHOT is not set +# CONFIG_DM_MIRROR is not set +# CONFIG_DM_ZERO is not set +# CONFIG_DM_MULTIPATH is not set # -# Bridge: Netfilter Configuration +# Fusion MPT device support # -# CONFIG_BRIDGE_NF_EBTABLES is not set -CONFIG_XFRM=y -# CONFIG_XFRM_USER is not set +# CONFIG_FUSION is not set +# CONFIG_FUSION_SPI is not set +# CONFIG_FUSION_FC is not set +# CONFIG_FUSION_SAS is not set # -# SCTP Configuration (EXPERIMENTAL) -# -# CONFIG_IP_SCTP is not set -# CONFIG_ATM is not set -CONFIG_BRIDGE=m -CONFIG_VLAN_8021Q=m -# CONFIG_DECNET is not set -CONFIG_LLC=m -# CONFIG_LLC2 is not set -CONFIG_IPX=m -# CONFIG_IPX_INTERN is not set -CONFIG_ATALK=m -CONFIG_DEV_APPLETALK=y -CONFIG_IPDDP=m -CONFIG_IPDDP_ENCAP=y -CONFIG_IPDDP_DECAP=y -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set - +# IEEE 1394 (FireWire) support # -# QoS and/or fair queueing -# -CONFIG_NET_SCHED=y -CONFIG_NET_SCH_CLK_JIFFIES=y -# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set -# CONFIG_NET_SCH_CLK_CPU is not set -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_HTB=m -# CONFIG_NET_SCH_HFSC is not set -CONFIG_NET_SCH_PRIO=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 is not set -CONFIG_NET_SCH_INGRESS=m -CONFIG_NET_QOS=y -CONFIG_NET_ESTIMATOR=y -CONFIG_NET_CLS=y -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 is not set -# CONFIG_NET_CLS_IND is not set -# CONFIG_CLS_U32_MARK is not set -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m -# CONFIG_NET_CLS_ACT is not set -CONFIG_NET_CLS_POLICE=y +# CONFIG_IEEE1394 is not set # -# Network testing +# I2O device support # -CONFIG_NET_PKTGEN=m -CONFIG_NETPOLL=y -CONFIG_NETPOLL_RX=y -CONFIG_NETPOLL_TRAP=y -CONFIG_NET_POLL_CONTROLLER=y -# 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_HIDP is not set +# CONFIG_I2O is not set # -# Bluetooth device drivers +# Network device support # -CONFIG_BT_HCIUSB=m -CONFIG_BT_HCIUSB_SCO=y -# CONFIG_BT_HCIUART is not set -# CONFIG_BT_HCIBCM203X is not set -# CONFIG_BT_HCIBPA10X is not set -# CONFIG_BT_HCIBFUSB is not set -# CONFIG_BT_HCIVHCI is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set CONFIG_TUN=m -# CONFIG_ETHERTAP is not set # # ARCnet devices @@ -483,14 +692,21 @@ CONFIG_TUN=m # CONFIG_ARCNET is not set # +# PHY device support +# +# CONFIG_PHYLIB is not set + +# # Ethernet (10 or 100Mbit) # 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_SMC91X is not set +# CONFIG_DM9000 is not set # # Tulip family network device support @@ -527,13 +743,17 @@ CONFIG_NET_PCI=y # 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_SK98LIN is not set # CONFIG_VIA_VELOCITY is not set # CONFIG_TIGON3 is not set +# CONFIG_BNX2 is not set # # Ethernet (10000 Mbit) # +# CONFIG_CHELSIO_T1 is not set # CONFIG_IXGB is not set # CONFIG_S2IO is not set @@ -555,6 +775,7 @@ CONFIG_NET_RADIO=y # # Wireless 802.11b ISA/PCI cards support # +# CONFIG_AIRO is not set # CONFIG_HERMES is not set # CONFIG_ATMEL is not set @@ -562,6 +783,7 @@ CONFIG_NET_RADIO=y # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support # # CONFIG_PRISM54 is not set +# CONFIG_HOSTAP is not set CONFIG_NET_WIRELESS=y # @@ -582,94 +804,10 @@ CONFIG_PPP_BSDCOMP=m # CONFIG_NET_FC is not set # CONFIG_SHAPER is not set CONFIG_NETCONSOLE=m - -# -# ATA/ATAPI/MFM/RLL support -# -# CONFIG_IDE is not set - -# -# SCSI device support -# -CONFIG_SCSI=y -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 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 - -# -# SCSI Transport Attributes -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set -# CONFIG_SCSI_ISCSI_ATTRS is not set - -# -# SCSI low-level drivers -# -# 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_DPT_I2O is not set -# CONFIG_MEGARAID_NEWGEN is not set -# CONFIG_MEGARAID_LEGACY is not set -# CONFIG_SCSI_SATA is not set -# CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_DMX3191D is not set -# CONFIG_SCSI_EATA is not set -# CONFIG_SCSI_EATA_PIO 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_SYM53C8XX_2 is not set -# CONFIG_SCSI_IPR is not set -# CONFIG_SCSI_QLOGIC_ISP is not set -# CONFIG_SCSI_QLOGIC_FC is not set -# CONFIG_SCSI_QLOGIC_1280 is not set -CONFIG_SCSI_QLA2XXX=y -# CONFIG_SCSI_QLA21XX is not set -# CONFIG_SCSI_QLA22XX is not set -# CONFIG_SCSI_QLA2300 is not set -# CONFIG_SCSI_QLA2322 is not set -# CONFIG_SCSI_QLA6312 is not set -# CONFIG_SCSI_DC395x is not set -# CONFIG_SCSI_DC390T is not set -# CONFIG_SCSI_NSP32 is not set -# CONFIG_SCSI_DEBUG is not set - -# -# Fusion MPT device support -# -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# -# CONFIG_IEEE1394 is not set - -# -# I2O device support -# -# CONFIG_I2O is not set +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_RX is not set +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NET_POLL_CONTROLLER=y # # ISDN subsystem @@ -679,22 +817,31 @@ CONFIG_SCSI_QLA2XXX=y # # Input device support # -# CONFIG_INPUT is not set +CONFIG_INPUT=m # # Userland interfaces # +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=m +# CONFIG_INPUT_EVBUG is not set # -# Input I/O drivers +# Input Device Drivers # -# CONFIG_GAMEPORT is not set -CONFIG_SOUND_GAMEPORT=y -# CONFIG_SERIO is not set +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set # -# Input Device Drivers +# Hardware I/O ports # +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set # # Character devices @@ -715,9 +862,10 @@ CONFIG_SERIAL_8250_NR_UARTS=2 # CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_LEGACY_PTY_COUNT=16 # # IPMI @@ -747,7 +895,7 @@ CONFIG_IXP4XX_WATCHDOG=y # # CONFIG_USBPCWATCHDOG is not set # CONFIG_NVRAM is not set -# CONFIG_RTC is not set +CONFIG_RTC=m # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set @@ -759,6 +907,11 @@ CONFIG_IXP4XX_WATCHDOG=y # CONFIG_RAW_DRIVER is not set # +# TPM devices +# +# CONFIG_TCG_TPM is not set + +# # I2C support # CONFIG_I2C=y @@ -781,12 +934,11 @@ CONFIG_I2C_ALGOBIT=y # 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_IOP3XX is not set -# CONFIG_I2C_ISA is not set CONFIG_I2C_IXP4XX=y # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_PROSAVAGE is not set # CONFIG_I2C_SAVAGE4 is not set # CONFIG_SCx200_ACB is not set @@ -800,17 +952,39 @@ CONFIG_I2C_IXP4XX=y # CONFIG_I2C_PCA_ISA is not set # -# Hardware Sensors Chip support +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +CONFIG_SENSORS_EEPROM=n +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_RTC8564 is not set +# CONFIG_SENSORS_MAX6875 is not set +CONFIG_I2C_DEBUG_CORE=n +CONFIG_I2C_DEBUG_ALGO=n +CONFIG_I2C_DEBUG_BUS=n +CONFIG_I2C_DEBUG_CHIP=y +CONFIG_RTC_PCF8563_I2C=m + +# +# Hardware Monitoring support # -CONFIG_I2C_SENSOR=y +CONFIG_HWMON=y +# CONFIG_HWMON_VID is not set # CONFIG_SENSORS_ADM1021 is not set # CONFIG_SENSORS_ADM1025 is not set # CONFIG_SENSORS_ADM1026 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_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_LM75 is not set @@ -821,27 +995,27 @@ CONFIG_I2C_SENSOR=y # 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_MAX1619 is not set # CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_SIS5595 is not set # CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47B397 is not set # CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83792D 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 # -# Other I2C Chip support +# Misc devices +# + +# +# Multimedia Capabilities Port drivers # -CONFIG_SENSORS_EEPROM=y -# CONFIG_SENSORS_PCF8574 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_RTC8564 is not set -CONFIG_SENSORS_X1205=y -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set # # Multimedia devices @@ -855,20 +1029,27 @@ CONFIG_VIDEO_DEV=m # # Video Adapters # -# CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_CPIA is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set -# CONFIG_TUNER_3036 is not set -# CONFIG_VIDEO_STRADIS is not set -# CONFIG_VIDEO_ZORAN is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_MXB is not set -# CONFIG_VIDEO_DPC is not set -# CONFIG_VIDEO_HEXIUM_ORION is not set -# CONFIG_VIDEO_HEXIUM_GEMINI is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_OVCAMCHIP is not set +CONFIG_VIDEO_BT848=m +# CONFIG_VIDEO_SAA6588 is not set +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_TUNER_3036=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_DPC=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_OVCAMCHIP=m # # Radio Adapters @@ -881,39 +1062,341 @@ CONFIG_VIDEO_DEV=m # Digital Video Broadcasting Devices # # CONFIG_DVB is not set +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_VIDEOBUF=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_BUF=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m + +# +# Graphics support +# +# CONFIG_FB 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_RTCTIMER is not set +# 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_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_CS46XX is not set +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_EMU10K1 is not set +# CONFIG_SND_EMU10K1X is not set +# CONFIG_SND_CA0106 is not set +# CONFIG_SND_KORG1212 is not set +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +# CONFIG_SND_RME9652 is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_HDSPM is not set +# CONFIG_SND_TRIDENT is not set +# CONFIG_SND_YMFPCI is not set +# CONFIG_SND_AD1889 is not set +# CONFIG_SND_ALS4000 is not set +# CONFIG_SND_CMIPCI 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_MAESTRO3 is not set +# CONFIG_SND_FM801 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_SONICVIBES is not set +# CONFIG_SND_VIA82XX is not set +# CONFIG_SND_VIA82XX_MODEM is not set +# CONFIG_SND_VX222 is not set +# CONFIG_SND_HDA_INTEL is not set + +# +# ALSA ARM devices +# + +# +# USB devices +# +CONFIG_SND_USB_AUDIO=m + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_BANDWIDTH is not set +# 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 is not set +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=y +# CONFIG_USB_SL811_HCD is not set + +# +# USB Device Class drivers +# +# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set + +# +# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m + +# +# 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_ISD200 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_ONETOUCH is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=m +CONFIG_USB_HIDINPUT=y +# CONFIG_HID_FF is not set +CONFIG_USB_HIDDEV=y + +# +# USB HID Boot Protocol drivers +# +CONFIG_USB_KBD=m +# CONFIG_USB_MOUSE is not set +# CONFIG_USB_AIPTEK is not set +# CONFIG_USB_WACOM is not set +# CONFIG_USB_ACECAD is not set +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_MTOUCH is not set +# CONFIG_USB_ITMTOUCH is not set +# CONFIG_USB_EGALAX is not set +# CONFIG_USB_YEALINK is not set +# CONFIG_USB_XPAD is not set +# CONFIG_USB_ATI_REMOTE is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB Multimedia devices +# +# CONFIG_USB_DABUSB is not set +# CONFIG_USB_VICAM is not set +# CONFIG_USB_DSBR is not set +# CONFIG_USB_IBMCAM is not set +# CONFIG_USB_KONICAWC is not set +# CONFIG_USB_OV511 is not set +# CONFIG_USB_SE401 is not set +# CONFIG_USB_SN9C102 is not set +# CONFIG_USB_STV680 is not set +# CONFIG_USB_W9968CF is not set +CONFIG_USB_PWC=m + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +# CONFIG_USB_NET_GL620A is not set +CONFIG_USB_NET_NET1080=m +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +CONFIG_USB_NET_ZAURUS=m +# CONFIG_USB_ZD1201 is not set +# CONFIG_USB_MON is not set + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +# CONFIG_USB_SERIAL_AIRPRIME is not set +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +# CONFIG_USB_SERIAL_CP2101 is not set +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +# CONFIG_USB_SERIAL_KEYSPAN is not set +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_PL2303=m +# CONFIG_USB_SERIAL_HP4X is not set +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_EZUSB=y + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 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_LED is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGETKIT is not set +# CONFIG_USB_PHIDGETSERVO is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set + +# +# MMC/SD Card support +# +# CONFIG_MMC is not set # # File systems # CONFIG_EXT2_FS=m -# CONFIG_EXT2_FS_XATTR is not set -CONFIG_EXT3_FS=m -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_JBD=m +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_JBD=y # CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set -# CONFIG_REISERFS_FS_XATTR is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set - -# -# XFS support -# +CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y # CONFIG_QUOTA is not set CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set -# CONFIG_AUTOFS4_FS is not set +CONFIG_AUTOFS4_FS=m +# CONFIG_FUSE_FS is not set # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=m -# CONFIG_JOLIET is not set -# CONFIG_ZISOFS is not set +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_ZISOFS_FS=m CONFIG_UDF_FS=m CONFIG_UDF_NLS=y @@ -927,19 +1410,17 @@ CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="utf8" CONFIG_NTFS_FS=m # CONFIG_NTFS_DEBUG is not set -# CONFIG_NTFS_RW is not set +CONFIG_NTFS_RW=y # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_SYSFS=y -# CONFIG_DEVFS_FS is not set -# CONFIG_DEVPTS_FS_XATTR is not set CONFIG_TMPFS=y -# CONFIG_TMPFS_XATTR is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y +# CONFIG_RELAYFS_FS is not set # # Miscellaneous filesystems @@ -954,8 +1435,7 @@ CONFIG_RAMFS=y # CONFIG_JFFS_FS is not set CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 -# CONFIG_JFFS2_FS_NAND is not set -# CONFIG_JFFS2_FS_NOR_ECC is not set +CONFIG_JFFS2_FS_WRITEBUFFER=y # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y @@ -972,23 +1452,33 @@ CONFIG_JFFS2_RTIME=y # CONFIG_NFS_FS=m CONFIG_NFS_V3=y -# CONFIG_NFS_V4 is not set -# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +CONFIG_NFS_DIRECTIO=y CONFIG_NFSD=m -# CONFIG_NFSD_V3 is not set +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y CONFIG_NFSD_TCP=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=m +CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m -# CONFIG_RPCSEC_GSS_KRB5 is not set +CONFIG_SUNRPC_GSS=m +CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPCSEC_GSS_SPKM3 is not set CONFIG_SMB_FS=m # CONFIG_SMB_NLS_DEFAULT is not set -# CONFIG_CIFS is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_EXPERIMENTAL is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set # # Partition Types @@ -1060,225 +1550,14 @@ CONFIG_NLS_UTF8=m # CONFIG_PROFILING is not set # -# Graphics support -# -# CONFIG_FB is not set - -# -# Sound -# -CONFIG_SOUND=m - -# -# Advanced Linux Sound Architecture -# -# CONFIG_SND is not set - -# -# Open Sound System -# -# CONFIG_SOUND_PRIME is not set - -# -# Misc devices -# - -# -# USB support -# -CONFIG_USB=y -# CONFIG_USB_DEBUG is not set - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -# CONFIG_USB_BANDWIDTH is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_SUSPEND is not set -# CONFIG_USB_OTG is not set -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y - -# -# USB Host Controller Drivers -# -CONFIG_USB_EHCI_HCD=y -# CONFIG_USB_EHCI_SPLIT_ISO is not set -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -CONFIG_USB_OHCI_HCD=y -CONFIG_USB_UHCI_HCD=m -# CONFIG_USB_SL811_HCD is not set - -# -# USB Device Class drivers -# -CONFIG_USB_AUDIO=m - -# -# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem -# -# CONFIG_USB_MIDI is not set -# CONFIG_USB_ACM is not set -CONFIG_USB_PRINTER=m - -# -# 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_RW_DETECT 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_HP8200e is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set - -# -# USB Input Devices -# -# CONFIG_USB_HID is not set - -# -# USB HID Boot Protocol drivers -# - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set - -# -# USB Multimedia devices -# -# CONFIG_USB_DABUSB is not set -# CONFIG_USB_VICAM is not set -# CONFIG_USB_DSBR is not set -# CONFIG_USB_IBMCAM is not set -# CONFIG_USB_KONICAWC is not set -# CONFIG_USB_OV511 is not set -# CONFIG_USB_SE401 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_STV680 is not set - -# -# USB Network Adapters -# -# CONFIG_USB_CATC is not set -CONFIG_USB_KAWETH=m -CONFIG_USB_PEGASUS=m -# CONFIG_USB_RTL8150 is not set -CONFIG_USB_USBNET=m - -# -# USB Host-to-Host Cables -# -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_GENESYS=y -CONFIG_USB_NET1080=y -CONFIG_USB_PL2301=y -CONFIG_USB_KC2190=y - -# -# Intelligent USB Devices/Gadgets -# -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_ZAURUS=y -CONFIG_USB_CDCETHER=y - -# -# USB Network Adapters -# -CONFIG_USB_AX8817X=y - -# -# USB port drivers -# - -# -# USB Serial Converter support -# -CONFIG_USB_SERIAL=m -CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_BELKIN=m -# CONFIG_USB_SERIAL_WHITEHEAT is not set -# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set -# CONFIG_USB_SERIAL_CYPRESS_M8 is not set -# CONFIG_USB_SERIAL_EMPEG is not set -CONFIG_USB_SERIAL_FTDI_SIO=m -CONFIG_USB_SERIAL_VISOR=m -CONFIG_USB_SERIAL_IPAQ=m -# CONFIG_USB_SERIAL_IR is not set -# CONFIG_USB_SERIAL_EDGEPORT is not set -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set -# CONFIG_USB_SERIAL_GARMIN is not set -# CONFIG_USB_SERIAL_IPW is not set -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -# CONFIG_USB_SERIAL_MCT_U232 is not set -CONFIG_USB_SERIAL_PL2303=m -# CONFIG_USB_SERIAL_SAFE is not set -# CONFIG_USB_SERIAL_TI is not set -# CONFIG_USB_SERIAL_CYBERJACK is not set -# CONFIG_USB_SERIAL_XIRCOM is not set -# CONFIG_USB_SERIAL_OMNINET is not set - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 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_LED is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_PHIDGETKIT is not set -# CONFIG_USB_PHIDGETSERVO is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_TEST is not set - -# -# USB ATM/DSL drivers -# - -# -# USB Gadget Support -# -# CONFIG_USB_GADGET is not set - -# -# MMC/SD Card support -# -# CONFIG_MMC is not set - -# # Kernel hacking # -CONFIG_DEBUG_KERNEL=y -CONFIG_MAGIC_SYSRQ=y -# CONFIG_SCHEDSTATS is not set -# CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_KOBJECT is not set -CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_FS is not set +# CONFIG_PRINTK_TIME is not set +# CONFIG_DEBUG_KERNEL is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_DEBUG_BUGVERBOSE is not set CONFIG_FRAME_POINTER=y # CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_WAITQ is not set -CONFIG_DEBUG_ERRORS=y -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set # # Security options @@ -1289,7 +1568,31 @@ CONFIG_DEBUG_LL=y # # Cryptographic options # -# CONFIG_CRYPTO is not set +CONFIG_CRYPTO=y +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_NULL is not set +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_DES=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=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_TEST=m # # Hardware crypto devices @@ -1299,7 +1602,8 @@ CONFIG_DEBUG_LL=y # Library routines # CONFIG_CRC_CCITT=m +# CONFIG_CRC16 is not set CONFIG_CRC32=y -# CONFIG_LIBCRC32C is not set +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff --git a/packages/linux/nas100d-kernel/2.6.14/nas100d-pci.c b/packages/linux/nas100d-kernel/2.6.14/nas100d-pci.c new file mode 100644 index 0000000000..1f934068e9 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/nas100d-pci.c @@ -0,0 +1,87 @@ +/* + * arch/arm/mach-ixp4xx/nas100d-pci.c + * + * NAS 100d board-level PCI initialization + * + * based on ixdp425-pci.c: + * Copyright (C) 2002 Intel Corporation. + * Copyright (C) 2003-2004 MontaVista Software, Inc. + * + * Maintainer: http://www.nslu2-linux.org/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + */ + +#include <linux/config.h> +#include <linux/pci.h> +#include <linux/init.h> + +#include <asm/mach/pci.h> +#include <asm/mach-types.h> + +void __init nas100d_pci_preinit(void) +{ + set_irq_type(IRQ_NAS100D_PCI_INTA, IRQT_LOW); + set_irq_type(IRQ_NAS100D_PCI_INTB, IRQT_LOW); + set_irq_type(IRQ_NAS100D_PCI_INTC, IRQT_LOW); + set_irq_type(IRQ_NAS100D_PCI_INTD, IRQT_LOW); + set_irq_type(IRQ_NAS100D_PCI_INTE, IRQT_LOW); + + gpio_line_isr_clear(NAS100D_PCI_INTA_PIN); + gpio_line_isr_clear(NAS100D_PCI_INTB_PIN); + gpio_line_isr_clear(NAS100D_PCI_INTC_PIN); + gpio_line_isr_clear(NAS100D_PCI_INTD_PIN); + gpio_line_isr_clear(NAS100D_PCI_INTE_PIN); + + ixp4xx_pci_preinit(); +} + +static int __init nas100d_map_irq(struct pci_dev *dev, u8 slot, u8 pin) +{ + if (slot < 1 || slot > 3 || pin < 1 || pin > 3) + return -1; + + switch (slot) + { + case 1: + if (pin == 1) + return IRQ_NAS100D_PCI_INTA; + break; + case 2: + if (pin == 1) + return IRQ_NAS100D_PCI_INTB; + break; + case 3: + if (pin == 1) + return IRQ_NAS100D_PCI_INTC; + if (pin == 2) + return IRQ_NAS100D_PCI_INTD; + if (pin == 3) + return IRQ_NAS100D_PCI_INTE; + break; + } + + return -1; +} + +struct hw_pci __initdata nas100d_pci = { + .nr_controllers = 1, + .preinit = nas100d_pci_preinit, + .swizzle = pci_std_swizzle, + .setup = ixp4xx_setup, + .scan = ixp4xx_scan_bus, + .map_irq = nas100d_map_irq, +}; + +int __init nas100d_pci_init(void) +{ + if (machine_is_nas100d()) + pci_common_init(&nas100d_pci); + + return 0; +} + +subsys_initcall(nas100d_pci_init); diff --git a/packages/linux/nas100d-kernel/2.6.14/nas100d-power.c b/packages/linux/nas100d-kernel/2.6.14/nas100d-power.c new file mode 100644 index 0000000000..94ce5d1b46 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/nas100d-power.c @@ -0,0 +1,92 @@ +/* + * arch/arm/mach-ixp4xx/nas100d-power.c + * + * NAS 100d Power/Reset driver + * + * Copyright (C) 2005 Tower Technologies + * + * based on nas100d-io.c + * Copyright (C) 2004 Karen Spearel + * + * Author: Alessandro Zummo <a.zummo@towertech.it> + * Maintainers: http://www.nslu2-linux.org/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + */ + +#include <linux/module.h> +#include <linux/reboot.h> +#include <linux/interrupt.h> + +#include <asm/mach-types.h> + +extern void ctrl_alt_del(void); + +static irqreturn_t nas100d_power_handler(int irq, void *dev_id, struct pt_regs *regs) +{ + /* Signal init to do the ctrlaltdel action, this will bypass init if + * it hasn't started and do a kernel_restart. + */ + ctrl_alt_del(); + + return IRQ_HANDLED; +} + +static irqreturn_t nas100d_reset_handler(int irq, void *dev_id, struct pt_regs *regs) +{ + /* This is the paper-clip reset, it shuts the machine down directly. + */ + machine_power_off(); + + return IRQ_HANDLED; +} + +static int __init nas100d_power_init(void) +{ + if (!(machine_is_nas100d())) + return 0; + + // *IXP4XX_GPIO_GPISR = 0x20400000; /* read the 2 irqs to clr */ + + set_irq_type(NAS100D_RB_IRQ, IRQT_LOW); +// set_irq_type(NAS100D_PB_IRQ, IRQT_HIGH); + + gpio_line_isr_clear(NAS100D_RB_GPIO); +// gpio_line_isr_clear(NAS100D_PB_GPIO); + + if (request_irq(NAS100D_RB_IRQ, &nas100d_reset_handler, + SA_INTERRUPT, "NAS100D reset button", NULL) < 0) { + + printk(KERN_DEBUG "Reset Button IRQ %d not available\n", + NAS100D_RB_IRQ); + + return -EIO; + } +/* + if (request_irq(NAS100D_PB_IRQ, &nas100d_power_handler, + SA_INTERRUPT, "NAS100D power button", NULL) < 0) { + + printk(KERN_DEBUG "Power Button IRQ %d not available\n", + NAS100D_PB_IRQ); + + return -EIO; + } +*/ + return 0; +} + +static void __exit nas100d_power_exit(void) +{ + free_irq(NAS100D_RB_IRQ, NULL); +// free_irq(NAS100D_PB_IRQ, NULL); +} + +module_init(nas100d_power_init); +module_exit(nas100d_power_exit); + +MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>"); +MODULE_DESCRIPTION("NAS100D Power/Reset driver"); +MODULE_LICENSE("GPL"); diff --git a/packages/linux/nas100d-kernel/2.6.14/nas100d-setup.c b/packages/linux/nas100d-kernel/2.6.14/nas100d-setup.c new file mode 100644 index 0000000000..0dbb0b4e69 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/nas100d-setup.c @@ -0,0 +1,132 @@ +/* + * arch/arm/mach-ixp4xx/nas100d-setup.c + * + * NAS 100d board-setup + * + * based ixdp425-setup.c: + * Copyright (C) 2003-2004 MontaVista Software, Inc. + * + * Author: Mark Rakes <mrakes at mac.com> + * Maintainers: http://www.nslu2-linux.org/ + * + */ + +#include <linux/kernel.h> +#include <linux/serial.h> +#include <linux/serial_8250.h> + +#include <asm/mach-types.h> +#include <asm/mach/arch.h> +#include <asm/mach/flash.h> + +static struct flash_platform_data nas100d_flash_data = { + .map_name = "cfi_probe", + .width = 2, +}; + +static struct resource nas100d_flash_resource = { + .start = NAS100D_FLASH_BASE, + .end = NAS100D_FLASH_BASE + NAS100D_FLASH_SIZE, + .flags = IORESOURCE_MEM, +}; + +static struct platform_device nas100d_flash = { + .name = "IXP4XX-Flash", + .id = 0, + .dev.platform_data = &nas100d_flash_data, + .num_resources = 1, + .resource = &nas100d_flash_resource, +}; + +static struct ixp4xx_i2c_pins nas100d_i2c_gpio_pins = { + .sda_pin = NAS100D_SDA_PIN, + .scl_pin = NAS100D_SCL_PIN, +}; + +static struct platform_device nas100d_i2c_controller = { + .name = "IXP4XX-I2C", + .id = 0, + .dev.platform_data = &nas100d_i2c_gpio_pins, + .num_resources = 0, +}; + +static struct resource nas100d_uart_resources[] = { + { + .start = IXP4XX_UART1_BASE_PHYS, + .end = IXP4XX_UART1_BASE_PHYS + 0x0fff, + .flags = IORESOURCE_MEM, + }, + { + .start = IXP4XX_UART2_BASE_PHYS, + .end = IXP4XX_UART2_BASE_PHYS + 0x0fff, + .flags = IORESOURCE_MEM, + } +}; + +static struct plat_serial8250_port nas100d_uart_data[] = { + { + .mapbase = IXP4XX_UART1_BASE_PHYS, + .membase = (char *)IXP4XX_UART1_BASE_VIRT + REG_OFFSET, + .irq = IRQ_IXP4XX_UART1, + .flags = UPF_BOOT_AUTOCONF, + .iotype = UPIO_MEM, + .regshift = 2, + .uartclk = IXP4XX_UART_XTAL, + }, + { + .mapbase = IXP4XX_UART2_BASE_PHYS, + .membase = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET, + .irq = IRQ_IXP4XX_UART2, + .flags = UPF_BOOT_AUTOCONF, + .iotype = UPIO_MEM, + .regshift = 2, + .uartclk = IXP4XX_UART_XTAL, + }, + { } +}; + +static struct platform_device nas100d_uart = { + .name = "serial8250", + .id = PLAT8250_DEV_PLATFORM, + .dev.platform_data = nas100d_uart_data, + .num_resources = 2, + .resource = nas100d_uart_resources, +}; + +static struct platform_device *nas100d_devices[] __initdata = { + &nas100d_i2c_controller, + &nas100d_flash, + &nas100d_uart, +}; + +static void nas100d_power_off(void) +{ + /* This causes the box to drop the power and go dead. */ + + /* enable the pwr cntl gpio */ + gpio_line_config(NAS100D_PO_GPIO, IXP4XX_GPIO_OUT); + + /* do the deed */ + gpio_line_set(NAS100D_PO_GPIO, IXP4XX_GPIO_HIGH); +} + +static void __init nas100d_init(void) +{ + ixp4xx_sys_init(); + + pm_power_off = nas100d_power_off; + + platform_add_devices(nas100d_devices, ARRAY_SIZE(nas100d_devices)); +} + +MACHINE_START(NAS100D, "Iomega NAS 100d") + /* Maintainer: www.nslu2-linux.org */ + .phys_ram = PHYS_OFFSET, + .phys_io = IXP4XX_PERIPHERAL_BASE_PHYS, + .io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC, + .boot_params = 0x00000100, + .map_io = ixp4xx_map_io, + .init_irq = ixp4xx_init_irq, + .timer = &ixp4xx_timer, + .init_machine = nas100d_init, +MACHINE_END diff --git a/packages/linux/nas100d-kernel/2.6.14/nas100d.h b/packages/linux/nas100d-kernel/2.6.14/nas100d.h new file mode 100644 index 0000000000..1623712b78 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/nas100d.h @@ -0,0 +1,75 @@ +/* + * include/asm-arm/arch-ixp4xx/nas100d.h + * + * NAS100D platform specific definitions + * + * Copyright (c) 2005 Tower Technologies + * + * Author: Alessandro Zummo <a.zummo@towertech.it> + * + * based on ixdp425.h: + * Copyright 2004 (c) MontaVista, Software, Inc. + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +#ifndef __ASM_ARCH_HARDWARE_H__ +#error "Do not include this directly, instead #include <asm/hardware.h>" +#endif + +#define NAS100D_FLASH_BASE IXP4XX_EXP_BUS_CS0_BASE_PHYS +#define NAS100D_FLASH_SIZE IXP4XX_EXP_BUS_CSX_REGION_SIZE + +#define NAS100D_SDA_PIN 5 +#define NAS100D_SCL_PIN 6 + +/* + * NAS100D PCI IRQs + */ +#define NAS100D_PCI_MAX_DEV 5 +#define NAS100D_PCI_IRQ_LINES 5 + + +/* PCI controller GPIO to IRQ pin mappings */ +#define NAS100D_PCI_INTA_PIN 11 +#define NAS100D_PCI_INTB_PIN 10 +#define NAS100D_PCI_INTC_PIN 9 +#define NAS100D_PCI_INTD_PIN 8 +#define NAS100D_PCI_INTE_PIN 7 + +/* GPIO */ + +#define NAS100D_GPIO0 0 +#define NAS100D_GPIO1 1 +#define NAS100D_GPIO2 2 +#define NAS100D_GPIO3 3 +#define NAS100D_GPIO4 4 +#define NAS100D_GPIO5 5 +#define NAS100D_GPIO6 6 +#define NAS100D_GPIO7 7 +#define NAS100D_GPIO8 8 +#define NAS100D_GPIO9 9 +#define NAS100D_GPIO10 10 +#define NAS100D_GPIO11 11 +#define NAS100D_GPIO12 12 +#define NAS100D_GPIO13 13 +#define NAS100D_GPIO14 14 +#define NAS100D_GPIO15 15 + + +/* Buttons */ + +#define NAS100D_PB_GPIO NAS100D_GPIO14 +#define NAS100D_RB_GPIO NAS100D_GPIO4 +#define NAS100D_PO_GPIO NAS100D_GPIO12 /* power off */ + +#define NAS100D_PB_IRQ IRQ_IXP4XX_GPIO14 +#define NAS100D_RB_IRQ IRQ_IXP4XX_GPIO4 + +/* +#define NAS100D_PB_BM (1L << NAS100D_PB_GPIO) +#define NAS100D_PO_BM (1L << NAS100D_PO_GPIO) +#define NAS100D_RB_BM (1L << NAS100D_RB_GPIO) +*/ diff --git a/packages/linux/nas100d-kernel/2.6.15/.mtn2git_empty b/packages/linux/nas100d-kernel/2.6.15/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.15/.mtn2git_empty diff --git a/packages/linux/nas100d-kernel/2.6.15/00-memory-h-page-shift.patch b/packages/linux/nas100d-kernel/2.6.15/00-memory-h-page-shift.patch new file mode 100644 index 0000000000..29b048e27a --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.15/00-memory-h-page-shift.patch @@ -0,0 +1,10 @@ +--- linux-2.6.15/include/asm-arm/arch-ixp4xx/memory.h 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/include/asm-arm/arch-ixp4xx/memory.h 1970-01-01 00:00:00.000000000 +0000 +@@ -8,6 +8,7 @@ + #define __ASM_ARCH_MEMORY_H + + #include <asm/sizes.h> ++#include <asm/page.h> + + /* + * Physical DRAM offset. diff --git a/packages/linux/nas100d-kernel/2.6.15/01-i2c-ixp4xx.patch b/packages/linux/nas100d-kernel/2.6.15/01-i2c-ixp4xx.patch new file mode 100644 index 0000000000..16426bdee6 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.15/01-i2c-ixp4xx.patch @@ -0,0 +1,29 @@ +--- linux-2.6.15/drivers/i2c/busses/i2c-ixp4xx.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/drivers/i2c/busses/i2c-ixp4xx.c 1970-01-01 00:00:00.000000000 +0000 +@@ -35,7 +35,7 @@ + + #include <asm/hardware.h> /* Pick up IXP4xx-specific bits */ + +-static struct device_driver ixp4xx_i2c_driver; ++static struct platform_driver ixp4xx_i2c_driver; + + static inline int ixp4xx_scl_pin(void *data) + { +@@ -128,7 +128,7 @@ static int ixp4xx_i2c_probe(struct platf + drv_data->algo_data.timeout = 100; + + drv_data->adapter.id = I2C_HW_B_IXP4XX; +- strlcpy(drv_data->adapter.name, ixp4xx_i2c_driver.name, ++ strlcpy(drv_data->adapter.name, ixp4xx_i2c_driver.driver.name, + I2C_NAME_SIZE); + drv_data->adapter.algo_data = &drv_data->algo_data; + +@@ -140,7 +140,7 @@ static int ixp4xx_i2c_probe(struct platf + gpio_line_set(gpio->sda_pin, 0); + + if ((err = i2c_bit_add_bus(&drv_data->adapter) != 0)) { +- printk(KERN_ERR "ERROR: Could not install %s\n", dev->bus_id); ++ printk(KERN_ERR "ERROR: Could not install %s\n", ixp4xx_i2c_driver.driver.name); + + kfree(drv_data); + return err; diff --git a/packages/linux/nas100d-kernel/2.6.15/10-mtdpart-redboot-fis-byteswap.patch b/packages/linux/nas100d-kernel/2.6.15/10-mtdpart-redboot-fis-byteswap.patch new file mode 100644 index 0000000000..edee083e3c --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.15/10-mtdpart-redboot-fis-byteswap.patch @@ -0,0 +1,44 @@ +On IXP4XX systems the FIS directory is big endian even with a little +endian kernel. This patch recognises the FIS directory on such a +system and byte swaps it to obtain a valid table based on the 'size' +field of the FIS directory (the size field is know to always match the +erase block size on such systems, and probably all systems.) + +--- linux-2.6.15/drivers/mtd/redboot.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/drivers/mtd/redboot.c 1970-01-01 00:00:00.000000000 +0000 +@@ -89,8 +89,34 @@ + i = numslots; + break; + } +- if (!memcmp(buf[i].name, "FIS directory", 14)) ++ if (!memcmp(buf[i].name, "FIS directory", 14)) { ++ /* This is apparently the FIS directory entry for the ++ * FIS directory itself. The FIS directory size is ++ * one erase block, if the buf[i].size field is ++ * swab32(erasesize) then we know we are looking at ++ * a byte swapped FIS directory - swap all the entries! ++ * (NOTE: this is 'size' not 'data_length', size is ++ * the full size of the entry.) ++ */ ++ if (swab32(buf[i].size) == master->erasesize) { ++ int j; ++ for (j = 0; j < numslots && buf[j].name[0] != 0xff; ++j) { ++ /* The unsigned long fields were written with the ++ * wrong byte sex, name and pad have no byte sex. ++ */ ++# define do_swab32(x) (x) = swab32(x) ++ do_swab32(buf[j].flash_base); ++ do_swab32(buf[j].mem_base); ++ do_swab32(buf[j].size); ++ do_swab32(buf[j].entry_point); ++ do_swab32(buf[j].data_length); ++ do_swab32(buf[j].desc_cksum); ++ do_swab32(buf[j].file_cksum); ++# undef do_swab32 ++ } ++ } + break; ++ } + } + if (i == numslots) { + /* Didn't find it */ diff --git a/packages/linux/nas100d-kernel/2.6.15/19-jffs2-force-be.patch b/packages/linux/nas100d-kernel/2.6.15/19-jffs2-force-be.patch new file mode 100644 index 0000000000..09379031dd --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.15/19-jffs2-force-be.patch @@ -0,0 +1,13 @@ +--- linux-2.6.15/fs/jffs2/nodelist.h 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/fs/jffs2/nodelist.h 1970-01-01 00:00:00.000000000 +0000 +@@ -44,7 +44,9 @@ + #define D2(x) + #endif + +-#define JFFS2_NATIVE_ENDIAN ++#undef JFFS2_NATIVE_ENDIAN ++#define JFFS2_BIG_ENDIAN 1 ++#undef JFFS2_LITTLE_ENDIAN + + /* Note we handle mode bits conversion from JFFS2 (i.e. Linux) to/from + whatever OS we're actually running on here too. */ diff --git a/packages/linux/nas100d-kernel/2.6.15/50-nas100d-arch.patch b/packages/linux/nas100d-kernel/2.6.15/50-nas100d-arch.patch new file mode 100644 index 0000000000..eed275fefb --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.15/50-nas100d-arch.patch @@ -0,0 +1,56 @@ + arch/arm/mach-ixp4xx/Kconfig | 8 ++++++++ + arch/arm/mach-ixp4xx/Makefile | 1 + + include/asm-arm/arch-ixp4xx/hardware.h | 1 + + include/asm-arm/arch-ixp4xx/irqs.h | 9 +++++++++ + 4 files changed, 19 insertions(+) + +--- linux-nas100d.orig/arch/arm/mach-ixp4xx/Kconfig 2005-11-16 22:29:00.000000000 +0100 ++++ linux-nas100d/arch/arm/mach-ixp4xx/Kconfig 2005-11-16 22:29:52.000000000 +0100 +@@ -71,6 +71,14 @@ config ARCH_PRPMC1100 + PrPCM1100 Processor Mezanine Module. For more information on + this platform, see <file:Documentation/arm/IXP4xx>. + ++config MACH_NAS100D ++ bool ++ prompt "NAS100D" ++ help ++ Say 'Y' here if you want your kernel to support Iomega's ++ NAS 100d device. For more information on this platform, ++ see http://www.nslu2-linux.org/wiki/NAS100d/HomePage ++ + # + # Avila and IXDP share the same source for now. Will change in future + # +--- linux-nas100d.orig/arch/arm/mach-ixp4xx/Makefile 2005-11-16 22:29:00.000000000 +0100 ++++ linux-nas100d/arch/arm/mach-ixp4xx/Makefile 2005-11-16 22:30:37.000000000 +0100 +@@ -9,4 +9,5 @@ obj-$(CONFIG_MACH_IXDPG425) += ixdpg425- + obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o + obj-$(CONFIG_MACH_GTWX5715) += gtwx5715-pci.o gtwx5715-setup.o + obj-$(CONFIG_MACH_NSLU2) += nslu2-pci.o nslu2-setup.o nslu2-power.o ++obj-$(CONFIG_MACH_NAS100D) += nas100d-pci.o nas100d-setup.o nas100d-power.o + +--- linux-nas100d.orig/include/asm-arm/arch-ixp4xx/hardware.h 2005-11-16 22:29:18.000000000 +0100 ++++ linux-nas100d/include/asm-arm/arch-ixp4xx/hardware.h 2005-11-16 22:31:08.000000000 +0100 +@@ -45,5 +45,6 @@ extern unsigned int processor_id; + #include "coyote.h" + #include "prpmc1100.h" + #include "nslu2.h" ++#include "nas100d.h" + + #endif /* _ASM_ARCH_HARDWARE_H */ +--- linux-nas100d.orig/include/asm-arm/arch-ixp4xx/irqs.h 2005-11-16 22:29:18.000000000 +0100 ++++ linux-nas100d/include/asm-arm/arch-ixp4xx/irqs.h 2005-11-16 22:29:52.000000000 +0100 +@@ -100,4 +100,13 @@ + #define IRQ_NSLU2_PCI_INTB IRQ_IXP4XX_GPIO10 + #define IRQ_NSLU2_PCI_INTC IRQ_IXP4XX_GPIO9 + ++/* ++ * NAS100D board IRQs ++ */ ++#define IRQ_NAS100D_PCI_INTA IRQ_IXP4XX_GPIO11 ++#define IRQ_NAS100D_PCI_INTB IRQ_IXP4XX_GPIO10 ++#define IRQ_NAS100D_PCI_INTC IRQ_IXP4XX_GPIO9 ++#define IRQ_NAS100D_PCI_INTD IRQ_IXP4XX_GPIO8 ++#define IRQ_NAS100D_PCI_INTE IRQ_IXP4XX_GPIO7 ++ + #endif diff --git a/packages/linux/nas100d-kernel/2.6.15/55-nas100d-arch.patch b/packages/linux/nas100d-kernel/2.6.15/55-nas100d-arch.patch new file mode 100644 index 0000000000..4b40047a92 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.15/55-nas100d-arch.patch @@ -0,0 +1,395 @@ + arch/arm/mach-ixp4xx/nas100d-pci.c | 77 +++++++++++++++++++ + arch/arm/mach-ixp4xx/nas100d-power.c | 92 +++++++++++++++++++++++ + arch/arm/mach-ixp4xx/nas100d-setup.c | 132 ++++++++++++++++++++++++++++++++++ + drivers/ide/pci/aec62xx.c | 11 ++ + include/asm-arm/arch-ixp4xx/nas100d.h | 75 +++++++++++++++++++ + 5 files changed, 387 insertions(+) + +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.14/include/asm-arm/arch-ixp4xx/nas100d.h 2005-11-12 14:24:14.000000000 +0100 +@@ -0,0 +1,75 @@ ++/* ++ * include/asm-arm/arch-ixp4xx/nas100d.h ++ * ++ * NAS100D platform specific definitions ++ * ++ * Copyright (c) 2005 Tower Technologies ++ * ++ * Author: Alessandro Zummo <a.zummo@towertech.it> ++ * ++ * based on ixdp425.h: ++ * Copyright 2004 (c) MontaVista, Software, Inc. ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++#ifndef __ASM_ARCH_HARDWARE_H__ ++#error "Do not include this directly, instead #include <asm/hardware.h>" ++#endif ++ ++#define NAS100D_FLASH_BASE IXP4XX_EXP_BUS_CS0_BASE_PHYS ++#define NAS100D_FLASH_SIZE IXP4XX_EXP_BUS_CSX_REGION_SIZE ++ ++#define NAS100D_SDA_PIN 6 ++#define NAS100D_SCL_PIN 5 ++ ++/* ++ * NAS100D PCI IRQs ++ */ ++#define NAS100D_PCI_MAX_DEV 3 ++#define NAS100D_PCI_IRQ_LINES 3 ++ ++ ++/* PCI controller GPIO to IRQ pin mappings */ ++#define NAS100D_PCI_INTA_PIN 11 ++#define NAS100D_PCI_INTB_PIN 10 ++#define NAS100D_PCI_INTC_PIN 9 ++#define NAS100D_PCI_INTD_PIN 8 ++#define NAS100D_PCI_INTE_PIN 7 ++ ++/* GPIO */ ++ ++#define NAS100D_GPIO0 0 ++#define NAS100D_GPIO1 1 ++#define NAS100D_GPIO2 2 ++#define NAS100D_GPIO3 3 ++#define NAS100D_GPIO4 4 ++#define NAS100D_GPIO5 5 ++#define NAS100D_GPIO6 6 ++#define NAS100D_GPIO7 7 ++#define NAS100D_GPIO8 8 ++#define NAS100D_GPIO9 9 ++#define NAS100D_GPIO10 10 ++#define NAS100D_GPIO11 11 ++#define NAS100D_GPIO12 12 ++#define NAS100D_GPIO13 13 ++#define NAS100D_GPIO14 14 ++#define NAS100D_GPIO15 15 ++ ++ ++/* Buttons */ ++ ++#define NAS100D_PB_GPIO NAS100D_GPIO14 ++#define NAS100D_RB_GPIO NAS100D_GPIO4 ++#define NAS100D_PO_GPIO NAS100D_GPIO12 /* power off */ ++ ++#define NAS100D_PB_IRQ IRQ_IXP4XX_GPIO14 ++#define NAS100D_RB_IRQ IRQ_IXP4XX_GPIO4 ++ ++/* ++#define NAS100D_PB_BM (1L << NAS100D_PB_GPIO) ++#define NAS100D_PO_BM (1L << NAS100D_PO_GPIO) ++#define NAS100D_RB_BM (1L << NAS100D_RB_GPIO) ++*/ +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.14/arch/arm/mach-ixp4xx/nas100d-pci.c 2005-11-12 14:24:14.000000000 +0100 +@@ -0,0 +1,77 @@ ++/* ++ * arch/arm/mach-ixp4xx/nas100d-pci.c ++ * ++ * NAS 100d board-level PCI initialization ++ * ++ * based on ixdp425-pci.c: ++ * Copyright (C) 2002 Intel Corporation. ++ * Copyright (C) 2003-2004 MontaVista Software, Inc. ++ * ++ * Maintainer: http://www.nslu2-linux.org/ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include <linux/config.h> ++#include <linux/pci.h> ++#include <linux/init.h> ++ ++#include <asm/mach/pci.h> ++#include <asm/mach-types.h> ++ ++void __init nas100d_pci_preinit(void) ++{ ++ set_irq_type(IRQ_NAS100D_PCI_INTA, IRQT_LOW); ++ set_irq_type(IRQ_NAS100D_PCI_INTB, IRQT_LOW); ++ set_irq_type(IRQ_NAS100D_PCI_INTC, IRQT_LOW); ++ set_irq_type(IRQ_NAS100D_PCI_INTD, IRQT_LOW); ++ set_irq_type(IRQ_NAS100D_PCI_INTE, IRQT_LOW); ++ ++ gpio_line_isr_clear(NAS100D_PCI_INTA_PIN); ++ gpio_line_isr_clear(NAS100D_PCI_INTB_PIN); ++ gpio_line_isr_clear(NAS100D_PCI_INTC_PIN); ++ gpio_line_isr_clear(NAS100D_PCI_INTD_PIN); ++ gpio_line_isr_clear(NAS100D_PCI_INTE_PIN); ++ ++ ixp4xx_pci_preinit(); ++} ++ ++static int __init nas100d_map_irq(struct pci_dev *dev, u8 slot, u8 pin) ++{ ++ static int pci_irq_table[NAS100D_PCI_MAX_DEV][NAS100D_PCI_IRQ_LINES] = ++ { ++ { IRQ_NAS100D_PCI_INTA, -1, -1 }, ++ { IRQ_NAS100D_PCI_INTB, -1, -1 }, ++ { IRQ_NAS100D_PCI_INTC, IRQ_NAS100D_PCI_INTD, IRQ_NAS100D_PCI_INTE }, ++ }; ++ ++ int irq = -1; ++ ++ if (slot >= 1 && slot <= NAS100D_PCI_MAX_DEV && ++ pin >= 1 && pin <= NAS100D_PCI_IRQ_LINES) ++ irq = pci_irq_table[slot-1][pin-1]; ++ ++ return irq; ++} ++ ++struct hw_pci __initdata nas100d_pci = { ++ .nr_controllers = 1, ++ .preinit = nas100d_pci_preinit, ++ .swizzle = pci_std_swizzle, ++ .setup = ixp4xx_setup, ++ .scan = ixp4xx_scan_bus, ++ .map_irq = nas100d_map_irq, ++}; ++ ++int __init nas100d_pci_init(void) ++{ ++ if (machine_is_nas100d()) ++ pci_common_init(&nas100d_pci); ++ ++ return 0; ++} ++ ++subsys_initcall(nas100d_pci_init); +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.14/arch/arm/mach-ixp4xx/nas100d-power.c 2005-11-12 14:24:14.000000000 +0100 +@@ -0,0 +1,92 @@ ++/* ++ * arch/arm/mach-ixp4xx/nas100d-power.c ++ * ++ * NAS 100d Power/Reset driver ++ * ++ * Copyright (C) 2005 Tower Technologies ++ * ++ * based on nas100d-io.c ++ * Copyright (C) 2004 Karen Spearel ++ * ++ * Author: Alessandro Zummo <a.zummo@towertech.it> ++ * Maintainers: http://www.nslu2-linux.org/ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include <linux/module.h> ++#include <linux/reboot.h> ++#include <linux/interrupt.h> ++ ++#include <asm/mach-types.h> ++ ++extern void ctrl_alt_del(void); ++ ++static irqreturn_t nas100d_power_handler(int irq, void *dev_id, struct pt_regs *regs) ++{ ++ /* Signal init to do the ctrlaltdel action, this will bypass init if ++ * it hasn't started and do a kernel_restart. ++ */ ++ ctrl_alt_del(); ++ ++ return IRQ_HANDLED; ++} ++ ++static irqreturn_t nas100d_reset_handler(int irq, void *dev_id, struct pt_regs *regs) ++{ ++ /* This is the paper-clip reset, it shuts the machine down directly. ++ */ ++ machine_power_off(); ++ ++ return IRQ_HANDLED; ++} ++ ++static int __init nas100d_power_init(void) ++{ ++ if (!(machine_is_nas100d())) ++ return 0; ++ ++ // *IXP4XX_GPIO_GPISR = 0x20400000; /* read the 2 irqs to clr */ ++ ++ set_irq_type(NAS100D_RB_IRQ, IRQT_LOW); ++// set_irq_type(NAS100D_PB_IRQ, IRQT_HIGH); ++ ++ gpio_line_isr_clear(NAS100D_RB_GPIO); ++// gpio_line_isr_clear(NAS100D_PB_GPIO); ++ ++ if (request_irq(NAS100D_RB_IRQ, &nas100d_reset_handler, ++ SA_INTERRUPT, "NAS100D reset button", NULL) < 0) { ++ ++ printk(KERN_DEBUG "Reset Button IRQ %d not available\n", ++ NAS100D_RB_IRQ); ++ ++ return -EIO; ++ } ++/* ++ if (request_irq(NAS100D_PB_IRQ, &nas100d_power_handler, ++ SA_INTERRUPT, "NAS100D power button", NULL) < 0) { ++ ++ printk(KERN_DEBUG "Power Button IRQ %d not available\n", ++ NAS100D_PB_IRQ); ++ ++ return -EIO; ++ } ++*/ ++ return 0; ++} ++ ++static void __exit nas100d_power_exit(void) ++{ ++ free_irq(NAS100D_RB_IRQ, NULL); ++// free_irq(NAS100D_PB_IRQ, NULL); ++} ++ ++module_init(nas100d_power_init); ++module_exit(nas100d_power_exit); ++ ++MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>"); ++MODULE_DESCRIPTION("NAS100D Power/Reset driver"); ++MODULE_LICENSE("GPL"); +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.14/arch/arm/mach-ixp4xx/nas100d-setup.c 2005-11-12 14:24:14.000000000 +0100 +@@ -0,0 +1,132 @@ ++/* ++ * arch/arm/mach-ixp4xx/nas100d-setup.c ++ * ++ * NAS 100d board-setup ++ * ++ * based ixdp425-setup.c: ++ * Copyright (C) 2003-2004 MontaVista Software, Inc. ++ * ++ * Author: Mark Rakes <mrakes at mac.com> ++ * Maintainers: http://www.nslu2-linux.org/ ++ * ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/serial.h> ++#include <linux/serial_8250.h> ++ ++#include <asm/mach-types.h> ++#include <asm/mach/arch.h> ++#include <asm/mach/flash.h> ++ ++static struct flash_platform_data nas100d_flash_data = { ++ .map_name = "cfi_probe", ++ .width = 2, ++}; ++ ++static struct resource nas100d_flash_resource = { ++ .start = NAS100D_FLASH_BASE, ++ .end = NAS100D_FLASH_BASE + NAS100D_FLASH_SIZE, ++ .flags = IORESOURCE_MEM, ++}; ++ ++static struct platform_device nas100d_flash = { ++ .name = "IXP4XX-Flash", ++ .id = 0, ++ .dev.platform_data = &nas100d_flash_data, ++ .num_resources = 1, ++ .resource = &nas100d_flash_resource, ++}; ++ ++static struct ixp4xx_i2c_pins nas100d_i2c_gpio_pins = { ++ .sda_pin = NAS100D_SDA_PIN, ++ .scl_pin = NAS100D_SCL_PIN, ++}; ++ ++static struct platform_device nas100d_i2c_controller = { ++ .name = "IXP4XX-I2C", ++ .id = 0, ++ .dev.platform_data = &nas100d_i2c_gpio_pins, ++ .num_resources = 0, ++}; ++ ++static struct resource nas100d_uart_resources[] = { ++ { ++ .start = IXP4XX_UART1_BASE_PHYS, ++ .end = IXP4XX_UART1_BASE_PHYS + 0x0fff, ++ .flags = IORESOURCE_MEM, ++ }, ++ { ++ .start = IXP4XX_UART2_BASE_PHYS, ++ .end = IXP4XX_UART2_BASE_PHYS + 0x0fff, ++ .flags = IORESOURCE_MEM, ++ } ++}; ++ ++static struct plat_serial8250_port nas100d_uart_data[] = { ++ { ++ .mapbase = IXP4XX_UART1_BASE_PHYS, ++ .membase = (char *)IXP4XX_UART1_BASE_VIRT + REG_OFFSET, ++ .irq = IRQ_IXP4XX_UART1, ++ .flags = UPF_BOOT_AUTOCONF, ++ .iotype = UPIO_MEM, ++ .regshift = 2, ++ .uartclk = IXP4XX_UART_XTAL, ++ }, ++ { ++ .mapbase = IXP4XX_UART2_BASE_PHYS, ++ .membase = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET, ++ .irq = IRQ_IXP4XX_UART2, ++ .flags = UPF_BOOT_AUTOCONF, ++ .iotype = UPIO_MEM, ++ .regshift = 2, ++ .uartclk = IXP4XX_UART_XTAL, ++ }, ++ { } ++}; ++ ++static struct platform_device nas100d_uart = { ++ .name = "serial8250", ++ .id = PLAT8250_DEV_PLATFORM, ++ .dev.platform_data = nas100d_uart_data, ++ .num_resources = 2, ++ .resource = nas100d_uart_resources, ++}; ++ ++static struct platform_device *nas100d_devices[] __initdata = { ++ &nas100d_i2c_controller, ++ &nas100d_flash, ++ &nas100d_uart, ++}; ++ ++static void nas100d_power_off(void) ++{ ++ /* This causes the box to drop the power and go dead. */ ++ ++ /* enable the pwr cntl gpio */ ++ gpio_line_config(NAS100D_PO_GPIO, IXP4XX_GPIO_OUT); ++ ++ /* do the deed */ ++ gpio_line_set(NAS100D_PO_GPIO, IXP4XX_GPIO_HIGH); ++} ++ ++static void __init nas100d_init(void) ++{ ++ ixp4xx_sys_init(); ++ ++ pm_power_off = nas100d_power_off; ++ ++ platform_add_devices(nas100d_devices, ARRAY_SIZE(nas100d_devices)); ++} ++ ++MACHINE_START(NAS100D, "Iomega NAS 100d") ++ /* Maintainer: www.nslu2-linux.org */ ++ .phys_ram = PHYS_OFFSET, ++ .phys_io = IXP4XX_PERIPHERAL_BASE_PHYS, ++ .io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC, ++ .boot_params = 0x00000100, ++ .map_io = ixp4xx_map_io, ++ .init_irq = ixp4xx_init_irq, ++ .timer = &ixp4xx_timer, ++ .init_machine = nas100d_init, ++MACHINE_END diff --git a/packages/linux/nas100d-kernel/2.6.15/60-nas100d-i2c.patch b/packages/linux/nas100d-kernel/2.6.15/60-nas100d-i2c.patch new file mode 100644 index 0000000000..5dfed57c0e --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.15/60-nas100d-i2c.patch @@ -0,0 +1,531 @@ + drivers/i2c/chips/Kconfig | 9 + drivers/i2c/chips/Makefile | 1 + drivers/i2c/chips/pcf8563.c | 466 ++++++++++++++++++++++++++++++++++++++++++++ + include/linux/pcf8563.h | 27 ++ + 4 files changed, 503 insertions(+) + +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-nas100d/drivers/i2c/chips/pcf8563.c 2005-11-22 17:32:35.000000000 +0100 +@@ -0,0 +1,466 @@ ++/* ++ * pcf8563.c - An i2c driver for the Philips PCF8563 RTC ++ * Copyright 2005 Tower Technologies ++ * ++ * Author: Alessandro Zummo <a.zummo@towertech.it> ++ * Maintainers: http://www.nslu2-linux.org/ ++ * ++ * based on the other drivers in this same directory. ++ * ++ * http://www.semiconductors.philips.com/acrobat/datasheets/PCF8563-04.pdf ++ * ++ * 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. ++ */ ++ ++#include <linux/module.h> ++#include <linux/init.h> ++#include <linux/slab.h> ++#include <linux/i2c.h> ++#include <linux/string.h> ++#include <linux/bcd.h> ++#include <linux/rtc.h> ++#include <linux/list.h> ++ ++#include <linux/pcf8563.h> ++ ++#define DRV_VERSION "0.3.4" ++ ++/* Addresses to scan */ ++static unsigned short normal_i2c[] = { 0x51, I2C_CLIENT_END }; ++ ++/* Module parameters */ ++I2C_CLIENT_INSMOD; ++I2C_CLIENT_MODULE_PARM(hctosys, ++ "Set the system time from the hardware clock upon initialization"); ++ ++#define PCF8563_REG_ST1 0x00 /* status */ ++#define PCF8563_REG_ST2 0x01 ++ ++#define PCF8563_REG_SC 0x02 /* datetime */ ++#define PCF8563_REG_MN 0x03 ++#define PCF8563_REG_HR 0x04 ++#define PCF8563_REG_DM 0x05 ++#define PCF8563_REG_DW 0x06 ++#define PCF8563_REG_MO 0x07 ++#define PCF8563_REG_YR 0x08 ++ ++#define PCF8563_REG_AMN 0x09 /* alarm */ ++#define PCF8563_REG_AHR 0x0A ++#define PCF8563_REG_ADM 0x0B ++#define PCF8563_REG_ADW 0x0C ++ ++#define PCF8563_REG_CLKO 0x0D /* clock out */ ++#define PCF8563_REG_TMRC 0x0E /* timer control */ ++#define PCF8563_REG_TMR 0x0F /* timer */ ++ ++#define PCF8563_SC_LV 0x80 /* low voltage */ ++#define PCF8563_MO_C 0x80 /* century */ ++ ++/* Prototypes */ ++static int pcf8563_attach(struct i2c_adapter *adapter); ++static int pcf8563_detach(struct i2c_client *client); ++static int pcf8563_probe(struct i2c_adapter *adapter, int address, int kind); ++static int pcf8563_command(struct i2c_client *client, unsigned int cmd, ++ void *arg); ++ ++static struct i2c_driver pcf8563_driver = { ++ .owner = THIS_MODULE, ++ .name = "pcf8563", ++ .flags = I2C_DF_NOTIFY, ++ .attach_adapter = &pcf8563_attach, ++ .detach_client = &pcf8563_detach, ++}; ++ ++struct pcf8563_data { ++ struct i2c_client client; ++ struct list_head list; ++}; ++ ++static const unsigned char days_in_mo[] = ++ { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; ++ ++static LIST_HEAD(pcf8563_clients); ++ ++/* Workaround until the I2C subsytem will allow to send ++ * commands to a specific client. This function will send the command ++ * to the first client. ++ */ ++int pcf8563_do_command(unsigned int cmd, void *arg) ++{ ++ struct list_head *walk; ++ struct list_head *tmp; ++ struct pcf8563_data *data; ++ ++ list_for_each_safe(walk, tmp, &pcf8563_clients) { ++ data = list_entry(walk, struct pcf8563_data, list); ++ return pcf8563_command(&data->client, cmd, arg); ++ } ++ ++ return -ENODEV; ++} ++ ++#define is_leap(year) \ ++ ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) ++ ++/* make sure the rtc_time values are in bounds */ ++ ++static int pcf8563_validate_tm(struct rtc_time *tm) ++{ ++ int year = tm->tm_year + 1900; ++ ++ if ((tm->tm_year < 70) || (tm->tm_year > 255)) ++ return -EINVAL; ++ ++ if ((tm->tm_mon > 11) || (tm->tm_mday == 0)) ++ return -EINVAL; ++ ++ if (tm->tm_mday > days_in_mo[tm->tm_mon] ++ + ((tm->tm_mon == 1) && is_leap(year))) ++ return -EINVAL; ++ ++ if ((tm->tm_hour >= 24) || (tm->tm_min >= 60) || (tm->tm_sec >= 60)) ++ return -EINVAL; ++ ++ return 0; ++} ++ ++/* ++ * In the routines that deal directly with the pcf8563 hardware, we use ++ * rtc_time -- month 0-11, hour 0-23, yr = calendar year-epoch. ++ */ ++static int pcf8563_get_datetime(struct i2c_client *client, struct rtc_time *tm) ++{ ++ unsigned char buf[13]; ++ unsigned char addr = PCF8563_REG_ST1; ++ ++ struct i2c_msg msgs[] = { ++ { client->addr, 0, 1, &addr }, /* setup read ptr */ ++ { client->addr, I2C_M_RD, 13, buf }, /* read status + date */ ++ }; ++ ++ /* read registers */ ++ if ((i2c_transfer(client->adapter, msgs, 2)) != 2) { ++ dev_err(&client->dev, "%s: read error\n", __FUNCTION__); ++ return -EIO; ++ } ++ ++ if (buf[PCF8563_REG_SC] & PCF8563_SC_LV) ++ dev_info(&client->dev, ++ "low voltage detected, date/time is not reliable.\n"); ++ ++ dev_dbg(&client->dev, ++ "%s: raw data is st1=%02x, st2=%02x, sec=%02x, min=%02x, hr=%02x, " ++ "mday=%02x, wday=%02x, mon=%02x, year=%02x\n", ++ __FUNCTION__, ++ buf[0], buf[1], buf[2], buf[3], ++ buf[4], buf[5], buf[6], buf[7], ++ buf[8]); ++ ++ ++ tm->tm_sec = BCD2BIN(buf[PCF8563_REG_SC] & 0x7F); ++ tm->tm_min = BCD2BIN(buf[PCF8563_REG_MN] & 0x7F); ++ tm->tm_hour = BCD2BIN(buf[PCF8563_REG_HR] & 0x3F); /* rtc hr 0-23 */ ++ tm->tm_mday = BCD2BIN(buf[PCF8563_REG_DM] & 0x3F); ++ tm->tm_wday = buf[PCF8563_REG_DW] & 0x07; ++ tm->tm_mon = BCD2BIN(buf[PCF8563_REG_MO] & 0x1F) - 1; /* rtc mn 1-12 */ ++ tm->tm_year = BCD2BIN(buf[PCF8563_REG_YR]) ++ + (buf[PCF8563_REG_MO] & PCF8563_MO_C ? 100 : 0); ++ ++ dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d, " ++ "mday=%d, mon=%d, year=%d, wday=%d\n", ++ __FUNCTION__, ++ tm->tm_sec, tm->tm_min, tm->tm_hour, ++ tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); ++ ++ if (pcf8563_validate_tm(tm) < 0) { ++ dev_err(&client->dev, "retrieved date/time is not valid.\n"); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static int pcf8563_set_datetime(struct i2c_client *client, struct rtc_time *tm, ++ int datetoo) ++{ ++ int i, err; ++ unsigned char buf[9]; ++ ++ /* check if all values in the tm struct are correct */ ++ if ((err = pcf8563_validate_tm(tm)) < 0) ++ return err; ++ ++ dev_dbg(&client->dev, "%s: secs=%d, mins=%d, hours=%d, " ++ "mday=%d, mon=%d, year=%d, wday=%d\n", ++ __FUNCTION__, ++ tm->tm_sec, tm->tm_min, tm->tm_hour, ++ tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); ++ ++ /* hours, minutes and seconds */ ++ buf[PCF8563_REG_SC] = BIN2BCD(tm->tm_sec); ++ buf[PCF8563_REG_MN] = BIN2BCD(tm->tm_min); ++ buf[PCF8563_REG_HR] = BIN2BCD(tm->tm_hour); ++ ++ /* should we also set the date? */ ++ if (datetoo) { ++ buf[PCF8563_REG_DM] = BIN2BCD(tm->tm_mday); ++ ++ /* month, 1 - 12 */ ++ buf[PCF8563_REG_MO] = BIN2BCD(tm->tm_mon + 1); ++ ++ /* year and century */ ++ buf[PCF8563_REG_YR] = BIN2BCD(tm->tm_year % 100); ++ if (tm->tm_year / 100) ++ buf[PCF8563_REG_MO] |= PCF8563_MO_C; ++ ++ buf[PCF8563_REG_DW] = tm->tm_wday & 0x07; ++ } ++ ++ /* write register's data */ ++ for (i = 0; i < (datetoo ? 7 : 3); i++) { ++ unsigned char data[2] = { PCF8563_REG_SC + i, ++ buf[PCF8563_REG_SC + i] }; ++ ++ err = i2c_master_send(client, data, sizeof(data)); ++ if (err != sizeof(data)) { ++ dev_err(&client->dev, ++ "%s: err=%d addr=%02x, data=%02x\n", ++ __FUNCTION__, err, data[0], data[1]); ++ return -EIO; ++ } ++ }; ++ ++ return 0; ++} ++ ++static int pcf8563_hctosys(struct i2c_client *client) ++{ ++ int err; ++ ++ struct rtc_time tm; ++ struct timespec tv; ++ ++ err = pcf8563_command(client, PCF8563_CMD_GETDATETIME, &tm); ++ ++ if (err) { ++ dev_err(&client->dev, ++ "Unable to set the system clock\n"); ++ return err; ++ } ++ ++ /* IMPORTANT: the RTC only stores whole seconds. It is arbitrary ++ * whether it stores the most close value or the value with partial ++ * seconds truncated. However, it is important that we use it to store ++ * the truncated value. This is because otherwise it is necessary, ++ * in an rtc sync function, to read both xtime.tv_sec and ++ * xtime.tv_nsec. On some processors (i.e. ARM), an atomic read ++ * of >32bits is not possible. So storing the most close value would ++ * slow down the sync API. So here we have the truncated value and ++ * the best guess is to add 0.5s. ++ */ ++ ++ tv.tv_nsec = NSEC_PER_SEC >> 1; ++ ++ /* WARNING: this is not the C library 'mktime' call, it is a built in ++ * inline function from include/linux/time.h. It expects (requires) ++ * the month to be in the range 1-12 ++ */ ++ ++ tv.tv_sec = mktime(tm.tm_year + 1900, tm.tm_mon + 1, ++ tm.tm_mday, tm.tm_hour, ++ tm.tm_min, tm.tm_sec); ++ ++ do_settimeofday(&tv); ++ ++ dev_info(&client->dev, ++ "setting the system clock to %d-%d-%d %d:%d:%d\n", ++ tm.tm_year + 1900, tm.tm_mon + 1, ++ tm.tm_mday, tm.tm_hour, tm.tm_min, ++ tm.tm_sec); ++ ++ return 0; ++} ++ ++struct pcf8563_limit ++{ ++ unsigned char reg; ++ unsigned char mask; ++ unsigned char min; ++ unsigned char max; ++}; ++ ++static int pcf8563_validate_client(struct i2c_client *client) ++{ ++ int i, xfer; ++ ++ static const struct pcf8563_limit probe_limits_pattern[] = { ++ /* register, mask, min, max */ ++ { PCF8563_REG_SC, 0x7F, 0, 59 }, ++ { PCF8563_REG_MN, 0x7F, 0, 59 }, ++ { PCF8563_REG_HR, 0x3F, 0, 23 }, ++ { PCF8563_REG_DM, 0x3F, 0, 31 }, ++ { PCF8563_REG_MO, 0x1F, 0, 12 }, ++ { PCF8563_REG_YR, 0xFF, 0, 99 }, ++ }; ++ ++ /* check limits (only registers with bcd values) */ ++ for (i = 0; i < ARRAY_SIZE(probe_limits_pattern); i++) { ++ unsigned char addr, buf, value; ++ ++ addr = probe_limits_pattern[i].reg; ++ ++ struct i2c_msg msgs[2] = { ++ { client->addr, 0, 2, &addr }, ++ { client->addr, I2C_M_RD, 1, &buf }, ++ }; ++ ++ xfer = i2c_transfer(client->adapter, msgs, 2); ++ ++ if (xfer != 2) { ++ dev_err(&client->adapter->dev, ++ "%s: could not read register %x\n", ++ __FUNCTION__, probe_limits_pattern[i].reg); ++ ++ return -EIO; ++ } ++ ++ value = BCD2BIN(buf & probe_limits_pattern[i].mask); ++ ++ if (value > probe_limits_pattern[i].max || ++ value < probe_limits_pattern[i].min) { ++ dev_dbg(&client->adapter->dev, ++ "%s: register=%x, lim pattern=%d, value=%d\n", ++ __FUNCTION__, probe_limits_pattern[i].reg, i, value); ++ ++ return -ENODEV; ++ } ++ } ++ ++ return 0; ++} ++ ++static int pcf8563_attach(struct i2c_adapter *adapter) ++{ ++ return i2c_probe(adapter, &addr_data, pcf8563_probe); ++} ++ ++static int pcf8563_probe(struct i2c_adapter *adapter, int address, int kind) ++{ ++ struct i2c_client *client; ++ struct pcf8563_data *data; ++ ++ int err = 0; ++ ++ dev_dbg(&adapter->dev, "%s\n", __FUNCTION__); ++ ++ if (!i2c_check_functionality(adapter, I2C_FUNC_I2C)) { ++ err = -ENODEV; ++ goto exit; ++ } ++ ++ if (!(data = kzalloc(sizeof(struct pcf8563_data), GFP_KERNEL))) { ++ err = -ENOMEM; ++ goto exit; ++ } ++ ++ client = &data->client; ++ client->addr = address; ++ client->driver = &pcf8563_driver; ++ client->adapter = adapter; ++ ++ strlcpy(client->name, pcf8563_driver.name, I2C_NAME_SIZE); ++ ++ i2c_set_clientdata(client, data); ++ ++ /* Verify the chip is really an PCF8563 */ ++ if (kind < 0) { ++ if (pcf8563_validate_client(client) < 0) { ++ err = -ENODEV; ++ goto exit_kfree; ++ } ++ } ++ ++ /* Inform the i2c layer */ ++ if ((err = i2c_attach_client(client))) ++ goto exit_kfree; ++ ++ list_add(&data->list, &pcf8563_clients); ++ ++ dev_info(&client->dev, "chip found, driver version " DRV_VERSION "\n"); ++ ++ /* If requested, set the system time */ ++ if (hctosys) ++ pcf8563_hctosys(client); ++ ++ return 0; ++ ++exit_kfree: ++ kfree(data); ++ ++exit: ++ return err; ++} ++ ++static int pcf8563_detach(struct i2c_client *client) ++{ ++ int err; ++ struct pcf8563_data *data = i2c_get_clientdata(client); ++ ++ if ((err = i2c_detach_client(client))) ++ return err; ++ ++ list_del(&data->list); ++ ++ kfree(data); ++ ++ return 0; ++} ++ ++static int pcf8563_command(struct i2c_client *client, unsigned int cmd, ++ void *param) ++{ ++ if (param == NULL) ++ return -EINVAL; ++ ++ if (!capable(CAP_SYS_TIME)) ++ return -EACCES; ++ ++ dev_dbg(&client->dev, "%s: cmd=%d\n", __FUNCTION__, cmd); ++ ++ switch (cmd) { ++ case PCF8563_CMD_GETDATETIME: ++ return pcf8563_get_datetime(client, param); ++ ++ case PCF8563_CMD_SETTIME: ++ return pcf8563_set_datetime(client, param, 0); ++ ++ case PCF8563_CMD_SETDATETIME: ++ return pcf8563_set_datetime(client, param, 1); ++ ++ default: ++ return -EINVAL; ++ } ++} ++ ++static int __init pcf8563_init(void) ++{ ++ return i2c_add_driver(&pcf8563_driver); ++} ++ ++static void __exit pcf8563_exit(void) ++{ ++ i2c_del_driver(&pcf8563_driver); ++} ++ ++MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>"); ++MODULE_DESCRIPTION("Philips PCF8563 RTC driver"); ++MODULE_LICENSE("GPL"); ++MODULE_VERSION(DRV_VERSION); ++ ++EXPORT_SYMBOL_GPL(pcf8563_do_command); ++ ++module_init(pcf8563_init); ++module_exit(pcf8563_exit); +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-nas100d/include/linux/pcf8563.h 2005-11-22 01:36:46.000000000 +0100 +@@ -0,0 +1,27 @@ ++/* ++ * pcf8563.h - defines for drivers/i2c/chips/pcf8563.c ++ * Copyright 2005 Tower Technologies ++ * ++ * Author: Alessandro Zummo <a.zummo@towertech.it> ++ * Maintainers: http://www.nslu2-linux.org/ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ */ ++ ++#ifndef __LINUX_PCF8563_H__ ++#define __LINUX_PCF8563_H__ ++ ++/* commands */ ++ ++#define PCF8563_CMD_GETDATETIME 0 ++#define PCF8563_CMD_SETTIME 1 ++#define PCF8563_CMD_SETDATETIME 2 ++#define PCF8563_CMD_GETALARM 3 ++#define PCF8563_CMD_SETALARM 4 ++ ++extern int pcf8563_do_command(unsigned int cmd, void *arg); ++ ++#endif /* __LINUX_PCF8563_H__ */ +--- linux-nas100d.orig/drivers/i2c/chips/Kconfig 2005-11-21 22:01:31.000000000 +0100 ++++ linux-nas100d/drivers/i2c/chips/Kconfig 2005-11-22 01:36:46.000000000 +0100 +@@ -135,4 +135,13 @@ config RTC_X1205_I2C + This driver can also be built as a module. If so, the module + will be called x1205. + ++config RTC_PCF8563_I2C ++ tristate "Philips PCF8563 RTC" ++ depends on I2C && EXPERIMENTAL ++ help ++ If you say yes here you get support for the Philips PCF8563 ++ Real Time Clock chip. This chip is used by the Iomega NAS100D. ++ ++ This driver can also be built as a module. If so, the module ++ will be called pcf8563. + endmenu +--- linux-nas100d.orig/drivers/i2c/chips/Makefile 2005-11-21 22:01:31.000000000 +0100 ++++ linux-nas100d/drivers/i2c/chips/Makefile 2005-11-22 01:36:46.000000000 +0100 +@@ -14,6 +14,7 @@ obj-$(CONFIG_SENSORS_RTC8564) += rtc8564 + obj-$(CONFIG_ISP1301_OMAP) += isp1301_omap.o + obj-$(CONFIG_TPS65010) += tps65010.o + obj-$(CONFIG_RTC_X1205_I2C) += x1205.o ++obj-$(CONFIG_RTC_PCF8563_I2C) += pcf8563.o + + ifeq ($(CONFIG_I2C_DEBUG_CHIP),y) + EXTRA_CFLAGS += -DDEBUG diff --git a/packages/linux/nas100d-kernel/2.6.15/60-nas100d-ide.patch b/packages/linux/nas100d-kernel/2.6.15/60-nas100d-ide.patch new file mode 100644 index 0000000000..fea83fbec7 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.15/60-nas100d-ide.patch @@ -0,0 +1,155 @@ + drivers/ide/pci/aec62xx.c | 67 +++++++++++++++++++++++++++++++++++++++++++--- + drivers/ide/setup-pci.c | 12 +++++++- + 2 files changed, 75 insertions(+), 4 deletions(-) + +--- linux-nas100d.orig/drivers/ide/pci/aec62xx.c 2005-11-21 20:49:50.000000000 +0100 ++++ linux-nas100d/drivers/ide/pci/aec62xx.c 2005-11-21 22:15:21.000000000 +0100 +@@ -145,6 +145,16 @@ static int aec6210_tune_chipset (ide_dri + unsigned long flags; + + local_irq_save(flags); ++ ++#ifdef CONFIG_MACH_NAS100D ++ printk(KERN_INFO "aec62xx: nas100d tuning\n"); ++ pci_write_config_word(hwif->pci_dev, PCI_COMMAND, PCI_COMMAND_IO | PCI_COMMAND_MASTER); ++ pci_write_config_byte(hwif->pci_dev, PCI_LATENCY_TIMER, 0x80); ++ /* Enable burst mode & force 2 ports enable */ ++ pci_read_config_byte(hwif->pci_dev, 0x4a, &tmp0); ++ pci_write_config_byte(hwif->pci_dev, 0x4a, tmp0 | 0x80); ++#endif ++ + /* 0x40|(2*drive->dn): Active, 0x41|(2*drive->dn): Recovery */ + pci_read_config_word(dev, 0x40|(2*drive->dn), &d_conf); + tmp0 = pci_bus_clock_list(speed, BUSCLOCK(dev)); +@@ -206,9 +216,17 @@ static int config_chipset_for_dma (ide_d + { + u8 speed = ide_dma_speed(drive, aec62xx_ratemask(drive)); + ++#ifdef CONFIG_MACH_NAS100D ++ ide_hwif_t *hwif= HWIF(drive); ++ u8 unit = (drive->select.b.unit & 0x01); ++#endif + if (!(speed)) + return 0; + ++#ifdef CONFIG_MACH_NAS100D ++ outb((inb(hwif->dma_base+2) & ~(1<<(5+unit))), hwif->dma_base+2); ++#endif ++ + (void) aec62xx_tune_chipset(drive, speed); + return ide_dma_enable(drive); + } +@@ -299,6 +317,14 @@ static unsigned int __devinit init_chips + { + int bus_speed = system_bus_clock(); + ++#ifdef CONFIG_MACH_NAS100D ++ /* enable both ports */ ++ byte tmp; ++ printk(KERN_INFO "%s: nas100d ports enable\n", name); ++ pci_read_config_byte(dev, 0x4a, &tmp); ++ pci_write_config_byte(dev, 0x4a, tmp | 0x06); ++#endif ++ + if (dev->resource[PCI_ROM_RESOURCE].start) { + pci_write_config_dword(dev, PCI_ROM_ADDRESS, dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE); + printk(KERN_INFO "%s: ROM enabled at 0x%08lx\n", name, dev->resource[PCI_ROM_RESOURCE].start); +@@ -312,12 +338,35 @@ static unsigned int __devinit init_chips + return dev->irq; + } + ++#ifdef CONFIG_MACH_NAS100D ++static void nas100d_insw (unsigned long port, u16 *addr, u32 count) ++{ ++ while (count--) ++ *addr++ = __cpu_to_le16(inw(port)); ++} ++ ++static void nas100d_outw (u16 val, unsigned long port) ++{ ++ u32 n, byte_enables, data; ++ n = port % 4; ++ byte_enables = (0xf & ~(BIT(n) | BIT(n+1))) << IXP4XX_PCI_NP_CBE_BESL; ++ data = val << (8*n); ++ ixp4xx_pci_write(port, byte_enables | NP_CMD_IOWRITE, __le16_to_cpu(data)); ++} ++#endif ++ + static void __devinit init_hwif_aec62xx(ide_hwif_t *hwif) + { + hwif->autodma = 0; + hwif->tuneproc = &aec62xx_tune_drive; + hwif->speedproc = &aec62xx_tune_chipset; + ++#ifdef CONFIG_MACH_NAS100D ++ printk(KERN_INFO "aec62xx: enabling nas100d iops\n"); ++ hwif->OUTW = nas100d_outw; ++ hwif->INSW = nas100d_insw; ++#endif ++ + if (hwif->pci_dev->device == PCI_DEVICE_ID_ARTOP_ATP850UF) { + hwif->serialized = hwif->channel; + hwif->no_dsc = 1; +@@ -360,11 +409,18 @@ static void __devinit init_dma_aec62xx(i + } else { + u8 ata66 = 0; + pci_read_config_byte(hwif->pci_dev, 0x49, &ata66); +- if (!(hwif->udma_four)) ++ if (!(hwif->udma_four)) + hwif->udma_four = (ata66&(hwif->channel?0x02:0x01))?0:1; + } + + ide_setup_dma(hwif, dmabase, 8); ++#ifdef CONFIG_MACH_NAS100D ++ { ++ u8 dma_stat = hwif->INB(hwif->dma_status); ++ dma_stat |= (1 << 4); ++ hwif->OUTB(dma_stat, hwif->dma_status); ++ } ++#endif + } + + static int __devinit init_setup_aec62xx(struct pci_dev *dev, ide_pci_device_t *d) +@@ -427,6 +483,9 @@ static ide_pci_device_t aec62xx_chipsets + .init_dma = init_dma_aec62xx, + .channels = 2, + .autodma = AUTODMA, ++#ifdef CONFIG_MACH_NAS100D ++ .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, ++#endif + .bootable = OFF_BOARD, + },{ /* 4 */ + .name = "AEC6X80R", +@@ -454,6 +513,8 @@ static int __devinit aec62xx_init_one(st + { + ide_pci_device_t *d = &aec62xx_chipsets[id->driver_data]; + ++ printk(KERN_INFO "aec62xx: using config %lx\n", id->driver_data); ++ + return d->init_setup(dev, d); + } + +--- linux-nas100d.orig/drivers/ide/setup-pci.c 2005-11-21 20:49:50.000000000 +0100 ++++ linux-nas100d/drivers/ide/setup-pci.c 2005-11-21 22:01:22.000000000 +0100 +@@ -602,10 +602,20 @@ void ide_pci_setup_ports(struct pci_dev + if ((d->flags & IDEPCI_FLAG_FORCE_PDC) && + (secondpdc++==1) && (port==1)) + goto controller_ok; +- ++ + if (e->reg && (pci_read_config_byte(dev, e->reg, &tmp) || + (tmp & e->mask) != e->val)) ++#ifdef CONFIG_MACH_NAS100D ++ { ++ pci_write_config_byte(dev, e->reg, tmp & ~0x01); ++#endif + continue; /* port not enabled */ ++#ifdef CONFIG_MACH_NAS100D ++ } ++ else ++ pci_write_config_byte(dev, e->reg, tmp & ~0x01); ++#endif ++ + controller_ok: + + if (d->channels <= port) diff --git a/packages/linux/nas100d-kernel/2.6.15/90-ixp4xx-nslu2.patch b/packages/linux/nas100d-kernel/2.6.15/90-ixp4xx-nslu2.patch new file mode 100644 index 0000000000..c106f7c957 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.15/90-ixp4xx-nslu2.patch @@ -0,0 +1,132 @@ +ixp4xx updates: + - Handle reads that don't start on a half-word boundary. + - Make it work when CPU is in little-endian mode. + +Signed-off-by: John Bowler <jbowler@acm.org> +Signed-off-by: Alessandro Zummo <a.zummo@towertech.it> +Signed-off-by: David Vrabel <dvrabel@arcom.com> + +Index: linux-2.6-working/drivers/mtd/maps/ixp4xx.c +=================================================================== +--- linux-2.6-working.orig/drivers/mtd/maps/ixp4xx.c 2005-11-16 15:19:34.000000000 +0000 ++++ linux-2.6-working/drivers/mtd/maps/ixp4xx.c 2005-11-16 16:06:54.000000000 +0000 +@@ -34,10 +34,55 @@ + + #include <linux/reboot.h> + ++/* ++ * Read/write a 16 bit word from flash address 'addr'. ++ * ++ * When the cpu is in little-endian mode it swizzles the address lines ++ * ('address coherency') so we need to undo the swizzling to ensure commands ++ * and the like end up on the correct flash address. ++ * ++ * To further complicate matters, due to the way the expansion bus controller ++ * handles 32 bit reads, the byte stream ABCD is stored on the flash as: ++ * D15 D0 ++ * +---+---+ ++ * | A | B | 0 ++ * +---+---+ ++ * | C | D | 2 ++ * +---+---+ ++ * This means that on LE systems each 16 bit word must be swapped. Note that ++ * this requires CONFIG_MTD_CFI_BE_BYTE_SWAP to be enabled to 'unswap' the CFI ++ * data and other flash commands which are always in D7-D0. ++ */ + #ifndef __ARMEB__ ++#ifndef CONFIG_MTD_CFI_BE_BYTE_SWAP ++# error CONFIG_MTD_CFI_BE_BYTE_SWAP required ++#endif ++ ++static inline u16 flash_read16(void __iomem *addr) ++{ ++ return be16_to_cpu(__raw_readw((void __iomem *)((unsigned long)addr ^ 0x2))); ++} ++ ++static inline void flash_write16(u16 d, void __iomem *addr) ++{ ++ __raw_writew(cpu_to_be16(d), (void __iomem *)((unsigned long)addr ^ 0x2)); ++} ++ + #define BYTE0(h) ((h) & 0xFF) + #define BYTE1(h) (((h) >> 8) & 0xFF) ++ + #else ++ ++static inline u16 flash_read16(const void __iomem *addr) ++{ ++ return __raw_readw(addr); ++} ++ ++static inline void flash_write16(u16 d, void __iomem *addr) ++{ ++ __raw_writew(d, addr); ++} ++ + #define BYTE0(h) (((h) >> 8) & 0xFF) + #define BYTE1(h) ((h) & 0xFF) + #endif +@@ -45,7 +90,7 @@ + static map_word ixp4xx_read16(struct map_info *map, unsigned long ofs) + { + map_word val; +- val.x[0] = le16_to_cpu(readw(map->virt + ofs)); ++ val.x[0] = flash_read16(map->virt + ofs); + return val; + } + +@@ -57,19 +102,28 @@ + static void ixp4xx_copy_from(struct map_info *map, void *to, + unsigned long from, ssize_t len) + { +- int i; + u8 *dest = (u8 *) to; + void __iomem *src = map->virt + from; +- u16 data; + +- for (i = 0; i < (len / 2); i++) { +- data = le16_to_cpu(readw(src + 2*i)); +- dest[i * 2] = BYTE0(data); +- dest[i * 2 + 1] = BYTE1(data); ++ if (len <= 0) ++ return; ++ ++ if (from & 1) { ++ *dest++ = BYTE1(flash_read16(src)); ++ src++; ++ --len; + } + +- if (len & 1) +- dest[len - 1] = BYTE0(le16_to_cpu(readw(src + 2*i))); ++ while (len >= 2) { ++ u16 data = flash_read16(src); ++ *dest++ = BYTE0(data); ++ *dest++ = BYTE1(data); ++ src += 2; ++ len -= 2; ++ } ++ ++ if (len > 0) ++ *dest++ = BYTE0(flash_read16(src)); + } + + /* +@@ -79,7 +133,7 @@ + static void ixp4xx_probe_write16(struct map_info *map, map_word d, unsigned long adr) + { + if (!(adr & 1)) +- writew(cpu_to_le16(d.x[0]), map->virt + adr); ++ flash_write16(d.x[0], map->virt + adr); + } + + /* +@@ -87,7 +141,7 @@ + */ + static void ixp4xx_write16(struct map_info *map, map_word d, unsigned long adr) + { +- writew(cpu_to_le16(d.x[0]), map->virt + adr); ++ flash_write16(d.x[0], map->virt + adr); + } + + struct ixp4xx_flash_info { diff --git a/packages/linux/openslug-kernel-2.6.11/defconfig b/packages/linux/nas100d-kernel/2.6.15/defconfig index 9d5f54c13b..46634df1d5 100644 --- a/packages/linux/openslug-kernel-2.6.11/defconfig +++ b/packages/linux/nas100d-kernel/2.6.15/defconfig @@ -1,14 +1,13 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.11 -# Tue Mar 8 02:00:48 2005 +# Linux kernel version: 2.6.14 +# Sun Nov 13 02:06:49 2005 # CONFIG_ARM=y CONFIG_MMU=y CONFIG_UID16=y CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_GENERIC_IOMAP=y # # Code maturity level options @@ -16,26 +15,28 @@ CONFIG_GENERIC_IOMAP=y CONFIG_EXPERIMENTAL=y CONFIG_CLEAN_COMPILE=y CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 # # General setup # CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set -CONFIG_BSD_PROCESS_ACCT=y -# CONFIG_BSD_PROCESS_ACCT_V3 is not set +# CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y # CONFIG_AUDIT is not set -CONFIG_LOG_BUF_SHIFT=14 CONFIG_HOTPLUG=y CONFIG_KOBJECT_UEVENT=y # CONFIG_IKCONFIG is not set +CONFIG_INITRAMFS_SOURCE="" CONFIG_EMBEDDED=y -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set +# CONFIG_KALLSYMS is not set +CONFIG_PRINTK=y +CONFIG_BUG=y +# CONFIG_BASE_FULL is not set CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y @@ -45,6 +46,7 @@ CONFIG_CC_ALIGN_LABELS=0 CONFIG_CC_ALIGN_LOOPS=0 CONFIG_CC_ALIGN_JUMPS=0 # CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=1 # # Loadable module support @@ -81,6 +83,7 @@ CONFIG_ARCH_IXP4XX=y # CONFIG_ARCH_VERSATILE is not set # CONFIG_ARCH_IMX is not set # CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_AAEC2000 is not set CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y # @@ -95,15 +98,14 @@ CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y # CONFIG_ARCH_IXDP425 is not set # CONFIG_MACH_IXDPG425 is not set # CONFIG_MACH_IXDP465 is not set -CONFIG_ARCH_NSLU2=y # CONFIG_ARCH_PRPMC1100 is not set +CONFIG_MACH_NAS100D=y # CONFIG_MACH_GTWX5715 is not set # # IXP4xx Options # CONFIG_IXP4XX_INDIRECT_PCI=y -CONFIG_DMABOUNCE=y # # Processor Type @@ -114,24 +116,21 @@ CONFIG_CPU_32v5=y CONFIG_CPU_ABRT_EV5T=y CONFIG_CPU_CACHE_VIVT=y CONFIG_CPU_TLB_V4WBI=y -CONFIG_CPU_MINICACHE=y # # Processor Features # -# CONFIG_ARM_THUMB is not set +CONFIG_ARM_THUMB=y CONFIG_CPU_BIG_ENDIAN=y CONFIG_XSCALE_PMU=y +CONFIG_DMABOUNCE=y # -# General setup +# Bus support # +CONFIG_ISA_DMA_API=y CONFIG_PCI=y -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -# CONFIG_XIP_KERNEL is not set CONFIG_PCI_LEGACY_PROC=y -# CONFIG_PCI_NAMES is not set # # PCCARD (PCMCIA/CardBus) support @@ -139,50 +138,261 @@ CONFIG_PCI_LEGACY_PROC=y # CONFIG_PCCARD is not set # -# PC-card bridges +# Kernel Features +# +# CONFIG_PREEMPT is not set +# CONFIG_NO_IDLE_HZ is not set +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +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_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="root=/dev/mtdblock2 rw rootfstype=jffs2 mem=64M@0x00000000 init=/linuxrc console=ttyS0,115200n8 pcf8563.hctosys=1" +# CONFIG_XIP_KERNEL is not set + +# +# Floating point emulation # # -# At least one math emulation must be selected +# At least one emulation must be selected # CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set # CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set +# CONFIG_ARTHUR is not set # -# Generic Driver Options +# Power management options # -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -# CONFIG_FW_LOADER is not set -# CONFIG_DEBUG_DRIVER is not set -CONFIG_PM=y -# CONFIG_PREEMPT is not set -CONFIG_APM=y -# CONFIG_ARTHUR is not set -CONFIG_CMDLINE="root=/dev/ram0 initrd=0x01000000,10M mem=32M@0x00000000 console=ttyS0,115200n8" -CONFIG_ALIGNMENT_TRAP=y +# CONFIG_PM is not set # -# Parallel port support +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=m +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set +# CONFIG_NET_KEY is not set +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_PNP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +CONFIG_IPV6=m +# CONFIG_IPV6_PRIVACY is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_INET6_TUNNEL=m +CONFIG_IPV6_TUNNEL=m +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_BRIDGE_NETFILTER=y +# CONFIG_NETFILTER_NETLINK is not set + +# +# IP: Netfilter Configuration +# +CONFIG_IP_NF_CONNTRACK=m +# CONFIG_IP_NF_CT_ACCT is not set +# CONFIG_IP_NF_CONNTRACK_MARK is not set +# CONFIG_IP_NF_CONNTRACK_EVENTS is not set +CONFIG_IP_NF_CT_PROTO_SCTP=m +CONFIG_IP_NF_FTP=m +CONFIG_IP_NF_IRC=m +# CONFIG_IP_NF_NETBIOS_NS is not set +CONFIG_IP_NF_TFTP=m +CONFIG_IP_NF_AMANDA=m +# CONFIG_IP_NF_PPTP is not set +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_LIMIT=m +CONFIG_IP_NF_MATCH_IPRANGE=m +CONFIG_IP_NF_MATCH_MAC=m +CONFIG_IP_NF_MATCH_PKTTYPE=m +CONFIG_IP_NF_MATCH_MARK=m +CONFIG_IP_NF_MATCH_MULTIPORT=m +CONFIG_IP_NF_MATCH_TOS=m +CONFIG_IP_NF_MATCH_RECENT=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_DSCP=m +CONFIG_IP_NF_MATCH_AH_ESP=m +CONFIG_IP_NF_MATCH_LENGTH=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_MATCH_TCPMSS=m +CONFIG_IP_NF_MATCH_HELPER=m +CONFIG_IP_NF_MATCH_STATE=m +CONFIG_IP_NF_MATCH_CONNTRACK=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_MATCH_PHYSDEV=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_MATCH_REALM=m +# CONFIG_IP_NF_MATCH_SCTP is not set +# CONFIG_IP_NF_MATCH_DCCP is not set +CONFIG_IP_NF_MATCH_COMMENT=m +CONFIG_IP_NF_MATCH_HASHLIMIT=m +# CONFIG_IP_NF_MATCH_STRING is not set +CONFIG_IP_NF_FILTER=m +# CONFIG_IP_NF_TARGET_REJECT is not set +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_IP_NF_TARGET_TCPMSS=m +# CONFIG_IP_NF_TARGET_NFQUEUE is not set +CONFIG_IP_NF_NAT=m +CONFIG_IP_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_IP_NF_NAT_SNMP_BASIC=m +CONFIG_IP_NF_NAT_IRC=m +CONFIG_IP_NF_NAT_FTP=m +CONFIG_IP_NF_NAT_TFTP=m +CONFIG_IP_NF_NAT_AMANDA=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_TOS=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_DSCP=m +CONFIG_IP_NF_TARGET_MARK=m +CONFIG_IP_NF_TARGET_CLASSIFY=m +# CONFIG_IP_NF_TARGET_TTL is not set +# CONFIG_IP_NF_RAW is not set +# CONFIG_IP_NF_ARPTABLES is not set + +# +# IPv6: Netfilter Configuration (EXPERIMENTAL) +# +# CONFIG_IP6_NF_QUEUE is not set +# CONFIG_IP6_NF_IPTABLES is not set +# CONFIG_IP6_NF_TARGET_NFQUEUE is not set + +# +# Bridge: Netfilter Configuration +# +# CONFIG_BRIDGE_NF_EBTABLES is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set +# CONFIG_ATM is not set +CONFIG_BRIDGE=m +CONFIG_VLAN_8021Q=m +# CONFIG_DECNET is not set +CONFIG_LLC=m +# CONFIG_LLC2 is not set +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=y +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +CONFIG_IPDDP_DECAP=y +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_NET_DIVERT is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_SCHED is not set +CONFIG_NET_CLS_ROUTE=y + +# +# Network testing +# +CONFIG_NET_PKTGEN=m +# 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_HIDP is not set + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUSB=m +CONFIG_BT_HCIUSB_SCO=y +# CONFIG_BT_HCIUART is not set +CONFIG_BT_HCIBCM203X=m +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_IEEE80211 is not set + +# +# Device Drivers # -# CONFIG_PARPORT is not set + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=m # # Memory Technology Devices (MTD) # CONFIG_MTD=y # CONFIG_MTD_DEBUG is not set -CONFIG_MTD_PARTITIONS=y CONFIG_MTD_CONCAT=y +CONFIG_MTD_PARTITIONS=y CONFIG_MTD_REDBOOT_PARTS=y CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 # CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set # CONFIG_MTD_REDBOOT_PARTS_READONLY is not set -CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_CMDLINE_PARTS is not set # CONFIG_MTD_AFS_PARTS is not set # @@ -200,10 +410,14 @@ CONFIG_MTD_BLOCK=y 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_CFI_ADV_OPTIONS=y +# CONFIG_MTD_CFI_NOSWAP is not set +CONFIG_MTD_CFI_BE_BYTE_SWAP=y +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +CONFIG_MTD_CFI_GEOMETRY=y +# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set # 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 @@ -211,6 +425,7 @@ 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_OTP is not set CONFIG_MTD_CFI_INTELEXT=y # CONFIG_MTD_CFI_AMDSTD is not set # CONFIG_MTD_CFI_STAA is not set @@ -229,6 +444,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y CONFIG_MTD_IXP4XX=y # CONFIG_MTD_EDB7312 is not set # CONFIG_MTD_PCI is not set +# CONFIG_MTD_PLATRAM is not set # # Self-contained MTD device drivers @@ -253,13 +469,17 @@ CONFIG_MTD_IXP4XX=y # CONFIG_MTD_NAND is not set # +# Parallel port support +# +# CONFIG_PARPORT is not set + +# # Plug and Play support # # # Block devices # -# 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 @@ -271,11 +491,12 @@ CONFIG_BLK_DEV_LOOP=m # 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_COUNT=4 CONFIG_BLK_DEV_RAM_SIZE=10240 CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -# CONFIG_CDROM_PKTCDVD is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set # # IO Schedulers @@ -287,198 +508,183 @@ CONFIG_IOSCHED_DEADLINE=y # CONFIG_ATA_OVER_ETH is not set # -# Multi-device support (RAID and LVM) -# -CONFIG_MD=y -CONFIG_BLK_DEV_MD=m -# CONFIG_MD_LINEAR is not set -CONFIG_MD_RAID0=m -CONFIG_MD_RAID1=m -# CONFIG_MD_RAID10 is not set -CONFIG_MD_RAID5=m -# CONFIG_MD_RAID6 is not set -# CONFIG_MD_MULTIPATH is not set -# CONFIG_MD_FAULTY is not set -# CONFIG_BLK_DEV_DM is not set - -# -# Networking support +# ATA/ATAPI/MFM/RLL support # -CONFIG_NET=y +CONFIG_IDE=y +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +# CONFIG_BLK_DEV_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_IDE_TASK_IOCTL is not set + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=y +CONFIG_BLK_DEV_IDEPCI=y +# CONFIG_IDEPCI_SHARE_IRQ is not set +# CONFIG_BLK_DEV_OFFBOARD is not set +CONFIG_BLK_DEV_GENERIC=y +# CONFIG_BLK_DEV_OPTI621 is not set +# CONFIG_BLK_DEV_SL82C105 is not set +CONFIG_BLK_DEV_IDEDMA_PCI=y +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +CONFIG_IDEDMA_PCI_AUTO=y +# CONFIG_IDEDMA_ONLYDISK is not set +CONFIG_BLK_DEV_AEC62XX=m +# CONFIG_BLK_DEV_ALI15X3 is not set +# CONFIG_BLK_DEV_AMD74XX is not set +# CONFIG_BLK_DEV_CMD64X is not set +# CONFIG_BLK_DEV_TRIFLEX is not set +# CONFIG_BLK_DEV_CY82C693 is not set +# CONFIG_BLK_DEV_CS5520 is not set +# CONFIG_BLK_DEV_CS5530 is not set +# CONFIG_BLK_DEV_HPT34X is not set +# CONFIG_BLK_DEV_HPT366 is not set +# CONFIG_BLK_DEV_SC1200 is not set +# CONFIG_BLK_DEV_PIIX is not set +# CONFIG_BLK_DEV_IT821X is not set +# CONFIG_BLK_DEV_NS87415 is not set +# CONFIG_BLK_DEV_PDC202XX_OLD is not set +# CONFIG_BLK_DEV_PDC202XX_NEW is not set +# CONFIG_BLK_DEV_SVWKS is not set +# CONFIG_BLK_DEV_SIIMAGE is not set +# CONFIG_BLK_DEV_SLC90E66 is not set +# CONFIG_BLK_DEV_TRM290 is not set +# CONFIG_BLK_DEV_VIA82CXXX is not set +# CONFIG_IDE_ARM is not set +CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_IDEDMA_IVB is not set +CONFIG_IDEDMA_AUTO=y +# CONFIG_BLK_DEV_HD is not set # -# Networking options +# SCSI device support # -CONFIG_PACKET=m -CONFIG_PACKET_MMAP=y -CONFIG_NETLINK_DEV=m -CONFIG_UNIX=y -# CONFIG_NET_KEY is not set -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -# CONFIG_IP_PNP_RARP is not set -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE=m -# CONFIG_ARPD is not set -CONFIG_SYN_COOKIES=y -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -CONFIG_INET_TUNNEL=m -CONFIG_IP_TCPDIAG=y -# CONFIG_IP_TCPDIAG_IPV6 is not set +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_PROC_FS=y # -# IP: Virtual Server Configuration +# SCSI support type (disk, tape, CD-ROM) # -CONFIG_IP_VS=m -CONFIG_IP_VS_DEBUG=y -CONFIG_IP_VS_TAB_BITS=12 +CONFIG_BLK_DEV_SD=m +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=m +# CONFIG_CHR_DEV_SCH is not set # -# IPVS transport protocol load balancing support +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs # -# CONFIG_IP_VS_PROTO_TCP is not set -# CONFIG_IP_VS_PROTO_UDP is not set -# CONFIG_IP_VS_PROTO_ESP is not set -# CONFIG_IP_VS_PROTO_AH is not set +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set # -# IPVS scheduler +# SCSI Transport Attributes # -CONFIG_IP_VS_RR=m -CONFIG_IP_VS_WRR=m -CONFIG_IP_VS_LC=m -CONFIG_IP_VS_WLC=m -CONFIG_IP_VS_LBLC=m -CONFIG_IP_VS_LBLCR=m -CONFIG_IP_VS_DH=m -CONFIG_IP_VS_SH=m -# CONFIG_IP_VS_SED is not set -# CONFIG_IP_VS_NQ is not set +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set # -# IPVS application helper +# SCSI low-level drivers # -# CONFIG_IPV6 is not set -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set -CONFIG_BRIDGE_NETFILTER=y +# 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_DPT_I2O is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_SATA 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_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_FC is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +CONFIG_SCSI_QLA2XXX=n +# CONFIG_SCSI_QLA21XX is not set +# CONFIG_SCSI_QLA22XX is not set +# CONFIG_SCSI_QLA2300 is not set +# CONFIG_SCSI_QLA2322 is not set +# CONFIG_SCSI_QLA6312 is not set +# CONFIG_SCSI_QLA24XX is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_DEBUG is not set # -# IP: Netfilter Configuration +# Multi-device support (RAID and LVM) # -# CONFIG_IP_NF_CONNTRACK is not set -# CONFIG_IP_NF_CONNTRACK_MARK is not set -# CONFIG_IP_NF_QUEUE is not set -# CONFIG_IP_NF_IPTABLES is not set -# CONFIG_IP_NF_ARPTABLES is not set +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID5=m +CONFIG_MD_RAID6=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_CRYPT is not set +# CONFIG_DM_SNAPSHOT is not set +# CONFIG_DM_MIRROR is not set +# CONFIG_DM_ZERO is not set +# CONFIG_DM_MULTIPATH is not set # -# Bridge: Netfilter Configuration +# Fusion MPT device support # -# CONFIG_BRIDGE_NF_EBTABLES is not set -CONFIG_XFRM=y -# CONFIG_XFRM_USER is not set +# CONFIG_FUSION is not set +# CONFIG_FUSION_SPI is not set +# CONFIG_FUSION_FC is not set +# CONFIG_FUSION_SAS is not set # -# SCTP Configuration (EXPERIMENTAL) -# -# CONFIG_IP_SCTP is not set -# CONFIG_ATM is not set -CONFIG_BRIDGE=m -CONFIG_VLAN_8021Q=m -# CONFIG_DECNET is not set -CONFIG_LLC=m -# CONFIG_LLC2 is not set -CONFIG_IPX=m -# CONFIG_IPX_INTERN is not set -CONFIG_ATALK=m -CONFIG_DEV_APPLETALK=y -CONFIG_IPDDP=m -CONFIG_IPDDP_ENCAP=y -CONFIG_IPDDP_DECAP=y -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set - +# IEEE 1394 (FireWire) support # -# QoS and/or fair queueing -# -CONFIG_NET_SCHED=y -CONFIG_NET_SCH_CLK_JIFFIES=y -# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set -# CONFIG_NET_SCH_CLK_CPU is not set -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_HTB=m -# CONFIG_NET_SCH_HFSC is not set -CONFIG_NET_SCH_PRIO=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 is not set -CONFIG_NET_SCH_INGRESS=m -CONFIG_NET_QOS=y -CONFIG_NET_ESTIMATOR=y -CONFIG_NET_CLS=y -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 is not set -# CONFIG_NET_CLS_IND is not set -# CONFIG_CLS_U32_MARK is not set -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m -# CONFIG_NET_CLS_ACT is not set -CONFIG_NET_CLS_POLICE=y +# CONFIG_IEEE1394 is not set # -# Network testing +# I2O device support # -CONFIG_NET_PKTGEN=m -CONFIG_NETPOLL=y -CONFIG_NETPOLL_RX=y -CONFIG_NETPOLL_TRAP=y -CONFIG_NET_POLL_CONTROLLER=y -# 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_HIDP is not set +# CONFIG_I2O is not set # -# Bluetooth device drivers +# Network device support # -CONFIG_BT_HCIUSB=m -CONFIG_BT_HCIUSB_SCO=y -# CONFIG_BT_HCIUART is not set -# CONFIG_BT_HCIBCM203X is not set -# CONFIG_BT_HCIBPA10X is not set -# CONFIG_BT_HCIBFUSB is not set -# CONFIG_BT_HCIVHCI is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set -# CONFIG_ETHERTAP is not set +CONFIG_TUN=m # # ARCnet devices @@ -486,14 +692,21 @@ CONFIG_NETDEVICES=y # CONFIG_ARCNET is not set # +# PHY device support +# +# CONFIG_PHYLIB is not set + +# # Ethernet (10 or 100Mbit) # 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_SMC91X is not set +# CONFIG_DM9000 is not set # # Tulip family network device support @@ -530,13 +743,17 @@ CONFIG_NET_PCI=y # 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_SK98LIN is not set # CONFIG_VIA_VELOCITY is not set # CONFIG_TIGON3 is not set +# CONFIG_BNX2 is not set # # Ethernet (10000 Mbit) # +# CONFIG_CHELSIO_T1 is not set # CONFIG_IXGB is not set # CONFIG_S2IO is not set @@ -558,6 +775,7 @@ CONFIG_NET_RADIO=y # # Wireless 802.11b ISA/PCI cards support # +# CONFIG_AIRO is not set # CONFIG_HERMES is not set # CONFIG_ATMEL is not set @@ -565,6 +783,7 @@ CONFIG_NET_RADIO=y # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support # # CONFIG_PRISM54 is not set +# CONFIG_HOSTAP is not set CONFIG_NET_WIRELESS=y # @@ -585,94 +804,10 @@ CONFIG_PPP_BSDCOMP=m # CONFIG_NET_FC is not set # CONFIG_SHAPER is not set CONFIG_NETCONSOLE=m - -# -# ATA/ATAPI/MFM/RLL support -# -# CONFIG_IDE is not set - -# -# SCSI device support -# -CONFIG_SCSI=y -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 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 - -# -# SCSI Transport Attributes -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set -# CONFIG_SCSI_ISCSI_ATTRS is not set - -# -# SCSI low-level drivers -# -# 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_DPT_I2O is not set -# CONFIG_MEGARAID_NEWGEN is not set -# CONFIG_MEGARAID_LEGACY is not set -# CONFIG_SCSI_SATA is not set -# CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_DMX3191D is not set -# CONFIG_SCSI_EATA is not set -# CONFIG_SCSI_EATA_PIO 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_SYM53C8XX_2 is not set -# CONFIG_SCSI_IPR is not set -# CONFIG_SCSI_QLOGIC_ISP is not set -# CONFIG_SCSI_QLOGIC_FC is not set -# CONFIG_SCSI_QLOGIC_1280 is not set -CONFIG_SCSI_QLA2XXX=y -# CONFIG_SCSI_QLA21XX is not set -# CONFIG_SCSI_QLA22XX is not set -# CONFIG_SCSI_QLA2300 is not set -# CONFIG_SCSI_QLA2322 is not set -# CONFIG_SCSI_QLA6312 is not set -# CONFIG_SCSI_DC395x is not set -# CONFIG_SCSI_DC390T is not set -# CONFIG_SCSI_NSP32 is not set -# CONFIG_SCSI_DEBUG is not set - -# -# Fusion MPT device support -# -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# -# CONFIG_IEEE1394 is not set - -# -# I2O device support -# -# CONFIG_I2O is not set +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_RX is not set +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NET_POLL_CONTROLLER=y # # ISDN subsystem @@ -682,7 +817,7 @@ CONFIG_SCSI_QLA2XXX=y # # Input device support # -# CONFIG_INPUT is not set +CONFIG_INPUT=m # # Userland interfaces @@ -690,17 +825,10 @@ CONFIG_SCSI_QLA2XXX=y # 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_EVDEV=m # CONFIG_INPUT_EVBUG is not set # -# Input I/O drivers -# -# CONFIG_GAMEPORT is not set -CONFIG_SOUND_GAMEPORT=y -# CONFIG_SERIO is not set - -# # Input Device Drivers # # CONFIG_INPUT_KEYBOARD is not set @@ -710,6 +838,12 @@ CONFIG_SOUND_GAMEPORT=y # 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 @@ -728,9 +862,10 @@ CONFIG_SERIAL_8250_NR_UARTS=2 # CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_LEGACY_PTY_COUNT=16 # # IPMI @@ -760,7 +895,7 @@ CONFIG_IXP4XX_WATCHDOG=y # # CONFIG_USBPCWATCHDOG is not set # CONFIG_NVRAM is not set -# CONFIG_RTC is not set +CONFIG_RTC=y # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set @@ -772,6 +907,11 @@ CONFIG_IXP4XX_WATCHDOG=y # CONFIG_RAW_DRIVER is not set # +# TPM devices +# +# CONFIG_TCG_TPM is not set + +# # I2C support # CONFIG_I2C=y @@ -794,12 +934,11 @@ CONFIG_I2C_ALGOBIT=y # 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_IOP3XX is not set -# CONFIG_I2C_ISA is not set CONFIG_I2C_IXP4XX=y # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_PROSAVAGE is not set # CONFIG_I2C_SAVAGE4 is not set # CONFIG_SCx200_ACB is not set @@ -813,17 +952,39 @@ CONFIG_I2C_IXP4XX=y # CONFIG_I2C_PCA_ISA is not set # -# Hardware Sensors Chip support +# Miscellaneous I2C Chip support # -CONFIG_I2C_SENSOR=y +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +CONFIG_SENSORS_EEPROM=n +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_RTC8564 is not set +# CONFIG_SENSORS_MAX6875 is not set +CONFIG_I2C_DEBUG_CORE=y +CONFIG_I2C_DEBUG_ALGO=y +CONFIG_I2C_DEBUG_BUS=y +CONFIG_I2C_DEBUG_CHIP=y +CONFIG_RTC_PCF8563_I2C=y + +# +# Hardware Monitoring support +# +CONFIG_HWMON=y +# CONFIG_HWMON_VID is not set # CONFIG_SENSORS_ADM1021 is not set # CONFIG_SENSORS_ADM1025 is not set # CONFIG_SENSORS_ADM1026 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_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_LM75 is not set @@ -834,27 +995,27 @@ CONFIG_I2C_SENSOR=y # 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_MAX1619 is not set # CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_SIS5595 is not set # CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47B397 is not set # CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83792D 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 # -# Other I2C Chip support +# Misc devices +# + +# +# Multimedia Capabilities Port drivers # -CONFIG_SENSORS_EEPROM=y -# CONFIG_SENSORS_PCF8574 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_RTC8564 is not set -CONFIG_SENSORS_X1205=y -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set # # Multimedia devices @@ -868,20 +1029,27 @@ CONFIG_VIDEO_DEV=m # # Video Adapters # -# CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_CPIA is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set -# CONFIG_TUNER_3036 is not set -# CONFIG_VIDEO_STRADIS is not set -# CONFIG_VIDEO_ZORAN is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_MXB is not set -# CONFIG_VIDEO_DPC is not set -# CONFIG_VIDEO_HEXIUM_ORION is not set -# CONFIG_VIDEO_HEXIUM_GEMINI is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_OVCAMCHIP is not set +CONFIG_VIDEO_BT848=m +# CONFIG_VIDEO_SAA6588 is not set +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_TUNER_3036=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_DPC=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_OVCAMCHIP=m # # Radio Adapters @@ -894,190 +1062,113 @@ CONFIG_VIDEO_DEV=m # Digital Video Broadcasting Devices # # CONFIG_DVB is not set +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_VIDEOBUF=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_BUF=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m # -# File systems +# Graphics support # -CONFIG_EXT2_FS=y -# CONFIG_EXT2_FS_XATTR is not set -CONFIG_EXT3_FS=y -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_JBD=y -# CONFIG_JBD_DEBUG is not set -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set +# CONFIG_FB is not set # -# XFS support +# Sound # -# CONFIG_XFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_ROMFS_FS is not set -# CONFIG_QUOTA is not set -CONFIG_DNOTIFY=y -# CONFIG_AUTOFS_FS is not set -# CONFIG_AUTOFS4_FS is not set +CONFIG_SOUND=m # -# CD-ROM/DVD Filesystems +# Advanced Linux Sound Architecture # -# CONFIG_ISO9660_FS is not set -# CONFIG_UDF_FS is not set +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_RTCTIMER is not set +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set # -# DOS/FAT/NT Filesystems +# Generic devices # -# CONFIG_MSDOS_FS is not set -# CONFIG_VFAT_FS is not set -# CONFIG_NTFS_FS is not set +# 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 # -# Pseudo filesystems +# PCI devices # -CONFIG_PROC_FS=y -CONFIG_SYSFS=y -# CONFIG_DEVFS_FS is not set -# CONFIG_DEVPTS_FS_XATTR is not set -CONFIG_TMPFS=y -# CONFIG_TMPFS_XATTR is not set -# CONFIG_HUGETLB_PAGE is not set -CONFIG_RAMFS=y +# 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_CS46XX is not set +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_EMU10K1 is not set +# CONFIG_SND_EMU10K1X is not set +# CONFIG_SND_CA0106 is not set +# CONFIG_SND_KORG1212 is not set +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +# CONFIG_SND_RME9652 is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_HDSPM is not set +# CONFIG_SND_TRIDENT is not set +# CONFIG_SND_YMFPCI is not set +# CONFIG_SND_AD1889 is not set +# CONFIG_SND_ALS4000 is not set +# CONFIG_SND_CMIPCI 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_MAESTRO3 is not set +# CONFIG_SND_FM801 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_SONICVIBES is not set +# CONFIG_SND_VIA82XX is not set +# CONFIG_SND_VIA82XX_MODEM is not set +# CONFIG_SND_VX222 is not set +# CONFIG_SND_HDA_INTEL is not set # -# Miscellaneous filesystems +# ALSA ARM devices # -# 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_JFFS_FS is not set -CONFIG_JFFS2_FS=y -CONFIG_JFFS2_FS_DEBUG=0 -# CONFIG_JFFS2_FS_NAND is not set -# CONFIG_JFFS2_FS_NOR_ECC 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 is not set -# 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 +# USB devices # -CONFIG_NFS_FS=m -CONFIG_NFS_V3=y -# CONFIG_NFS_V4 is not set -# CONFIG_NFS_DIRECTIO is not set -CONFIG_NFSD=m -# CONFIG_NFSD_V3 is not set -CONFIG_NFSD_TCP=y -CONFIG_LOCKD=m -CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m -CONFIG_SUNRPC=m -# 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_CIFS is not set -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set +CONFIG_SND_USB_AUDIO=m # -# 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 is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_EFI_PARTITION is not set - -# -# Native Language Support -# -CONFIG_NLS=m -CONFIG_NLS_DEFAULT="iso8859-1" -# CONFIG_NLS_CODEPAGE_437 is not set -# 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 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -# CONFIG_NLS_ISO8859_1 is not set -# 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 - -# -# Profiling support -# -# CONFIG_PROFILING is not set - -# -# Graphics support -# -# CONFIG_FB is not set - -# -# Sound -# -# CONFIG_SOUND is not set - -# -# Misc devices +# Open Sound System # +# CONFIG_SOUND_PRIME is not set # # USB support # +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set @@ -1087,29 +1178,30 @@ CONFIG_USB=y CONFIG_USB_DEVICEFS=y # CONFIG_USB_BANDWIDTH is not set # CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_SUSPEND is not set # CONFIG_USB_OTG is not set -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y # # USB Host Controller Drivers # -CONFIG_USB_EHCI_HCD=m -# CONFIG_USB_EHCI_SPLIT_ISO is not set +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_SPLIT_ISO=y # CONFIG_USB_EHCI_ROOT_HUB_TT is not set +# CONFIG_USB_ISP116X_HCD is not set CONFIG_USB_OHCI_HCD=y -CONFIG_USB_UHCI_HCD=m +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=y # CONFIG_USB_SL811_HCD is not set # # USB Device Class drivers # +# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set # # USB Bluetooth TTY can only be used with disabled Bluetooth subsystem # -# CONFIG_USB_ACM is not set +CONFIG_USB_ACM=m CONFIG_USB_PRINTER=m # @@ -1117,33 +1209,42 @@ CONFIG_USB_PRINTER=m # CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_RW_DETECT is not set # CONFIG_USB_STORAGE_DATAFAB is not set # CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set # CONFIG_USB_STORAGE_DPCM is not set -# CONFIG_USB_STORAGE_HP8200e 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_ONETOUCH is not set # # USB Input Devices # -# CONFIG_USB_HID is not set +CONFIG_USB_HID=m +CONFIG_USB_HIDINPUT=y +# CONFIG_HID_FF is not set +CONFIG_USB_HIDDEV=y # # USB HID Boot Protocol drivers # -# CONFIG_USB_KBD is not set +CONFIG_USB_KBD=m # CONFIG_USB_MOUSE is not set # CONFIG_USB_AIPTEK is not set # CONFIG_USB_WACOM is not set +# CONFIG_USB_ACECAD is not set # CONFIG_USB_KBTAB is not set # CONFIG_USB_POWERMATE is not set # CONFIG_USB_MTOUCH is not set +# CONFIG_USB_ITMTOUCH is not set # CONFIG_USB_EGALAX is not set +# CONFIG_USB_YEALINK is not set # CONFIG_USB_XPAD is not set # CONFIG_USB_ATI_REMOTE is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set # # USB Imaging devices @@ -1155,43 +1256,35 @@ CONFIG_USB_STORAGE=y # USB Multimedia devices # # CONFIG_USB_DABUSB is not set - -# -# Video4Linux support is needed for USB Multimedia device support -# +# CONFIG_USB_VICAM is not set +# CONFIG_USB_DSBR is not set +# CONFIG_USB_IBMCAM is not set +# CONFIG_USB_KONICAWC is not set +# CONFIG_USB_OV511 is not set +# CONFIG_USB_SE401 is not set +# CONFIG_USB_SN9C102 is not set +# CONFIG_USB_STV680 is not set +# CONFIG_USB_W9968CF is not set +CONFIG_USB_PWC=m # # USB Network Adapters # -# CONFIG_USB_CATC is not set +CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m -# CONFIG_USB_RTL8150 is not set +CONFIG_USB_RTL8150=m CONFIG_USB_USBNET=m - -# -# USB Host-to-Host Cables -# -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_GENESYS=y -CONFIG_USB_NET1080=y -CONFIG_USB_PL2301=y -CONFIG_USB_KC2190=y - -# -# Intelligent USB Devices/Gadgets -# -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_ZAURUS=y -CONFIG_USB_CDCETHER=y - -# -# USB Network Adapters -# -CONFIG_USB_AX8817X=y +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +# CONFIG_USB_NET_GL620A is not set +CONFIG_USB_NET_NET1080=m +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +CONFIG_USB_NET_ZAURUS=m +# CONFIG_USB_ZD1201 is not set +# CONFIG_USB_MON is not set # # USB port drivers @@ -1202,30 +1295,35 @@ CONFIG_USB_AX8817X=y # CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y +# CONFIG_USB_SERIAL_AIRPRIME is not set CONFIG_USB_SERIAL_BELKIN=m -# CONFIG_USB_SERIAL_WHITEHEAT is not set -# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set -# CONFIG_USB_SERIAL_CYPRESS_M8 is not set -# CONFIG_USB_SERIAL_EMPEG is not set +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +# CONFIG_USB_SERIAL_CP2101 is not set +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_VISOR=m CONFIG_USB_SERIAL_IPAQ=m -# CONFIG_USB_SERIAL_IR is not set -# CONFIG_USB_SERIAL_EDGEPORT is not set -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set -# CONFIG_USB_SERIAL_GARMIN is not set -# CONFIG_USB_SERIAL_IPW is not set -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m # CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -# CONFIG_USB_SERIAL_MCT_U232 is not set +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m CONFIG_USB_SERIAL_PL2303=m -# CONFIG_USB_SERIAL_SAFE is not set -# CONFIG_USB_SERIAL_TI is not set -# CONFIG_USB_SERIAL_CYBERJACK is not set -# CONFIG_USB_SERIAL_XIRCOM is not set -# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_HP4X is not set +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_EZUSB=y # # USB Miscellaneous drivers @@ -1241,10 +1339,12 @@ CONFIG_USB_SERIAL_PL2303=m # CONFIG_USB_PHIDGETKIT is not set # CONFIG_USB_PHIDGETSERVO is not set # CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set # CONFIG_USB_TEST is not set # -# USB ATM/DSL drivers +# USB DSL modem support # # @@ -1258,23 +1358,206 @@ CONFIG_USB_SERIAL_PL2303=m # CONFIG_MMC is not set # +# File systems +# +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=y +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +# CONFIG_JFS_FS is not set +CONFIG_FS_POSIX_ACL=y +# CONFIG_XFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +CONFIG_AUTOFS4_FS=m +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_ZISOFS_FS=m +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="utf8" +CONFIG_NTFS_FS=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_RW=y + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +# CONFIG_RELAYFS_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_JFFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_CRAMFS is not set +# 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=m +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +CONFIG_NFS_DIRECTIO=y +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_NFSD_TCP=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_RPCSEC_GSS_KRB5=m +# 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_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +# CONFIG_9P_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 is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_EFI_PARTITION is not set + +# +# Native Language Support +# +CONFIG_NLS=m +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m + +# +# Profiling support +# +# CONFIG_PROFILING is not set + +# # Kernel hacking # -CONFIG_DEBUG_KERNEL=y -CONFIG_MAGIC_SYSRQ=y -# CONFIG_SCHEDSTATS is not set -# CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_KOBJECT is not set -CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_FS is not set +# CONFIG_PRINTK_TIME is not set +# CONFIG_DEBUG_KERNEL is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_DEBUG_BUGVERBOSE is not set CONFIG_FRAME_POINTER=y # CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_WAITQ is not set -CONFIG_DEBUG_ERRORS=y -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set # # Security options @@ -1285,7 +1568,31 @@ CONFIG_DEBUG_LL=y # # Cryptographic options # -# CONFIG_CRYPTO is not set +CONFIG_CRYPTO=y +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_NULL is not set +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_DES=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=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_TEST=m # # Hardware crypto devices @@ -1295,7 +1602,8 @@ CONFIG_DEBUG_LL=y # Library routines # CONFIG_CRC_CCITT=m +# CONFIG_CRC16 is not set CONFIG_CRC32=y -# CONFIG_LIBCRC32C is not set +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff --git a/packages/linux/nas100d-kernel/2.6.15/nas100d-pci.c b/packages/linux/nas100d-kernel/2.6.15/nas100d-pci.c new file mode 100644 index 0000000000..1f934068e9 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.15/nas100d-pci.c @@ -0,0 +1,87 @@ +/* + * arch/arm/mach-ixp4xx/nas100d-pci.c + * + * NAS 100d board-level PCI initialization + * + * based on ixdp425-pci.c: + * Copyright (C) 2002 Intel Corporation. + * Copyright (C) 2003-2004 MontaVista Software, Inc. + * + * Maintainer: http://www.nslu2-linux.org/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + */ + +#include <linux/config.h> +#include <linux/pci.h> +#include <linux/init.h> + +#include <asm/mach/pci.h> +#include <asm/mach-types.h> + +void __init nas100d_pci_preinit(void) +{ + set_irq_type(IRQ_NAS100D_PCI_INTA, IRQT_LOW); + set_irq_type(IRQ_NAS100D_PCI_INTB, IRQT_LOW); + set_irq_type(IRQ_NAS100D_PCI_INTC, IRQT_LOW); + set_irq_type(IRQ_NAS100D_PCI_INTD, IRQT_LOW); + set_irq_type(IRQ_NAS100D_PCI_INTE, IRQT_LOW); + + gpio_line_isr_clear(NAS100D_PCI_INTA_PIN); + gpio_line_isr_clear(NAS100D_PCI_INTB_PIN); + gpio_line_isr_clear(NAS100D_PCI_INTC_PIN); + gpio_line_isr_clear(NAS100D_PCI_INTD_PIN); + gpio_line_isr_clear(NAS100D_PCI_INTE_PIN); + + ixp4xx_pci_preinit(); +} + +static int __init nas100d_map_irq(struct pci_dev *dev, u8 slot, u8 pin) +{ + if (slot < 1 || slot > 3 || pin < 1 || pin > 3) + return -1; + + switch (slot) + { + case 1: + if (pin == 1) + return IRQ_NAS100D_PCI_INTA; + break; + case 2: + if (pin == 1) + return IRQ_NAS100D_PCI_INTB; + break; + case 3: + if (pin == 1) + return IRQ_NAS100D_PCI_INTC; + if (pin == 2) + return IRQ_NAS100D_PCI_INTD; + if (pin == 3) + return IRQ_NAS100D_PCI_INTE; + break; + } + + return -1; +} + +struct hw_pci __initdata nas100d_pci = { + .nr_controllers = 1, + .preinit = nas100d_pci_preinit, + .swizzle = pci_std_swizzle, + .setup = ixp4xx_setup, + .scan = ixp4xx_scan_bus, + .map_irq = nas100d_map_irq, +}; + +int __init nas100d_pci_init(void) +{ + if (machine_is_nas100d()) + pci_common_init(&nas100d_pci); + + return 0; +} + +subsys_initcall(nas100d_pci_init); diff --git a/packages/linux/nas100d-kernel/2.6.15/nas100d-power.c b/packages/linux/nas100d-kernel/2.6.15/nas100d-power.c new file mode 100644 index 0000000000..94ce5d1b46 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.15/nas100d-power.c @@ -0,0 +1,92 @@ +/* + * arch/arm/mach-ixp4xx/nas100d-power.c + * + * NAS 100d Power/Reset driver + * + * Copyright (C) 2005 Tower Technologies + * + * based on nas100d-io.c + * Copyright (C) 2004 Karen Spearel + * + * Author: Alessandro Zummo <a.zummo@towertech.it> + * Maintainers: http://www.nslu2-linux.org/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + */ + +#include <linux/module.h> +#include <linux/reboot.h> +#include <linux/interrupt.h> + +#include <asm/mach-types.h> + +extern void ctrl_alt_del(void); + +static irqreturn_t nas100d_power_handler(int irq, void *dev_id, struct pt_regs *regs) +{ + /* Signal init to do the ctrlaltdel action, this will bypass init if + * it hasn't started and do a kernel_restart. + */ + ctrl_alt_del(); + + return IRQ_HANDLED; +} + +static irqreturn_t nas100d_reset_handler(int irq, void *dev_id, struct pt_regs *regs) +{ + /* This is the paper-clip reset, it shuts the machine down directly. + */ + machine_power_off(); + + return IRQ_HANDLED; +} + +static int __init nas100d_power_init(void) +{ + if (!(machine_is_nas100d())) + return 0; + + // *IXP4XX_GPIO_GPISR = 0x20400000; /* read the 2 irqs to clr */ + + set_irq_type(NAS100D_RB_IRQ, IRQT_LOW); +// set_irq_type(NAS100D_PB_IRQ, IRQT_HIGH); + + gpio_line_isr_clear(NAS100D_RB_GPIO); +// gpio_line_isr_clear(NAS100D_PB_GPIO); + + if (request_irq(NAS100D_RB_IRQ, &nas100d_reset_handler, + SA_INTERRUPT, "NAS100D reset button", NULL) < 0) { + + printk(KERN_DEBUG "Reset Button IRQ %d not available\n", + NAS100D_RB_IRQ); + + return -EIO; + } +/* + if (request_irq(NAS100D_PB_IRQ, &nas100d_power_handler, + SA_INTERRUPT, "NAS100D power button", NULL) < 0) { + + printk(KERN_DEBUG "Power Button IRQ %d not available\n", + NAS100D_PB_IRQ); + + return -EIO; + } +*/ + return 0; +} + +static void __exit nas100d_power_exit(void) +{ + free_irq(NAS100D_RB_IRQ, NULL); +// free_irq(NAS100D_PB_IRQ, NULL); +} + +module_init(nas100d_power_init); +module_exit(nas100d_power_exit); + +MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>"); +MODULE_DESCRIPTION("NAS100D Power/Reset driver"); +MODULE_LICENSE("GPL"); diff --git a/packages/linux/nas100d-kernel/2.6.15/nas100d-setup.c b/packages/linux/nas100d-kernel/2.6.15/nas100d-setup.c new file mode 100644 index 0000000000..0dbb0b4e69 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.15/nas100d-setup.c @@ -0,0 +1,132 @@ +/* + * arch/arm/mach-ixp4xx/nas100d-setup.c + * + * NAS 100d board-setup + * + * based ixdp425-setup.c: + * Copyright (C) 2003-2004 MontaVista Software, Inc. + * + * Author: Mark Rakes <mrakes at mac.com> + * Maintainers: http://www.nslu2-linux.org/ + * + */ + +#include <linux/kernel.h> +#include <linux/serial.h> +#include <linux/serial_8250.h> + +#include <asm/mach-types.h> +#include <asm/mach/arch.h> +#include <asm/mach/flash.h> + +static struct flash_platform_data nas100d_flash_data = { + .map_name = "cfi_probe", + .width = 2, +}; + +static struct resource nas100d_flash_resource = { + .start = NAS100D_FLASH_BASE, + .end = NAS100D_FLASH_BASE + NAS100D_FLASH_SIZE, + .flags = IORESOURCE_MEM, +}; + +static struct platform_device nas100d_flash = { + .name = "IXP4XX-Flash", + .id = 0, + .dev.platform_data = &nas100d_flash_data, + .num_resources = 1, + .resource = &nas100d_flash_resource, +}; + +static struct ixp4xx_i2c_pins nas100d_i2c_gpio_pins = { + .sda_pin = NAS100D_SDA_PIN, + .scl_pin = NAS100D_SCL_PIN, +}; + +static struct platform_device nas100d_i2c_controller = { + .name = "IXP4XX-I2C", + .id = 0, + .dev.platform_data = &nas100d_i2c_gpio_pins, + .num_resources = 0, +}; + +static struct resource nas100d_uart_resources[] = { + { + .start = IXP4XX_UART1_BASE_PHYS, + .end = IXP4XX_UART1_BASE_PHYS + 0x0fff, + .flags = IORESOURCE_MEM, + }, + { + .start = IXP4XX_UART2_BASE_PHYS, + .end = IXP4XX_UART2_BASE_PHYS + 0x0fff, + .flags = IORESOURCE_MEM, + } +}; + +static struct plat_serial8250_port nas100d_uart_data[] = { + { + .mapbase = IXP4XX_UART1_BASE_PHYS, + .membase = (char *)IXP4XX_UART1_BASE_VIRT + REG_OFFSET, + .irq = IRQ_IXP4XX_UART1, + .flags = UPF_BOOT_AUTOCONF, + .iotype = UPIO_MEM, + .regshift = 2, + .uartclk = IXP4XX_UART_XTAL, + }, + { + .mapbase = IXP4XX_UART2_BASE_PHYS, + .membase = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET, + .irq = IRQ_IXP4XX_UART2, + .flags = UPF_BOOT_AUTOCONF, + .iotype = UPIO_MEM, + .regshift = 2, + .uartclk = IXP4XX_UART_XTAL, + }, + { } +}; + +static struct platform_device nas100d_uart = { + .name = "serial8250", + .id = PLAT8250_DEV_PLATFORM, + .dev.platform_data = nas100d_uart_data, + .num_resources = 2, + .resource = nas100d_uart_resources, +}; + +static struct platform_device *nas100d_devices[] __initdata = { + &nas100d_i2c_controller, + &nas100d_flash, + &nas100d_uart, +}; + +static void nas100d_power_off(void) +{ + /* This causes the box to drop the power and go dead. */ + + /* enable the pwr cntl gpio */ + gpio_line_config(NAS100D_PO_GPIO, IXP4XX_GPIO_OUT); + + /* do the deed */ + gpio_line_set(NAS100D_PO_GPIO, IXP4XX_GPIO_HIGH); +} + +static void __init nas100d_init(void) +{ + ixp4xx_sys_init(); + + pm_power_off = nas100d_power_off; + + platform_add_devices(nas100d_devices, ARRAY_SIZE(nas100d_devices)); +} + +MACHINE_START(NAS100D, "Iomega NAS 100d") + /* Maintainer: www.nslu2-linux.org */ + .phys_ram = PHYS_OFFSET, + .phys_io = IXP4XX_PERIPHERAL_BASE_PHYS, + .io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC, + .boot_params = 0x00000100, + .map_io = ixp4xx_map_io, + .init_irq = ixp4xx_init_irq, + .timer = &ixp4xx_timer, + .init_machine = nas100d_init, +MACHINE_END diff --git a/packages/linux/nas100d-kernel/2.6.15/nas100d.h b/packages/linux/nas100d-kernel/2.6.15/nas100d.h new file mode 100644 index 0000000000..1623712b78 --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.15/nas100d.h @@ -0,0 +1,75 @@ +/* + * include/asm-arm/arch-ixp4xx/nas100d.h + * + * NAS100D platform specific definitions + * + * Copyright (c) 2005 Tower Technologies + * + * Author: Alessandro Zummo <a.zummo@towertech.it> + * + * based on ixdp425.h: + * Copyright 2004 (c) MontaVista, Software, Inc. + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +#ifndef __ASM_ARCH_HARDWARE_H__ +#error "Do not include this directly, instead #include <asm/hardware.h>" +#endif + +#define NAS100D_FLASH_BASE IXP4XX_EXP_BUS_CS0_BASE_PHYS +#define NAS100D_FLASH_SIZE IXP4XX_EXP_BUS_CSX_REGION_SIZE + +#define NAS100D_SDA_PIN 5 +#define NAS100D_SCL_PIN 6 + +/* + * NAS100D PCI IRQs + */ +#define NAS100D_PCI_MAX_DEV 5 +#define NAS100D_PCI_IRQ_LINES 5 + + +/* PCI controller GPIO to IRQ pin mappings */ +#define NAS100D_PCI_INTA_PIN 11 +#define NAS100D_PCI_INTB_PIN 10 +#define NAS100D_PCI_INTC_PIN 9 +#define NAS100D_PCI_INTD_PIN 8 +#define NAS100D_PCI_INTE_PIN 7 + +/* GPIO */ + +#define NAS100D_GPIO0 0 +#define NAS100D_GPIO1 1 +#define NAS100D_GPIO2 2 +#define NAS100D_GPIO3 3 +#define NAS100D_GPIO4 4 +#define NAS100D_GPIO5 5 +#define NAS100D_GPIO6 6 +#define NAS100D_GPIO7 7 +#define NAS100D_GPIO8 8 +#define NAS100D_GPIO9 9 +#define NAS100D_GPIO10 10 +#define NAS100D_GPIO11 11 +#define NAS100D_GPIO12 12 +#define NAS100D_GPIO13 13 +#define NAS100D_GPIO14 14 +#define NAS100D_GPIO15 15 + + +/* Buttons */ + +#define NAS100D_PB_GPIO NAS100D_GPIO14 +#define NAS100D_RB_GPIO NAS100D_GPIO4 +#define NAS100D_PO_GPIO NAS100D_GPIO12 /* power off */ + +#define NAS100D_PB_IRQ IRQ_IXP4XX_GPIO14 +#define NAS100D_RB_IRQ IRQ_IXP4XX_GPIO4 + +/* +#define NAS100D_PB_BM (1L << NAS100D_PB_GPIO) +#define NAS100D_PO_BM (1L << NAS100D_PO_GPIO) +#define NAS100D_RB_BM (1L << NAS100D_RB_GPIO) +*/ diff --git a/packages/linux/nas100d-kernel_2.6.14.bb b/packages/linux/nas100d-kernel_2.6.14.bb new file mode 100644 index 0000000000..5d4a1ed1b4 --- /dev/null +++ b/packages/linux/nas100d-kernel_2.6.14.bb @@ -0,0 +1,40 @@ +# Kernel for NAS 100d +# +# Increment PR_CONFIG for changes to the nas100d-kernel specific +# defconfig (do *NOT* increment anything in here for changes +# to other kernel configs!) +PR_CONFIG = "0" +# +# Increment the number below (i.e. the digits after PR) when +# making changes within this file or for changes to the patches +# applied to the kernel. +PR = "r0.${PR_CONFIG}" + +N1K_FILES = "\ + arch/arm/mach-ixp4xx/nas100d-pci.c \ + arch/arm/mach-ixp4xx/nas100d-power.c \ + arch/arm/mach-ixp4xx/nas100d-setup.c \ + include/asm-arm/arch-ixp4xx/nas100d.h \ +" + +N1K_PATCHES = "\ + file://10-ixp4xx-copy-from.patch;patch=1 \ + file://10-ixp4xx-le.patch;patch=1 \ + file://10-mtdpart-redboot-fis-byteswap.patch;patch=1 \ + file://15-ixp4xx-writesb-l-w.patch;patch=1 \ + file://18-ixp4xx-io-h-addr.patch;patch=1 \ + file://28-spinlock-up.patch;patch=1 \ + file://29-ipv4-route-c-spinlock.patch;patch=1 \ + file://50-nas100d-arch.patch;patch=1 \ + file://60-nas100d-ide.patch;patch=1 \ + file://60-nas100d-i2c.patch;patch=1 \ + file://90-ixp4xx-pci-le.patch;patch=1 \ +" + +include nas100d-kernel.inc + +# These options get added to the kernel command line, only put things +# specific to the bootstrap of *this* kernel in here - DISTRO specfic +# config must be in CMDLINE_ROOT (see the full definition of CMDLINE +# in nas100d-kernel.inc) +# CMDLINE_KERNEL_OPTIONS = "x1205.hctosys=1" diff --git a/packages/linux/nas100d-kernel_2.6.15-rc1.bb b/packages/linux/nas100d-kernel_2.6.15-rc1.bb new file mode 100644 index 0000000000..3155a5ecd0 --- /dev/null +++ b/packages/linux/nas100d-kernel_2.6.15-rc1.bb @@ -0,0 +1,37 @@ +# Kernel for NAS 100d +# +# Increment PR_CONFIG for changes to the nas100d-kernel specific +# defconfig (do *NOT* increment anything in here for changes +# to other kernel configs!) +PR_CONFIG = "0" +# +# Increment the number below (i.e. the digits after PR) when +# making changes within this file or for changes to the patches +# applied to the kernel. +PR = "r0.${PR_CONFIG}" + +N1K_FILES = "\ + arch/arm/mach-ixp4xx/nas100d-pci.c \ + arch/arm/mach-ixp4xx/nas100d-power.c \ + arch/arm/mach-ixp4xx/nas100d-setup.c \ + include/asm-arm/arch-ixp4xx/nas100d.h \ +" + +N1K_PATCHES = "\ + file://00-memory-h-page-shift.patch;patch=1 \ + file://01-i2c-ixp4xx.patch;patch=1 \ + file://10-mtdpart-redboot-fis-byteswap.patch;patch=1 \ + file://19-jffs2-force-be.patch;patch=1 \ + file://50-nas100d-arch.patch;patch=1 \ + file://60-nas100d-ide.patch;patch=1 \ + file://60-nas100d-i2c.patch;patch=1 \ + file://90-ixp4xx-nslu2.patch;patch=1 \ +" + +include nas100d-kernel.inc + +# These options get added to the kernel command line, only put things +# specific to the bootstrap of *this* kernel in here - DISTRO specfic +# config must be in CMDLINE_ROOT (see the full definition of CMDLINE +# in nas100d-kernel.inc) +CMDLINE_KERNEL_OPTIONS = "pcf8563.hctosys=1" diff --git a/packages/linux/nas100d-kernel_2.6.15-rc2.bb b/packages/linux/nas100d-kernel_2.6.15-rc2.bb new file mode 100644 index 0000000000..d3e5ae23d6 --- /dev/null +++ b/packages/linux/nas100d-kernel_2.6.15-rc2.bb @@ -0,0 +1,31 @@ +# Kernel for Iomega NAS 100d +# +# Increment PR_CONFIG for changes to the nas100d-kernel specific +# defconfig (do *NOT* increment anything in here for changes +# to other kernel configs!) +PR_CONFIG = "0" +# +# Increment the number below (i.e. the digits after PR) when +# making changes within this file or for changes to the patches +# applied to the kernel. +PR = "r0.${PR_CONFIG}" + +include nas100d-kernel.inc + +# N1K_PATCHES - full list of patches to apply +N1K_PATCHES = "\ + file://00-memory-h-page-shift.patch;patch=1 \ + file://10-mtdpart-redboot-fis-byteswap.patch;patch=1 \ + file://19-jffs2-force-be.patch;patch=1 \ + file://50-nas100d-arch.patch;patch=1 \ + file://55-nas100d-arch.patch;patch=1 \ + file://60-nas100d-ide.patch;patch=1 \ + file://60-nas100d-i2c.patch;patch=1 \ + file://90-ixp4xx-nslu2.patch;patch=1 \ +" + +# These options get added to the kernel command line, only put things +# specific to the bootstrap of *this* kernel in here - DISTRO specfic +# config must be in CMDLINE_ROOT (see the full definition of CMDLINE +# in nas100d-kernel.inc) +CMDLINE_KERNEL_OPTIONS = "pcf8563.hctosys=1" diff --git a/packages/linux/nslu2-kernel.inc b/packages/linux/nslu2-kernel.inc index a0cc1daf25..39dcb6bed3 100644 --- a/packages/linux/nslu2-kernel.inc +++ b/packages/linux/nslu2-kernel.inc @@ -1,5 +1,3 @@ -# nslu2-kernel.inc -# # Standard definitions for any NSLU2 Linux kernel. # Include this file in a .bb which specifies, at least, # PN,PV,PR for the desired kernel @@ -7,32 +5,10 @@ # Define the following *before* including this file as # required: # -# N2K_EXTRA_FILES - kernel-tree path of extra files to install -# N2K_FILES - kernel-tree path of files to install, defaults to: -# drivers/i2c/chips/x1205-rtc.c -# arch/arm/mach-ixp4xx/nslu2-io.c -# arch/arm/mach-ixp4xx/nslu2-setup.c -# arch/arm/mach-ixp4xx/nslu2-pci.c -# arch/arm/mach-ixp4xx/nslu2-part.c -# include/asm-arm/arch-ixp4xx/nslu2.h -# ${N2K_EXTRA_FILES} -# -# N2K_EXTRA_PATCHES - list of patches to apply (can include -# patches to the files installed above) -# N2K_PATCHES - full list of patches to apply, defaults to: -# file://nslu2_2.6.11.patch;patch=1 -# file://usbnet.patch;patch=1 -# file://ixp4xx_copy_from.patch;patch=1 -# file://anonymiser.patch;patch=1 -# file://xscale-reset.patch;patch=1 -# file://mtd-shutdown.patch;patch=1 -# ${N2K_EXTRA_PATCHES} -# +# N2K_PATCHES - full list of patches to apply, to add files +# generate a patch against /dev/null # N2K_SUFFIX - the suffix to add after 'zImage-' in the -# deploy/images directory - defaults to "openslug" -# -# Notice that the N2K_PATCHES list is appropriate for -# openslug-kernel_2.6.11.2 and probably nothing else. +# deploy/images directory, should identify the image config # # DEFAULT_PREFERENCE is set automagically in this file as # follows: @@ -72,7 +48,6 @@ DEPENDS += "devio-native" # file). Files, including the all important defconfig, are # searched for in the following directories (last one first): # -# openslug-kernel-2.6.11.2 # nslu2-kernel/files # nslu2-kernel/X.Y # nslu2-kernel/X.Y.Z @@ -163,47 +138,23 @@ python () { # FILESPATH: this list is in order last-searched-first, therefore # the first entry is the *latest* and/or most specific -FILESPATH = "${FILE_DIRNAME}/${P}:${N2K_FILESPATH}:${FILE_DIRNAME}/openslug-kernel-2.6.11.2" +FILESPATH = "${FILE_DIRNAME}/${P}:${N2K_FILESPATH}" # The working directory will be the 'base' version (which may not be the # same as implied by the PV variable because it corresponds to the prior # minor version for rc and pre patched versions). S = "${WORKDIR}/linux-${N2K_SRCVER}" -# N2K_FILES is a list of additional files added to the source, these are -# put in place before the patches, so may themselves be patched. The list -# gives the path name relative to the base of the kernel source tree, the -# base file name is used to *find* the file. -N2K_EXTRA_FILES ?= -N2K_FILES ?= "\ - drivers/i2c/chips/x1205-rtc.c \ - arch/arm/mach-ixp4xx/nslu2-io.c \ - arch/arm/mach-ixp4xx/nslu2-setup.c \ - arch/arm/mach-ixp4xx/nslu2-pci.c \ - arch/arm/mach-ixp4xx/nslu2-part.c \ - include/asm-arm/arch-ixp4xx/nslu2.h \ - ${N2K_EXTRA_FILES}" - -N2K_SRCFILES = "${@( ' '.join([ ("file://" + n2k_file.split('/')[-1]) for n2k_file in bb.data.getVar("N2K_FILES",d,1).split(None) ]) )}" - -# N2K_PATCHES is a list of additional patches, the list specified -# here comes from the openslug-2.6.11.2 kernel, typically extra -# patches will be required and very often patches will need to -# be removed (i.e. the default is typically not very useful!) -N2K_EXTRA_PATCHES ?= -N2K_PATCHES ?= "\ - file://nslu2_2.6.11.patch;patch=1 \ - file://usbnet.patch;patch=1 \ - file://ixp4xx_copy_from.patch;patch=1 \ - file://anonymiser.patch;patch=1 \ - file://xscale-reset.patch;patch=1 \ - file://mtd-shutdown.patch;patch=1 \ - ${N2K_EXTRA_PATCHES}" +# N2K_PATCHES is the list of patches. +N2K_PATCHES ?= "" +# Image suffix - actually set in conf/machine/nslu2.conf as it is also +# used by anything which needs to know the name of the generated image. +# May be overridden in the distro if patches or defconfig are changed. +#FIXME: this can be removed, it is just here for safety with the old names. N2K_SUFFIX ?= "openslug" SRC_URI = "${N2K_SRCURI}" -SRC_URI += "${N2K_SRCFILES}" SRC_URI += "${N2K_PATCHES}" SRC_URI += "file://defconfig" @@ -235,27 +186,22 @@ EXTRA_OEMAKE += "EXTRAVERSION=" EXTRA_OEMAKE += "LOCALVERSION=" EXTRA_OEMAKE += "MAKEFLAGS='--no-print-directory'" -# By putting the added files in place in a separate task before -# do_patch it becomes possible to patch these files. -do_unpacklocal() { - for f in ${N2K_FILES} - do - s="$(basename "$f")" - install -m 0644 "${WORKDIR}/$s" "${S}/$f" - done -} +# Override KERNEL_RELEASE from kernel.bbclass to match: +KERNEL_RELEASE = "${KERNEL_VERSION}" addtask unpacklocal before do_patch after do_unpack +# NOTE: in MM kernel builds the config options (oldconfig, menuconfig +# and so on) do not allow an option to be overridden, so the following +# removes the options which must be changed. do_configure_prepend() { - install -m 0644 ${WORKDIR}/defconfig ${S}/.config - if test '${ARCH_BYTE_SEX}' = le + rm -f ${S}/.config + echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >>'${S}/.config' + if test '${ARCH_BYTE_SEX}' = be then - sed -i '/CONFIG_CPU_BIG_ENDIAN/d' '${S}/.config' - else echo 'CONFIG_CPU_BIG_ENDIAN=y' >>'${S}/.config' fi - echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config + sed -e '/CONFIG_CPU_BIG_ENDIAN/d' -e '/CONFIG_CMDLINE=/d' '${WORKDIR}/defconfig' >>'${S}/.config' rm -rf ${S}/include/asm-arm/arch ${S}/include/asm-arm/proc \ ${S}/include/asm-arm/.proc ${S}/include/asm-arm/.arch } @@ -310,5 +256,5 @@ python () { # Don't build the kernel unless we're targeting an nslu2 mach = bb.data.getVar("MACHINE", d, 1) if mach != 'nslu2': - raise bb.parse.SkipPackage("OpenSlug only builds for the Linksys NSLU2") + raise bb.parse.SkipPackage("nslu2-kernel only builds for the Linksys NSLU2") } diff --git a/packages/linux/nslu2-kernel/2.6.13/10-ixp4xx-copy-from.patch b/packages/linux/nslu2-kernel/2.6.13/10-ixp4xx-copy-from.patch deleted file mode 100644 index 03d94d282c..0000000000 --- a/packages/linux/nslu2-kernel/2.6.13/10-ixp4xx-copy-from.patch +++ /dev/null @@ -1,39 +0,0 @@ -# This patch fixes ixp4xx_copy_from for cases where the 'from' -# pointer is odd - that would cause all the accesses to be -# misaligned in the old code. ---- linux-2.6.12.2/.pc/ixp4xx_copy_from.patch/drivers/mtd/maps/ixp4xx.c 2005-09-21 22:35:38.761014739 -0700 -+++ linux-2.6.12.2/drivers/mtd/maps/ixp4xx.c 2005-09-23 01:27:54.696223365 -0700 -@@ -54,19 +54,23 @@ - static void ixp4xx_copy_from(struct map_info *map, void *to, - unsigned long from, ssize_t len) - { -- int i; -- u8 *dest = (u8 *) to; -- u16 *src = (u16 *) (map->map_priv_1 + from); -- u16 data; -+ if (len <= 0) -+ return; - -- for (i = 0; i < (len / 2); i++) { -- data = src[i]; -- dest[i * 2] = BYTE0(data); -- dest[i * 2 + 1] = BYTE1(data); -+ u8 *dest = (u8 *) to; -+ u8 *src = (u8 *) (map->map_priv_1 + from); -+ if (from & 1) -+ *dest++ = BYTE1(*(u16 *)(src-1)), ++src, --len; -+ -+ while (len >= 2) { -+ u16 data = *(u16 *)src; src += 2; -+ *dest++ = BYTE0(data); -+ *dest++ = BYTE1(data); -+ len -= 2; - } - -- if (len & 1) -- dest[len - 1] = BYTE0(src[i]); -+ if (len > 0) -+ *dest++ = BYTE0(*(u16 *)src); - } - - /* diff --git a/packages/linux/nslu2-kernel/2.6.13/10-ixp4xx-regs.patch b/packages/linux/nslu2-kernel/2.6.13/10-ixp4xx-regs.patch deleted file mode 100644 index 32f7e3ccb8..0000000000 --- a/packages/linux/nslu2-kernel/2.6.13/10-ixp4xx-regs.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- linux-2.6.11/.pc/2.6.patch/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h 2005-03-01 23:37:49.000000000 -0800 -+++ linux-2.6.11/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h 2005-06-17 17:51:32.569981939 -0700 -@@ -52,7 +52,7 @@ - * Expansion BUS Configuration registers - */ - #define IXP4XX_EXP_CFG_BASE_PHYS (0xC4000000) --#define IXP4XX_EXP_CFG_BASE_VIRT (0xFFBFD000) -+#define IXP4XX_EXP_CFG_BASE_VIRT (0xFFBFE000) - #define IXP4XX_EXP_CFG_REGION_SIZE (0x00001000) - - /* diff --git a/packages/linux/nslu2-kernel/2.6.13/20-timer.patch b/packages/linux/nslu2-kernel/2.6.13/20-timer.patch deleted file mode 100644 index 356da6bb28..0000000000 --- a/packages/linux/nslu2-kernel/2.6.13/20-timer.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -urN linux-2.6.13.1/include/asm-arm/arch-ixp4xx/timex.h nslu2-2.6.13.1/include/asm-arm/arch-ixp4xx/timex.h ---- linux-2.6.13.1/include/asm-arm/arch-ixp4xx/timex.h 2005-09-17 12:42:45.000000000 +0200 -+++ nslu2-2.6.13.1/include/asm-arm/arch-ixp4xx/timex.h 2005-09-17 12:15:31.000000000 +0200 -@@ -9,7 +9,12 @@ - * We use IXP425 General purpose timer for our timer needs, it runs at - * 66.66... MHz. We do a convulted calculation of CLOCK_TICK_RATE b/c the - * timer register ignores the bottom 2 bits of the LATCH value. -+ * The NSLU2 has a 33.00MHz crystal, so a different FREQ is required. - */ -+#ifdef CONFIG_ARCH_NSLU2 -+#define FREQ 66000000 -+#else - #define FREQ 66666666 -+#endif - #define CLOCK_TICK_RATE (((FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ) - diff --git a/packages/linux/nslu2-kernel/2.6.13/30-i2c-x1205.patch b/packages/linux/nslu2-kernel/2.6.13/30-i2c-x1205.patch deleted file mode 100644 index f05609f1e6..0000000000 --- a/packages/linux/nslu2-kernel/2.6.13/30-i2c-x1205.patch +++ /dev/null @@ -1,580 +0,0 @@ -diff -urN linux-2.6.13.1/drivers/i2c/chips/Kconfig nslu2-2.6.13.1/drivers/i2c/chips/Kconfig ---- linux-2.6.13.1/drivers/i2c/chips/Kconfig 2005-09-17 12:42:33.000000000 +0200 -+++ nslu2-2.6.13.1/drivers/i2c/chips/Kconfig 2005-09-17 13:46:42.000000000 +0200 -@@ -136,4 +136,14 @@ - This driver can also be built as a module. If so, the module - will be called max6875. - -+config SENSORS_X1205 -+ tristate "Xicor X1205 RTC chip" -+ depends on I2C && EXPERIMENTAL -+ select I2C_SENSOR -+ help -+ If you say yes here you get support for the Xicor x1205 RTC chip. -+ -+ This driver can also be built as a module. If so, the module -+ will be called x1205-rtc -+ - endmenu -diff -urN linux-2.6.13.1/drivers/i2c/chips/Makefile nslu2-2.6.13.1/drivers/i2c/chips/Makefile ---- linux-2.6.13.1/drivers/i2c/chips/Makefile 2005-09-17 12:42:33.000000000 +0200 -+++ nslu2-2.6.13.1/drivers/i2c/chips/Makefile 2005-09-17 13:35:39.000000000 +0200 -@@ -13,6 +13,7 @@ - obj-$(CONFIG_SENSORS_RTC8564) += rtc8564.o - obj-$(CONFIG_ISP1301_OMAP) += isp1301_omap.o - obj-$(CONFIG_TPS65010) += tps65010.o -+obj-$(CONFIG_SENSORS_X1205) += x1205-rtc.o - - ifeq ($(CONFIG_I2C_DEBUG_CHIP),y) - EXTRA_CFLAGS += -DDEBUG -diff -urN linux-2.6.13.1/drivers/i2c/chips/x1205-rtc.c nslu2-2.6.13.1/drivers/i2c/chips/x1205-rtc.c ---- linux-2.6.13.1/drivers/i2c/chips/x1205-rtc.c 1970-01-01 01:00:00.000000000 +0100 -+++ nslu2-2.6.13.1/drivers/i2c/chips/x1205-rtc.c 2005-09-17 13:51:03.000000000 +0200 -@@ -0,0 +1,547 @@ -+/* -+ x1205 - an 12c driver for the Xicor X1205 RTC -+ Copyright 2004 Karen Spearel -+ -+ please send all reports to: -+ kas11 at tampabay dot rr dot com -+ -+ based on linux/drivers/acron/char/pcf8583.h -+ Copyright (C) 2000 Russell King -+ -+ 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. -+*/ -+/* -+ -+ * i2c_adapter is the structure used to identify a physical i2c bus along -+ * with the access algorithms necessary to access it. -+ -+struct i2c_adapter { -+ struct module *owner; -+ unsigned int id; == is algo->id | hwdep.struct->id, for registered values see below -+ unsigned int class; -+ struct i2c_algorithm *algo; the algorithm to access the bus -+ void *algo_data; -+ -+ --- administration stuff. -+ int (*client_register)(struct i2c_client *); -+ int (*client_unregister)(struct i2c_client *); -+ -+ data fields that are valid for all devices -+ struct semaphore bus_lock; -+ struct semaphore clist_lock; -+ -+ int timeout; -+ int retries; -+ struct device dev; the adapter device -+ struct class_device class_dev; the class device -+ -+#ifdef CONFIG_PROC_FS -+ No need to set this when you initialize the adapter -+ int inode; -+#endif def CONFIG_PROC_FS -+ -+ int nr; -+ struct list_head clients; -+ struct list_head list; -+ char name[I2C_NAME_SIZE]; -+ struct completion dev_released; -+ struct completion class_dev_released; -+}; -+*/ -+ -+ -+/*========== Driver for the X1205 on the Linksys NSLU2 ==================*/ -+ -+#include <linux/init.h> -+#include <linux/i2c.h> -+#include <linux/slab.h> -+#include <linux/string.h> -+#include <linux/errno.h> -+#include <linux/bcd.h> -+#include <linux/rtc.h> -+#include <linux/fs.h> -+#include <linux/proc_fs.h> -+#include <linux/miscdevice.h> -+#include <linux/device.h> -+#include <asm/uaccess.h> -+#include <asm/system.h> -+#include <linux/moduleparam.h> -+ -+#define RTC_GETDATETIME 0 -+#define RTC_SETTIME 1 -+#define RTC_SETDATETIME 2 -+ -+#define I2C_M_WR 0 // just for consistancy -+ -+// offsets into read buf - add 2 for write buf -+#define CCR_SEC 0 -+#define CCR_MIN 1 -+#define CCR_HOUR 2 -+#define CCR_MDAY 3 -+#define CCR_MONTH 4 -+#define CCR_YEAR 5 -+#define CCR_WDAY 6 -+#define CCR_Y2K 7 -+ -+#define X1205_I2C_BUS_ADDR 0x6f // hardwired into x1205 -+#define X1205_ALM0_BASE 0x00 // Base address of the ALM0 -+#define X1205_CCR_BASE 0x30 // Base address of the CCR -+#define X1205_SR_ADDR 0x3f // Status Register -+#define X1205_SR_WEL 0x02 // Write Enable Latch bit -+#define X1205_SR_RWEL 0x04 // Register Write Enable Bit -+#define X1205_MILBIT 0x80 // this bit set in ccr.hour for 24 hr mode -+#define NOERR 0 -+#define RTC_NODATE 0 -+#define RTC_DATETOO 1 -+ -+// comment out next line is your x1205 can't do page writes -+//#define X1205PAGEWRITE 1 -+#ifdef X1205PAGEWRITE -+#define DRIVERNAME "Xicor x1205 RTC Driver v0.9.3.3" -+#else -+#define DRIVERNAME "Xicor x1205 RTC Dvr v0.9.3.3NPW" -+#endif -+ -+#define DEBUG KERN_DEBUG -+ -+ -+static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm, u8 reg_base); -+static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm, int datetoo, u8 reg_base); -+static int x1205_attach(struct i2c_adapter *adapter); -+static int x1205_detach(struct i2c_client *client); -+static int x1205_validate_tm(struct rtc_time *tm); -+static int x1205_command(struct i2c_client *client, unsigned int cmd, void *arg); -+static int x1205_sync_rtc(void); -+static int x1205_read(struct file *file, char *buf, size_t count, loff_t *ptr); -+static int x1205_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg); -+static int x1205_read_proc(char *buf, char **start, off_t off, int len, int *eof, void *data); -+ -+static struct i2c_driver x1205_driver = { -+ .owner = THIS_MODULE, -+ .name = DRIVERNAME, -+ .id = I2C_DRIVERID_EXP0, -+ .flags = I2C_DF_NOTIFY, -+ .attach_adapter = &x1205_attach, //we don't need to probe...x1205 is hardwired @ 0x6f -+ .detach_client = &x1205_detach, -+ .command = &x1205_command, //this prolly never gets called...used internally tho -+}; -+ -+static struct i2c_client x1205_i2c_client = { -+ .flags = 0, -+ .addr = X1205_I2C_BUS_ADDR, // chip address - NOTE: 7bit -+ .adapter = NULL, // the adapter we sit on assigned in attach -+ .driver = &x1205_driver, // and our access routines -+ .usage_count = 0, // How many accesses currently to this client -+ .dev = {}, // the device structure -+ .list = {}, -+ .name = DRIVERNAME, -+ .released = {}, -+}; -+ -+static struct file_operations rtc_fops = { -+ owner: THIS_MODULE, -+ ioctl: x1205_ioctl, -+ read: x1205_read, -+}; -+ -+static struct miscdevice x1205_miscdev = { -+ .minor = RTC_MINOR, -+ .name = "rtc", -+ .fops = &rtc_fops, -+}; -+extern int (*set_rtc)(void); -+static unsigned epoch = 1900; //coresponds to year 0 -+static unsigned rtc_epoch = 2000; -+static const unsigned char days_in_mo[] = -+{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; -+ -+//===================================CODE====================================== -+// in the routines that deal directly with the x1205 hardware, we use -+// rtc_time -- month 0-11, hour 0-23, yr = calendar year-epoch -+// Epoch is inited as 2000. Time is set to UT -+//============================================================================= -+static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm, u8 reg_base) -+{ -+ static unsigned char addr[2] = { 0,} ; -+ unsigned char buf[8]; -+ struct i2c_msg msgs[2] = { -+ { client->addr, I2C_M_WR, 2, addr }, //msg 1 = send base address -+ { client->addr, I2C_M_RD, 8, buf }, //msg 2 = read sequential data -+ }; -+ addr[1] = reg_base; -+ if ((i2c_transfer(client->adapter, msgs, 2)) == 2) { //did we read 2 messages? -+ printk(KERN_DEBUG "raw x1205 read data - sec-%02x min-%02x hr-%02x mday-%02x mon-%02x year-%02x wday-%02x y2k-%02x\n", -+ buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6], buf[7]); -+ tm->tm_sec = BCD2BIN(buf[CCR_SEC]); -+ tm->tm_min = BCD2BIN(buf[CCR_MIN]); -+ buf[CCR_HOUR] &= ~X1205_MILBIT; -+ tm->tm_hour = BCD2BIN(buf[CCR_HOUR]); //hr is 0-23 -+ tm->tm_mday = BCD2BIN(buf[CCR_MDAY]); -+ tm->tm_mon = BCD2BIN(buf[CCR_MONTH]); -+ rtc_epoch = BCD2BIN(buf[CCR_Y2K]) * 100; -+ tm->tm_year = BCD2BIN(buf[CCR_YEAR]) + rtc_epoch - epoch; -+ tm->tm_wday = buf[CCR_WDAY]; -+ printk(KERN_DEBUG "rtc_time output data - sec-%02d min-%02d hr-%02d mday-%02d mon-%02d year-%02d wday-%02d epoch-%d rtc_epoch-%d\n", -+ tm->tm_sec,tm->tm_min,tm->tm_hour,tm->tm_mday,tm->tm_mon,tm->tm_year,tm->tm_wday,epoch, rtc_epoch); -+ } else { -+ printk(KERN_DEBUG "i2c_transfer Read Error\n"); -+ return -EIO; -+ } -+ -+ return NOERR; -+} -+// x1205pagewrite allows writing a block of registers in msg3 even though the x1205 says -+// nothing about this in its spec. -+// it needs more testing as it is possible some x1205s are actually not-completely- -+// functional x1226s and there is a reason for the multiple write to not be in the spec. -+// anyhow, it is enabled for the time being...and we even push out luck by sending 10 bytes -+ -+static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm, int datetoo, u8 reg_base) -+{ -+ static unsigned char wel[3] = { 0, X1205_SR_ADDR, X1205_SR_WEL }; -+ static unsigned char rwel[3] = { 0, X1205_SR_ADDR, X1205_SR_WEL | X1205_SR_RWEL }; -+ static unsigned char diswe[3] = { 0, X1205_SR_ADDR, 0 }; -+ -+#ifdef X1205PAGEWRITE -+ -+ static unsigned char buf[10] = { 0, X1205_CCR_BASE, }; -+ struct i2c_msg msgs[4] = { -+ { client->addr, I2C_M_WR, 3, wel }, //msg 1 = write WEL to to ccr sr -+ { client->addr, I2C_M_WR, 3, rwel }, //msg 2 = write RWEL to ccr sr -+ { client->addr, I2C_M_WR, 10, buf }, //msg 3 = write ccr base addr +seq data -+ { client->addr, I2C_M_WR, 3, diswe }, //msg 4 = 0 to ccr sr to disable writes -+ }; -+ -+ msgs[2].len = 5; // 5 bytes + addr to set time only -+ buf [1] = reg_base; -+ buf[CCR_SEC+2] = BIN2BCD(tm->tm_sec); -+ buf[CCR_MIN+2] = BIN2BCD(tm->tm_min); -+ buf[CCR_HOUR+2] = BIN2BCD(tm->tm_hour) | X1205_MILBIT; // set 24 hour format -+ if (datetoo == 1) { -+ buf[CCR_MDAY+2] = BIN2BCD(tm->tm_mday); -+ buf[CCR_MONTH+2] = BIN2BCD(tm->tm_mon); // input is 0-11 -+ buf[CCR_YEAR+2] = BIN2BCD((tm->tm_year + epoch - rtc_epoch)); // input is yrs since 1900 -+ buf[CCR_WDAY+2] = tm->tm_wday & 7; -+ buf[CCR_Y2K+2] = BIN2BCD((rtc_epoch/100)); -+ msgs[2].len += 5; //5 more bytes to set date -+ } -+ printk(KERN_DEBUG "rtc_time input - sec-%02d min-%02d hour-%02d mday-%02d mon-%02d year-%02d wday-%02d epoch-%d rtc_epoch-%d\n", -+ tm->tm_sec,tm->tm_min,tm->tm_hour,tm->tm_mday,tm->tm_mon,tm->tm_year,tm->tm_wday, epoch, rtc_epoch); -+ printk(KERN_DEBUG "BCD write data - sec-%02x min-%02x hour-%02x mday-%02x mon-%02x year-%02x wday-%02x y2k-%02x\n", -+ buf[2],buf[3],buf[4],buf[5],buf[6], buf[7], buf[8], buf[9]); -+ -+ if ((i2c_transfer(client->adapter, msgs, 4)) != 4) -+ return -EIO; -+ return NOERR; -+ -+#else //do this if page writes aren't working -+ -+ int i,xfer; -+ static unsigned char data[3] = { 0,}; -+ static unsigned char buf[8]; -+ -+ buf[CCR_SEC] = BIN2BCD(tm->tm_sec); -+ buf[CCR_MIN] = BIN2BCD(tm->tm_min); -+ buf[CCR_HOUR] = BIN2BCD(tm->tm_hour) | X1205_MILBIT; // set 24 hour format -+ if (datetoo == 1) { -+ buf[CCR_MDAY] = BIN2BCD(tm->tm_mday); -+ buf[CCR_MONTH] = BIN2BCD(tm->tm_mon); // input is 0-11 -+ buf[CCR_YEAR] = BIN2BCD((tm->tm_year + epoch - rtc_epoch)); // input is yrs since 1900 -+ buf[CCR_WDAY] = tm->tm_wday & 7; -+ buf[CCR_Y2K] = BIN2BCD((rtc_epoch/100)); -+ } -+ printk(KERN_DEBUG "rtc_time input - sec-%02d min-%02d hour-%02d mday-%02d mon-%02d year-%02d wday-%02d epoch-%d rtc_epoch-%d\n", -+ tm->tm_sec,tm->tm_min,tm->tm_hour,tm->tm_mday,tm->tm_mon,tm->tm_year,tm->tm_wday, epoch, rtc_epoch); -+ -+ xfer = i2c_master_send(client, wel, 3); -+ printk(KERN_DEBUG "wen - %x\n", xfer); -+ if (xfer != 3) -+ return -EIO; -+ -+ xfer = i2c_master_send(client, rwel, 3); -+ printk(KERN_DEBUG "wenb - %x\n", xfer); -+ if (xfer != 3) -+ return -EIO; -+ -+ for (i = 0; i < 8; i++) { -+ data[1] = i + reg_base; -+ data[2] = buf[i]; -+ xfer = i2c_master_send(client, data, 3); -+ printk(KERN_DEBUG "xfer - %d addr - %02x data - %02x\n", xfer, data[1], data[2]); -+ if (xfer != 3) -+ return -EIO; -+ }; -+ -+ xfer = i2c_master_send(client, diswe, 3); -+ printk(KERN_DEBUG "wdis - %x\n", xfer); -+ if (xfer != 3) -+ return -EIO; -+ return NOERR; -+#endif -+} -+//============================================================================= -+ -+static int x1205_attach(struct i2c_adapter *adapter) -+{ -+ struct rtc_time tm; -+ struct timespec tv; -+ int errno; -+ -+ x1205_i2c_client.adapter = adapter; -+// x1205_i2c_client.id++; -+ -+ if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) != NOERR) //test for functional driver -+ return -EIO; -+ -+ if ((errno = i2c_attach_client(&x1205_i2c_client)) != NOERR) -+ return errno; -+ -+ tv.tv_nsec = tm.tm_sec * 10000000; -+ tv.tv_sec = mktime(tm.tm_year+epoch, tm.tm_mon, tm.tm_mday, tm.tm_hour, -+ tm.tm_min, tm.tm_sec); -+ do_settimeofday(&tv); -+ set_rtc = x1205_sync_rtc; -+ -+ printk(KERN_DEBUG "%s attached on adapter %s\n",x1205_i2c_client.name, -+ x1205_i2c_client.adapter->name); //why is this name a null string? -+ -+ return NOERR; -+} -+ -+static int x1205_detach(struct i2c_client *client) -+{ -+ int errno; -+ -+ if ((errno = i2c_detach_client(client)) != 0) { -+ printk(KERN_DEBUG "i2c_detach failed - errno = %d\n", errno); -+ return errno; -+ } -+ -+ return NOERR; -+} -+ -+// make sure the rtc_time values are in bounds -+static int x1205_validate_tm(struct rtc_time *tm) -+{ -+ tm->tm_year += 1900; -+ -+ if (tm->tm_year < 1970) -+ return -EINVAL; -+ -+ if ((tm->tm_mon > 11) || (tm->tm_mday == 0)) -+ return -EINVAL; -+ -+ if (tm->tm_mday > (days_in_mo[tm->tm_mon] + ( (tm->tm_mon == 1) && -+ ((!(tm->tm_year % 4) && (tm->tm_year % 100) ) || !(tm->tm_year % 400))))) -+ return -EINVAL; -+ -+ if ((tm->tm_year -= epoch) > 255) -+ return -EINVAL; -+ -+ if ((tm->tm_hour >= 24) || (tm->tm_min >= 60) || (tm->tm_sec >= 60)) -+ return -EINVAL; -+ return NOERR; -+} -+ -+static int x1205_command(struct i2c_client *client, unsigned int cmd, void *tm) -+{ -+ int errno, dodate = RTC_DATETOO; -+ -+ if (client == NULL || tm == NULL) -+ return -EINVAL; -+ if (!capable(CAP_SYS_TIME)) -+ return -EACCES; -+ -+ printk(KERN_DEBUG "x1205_command %d\n", cmd); -+ -+ switch (cmd) { -+ case RTC_GETDATETIME: -+ return x1205_get_datetime(client, tm, X1205_CCR_BASE); -+ -+ case RTC_SETTIME: // note fall thru -+ dodate = RTC_NODATE; -+ case RTC_SETDATETIME: -+ if ((errno = x1205_validate_tm(tm)) < NOERR) -+ return errno; -+ return x1205_set_datetime(client, tm, dodate, X1205_CCR_BASE); -+ -+ default: -+ return -EINVAL; -+ } -+} -+ -+static int x1205_sync_rtc(void) -+{ -+ struct rtc_time new_tm, old_tm; -+ unsigned long cur_secs = xtime.tv_sec; -+ -+ printk(KERN_DEBUG "x1205_sync_rtc entry\n"); -+ -+ if (x1205_command(&x1205_i2c_client, RTC_GETDATETIME, &old_tm)) -+ return 0; -+ -+// xtime.tv_nsec = old_tm.tm_sec * 10000000; //FIXME: -+ new_tm.tm_sec = cur_secs % 60; -+ cur_secs /= 60; -+ new_tm.tm_min = cur_secs % 60; -+ cur_secs /= 60; -+ new_tm.tm_hour = cur_secs % 24; -+ -+ /* -+ * avoid writing when we're going to change the day -+ * of the month. We will retry in the next minute. -+ * This basically means that if the RTC must not drift -+ * by more than 1 minute in 11 minutes. -+ */ -+ if ((old_tm.tm_hour == 23 && old_tm.tm_min == 59) || -+ (new_tm.tm_hour == 23 && new_tm.tm_min == 59)) -+ return 1; -+ printk(KERN_DEBUG "x1205_sync_rtc exit\n"); -+ -+ return x1205_command(&x1205_i2c_client, RTC_SETTIME, &new_tm); -+} -+ -+static int x1205_read(struct file *file, char *buf, size_t count, loff_t *ptr) -+{ -+ struct rtc_time tm; -+ -+ if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) < NOERR) -+ return -EIO; -+ return copy_to_user(buf, &tm, sizeof(tm)) ? -EFAULT : NOERR; -+} -+ -+//============================================================================== -+ -+static int x1205_ioctl(struct inode *inode, struct file *file, unsigned int cmd, -+ unsigned long arg) -+{ -+ struct rtc_time tm; -+ int errno; -+ -+ printk(KERN_DEBUG "ioctl = %x\n", cmd); -+ -+ switch (cmd) { -+ case RTC_RD_TIME: -+ if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) < NOERR) -+ return -EIO; -+ break; -+ -+ case RTC_SET_TIME: -+ if (!capable(CAP_SYS_TIME)) -+ return -EACCES; -+ -+ if (copy_from_user(&tm, (struct rtc_time *) arg, sizeof(struct rtc_time))) -+ return -EFAULT; -+ if ((errno = x1205_validate_tm(&tm)) < NOERR) -+ return errno; -+ return x1205_set_datetime(&x1205_i2c_client, &tm, RTC_DATETOO, X1205_CCR_BASE); -+ -+ case RTC_ALM_SET: //FIXME: set Control Regs -+ if (copy_from_user(&tm, (struct rtc_time *) arg, sizeof(struct rtc_time))) -+ return -EFAULT; -+ return x1205_set_datetime(&x1205_i2c_client, &tm, RTC_DATETOO, X1205_ALM0_BASE); -+ -+ case RTC_ALM_READ: -+ if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_ALM0_BASE)) < NOERR) -+ return -EIO; -+ break; -+ -+ case RTC_EPOCH_READ: -+ -+ return put_user (epoch, (unsigned long __user *)arg); -+ -+ case RTC_EPOCH_SET: -+ if (arg < 1900) -+ return -EINVAL; -+ -+ if (!capable(CAP_SYS_TIME)) -+ return -EACCES; -+ -+ epoch = arg; -+ return 0; -+ -+ default: -+ return -ENOTTY; -+ } -+ return copy_to_user((void __user *)arg, &tm, sizeof tm) ? -EFAULT : 0; -+ -+} -+ -+static int x1205_read_proc(char *buf, char **start, off_t off, int len, int *eof, void *data) -+{ -+ struct rtc_time tm; -+ int slen, errno; -+ -+ if ((errno = x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) < NOERR) -+ return errno; -+ -+// here we return the real year and the month as 1-12 since it is human-readable -+ slen = sprintf(buf, "rtc_time\t: %02d:%02d:%02d\nrtc_date\t: %04d-%02d-%02d\n", -+ tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_year + 1900, tm.tm_mon+1, tm.tm_mday); -+ printk(KERN_DEBUG "raw rtc_time\t: %02d:%02d:%02d\nraw rtc_date\t: %04d-%02d-%02d\n", -+ tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_year, tm.tm_mon, tm.tm_mday); -+ -+ if (slen <= off + len) -+ *eof = 1; -+ *start = buf + off; -+ slen -= off; -+ if (slen > len) -+ slen = len; -+ if ( slen < 0 ) -+ slen = 0; -+ -+ return slen; -+} -+ -+static int __init x1205_init(void) -+{ -+ struct rtc_time tm; -+ int errno; -+ printk(KERN_INFO "LOADED %s\n", DRIVERNAME); -+ -+ if ((errno = i2c_add_driver(&x1205_driver)) != NOERR) { -+ dev_dbg(x1205_i2c_client.dev, "x1205_init failed - errno = %d\n", errno); -+ return (errno); -+ } -+ if ((errno = misc_register(&x1205_miscdev)) != NOERR) { -+ dev_dbg(x1205_i2c_client.dev, "Register Misc Driver failed - errno = %d\n", errno); -+ i2c_del_driver(&x1205_driver); -+ return errno; -+ } -+ if (create_proc_read_entry("driver/rtc", 0, NULL, x1205_read_proc, NULL) < NOERR) -+ return -ENOMEM; -+ if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) != NOERR) //test for functionality -+ return -EIO; -+ -+ return NOERR; -+} -+ -+static void __exit x1205_exit(void) -+{ -+ remove_proc_entry("driver/rtc", NULL); -+ misc_deregister(&x1205_miscdev); -+ i2c_del_driver(&x1205_driver); -+ set_rtc = NULL; -+} -+ -+MODULE_AUTHOR("Karen Spearel <kas11@tampabay.rr.com>"); -+MODULE_DESCRIPTION("Xicor X1205-RTC Driver"); -+MODULE_LICENSE("GPL"); -+static int debug = 7; -+module_param(debug, bool, 0644); -+MODULE_PARM_DESC(debug, "Debugging enabled = 1"); -+ -+module_init(x1205_init); -+module_exit(x1205_exit); diff --git a/packages/linux/nslu2-kernel/2.6.13/40-mtd-shutdown.patch b/packages/linux/nslu2-kernel/2.6.13/40-mtd-shutdown.patch deleted file mode 100644 index e7cce4ebc0..0000000000 --- a/packages/linux/nslu2-kernel/2.6.13/40-mtd-shutdown.patch +++ /dev/null @@ -1,66 +0,0 @@ -# Ensure that the MTD is shut down on halt/reboot, otherwise the -# hardware reset hangs - ---- linux-2.6.12.2/drivers/mtd/maps/ixp4xx.c.orig 2005-07-17 15:07:47.790388300 -0700 -+++ linux-2.6.12.2/drivers/mtd/maps/ixp4xx.c 2005-07-17 17:00:08.082672710 -0700 -@@ -144,6 +144,52 @@ - return 0; - } - -+static void ixp4xx_flash_shutdown(struct device *_dev) -+{ -+ struct platform_device *dev = to_platform_device(_dev); -+ struct flash_platform_data *plat = dev->dev.platform_data; -+ struct ixp4xx_flash_info *info = dev_get_drvdata(&dev->dev); -+ map_word d; -+ -+ dev_set_drvdata(&dev->dev, NULL); -+ -+ if(!info) -+ return; -+ -+ /* -+ * This is required for a soft reboot to work. -+ */ -+ d.x[0] = 0xff; -+ ixp4xx_write16(&info->map, d, 0x55 * 0x2); -+ -+#if 0 -+ /* This is commented out because it seems to cause a kernel -+ * panic (at least if it isn't commented out the kernel fails -+ * to shut down). Should be investigated. -+ */ -+ if (info->mtd) { -+ del_mtd_partitions(info->mtd); -+ map_destroy(info->mtd); -+ } -+#endif -+ if (info->map.map_priv_1) -+ iounmap((void *) info->map.map_priv_1); -+ -+ if (info->partitions) -+ kfree(info->partitions); -+ -+ if (info->res) { -+ release_resource(info->res); -+ kfree(info->res); -+ } -+ -+ if (plat->exit) -+ plat->exit(); -+ -+ /* Disable flash write */ -+ *IXP4XX_EXP_CS0 &= ~IXP4XX_FLASH_WRITABLE; -+} -+ - static int ixp4xx_flash_probe(struct device *_dev) - { - struct platform_device *dev = to_platform_device(_dev); -@@ -243,6 +289,7 @@ - .bus = &platform_bus_type, - .probe = ixp4xx_flash_probe, - .remove = ixp4xx_flash_remove, -+ .shutdown = ixp4xx_flash_shutdown, - }; - - static int __init ixp4xx_flash_init(void) diff --git a/packages/linux/nslu2-kernel/2.6.13/50-nslu2-arch.patch b/packages/linux/nslu2-kernel/2.6.13/50-nslu2-arch.patch deleted file mode 100644 index f49ea7f1c3..0000000000 --- a/packages/linux/nslu2-kernel/2.6.13/50-nslu2-arch.patch +++ /dev/null @@ -1,84 +0,0 @@ ---- linux-2.6.11/arch/arm/boot/compressed/head.S 2005-06-17 17:51:27.245788998 -0700 -+++ linux-2.6.11/arch/arm/boot/compressed/head.S 2005-06-17 17:54:45.041806429 -0700 -@@ -37,6 +37,7 @@ - defined(CONFIG_ARCH_INTEGRATOR) || \ - defined(CONFIG_ARCH_PXA) || \ - defined(CONFIG_ARCH_IXP4XX) || \ -+ defined(CONFIG_ARCH_NSLU2) || \ - defined(CONFIG_ARCH_IXP2000) || \ - defined(CONFIG_ARCH_LH7A40X) || \ - defined(CONFIG_ARCH_OMAP) ---- linux-2.6.11/.pc/2.6.patch/arch/arm/boot/compressed/head-xscale.S 2005-03-01 23:37:52.000000000 -0800 -+++ linux-2.6.11/arch/arm/boot/compressed/head-xscale.S 2005-06-17 17:51:32.546985425 -0700 -@@ -47,3 +47,8 @@ - orr r7, r7, #(MACH_TYPE_GTWX5715 & 0xff00) - #endif - -+#ifdef CONFIG_ARCH_NSLU2 -+ mov r7, #(MACH_TYPE_NSLU2 & 0xff) -+ orr r7, r7, #(MACH_TYPE_NSLU2 & 0xff00) -+#endif -+ ---- linux-2.6.11/.pc/2.6.patch/arch/arm/mach-ixp4xx/Kconfig 2005-06-17 17:51:27.365770810 -0700 -+++ linux-2.6.11/arch/arm/mach-ixp4xx/Kconfig 2005-06-17 17:51:32.560983303 -0700 -@@ -43,6 +43,12 @@ - IXDP465 Development Platform (Also known as BMP). - For more information on this platform, see <file:Documentation/arm/IXP4xx>. - -+config ARCH_NSLU2 -+ bool "NSLU2" -+ help -+ Say 'Y' here if you want your kernel to support Linksys's -+ NSLU2 NAS device. For more information on this platform, -+ see http://www.nslu2-linux.org - - # - # IXCDP1100 is the exact same HW as IXDP425, but with a different machine ---- linux-2.6.11/.pc/2.6.patch/arch/arm/tools/mach-types 2005-06-17 17:51:27.423762020 -0700 -+++ linux-2.6.11/arch/arm/tools/mach-types 2005-06-17 17:51:32.564982697 -0700 -@@ -604,7 +604,7 @@ - roverp7 MACH_ROVERP7 ROVERP7 594 - pr818s MACH_PR818S PR818S 595 - trxpro MACH_TRXPRO TRXPRO 596 --nslu2 MACH_NSLU2 NSLU2 597 -+nslu2 ARCH_NSLU2 NSLU2 597 - e400 MACH_E400 E400 598 - trab MACH_TRAB TRAB 599 - cmc_pu2 MACH_CMC_PU2 CMC_PU2 600 ---- linux-2.6.11/.pc/2.6.patch/drivers/mtd/maps/ixp4xx.c 2005-03-01 23:37:30.000000000 -0800 -+++ linux-2.6.11/drivers/mtd/maps/ixp4xx.c 2005-06-17 17:51:32.566982394 -0700 -@@ -94,7 +94,11 @@ - struct resource *res; - }; - -+#ifdef CONFIG_ARCH_NSLU2 -+static const char *probes[] = { "cmdlinepart", "RedBoot", "NSLU2", NULL }; -+#else - static const char *probes[] = { "RedBoot", "cmdlinepart", NULL }; -+#endif - - static int ixp4xx_flash_remove(struct device *_dev) - { ---- linux-2.6.11/.pc/2.6.patch/include/asm-arm/arch-ixp4xx/hardware.h 2005-03-01 23:37:51.000000000 -0800 -+++ linux-2.6.11/include/asm-arm/arch-ixp4xx/hardware.h 2005-06-17 17:51:32.567982242 -0700 -@@ -44,5 +44,6 @@ - #include "ixdp425.h" - #include "coyote.h" - #include "prpmc1100.h" -+#include "nslu2.h" - - #endif /* _ASM_ARCH_HARDWARE_H */ ---- linux-2.6.11/.pc/2.6.patch/include/asm-arm/arch-ixp4xx/irqs.h 2005-03-01 23:38:12.000000000 -0800 -+++ linux-2.6.11/include/asm-arm/arch-ixp4xx/irqs.h 2005-06-17 17:51:32.568982091 -0700 -@@ -93,4 +93,11 @@ - #define IRQ_COYOTE_PCI_SLOT1 IRQ_IXP4XX_GPIO11 - #define IRQ_COYOTE_IDE IRQ_IXP4XX_GPIO5 - -+/* -+ * NSLU2 board IRQs -+ */ -+#define IRQ_NSLU2_PCI_INTA IRQ_IXP4XX_GPIO11 -+#define IRQ_NSLU2_PCI_INTB IRQ_IXP4XX_GPIO10 -+#define IRQ_NSLU2_PCI_INTC IRQ_IXP4XX_GPIO9 -+ - #endif diff --git a/packages/linux/nslu2-kernel/2.6.13/50-nslu2-include.patch b/packages/linux/nslu2-kernel/2.6.13/50-nslu2-include.patch deleted file mode 100644 index c69e69c53e..0000000000 --- a/packages/linux/nslu2-kernel/2.6.13/50-nslu2-include.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff -urN linux-2.6.13.1/include/asm-arm/arch-ixp4xx/nslu2.h nslu2-2.6.13.1/include/asm-arm/arch-ixp4xx/nslu2.h ---- linux-2.6.13.1/include/asm-arm/arch-ixp4xx/nslu2.h 1970-01-01 01:00:00.000000000 +0100 -+++ nslu2-2.6.13.1/include/asm-arm/arch-ixp4xx/nslu2.h 2005-09-16 18:58:05.000000000 +0200 -@@ -0,0 +1,43 @@ -+/* -+ * include/asm-arm/arch-ixp4xx/nslu2.h -+ * -+ * NSLU2 platform specific definitions -+ * -+ * Author: Mark Rakes <mrakes AT mac.com> -+ * Maintainers: http://www.nslu2-linux.org -+ * -+ * based on ixdp425.h: -+ * Copyright 2004 (c) MontaVista, Software, Inc. -+ * -+ * This file is licensed under the terms of the GNU General Public -+ * License version 2. This program is licensed "as is" without any -+ * warranty of any kind, whether express or implied. -+ */ -+ -+// GPIO 8 is used as the power input so is not free for use as a PCI IRQ -+// kas11 11-2-04 -+ -+#ifndef __ASM_ARCH_HARDWARE_H__ -+#error "Do not include this directly, instead #include <asm/hardware.h>" -+#endif -+ -+#define NSLU2_FLASH_BASE IXP4XX_EXP_BUS_CS0_BASE_PHYS -+#define NSLU2_FLASH_SIZE IXP4XX_EXP_BUS_CSX_REGION_SIZE -+ -+#define NSLU2_SDA_PIN 7 -+#define NSLU2_SCL_PIN 6 -+ -+/* -+ * NSLU2 PCI IRQs -+ */ -+#define NSLU2_PCI_MAX_DEV 3 -+#define NSLU2_PCI_IRQ_LINES 3 -+ -+ -+/* PCI controller GPIO to IRQ pin mappings */ -+#define NSLU2_PCI_INTA_PIN 11 -+#define NSLU2_PCI_INTB_PIN 10 -+#define NSLU2_PCI_INTC_PIN 9 -+//#define NSLU2_PCI_INTD_PIN 8 -+ -+ diff --git a/packages/linux/nslu2-kernel/2.6.13/50-nslu2-setup.patch b/packages/linux/nslu2-kernel/2.6.13/50-nslu2-setup.patch deleted file mode 100644 index f38c0c8b3e..0000000000 --- a/packages/linux/nslu2-kernel/2.6.13/50-nslu2-setup.patch +++ /dev/null @@ -1,1156 +0,0 @@ -diff -urN linux-2.6.13.1/arch/arm/mach-ixp4xx/Makefile nslu2-2.6.13.1/arch/arm/mach-ixp4xx/Makefile ---- linux-2.6.13.1/arch/arm/mach-ixp4xx/Makefile 2005-09-17 12:42:02.000000000 +0200 -+++ nslu2-2.6.13.1/arch/arm/mach-ixp4xx/Makefile 2005-09-17 12:44:11.000000000 +0200 -@@ -8,4 +8,5 @@ - obj-$(CONFIG_MACH_IXDPG425) += ixdpg425-pci.o coyote-setup.o - obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o - obj-$(CONFIG_MACH_GTWX5715) += gtwx5715-pci.o gtwx5715-setup.o -+obj-$(CONFIG_ARCH_NSLU2) += nslu2-pci.o nslu2-setup.o nslu2-part.o nslu2-io.o - -diff -urN linux-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-io.c nslu2-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-io.c ---- linux-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-io.c 1970-01-01 01:00:00.000000000 +0100 -+++ nslu2-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-io.c 2005-09-17 00:12:18.000000000 +0200 -@@ -0,0 +1,777 @@ -+//============================================================================= -+// -+// n2-io.c version 0.1.7 -+// Author: Karen Spearel <kas11 at tampabay.rr.com> -+// please report problems/bugs directly to the address above -+// -+// Boilerplate to be added "real soon now"...it is and has always been GPL'ed per -+// MODULE_LICENSE but is offered without warrantee of any sort..use at your own risk -+// -+// NOTE: THIS IS INCOMPLETE. INCLUDED ONLY TO KEEP FROM BREAKING THE BUILD, -+// IT BEEPS AND SENDS A MESSAGE TO /proc/poweroff. EVENTUALLY IT -+// WILL TALK TO THE n2_pbd DAEMON. EVENTUALLY THE LED DRIVER -+// WILL TALK TO SOME USERLAND APP BUT ***NOT*** SET_LEDS. -+// -+//============================================================================= -+// GPIO Function State -+// 0 Red LED Status -+// 1 Green LED Ready = 1 -+// 2 Disk 2 LED On = 0 -+// 3 Disk 1 LED On = 0 -+// 4 Buzzer -+// 5 Power Button Pressed = 1 -+// 8 Power Down Output = 1 powers down N2 -+// 12 Reset Pressed = 0 -+//============================================================================= -+// this driver is N2 specific and is purposely designed to do the minimum -+// necessary to provide the necessary services given the limited memory resources -+// of the N2. As OpenN2 develops, addition features will be added as -+// suggested by the community. -+// -+//============================================================================= -+ -+#include <linux/config.h> -+#include <linux/version.h> -+#include <linux/module.h> -+#include <linux/utsname.h> -+#include <linux/kernel.h> -+#include <linux/major.h> -+#include <linux/string.h> -+#include <linux/proc_fs.h> -+#include <linux/slab.h> -+#include <linux/init.h> -+#include <linux/errno.h> -+#include <linux/fs.h> -+#include <linux/miscdevice.h> -+#include <linux/device.h> -+#include <linux/interrupt.h> -+#include <linux/moduleparam.h> -+#include <linux/timer.h> -+#include <linux/reboot.h> -+ -+#include <asm/system.h> -+#include <asm/uaccess.h> -+#include <asm/hardware.h> -+#include <asm-arm/irq.h> -+#include <asm-arm/delay.h> -+#include <asm-arm/signal.h> -+ -+/* Set this to 1 to output lots of debug messages. */ -+#if NSLU2_IO_DEBUG -+#define nslu2_io_debug(args) printk args -+#else -+#define nslu2_io_debug(args) ((void)0) -+#endif -+ -+#define VERSION "0.1.7" -+ -+#define N2RB_MAJOR 60 //rbuttons -+#define N2PB_MAJOR 61 //pbuttons -+#define N2BZ_MAJOR 62 //buzzer -+#define N2LM_MAJOR 126 -+ -+#define N2PB_IRQ 22 //gpio5 -+#define N2RB_IRQ 29 //gpio12 -+ -+#define N2_BEEP_DUR_LONG 2000 -+#define N2_BEEP_DUR_MED 400 -+#define N2_BEEP_DUR_SHORT 100 -+#define N2_BEEP_PITCH_HIGH 250 -+#define N2_BEEP_PITCH_MED 500 -+#define N2_BEEP_PITCH_LOW 1000 -+#define N2_LONG_DELAY 30000 -+ -+#define N2_BZ_GPIO 4 -+#define N2_PB_GPIO 5 -+#define N2_PO_GPIO 8 //power off -+#define N2_RB_GPIO 12 -+ -+#define GPIO_BZ_BM 0x0010 //b0000 0000 0001 0000 -+#define GPIO_PB_BM 0x0020 //b0000 0000 0010 0000 -+#define GPIO_PO_BM 0x0100 //b0000 0001 0000 0000 -+#define GPIO_RB_BM 0x1000 //b0001 0000 0000 0000 -+ -+#define NOERR 0 -+ -+#define RB_DELAY 50 -+#define PB_DELAY 20 -+ -+#define PWR_OFF_STR "poweroff" -+ -+ -+// ioctls -- 'M" is used for sound cards...we don't got one so it seems safe -+ -+#define N2BZ_BEEP_STOP _IO('M',0) //stop multi-beep at end of audible -+#define N2BZ_BEEP _IO('M',1) //one beep at current defaults -+#define N2BZ_BEEPS _IOW('M',3,long) //param beeps at current defaults -+#define N2BZ_TONESET _IOW('M',4,long) //set tone: range is high=250 to low=2000 -+#define N2BZ_ONTIME _IOW('M',5,long) //ontime for multi-beeps in jiffies -+#define N2BZ_SILENTTIME _IOW('M',6,long) //offtime for multi-beeps in jiffies -+#define N2BZ_REPEATCNT _IOW('M',7,long) //number of repeats for multi-beeps 0 = forever -+#define N2BZ_COMBINED _IOW('M',8,long) //combine all params in a long -+ -+#define N2LM_OFF _IOW('M',32,long) -+#define N2LM_ON _IOW('M',33,long) -+#define N2LM_BLINK _IOW('M',34,long) -+#define N2LM_ALT _IOW('M',35,long) -+#define N2LM_ALL_ON _IO('M',36) -+#define N2LM_ALL_OFF _IO('M',37) -+ -+#define PHYS_LEDS 4 -+#define BLINK_DELAY 25 -+ -+// OR Masks to turn these LEDs ON -+ -+#define RS_RED_ON 0x00000001 //0b0000 0000 0000 0010 -+#define RS_GRN_ON 0x00000002 //0b0000 0000 0000 0001 -+#define RS_YEL_ON 0x00000003 //0b0000 0000 0000 0011 -+ -+// AND Masks to turn these LEDs OFF -+ -+#define RS_RED_OFF 0xfffffffe //0b1111 1111 1111 1101 -+#define RS_GRN_OFF 0xfffffffd //0b1111 1111 1111 1110 -+#define RS_YEL_OFF 0xfffffffc //0b1111 1111 1111 1100 -+ -+// AND Masks to turn these LEDs ON -+ -+#define DISK1_ON 0xfffffff7 //0b1111 1111 1111 0111 -+#define DISK2_ON 0xfffffffb //0b1111 1111 1111 1011 -+ -+// Or Masks to turn these LEDs OFF -+ -+#define DISK1_OFF 0x00000008 //0b0000 0000 0000 1000 -+#define DISK2_OFF 0x00000004 //0b0000 0000 0000 0100 -+ -+// EOR masks for toggling LEDs on/off -+ -+#define RS_RG_ALT 0x00000003 //eor mask to toggle rs rg bits -+#define RS_GRN_TGL 0x00000002 -+#define RS_RED_TGL 0x00000001 -+#define DISK1_TGL 0x00000008 -+#define DISK2_TGL 0x00000004 -+ -+// The LED names for switches -+ -+#define LED_RS_RED 0 -+#define LED_RS_GRN 1 -+#define LED_DISK1 2 -+#define LED_DISK2 3 -+#define LED_ALL 4 -+ -+static unsigned long init_jiffy = 0; //jiffies at init time -+static unsigned long rb_presses = 0; //number of reset button presses -+static unsigned long ontime = 50; -+static unsigned long offtime = 450; -+static unsigned long bz_repeatcnt = 10; -+static unsigned long tone = 1000; -+ -+DECLARE_WAIT_QUEUE_HEAD(n2rb_waitq); -+DECLARE_WAIT_QUEUE_HEAD(n2pb_waitq); -+ -+static struct timer_list n2lm_rsg_timer; //rs green -+static struct timer_list n2lm_rsr_timer; //rs red -+static struct timer_list n2lm_d1_timer; //drive 1 -+static struct timer_list n2lm_d2_timer; //drive 2 -+static struct timer_list n2rb_timer; -+static struct timer_list n2pb_timer; -+static struct timer_list n2bz_timer; //beeper -+ -+// sysfs class -+static struct class *n2lm_class; -+ -+//================================================================================================== -+// -+// Blinking is handled entirely by the 4 timer handlers. On timeout, the bit in the -+// GPIO output register is xor'd with a mask corresponding to the selected led which simply -+// flips that bit. No record of what any of the other leds is doing is needed. -+// -+//================================================================================================== -+// this blinks rs green or green/yellow if rs red is on -+static void n2lm_rsg_handler(unsigned long data) -+{ -+ *IXP4XX_GPIO_GPOUTR ^= RS_GRN_TGL; //flip the led -+ n2lm_rsg_timer.expires = jiffies + BLINK_DELAY; //next timeout -+ add_timer(&n2lm_rsg_timer); //reinit timer -+ return; -+} -+ -+// this blinks or alternates rs red green... inited wit green on/red off -+static void n2lm_rsr_handler(unsigned long data) -+{ -+ *IXP4XX_GPIO_GPOUTR ^= n2lm_rsr_timer.data; -+ n2lm_rsr_timer.expires = jiffies + BLINK_DELAY; -+ add_timer(&n2lm_rsr_timer); -+ return; -+} -+// blinks disk 1 -+static void n2lm_d1_handler(unsigned long data) -+{ -+ *IXP4XX_GPIO_GPOUTR ^= DISK1_TGL; -+ n2lm_d1_timer.expires = jiffies + BLINK_DELAY; -+ add_timer(&n2lm_d1_timer); -+ return; -+} -+// blinks disk 2 -+static void n2lm_d2_handler(unsigned long data) -+{ -+ *IXP4XX_GPIO_GPOUTR ^= DISK2_TGL; -+ n2lm_d2_timer.expires = jiffies + BLINK_DELAY; -+ add_timer(&n2lm_d2_timer); -+ return; -+} -+ -+//================================================================================================== -+ -+static void n2lm_timer_start(unsigned long led) -+{ -+ -+ nslu2_io_debug((KERN_DEBUG "timer: %ld\n",led)); -+ -+ switch(led) { -+ case LED_RS_RED: -+ n2lm_rsr_timer.expires = jiffies + BLINK_DELAY; -+ add_timer(&n2lm_rsr_timer); -+ break; -+ -+ case LED_RS_GRN: -+ n2lm_rsg_timer.expires = jiffies + BLINK_DELAY; -+ add_timer(&n2lm_rsg_timer); -+ break; -+ -+ case LED_DISK1: -+ n2lm_d1_timer.expires = jiffies + BLINK_DELAY; -+ add_timer(&n2lm_d1_timer); -+ break; -+ -+ case LED_DISK2: -+ n2lm_d2_timer.expires = jiffies + BLINK_DELAY; -+ add_timer(&n2lm_d2_timer); -+ break; -+ -+ default: -+ break; -+ } -+ return; -+} -+ -+//================================================================================================== -+ -+static void n2lm_timer_stop(unsigned long led) -+{ -+ switch (led) { -+ case LED_RS_RED: -+ del_timer(&n2lm_rsr_timer); -+ break; -+ case LED_RS_GRN: -+ del_timer(&n2lm_rsg_timer); -+ break; -+ case LED_DISK1: -+ del_timer(&n2lm_d1_timer); -+ break; -+ case LED_DISK2: -+ del_timer(&n2lm_d2_timer); -+ break; -+ default: -+ break; -+ } -+ return; -+} -+ -+//-------------------------------------------------------------------------------------------------- -+ -+static void n2lm_timer_stop_all(void) -+{ -+ del_timer(&n2lm_rsg_timer); -+ del_timer(&n2lm_rsr_timer); -+ del_timer(&n2lm_d1_timer); -+ del_timer(&n2lm_d2_timer); -+ return; -+} -+//-------------------------------------------------------------------------------------------------- -+ -+static void n2lm_ledon(unsigned long led) -+{ -+ -+ nslu2_io_debug((KERN_DEBUG "ledon: %ld\n", led)); -+ -+ switch (led) { -+ case LED_RS_RED: -+ *IXP4XX_GPIO_GPOUTR |= RS_RED_ON; //1 -+ return; -+ case LED_RS_GRN: -+ *IXP4XX_GPIO_GPOUTR |= RS_GRN_ON; //2 -+ return; -+ case LED_DISK1: -+ *IXP4XX_GPIO_GPOUTR &= DISK1_ON; //0xfffffff7 -+ return; -+ case LED_DISK2: -+ *IXP4XX_GPIO_GPOUTR &= DISK2_ON; //0xfffffffb -+ return; -+ case LED_ALL: //all green -+ *IXP4XX_GPIO_GPOUTR |= RS_GRN_ON; -+ *IXP4XX_GPIO_GPOUTR &= (DISK1_ON & DISK2_ON); -+ return; -+ } -+} -+ -+//-------------------------------------------------------------------------------------------------- -+ -+static void n2lm_ledoff(unsigned long led) -+{ -+ -+ switch (led) { -+ case LED_RS_RED: -+ *IXP4XX_GPIO_GPOUTR &= RS_RED_OFF; //0xffffffffe -+ return; -+ case LED_RS_GRN: -+ *IXP4XX_GPIO_GPOUTR &= RS_GRN_OFF; //0xfffffffd -+ return; -+ case LED_DISK1: -+ *IXP4XX_GPIO_GPOUTR |= DISK1_OFF; //0x00000008 -+ return; -+ case LED_DISK2: -+ *IXP4XX_GPIO_GPOUTR |= DISK2_OFF; //0x00000004 -+ return; -+ case LED_ALL: -+ *IXP4XX_GPIO_GPOUTR &= (RS_GRN_OFF & RS_RED_OFF); -+ *IXP4XX_GPIO_GPOUTR |= (DISK1_OFF | DISK2_OFF); -+ } -+} -+ -+//================================================================================================== -+ -+static int n2lm_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long led) -+{ -+ -+ nslu2_io_debug((KERN_DEBUG "cmd=%d, led=%ld\n", cmd, led)); -+ -+ if (led < 0 || led >= PHYS_LEDS) -+ return -EINVAL; -+ -+ switch (cmd ) { -+ case N2LM_ON: -+ n2lm_timer_stop(led); -+ n2lm_ledon(led); -+ break; -+ -+ case N2LM_OFF: -+ n2lm_timer_stop(led); -+ n2lm_ledoff(led); -+ break; -+ -+ case N2LM_BLINK: -+ n2lm_ledon(led); -+ if (led == LED_RS_RED) -+ n2lm_rsr_timer.data = RS_RED_TGL; -+ n2lm_timer_start(led); -+ break; -+ -+ case N2LM_ALT: -+ if (led == LED_RS_RED) -+ { -+ n2lm_ledon(LED_RS_GRN); -+ n2lm_ledoff(LED_RS_RED); -+ n2lm_rsr_timer.data = RS_RG_ALT; -+ n2lm_timer_start(LED_RS_RED); -+ break; -+ } else -+ return -EINVAL; -+ -+ case N2LM_ALL_ON: -+ n2lm_timer_stop_all(); -+ n2lm_ledon(LED_ALL); -+ break; -+ -+ case N2LM_ALL_OFF: -+ n2lm_timer_stop_all(); -+ n2lm_ledoff(LED_ALL); -+ break; -+ -+ default: -+ return -EINVAL; -+ } -+ -+ return NOERR; -+} -+ -+static struct file_operations n2lm_fops = { -+ .owner = THIS_MODULE, -+ .ioctl = n2lm_ioctl, -+}; -+//================================================================================================== -+// We can't do anything fancy here since the system tick rate is far below that required to -+// generate a desirable tone. Therefore we haven't much choice but to use a busy loop until -+// I get up to speed on the timers. The saving grace is that for the normal uses, nothing -+// important should be haprepening. -+//================================================================================================== -+ -+static void n2_buzz(int tone_delay, int duration) -+{ -+ int i; -+ -+ *IXP4XX_GPIO_GPOER &= ~GPIO_BZ_BM; -+ -+ for (i = 1; i < duration; i++) { -+ *IXP4XX_GPIO_GPOUTR &= ~GPIO_BZ_BM; -+ udelay(tone_delay); -+ *IXP4XX_GPIO_GPOUTR |= GPIO_BZ_BM; -+ udelay(tone_delay); -+ } -+ *IXP4XX_GPIO_GPOER |= GPIO_BZ_BM; -+ -+ return; -+} -+//================================================================================================= -+ -+// this handles the buzzer duty cycle -+static void n2bz_handler(unsigned long data) -+{ -+ if (--bz_repeatcnt > 0) { //if just one beep left to do -+ n2bz_timer.expires = jiffies + ontime + offtime; //next timeout -+ add_timer(&n2bz_timer); //reinit timer -+ } -+ n2_buzz(tone/2, ontime); -+ nslu2_io_debug((KERN_DEBUG "Count = %d\tOntime = %d\n", bz_repeatcnt, ontime)); -+ return; -+} -+ -+//================================================================================================== -+ -+static int n2bz_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long param) -+{ -+ switch (cmd) { -+ case N2BZ_BEEP: -+ n2_buzz(tone/2, ontime); -+ break; -+ -+ case N2BZ_BEEP_STOP: -+ del_timer(&n2bz_timer); -+ break; -+ -+ case N2BZ_BEEPS: -+ if (param == 0) -+ bz_repeatcnt = 0xffffffff; -+ else -+ bz_repeatcnt = param; -+ n2bz_handler(0); -+ break; -+ -+ case N2BZ_TONESET: -+ if (param >= 250 && param <= 2000) -+ tone = param; -+ break; -+ -+ case N2BZ_ONTIME: -+ if (param > 4 && param < 201) -+ ontime = param; -+ break; -+ -+ case N2BZ_SILENTTIME: -+ if (param > ontime) //enforce a reasonable duty cycle -+ offtime = param; -+ else -+ offtime = ontime; -+ break; -+ -+ case N2BZ_REPEATCNT: -+ if (param == 0) -+ bz_repeatcnt = 0xffffffff; -+ else -+ bz_repeatcnt = param; -+ break; -+ -+ case N2BZ_COMBINED: -+ bz_repeatcnt = (param & 0xF0000000) >> 28; //repeat 1 - 16 -+ ontime = (param & 0x0FF00000) >> 20; //ontime 1 - 256 jiffies -+ offtime = (param & 0x000FFF00) >> 8; //offtime 1 - 4095 jiffies -+ tone = (param & 0x000000FF) << 4; //tone (1 - 255) * 16 -+ break; -+ -+ default: -+ break; -+ } -+ return NOERR; -+} -+ -+static struct file_operations n2bz_fops = { -+ .owner = THIS_MODULE, -+ .ioctl = n2bz_ioctl, -+}; -+ -+//================================================================================================== -+ -+static irqreturn_t n2pb_handler (int irq, void *dev_id, struct pt_regs *regs) -+{ -+ void *ret; -+ -+ wake_up(&n2pb_waitq); -+ remove_proc_entry(PWR_OFF_STR, NULL); //no parent -+ n2_buzz(N2_BEEP_PITCH_MED, N2_BEEP_DUR_MED); -+ ret = create_proc_entry(PWR_OFF_STR, 0, NULL); -+ nslu2_io_debug((KERN_DEBUG "cpe ret = %p\n", ret)); -+ -+// WARNING: This is RUDE...it unconditionally pulls the power plug. -+// Your data will be at risk...since this is just a test system -+// I am leaving it enabled...eventually userland needs to get the -+// message, do an orderly shutdown and use an ioctl or something in -+// /proc/powerdowm to actually have us pull the plug. -+ -+ machine_power_off(); -+ -+ return IRQ_HANDLED; -+} -+ -+//================================================================================================== -+// -+//static void do_rb_timeout(unsigned long data) -+//{ -+// int i; -+// -+// for (i = 0; i < rb_presses; i++) -+// n2_buzz(N2_BEEP_PITCH_MED,N2_BEEP_DUR_SHORT); -+// return; -+//} -+// -+//================================================================================================== -+// does nothing -- waiting for userland to define -+// This thing is sorta braindead...edge triggered IRQs aren't available in the drivers yet...so -+// we hang in a loop until the button is no longer pressed -+ -+struct testr { -+ int ctl; -+ long param; -+}; -+ -+static irqreturn_t n2rb_handler (int irq, void *dev_id, struct pt_regs *regs) -+{ -+ -+ static struct testr test[] = { -+ { N2LM_ALL_OFF,0 }, -+ { N2LM_ON,0 }, -+ { N2LM_OFF,0 }, -+ { N2LM_ON,1 }, -+ { N2LM_ALL_OFF,1 }, -+ { N2LM_ON,2 }, -+ { N2LM_OFF,2 }, -+ { N2LM_ON,3 }, -+ { N2LM_OFF,3 }, -+ { N2LM_BLINK,0 }, -+ { N2LM_OFF,0 }, -+ { N2LM_BLINK,1 }, -+ { N2LM_OFF,1 }, -+ { N2LM_BLINK,2 }, -+ { N2LM_OFF,2 }, -+ { N2LM_BLINK,3 }, -+ { N2LM_OFF,3 }, -+ { N2LM_ALL_OFF,0 }, -+ { N2LM_ALT,1 }, -+ { N2LM_OFF,1 }, -+ { N2LM_ALL_ON,0 } -+ }; -+ -+ nslu2_io_debug(("Reset Entry IRQ =%d Presses = %d Jiffies = %08lx\tIO = %x\tIOW = %x\n", irq, rb_presses, jiffies, (int)_IO('M',rb_presses), (int)_IOW('M',rb_presses,long))); -+ -+ wake_up(&n2rb_waitq); -+ while ((*IXP4XX_GPIO_GPINR & GPIO_RB_BM) == 0) -+ ; //wait for button release -+ -+ if (rb_presses > 20) -+ rb_presses = 0; -+ tone = (rb_presses * 50) + 200; -+ ontime = (rb_presses*10) + 100; -+ offtime = 500 - (rb_presses*20); -+ nslu2_io_debug(("Ontime = %d\tOfftime = %d\tTone = %d\n",ontime,offtime,tone)); -+ rb_presses++; -+ -+ n2bz_ioctl(NULL,NULL, N2BZ_BEEPS, rb_presses); -+ n2lm_ioctl(NULL,NULL, test[rb_presses].ctl, test[rb_presses].param); -+// if (rb_presses == 0) { -+// init_jiffy = jiffies; -+// init_timer (&n2rb_timer); -+// n2rb_timer.function = do_rb_timeout; -+// }; -+// -+// if (rb_presses == 8) -+// rb_presses = 0; -+// if (rb_presses & 1) -+// n2lm_ledon(test[rb_presses]); -+// else -+// n2lm_ledoff(test[rb_presses]); -+// -+// n2rb_timer.expires = (jiffies + RB_DELAY); -+// add_timer (&n2rb_timer); -+// if (rb_presses < 5) { -+// if (rb_presses > 0) -+// n2lm_ledoff(rb_presses); -+// n2lm_ledon(++rb_presses); -+// n2lm_timer_start(rb_presses); -+// }; -+ -+ nslu2_io_debug((KERN_DEBUG "Reset Exit IRQ=%d Presses= %d Jiffies= %08lx\n", irq, rb_presses, jiffies)); -+ return IRQ_HANDLED; -+ -+} -+ -+//================================================================================================== -+// What to do here is majorly undetermined... -+ -+static int n2rb_read (struct file *filp, char __user *buffer, size_t count, loff_t *ppos) -+{ -+ printk(KERN_DEBUG "Reset Button Wait\n"); -+ interruptible_sleep_on(&n2rb_waitq); -+ return copy_to_user(buffer, "reset", 5) ? -EFAULT : 5; -+ -+} -+ -+//================================================================================================== -+// What to do here is majorly undetermined... -+ -+static int n2pb_read (struct file *filp, char __user *buffer, size_t count, loff_t *ppos) -+{ -+ printk(KERN_DEBUG "Power Button Wait\n"); -+ interruptible_sleep_on(&n2pb_waitq); -+ return copy_to_user(buffer, "poweroff", 8) ? -EFAULT : 8; -+ -+} -+ -+//-------------------------------------------------------------------------------------------------- -+ -+static struct file_operations n2rb_fops = { -+ .owner = THIS_MODULE, -+ .read = n2rb_read, -+}; -+ -+//-------------------------------------------------------------------------------------------------- -+ -+static struct file_operations n2pb_fops = { -+ .owner = THIS_MODULE, -+ .read = n2pb_read, -+}; -+ -+//================================================================================================== -+ -+static void n2iom_initarch(void) -+{ -+ printk(KERN_DEBUG "setup_interrupts - jiffies=%ld init_jiffy=%ld\n", jiffies, init_jiffy); -+ -+ *IXP4XX_GPIO_GPISR = 0x20400000; // read the 2 irqs to clr -+ gpio_line_config(N2_RB_GPIO, IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); -+ gpio_line_isr_clear(N2_RB_GPIO); -+ gpio_line_config(N2_PB_GPIO, IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_HIGH); -+ gpio_line_isr_clear(N2_PB_GPIO); -+ -+ init_timer(&n2lm_rsg_timer); -+ init_timer(&n2lm_rsr_timer); -+ init_timer(&n2lm_d1_timer); -+ init_timer(&n2lm_d2_timer); -+// init_timer(&n2rb_timer); -+// init_timer(&n2pb_timer); -+ init_timer(&n2bz_timer); -+ n2lm_rsr_timer.function = n2lm_rsr_handler; -+ n2lm_rsg_timer.function = n2lm_rsg_handler; -+ n2lm_d2_timer.function = n2lm_d2_handler; -+ n2lm_d1_timer.function = n2lm_d1_handler; -+ n2bz_timer.function = n2bz_handler; -+ n2lm_rsr_timer.data = n2lm_rsg_timer.data = n2lm_d1_timer.data = n2lm_d2_timer.data = n2bz_timer.data = 0; -+ -+ *IXP4XX_GPIO_GPOER &= 0xfffffff0; //enable gpio 0-3 -+ *IXP4XX_GPIO_GPOUTR |= 0x00000003; //turn off the leds -+ *IXP4XX_GPIO_GPOUTR &= 0xfffffffc; -+ n2lm_ledon(LED_ALL); -+ n2_buzz(N2_BEEP_PITCH_MED, N2_BEEP_DUR_SHORT); -+ n2lm_ledoff(LED_ALL); -+// Default the Ready/Status to Red during kernel boot, Turn Green at the end of sysvinit -+ n2lm_ledon(LED_RS_RED); -+ -+ return; -+} -+ -+//================================================================================================== -+ -+static int __init n2iom_init(void) -+{ -+ printk(KERN_INFO "OpenN2 Misc I/O Driver Version %s\n", VERSION); -+ -+ init_jiffy = jiffies; -+ printk(KERN_DEBUG "init_jiffy=%ld\n",init_jiffy); -+ n2iom_initarch(); -+ -+ n2lm_class = class_create(THIS_MODULE, "nslu2"); -+ -+ if (register_chrdev(N2RB_MAJOR, "n2_rbm", &n2pb_fops) < NOERR) { -+ printk(KERN_DEBUG "Reset Button Major %d not available\n", N2RB_MAJOR); -+ return -EBUSY; -+ } -+ else { -+ class_device_create(n2lm_class, MKDEV(N2RB_MAJOR, 0), NULL, "rbuttons"); -+ } -+ if (register_chrdev(N2PB_MAJOR, "n2_pbm", &n2rb_fops) < NOERR) { -+ printk(KERN_DEBUG "Power Button Major %d not available\n", N2PB_MAJOR); -+ return -EBUSY; -+ } -+ else { -+ class_device_create(n2lm_class, MKDEV(N2PB_MAJOR, 0), NULL, "pbuttons"); -+ } -+ if (register_chrdev(N2LM_MAJOR, "n2_ledm", &n2lm_fops) < NOERR) { -+ printk(KERN_DEBUG "Led Manager Major %d not available\n", N2LM_MAJOR); -+ return -EBUSY; -+ } -+ else { -+ class_device_create(n2lm_class, MKDEV(N2LM_MAJOR, 0), NULL, "leds"); -+ } -+ if (register_chrdev(N2BZ_MAJOR, "n2_bzm", &n2bz_fops) < NOERR) { -+ printk(KERN_DEBUG "Buzzer Major %d not available\n", N2BZ_MAJOR); -+ return -EBUSY; -+ } -+ else { -+ class_device_create(n2lm_class, MKDEV(N2BZ_MAJOR, 0), NULL, "buzzer"); -+ } -+ -+ if (request_irq(N2RB_IRQ, &n2rb_handler, SA_INTERRUPT, "n2_rb", NULL) < NOERR) { -+ printk(KERN_DEBUG "Reset Button IRQ %d not available\n", N2RB_IRQ); -+ return -EIO; -+ } -+ if (request_irq(N2PB_IRQ, &n2pb_handler, SA_INTERRUPT, "n2_pb", NULL) < NOERR) { -+ printk(KERN_DEBUG "Power Button IRQ %d not available\n", N2PB_IRQ); -+ return -EIO; -+ } -+ -+ enable_irq(N2PB_IRQ); -+ enable_irq(N2RB_IRQ); -+ return (NOERR); -+} -+ -+//================================================================================================== -+ -+static void __exit n2iom_exit(void) -+{ -+ remove_proc_entry(PWR_OFF_STR, NULL); -+ del_timer(&n2rb_timer); -+ free_irq(N2RB_IRQ,NULL); -+ unregister_chrdev(N2PB_MAJOR, "n2pb"); -+ class_device_destroy(n2lm_class, MKDEV(N2PB_MAJOR, 0)); -+ del_timer(&n2pb_timer); -+ free_irq(N2PB_IRQ, NULL); -+ unregister_chrdev(N2RB_MAJOR, "n2rb" ); -+ class_device_destroy(n2lm_class, MKDEV(N2RB_MAJOR, 0)); -+ del_timer(&n2lm_rsg_timer); -+ del_timer(&n2lm_rsr_timer); -+ del_timer(&n2lm_d1_timer); -+ del_timer(&n2lm_d2_timer); -+ unregister_chrdev(N2LM_MAJOR, "n2lm" ); -+ class_device_destroy(n2lm_class, MKDEV(N2LM_MAJOR, 0)); -+ unregister_chrdev(N2BZ_MAJOR, "n2bz"); -+ class_device_destroy(n2lm_class, MKDEV(N2BZ_MAJOR, 0)); -+ class_destroy(n2lm_class); -+} -+ -+module_init (n2iom_init); -+module_exit (n2iom_exit); -+ -+MODULE_AUTHOR("Karen Spearel <kas11@tampabay.rr.com>"); -+MODULE_DESCRIPTION("OpenN2 Buttons/LEDs IO Driver"); -+MODULE_LICENSE("GPL"); -+static int debug = 7; -+module_param(debug, int, 0644); -+MODULE_PARM_DESC(debug, "Debugging enabled = 8"); -+ -diff -urN linux-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-part.c nslu2-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-part.c ---- linux-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-part.c 1970-01-01 01:00:00.000000000 +0100 -+++ nslu2-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-part.c 2005-09-16 22:44:38.000000000 +0200 -@@ -0,0 +1,120 @@ -+/* -+ * nslu2-part.c -+ * -+ * Maintainers: http://www.nslu2-linux.org/ -+ * Initial port: Mark Rakes <mrakes AT mac.com> -+ * -+ * "Parse" the fixed partition table of the Linksys NSLU2 and -+ * produce a Linux partition array to match. -+ */ -+ -+#include <linux/kernel.h> -+#include <linux/slab.h> -+#include <linux/init.h> -+#include <linux/vmalloc.h> -+#include <linux/mtd/mtd.h> -+#include <linux/mtd/partitions.h> -+ -+/* info we know about the NSLU2's flash setup: -+ * -+ * Num Partition offset size -+ * --- --------- ---------- ----------- -+ * 0 RedBoot 0x00000000 0x00040000 -+ * 1 System Configuration 0x00040000 0x00020000 -+ * 2 Kernel 0x00060000 0x00100000 -+ * 3 Ramdisk 0x00160000 0x006a0000 -+ */ -+ #define NSLU2_NUM_FLASH_PARTITIONS 4 -+ #define NSLU2_FLASH_PART0_NAME "RedBoot" -+ #define NSLU2_FLASH_PART0_OFFSET 0x00000000 -+ #define NSLU2_FLASH_PART0_SIZE 0x00040000 -+ #define NSLU2_FLASH_PART1_NAME "System Configuration" -+ #define NSLU2_FLASH_PART1_OFFSET (NSLU2_FLASH_PART0_OFFSET + NSLU2_FLASH_PART0_SIZE) -+ #define NSLU2_FLASH_PART1_SIZE 0x00020000 -+ #define NSLU2_FLASH_PART2_NAME "Kernel" -+ #define NSLU2_FLASH_PART2_OFFSET (NSLU2_FLASH_PART1_OFFSET + NSLU2_FLASH_PART1_SIZE) -+ #define NSLU2_FLASH_PART2_SIZE 0x00100000 -+ #define NSLU2_FLASH_PART3_NAME "Ramdisk" -+ #define NSLU2_FLASH_PART3_OFFSET (NSLU2_FLASH_PART2_OFFSET + NSLU2_FLASH_PART2_SIZE) -+ #define NSLU2_FLASH_PART3_SIZE 0x006a0000 -+ -+static int parse_nslu2_partitions(struct mtd_info *master, -+ struct mtd_partition **pparts, -+ unsigned long flash_start) -+{ -+ struct mtd_partition *parts; -+ int ret = 0, namelen = 0; -+ char *names; -+ -+ namelen = strlen(NSLU2_FLASH_PART0_NAME) + -+ strlen(NSLU2_FLASH_PART1_NAME) + -+ strlen(NSLU2_FLASH_PART2_NAME) + -+ strlen(NSLU2_FLASH_PART3_NAME) + -+ NSLU2_NUM_FLASH_PARTITIONS; /*4 strings + each terminator */ -+ -+ parts = kmalloc(sizeof(*parts)*NSLU2_NUM_FLASH_PARTITIONS + namelen, GFP_KERNEL); -+ if (!parts) { -+ ret = -ENOMEM; -+ goto out; -+ } -+ -+ memset(parts, 0, sizeof(*parts)*NSLU2_NUM_FLASH_PARTITIONS + namelen); -+ names = (char *)&parts[NSLU2_NUM_FLASH_PARTITIONS]; -+ -+ /* RedBoot partition */ -+ parts[0].size = NSLU2_FLASH_PART0_SIZE; -+ parts[0].offset = NSLU2_FLASH_PART0_OFFSET; -+ parts[0].name = NSLU2_FLASH_PART0_NAME; -+ parts[0].mask_flags = MTD_WRITEABLE; /* readonly */ -+ strcpy(names, NSLU2_FLASH_PART0_NAME); -+ names += strlen(names)+1; -+ /* System Configuration */ -+ parts[1].size = NSLU2_FLASH_PART1_SIZE; -+ parts[1].offset = NSLU2_FLASH_PART1_OFFSET; -+ parts[1].name = NSLU2_FLASH_PART1_NAME; -+ parts[1].mask_flags = MTD_WRITEABLE; /* readonly */ -+ strcpy(names, NSLU2_FLASH_PART1_NAME); -+ names += strlen(names)+1; -+ /* Kernel */ -+ parts[2].size = NSLU2_FLASH_PART2_SIZE; -+ parts[2].offset = NSLU2_FLASH_PART2_OFFSET; -+ parts[2].name = NSLU2_FLASH_PART2_NAME; -+ parts[2].mask_flags = MTD_WRITEABLE; /* readonly */ -+ strcpy(names, NSLU2_FLASH_PART2_NAME); -+ names += strlen(names)+1; -+ /* Ramdisk */ -+ parts[3].size = NSLU2_FLASH_PART3_SIZE; -+ parts[3].offset = NSLU2_FLASH_PART3_OFFSET; -+ parts[3].name = NSLU2_FLASH_PART3_NAME; -+ parts[3].mask_flags = MTD_WRITEABLE; /* readonly */ -+ strcpy(names, NSLU2_FLASH_PART3_NAME); -+ names += strlen(names)+1; -+ -+ ret = NSLU2_NUM_FLASH_PARTITIONS; -+ *pparts = parts; -+ out: -+ return ret; -+} -+ -+static struct mtd_part_parser nslu2_parser = { -+ .owner = THIS_MODULE, -+ .parse_fn = parse_nslu2_partitions, -+ .name = "NSLU2", -+}; -+ -+static int __init nslu2_parser_init(void) -+{ -+ return register_mtd_parser(&nslu2_parser); -+} -+ -+static void __exit nslu2_parser_exit(void) -+{ -+ deregister_mtd_parser(&nslu2_parser); -+} -+ -+module_init(nslu2_parser_init); -+module_exit(nslu2_parser_exit); -+ -+MODULE_LICENSE("GPL"); -+MODULE_AUTHOR("Mark Rakes"); -+MODULE_DESCRIPTION("Parsing code for NSLU2 flash tables"); -diff -urN linux-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-pci.c nslu2-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-pci.c ---- linux-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-pci.c 1970-01-01 01:00:00.000000000 +0100 -+++ nslu2-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-pci.c 2005-09-16 22:43:54.000000000 +0200 -@@ -0,0 +1,87 @@ -+/* -+ * arch/arm/mach-ixp4xx/nslu2-pci.c -+ * -+ * NSLU2 board-level PCI initialization -+ * -+ * based on ixdp425-pci.c: -+ * Copyright (C) 2002 Intel Corporation. -+ * Copyright (C) 2003-2004 MontaVista Software, Inc. -+ * -+ * Maintainer: http://www.nslu2-linux.org/ -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ * -+ */ -+// GPIO 8 is used as the power input so is not free for use as a PCI IRQ -+// However, all the common PCI setup code presumes the standard 4 PCI -+// interrupts are available. So we compromise...we don't enable the -+// IRQ on Pin 8 but we let -+ -+#include <linux/config.h> -+#include <linux/pci.h> -+#include <linux/init.h> -+#include <linux/delay.h> -+ -+#include <asm/mach/pci.h> -+#include <asm/irq.h> -+#include <asm/hardware.h> -+#include <asm/mach-types.h> -+ -+void __init nslu2_pci_preinit(void) -+{ -+ gpio_line_config(NSLU2_PCI_INTA_PIN, -+ IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); -+ gpio_line_config(NSLU2_PCI_INTB_PIN, -+ IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); -+ gpio_line_config(NSLU2_PCI_INTC_PIN, -+ IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); -+// gpio_line_config(NSLU2_PCI_INTD_PIN, -+// IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); -+ -+ gpio_line_isr_clear(NSLU2_PCI_INTA_PIN); -+ gpio_line_isr_clear(NSLU2_PCI_INTB_PIN); -+ gpio_line_isr_clear(NSLU2_PCI_INTC_PIN); -+// gpio_line_isr_clear(NSLU2_PCI_INTD_PIN); -+ -+ ixp4xx_pci_preinit(); -+} -+ -+static int __init nslu2_map_irq(struct pci_dev *dev, u8 slot, u8 pin) -+{ -+ static int pci_irq_table[NSLU2_PCI_IRQ_LINES] = { -+ IRQ_NSLU2_PCI_INTA, -+ IRQ_NSLU2_PCI_INTB, -+ IRQ_NSLU2_PCI_INTC, -+// IRQ_NSLU2_PCI_INTD -+ }; -+ -+ int irq = -1; -+ -+ if (slot >= 1 && slot <= NSLU2_PCI_MAX_DEV && -+ pin >= 1 && pin <= NSLU2_PCI_IRQ_LINES) { -+ irq = pci_irq_table[(slot + pin - 2) % 3]; // ! % 4 kas11 -+ } -+ -+ return irq; -+} -+ -+struct hw_pci __initdata nslu2_pci = { -+ .nr_controllers = 1, -+ .preinit = nslu2_pci_preinit, -+ .swizzle = pci_std_swizzle, -+ .setup = ixp4xx_setup, -+ .scan = ixp4xx_scan_bus, -+ .map_irq = nslu2_map_irq, -+}; -+ -+int __init nslu2_pci_init(void) //monkey see, monkey do -+{ -+ if (machine_is_nslu2()) -+ pci_common_init(&nslu2_pci); -+ return 0; -+} -+ -+subsys_initcall(nslu2_pci_init); -+ -diff -urN linux-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-setup.c nslu2-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-setup.c ---- linux-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-setup.c 1970-01-01 01:00:00.000000000 +0100 -+++ nslu2-2.6.13.1/arch/arm/mach-ixp4xx/nslu2-setup.c 2005-09-17 00:02:40.000000000 +0200 -@@ -0,0 +1,147 @@ -+/* -+ * arch/arm/mach-ixp4xx/nslu2-setup.c -+ * -+ * NSLU2 board-setup -+ * -+ * based ixdp425-setup.c: -+ * Copyright (C) 2003-2004 MontaVista Software, Inc. -+ * -+ * Author: Mark Rakes <mrakes at mac.com> -+ * Maintainers: http://www.nslu2-linux.org/ -+ * -+ * Fixed missing init_time in MACHINE_START kas11 10/22/04 -+ * Changed to conform to new style __init ixdp425 kas11 10/22/04 -+ */ -+ -+#include <linux/kernel.h> -+#include <linux/init.h> -+#include <linux/device.h> -+#include <linux/serial.h> -+#include <linux/tty.h> -+#include <linux/serial_8250.h> -+ -+#include <asm/types.h> -+#include <asm/setup.h> -+#include <asm/memory.h> -+#include <asm/hardware.h> -+#include <asm/mach-types.h> -+#include <asm/irq.h> -+#include <asm/mach/arch.h> -+#include <asm/mach/flash.h> -+ -+void __init nslu2_map_io(void) -+{ -+ ixp4xx_map_io(); -+} -+ -+static struct flash_platform_data nslu2_flash_data = { -+ .map_name = "cfi_probe", -+ .width = 2, -+}; -+ -+static struct resource nslu2_flash_resource = { -+ .start = NSLU2_FLASH_BASE, -+ .end = NSLU2_FLASH_BASE + NSLU2_FLASH_SIZE, -+ .flags = IORESOURCE_MEM, -+}; -+ -+static struct platform_device nslu2_flash = { -+ .name = "IXP4XX-Flash", -+ .id = 0, -+ .dev = { -+ .platform_data = &nslu2_flash_data, -+ }, -+ .num_resources = 1, -+ .resource = &nslu2_flash_resource, -+}; -+ -+static struct ixp4xx_i2c_pins nslu2_i2c_gpio_pins = { -+ .sda_pin = NSLU2_SDA_PIN, -+ .scl_pin = NSLU2_SCL_PIN, -+}; -+ -+static struct platform_device nslu2_i2c_controller = { -+ .name = "IXP4XX-I2C", -+ .id = 0, -+ .dev = { -+ .platform_data = &nslu2_i2c_gpio_pins, -+ }, -+ .num_resources = 0 -+}; -+ -+static struct resource nslu2_uart_resources[] = { -+ { -+ .start = IXP4XX_UART1_BASE_PHYS, -+ .end = IXP4XX_UART1_BASE_PHYS + 0x0fff, -+ .flags = IORESOURCE_MEM -+ }, -+ { -+ .start = IXP4XX_UART2_BASE_PHYS, -+ .end = IXP4XX_UART2_BASE_PHYS + 0x0fff, -+ .flags = IORESOURCE_MEM -+ } -+}; -+ -+static struct plat_serial8250_port nslu2_uart_data[] = { -+ { -+ .mapbase = IXP4XX_UART1_BASE_PHYS, -+ .membase = (char *)IXP4XX_UART1_BASE_VIRT + REG_OFFSET, -+ .irq = IRQ_IXP4XX_UART1, -+ .flags = UPF_BOOT_AUTOCONF, -+ .iotype = UPIO_MEM, -+ .regshift = 2, -+ .uartclk = IXP4XX_UART_XTAL, -+ }, -+ { -+ .mapbase = IXP4XX_UART2_BASE_PHYS, -+ .membase = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET, -+ .irq = IRQ_IXP4XX_UART2, -+ .flags = UPF_BOOT_AUTOCONF, -+ .iotype = UPIO_MEM, -+ .regshift = 2, -+ .uartclk = IXP4XX_UART_XTAL, -+ } -+}; -+ -+static struct platform_device nslu2_uart = { -+ .name = "serial8250", -+ .id = 0, -+ .dev.platform_data = nslu2_uart_data, -+ .num_resources = 2, -+ .resource = nslu2_uart_resources -+}; -+ -+static struct platform_device *nslu2_devices[] __initdata = { -+ &nslu2_i2c_controller, -+ &nslu2_flash, -+ &nslu2_uart -+}; -+ -+static void n2_power_off(void) -+{ -+ /* This causes the box to drop the power and go dead. */ -+#define GPIO_PO_BM 0x0100 //b0000 0001 0000 0000 -+ *IXP4XX_GPIO_GPOER &= ~GPIO_PO_BM; // enable the pwr cntl gpio -+ *IXP4XX_GPIO_GPOUTR |= GPIO_PO_BM; // do the deed -+} -+ -+static void __init nslu2_init(void) -+{ -+ ixp4xx_sys_init(); -+ -+ pm_power_off = n2_power_off; -+ platform_add_devices(nslu2_devices, ARRAY_SIZE(nslu2_devices)); -+} -+ -+MACHINE_START(NSLU2, "Linksys NSLU2") -+ /* Maintainer: www.nslu2-linux.org */ -+ .phys_ram = PHYS_OFFSET, -+ .phys_io = IXP4XX_PERIPHERAL_BASE_PHYS, -+ .io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC, -+ .boot_params = 0x00000100, -+ .map_io = nslu2_map_io, -+ .init_irq = ixp4xx_init_irq, //FIXME: all irq are off here -+ .timer = &ixp4xx_timer, -+ .init_machine = nslu2_init, -+ // INITTIME(ixp4xx_init_time) //this was missing in 2.6.7 code ...soft reboot needed? -+MACHINE_END diff --git a/packages/linux/nslu2-kernel/2.6.13/55-nslu2-rpbutton.patch b/packages/linux/nslu2-kernel/2.6.13/55-nslu2-rpbutton.patch deleted file mode 100644 index b5ce101d68..0000000000 --- a/packages/linux/nslu2-kernel/2.6.13/55-nslu2-rpbutton.patch +++ /dev/null @@ -1,139 +0,0 @@ ---- nslu2-io.c.old 2da1d3f5c0aa0804c5769588337077ddcb35c5e9 -+++ linux-2.6.12.2/arch/arm/mach-ixp4xx/nslu2-io.c e895da638b4aae16a11fafe52ae0b063645a9a12 -@@ -158,6 +158,8 @@ - #define LED_DISK2 3 - #define LED_ALL 4 - -+static int nslu2_shutdown_in_progress = 0; -+ - static unsigned long init_jiffy = 0; //jiffies at init time - static unsigned long rb_presses = 0; //number of reset button presses - static unsigned long ontime = 50; -@@ -503,40 +505,20 @@ - static irqreturn_t n2pb_handler (int irq, void *dev_id, struct pt_regs *regs) - { - void *ret; -- -- wake_up(&n2pb_waitq); -- remove_proc_entry(PWR_OFF_STR, NULL); //no parent -- n2_buzz(N2_BEEP_PITCH_MED, N2_BEEP_DUR_MED); -- ret = create_proc_entry(PWR_OFF_STR, 0, NULL); -- nslu2_io_debug((KERN_DEBUG "cpe ret = %p\n", ret)); -- --// WARNING: This is RUDE...it unconditionally pulls the power plug. --// Your data will be at risk...since this is just a test system --// I am leaving it enabled...eventually userland needs to get the --// message, do an orderly shutdown and use an ioctl or something in --// /proc/powerdowm to actually have us pull the plug. -- -- machine_power_off(); -- -+ if (!nslu2_shutdown_in_progress++) { -+ wake_up(&n2pb_waitq); -+ remove_proc_entry(PWR_OFF_STR, NULL); //no parent -+ n2_buzz(N2_BEEP_PITCH_HIGH, N2_BEEP_DUR_SHORT); // Short, high-pitched "OK" -+ ret = create_proc_entry(PWR_OFF_STR, 0, NULL); -+ nslu2_io_debug((KERN_DEBUG "Powerbutton pressed. Shutting down. cpe ret = %p\n", ret)); -+ kill_proc(1,SIGINT,1); // Signal init to shut down -+ } else { -+ n2_buzz(N2_BEEP_PITCH_LOW, N2_BEEP_DUR_MED); // Make a scary noise! -+ nslu2_io_debug((KERN_DEBUG "Powerbutton pressed while already in shutdown")); // Whine! -+ } - return IRQ_HANDLED; - } - --//================================================================================================== --// --//static void do_rb_timeout(unsigned long data) --//{ --// int i; --// --// for (i = 0; i < rb_presses; i++) --// n2_buzz(N2_BEEP_PITCH_MED,N2_BEEP_DUR_SHORT); --// return; --//} --// --//================================================================================================== --// does nothing -- waiting for userland to define --// This thing is sorta braindead...edge triggered IRQs aren't available in the drivers yet...so --// we hang in a loop until the button is no longer pressed -- - struct testr { - int ctl; - long param; -@@ -544,72 +526,11 @@ - - static irqreturn_t n2rb_handler (int irq, void *dev_id, struct pt_regs *regs) - { -+// This doesn't reset the NSLU2. It powers it off. Close enough, since reset is unreliable - -- static struct testr test[] = { -- { N2LM_ALL_OFF,0 }, -- { N2LM_ON,0 }, -- { N2LM_OFF,0 }, -- { N2LM_ON,1 }, -- { N2LM_ALL_OFF,1 }, -- { N2LM_ON,2 }, -- { N2LM_OFF,2 }, -- { N2LM_ON,3 }, -- { N2LM_OFF,3 }, -- { N2LM_BLINK,0 }, -- { N2LM_OFF,0 }, -- { N2LM_BLINK,1 }, -- { N2LM_OFF,1 }, -- { N2LM_BLINK,2 }, -- { N2LM_OFF,2 }, -- { N2LM_BLINK,3 }, -- { N2LM_OFF,3 }, -- { N2LM_ALL_OFF,0 }, -- { N2LM_ALT,1 }, -- { N2LM_OFF,1 }, -- { N2LM_ALL_ON,0 } -- }; -- -- nslu2_io_debug(("Reset Entry IRQ =%d Presses = %d Jiffies = %08lx\tIO = %x\tIOW = %x\n", irq, rb_presses, jiffies, (int)_IO('M',rb_presses), (int)_IOW('M',rb_presses,long))); -- - wake_up(&n2rb_waitq); -- while ((*IXP4XX_GPIO_GPINR & GPIO_RB_BM) == 0) -- ; //wait for button release -- -- if (rb_presses > 20) -- rb_presses = 0; -- tone = (rb_presses * 50) + 200; -- ontime = (rb_presses*10) + 100; -- offtime = 500 - (rb_presses*20); -- nslu2_io_debug(("Ontime = %d\tOfftime = %d\tTone = %d\n",ontime,offtime,tone)); -- rb_presses++; -- -- n2bz_ioctl(NULL,NULL, N2BZ_BEEPS, rb_presses); -- n2lm_ioctl(NULL,NULL, test[rb_presses].ctl, test[rb_presses].param); --// if (rb_presses == 0) { --// init_jiffy = jiffies; --// init_timer (&n2rb_timer); --// n2rb_timer.function = do_rb_timeout; --// }; --// --// if (rb_presses == 8) --// rb_presses = 0; --// if (rb_presses & 1) --// n2lm_ledon(test[rb_presses]); --// else --// n2lm_ledoff(test[rb_presses]); --// --// n2rb_timer.expires = (jiffies + RB_DELAY); --// add_timer (&n2rb_timer); --// if (rb_presses < 5) { --// if (rb_presses > 0) --// n2lm_ledoff(rb_presses); --// n2lm_ledon(++rb_presses); --// n2lm_timer_start(rb_presses); --// }; -- -- nslu2_io_debug((KERN_DEBUG "Reset Exit IRQ=%d Presses= %d Jiffies= %08lx\n", irq, rb_presses, jiffies)); -- return IRQ_HANDLED; -- -+ machine_power_off(); -+ return IRQ_HANDLED; // So we don't get a nobody cared error :-P - } - - //================================================================================================== diff --git a/packages/linux/nslu2-kernel/2.6.13/70-xscale-reset.patch b/packages/linux/nslu2-kernel/2.6.13/70-xscale-reset.patch deleted file mode 100644 index 4e68456e20..0000000000 --- a/packages/linux/nslu2-kernel/2.6.13/70-xscale-reset.patch +++ /dev/null @@ -1,155 +0,0 @@ ---- linux-2.6.11.2/arch/arm/mm/proc-xscale.S 2005-03-09 00:12:44.000000000 -0800 -+++ linux-2.6.11.2/arch/arm/mm/proc-xscale.S 2005-06-18 15:39:22.701222319 -0700 -@@ -137,23 +137,129 @@ - * same state as it would be if it had been reset, and branch - * to what would be the reset vector. - * -+ * This code is ixp425 specific with respect to the reset of -+ * the 'configuration register' - to be found at address -+ * 0xC40000020 'IXP425_EXP_CNFGO' -+ * - * loc: location to jump to for soft reset - */ - .align 5 - ENTRY(cpu_xscale_reset) -+ @ always branch to 0 -+ mov r0, #0 -+ -+ @ disable both FIQ and IRQ, put us into 32 bit -+ @ SVC mode (no thumb). - mov r1, #PSR_F_BIT|PSR_I_BIT|SVC_MODE - msr cpsr_c, r1 @ reset CPSR -- mrc p15, 0, r1, c1, c0, 0 @ ctrl register -- bic r1, r1, #0x0086 @ ........B....CA. -- bic r1, r1, #0x3900 @ ..VIZ..S........ -- mcr p15, 0, r1, c1, c0, 0 @ ctrl register -- mcr p15, 0, ip, c7, c7, 0 @ invalidate I,D caches & BTB -- bic r1, r1, #0x0001 @ ...............M -- mcr p15, 0, r1, c1, c0, 0 @ ctrl register -- @ CAUTION: MMU turned off from this point. We count on the pipeline -- @ already containing those two last instructions to survive. -+ -+ @ disable debug, clock and power registers are -+ @ unimplemented. -+ mcr p14, 0, r0, c10, c0, 0 @ disable debug -+ -+ @ disable the performance monitor -+ mcr p14, 0, r0, c0, c1, 0 @ PMNC (ctrl reg) -+ mcr p14, 0, r0, c4, c1, 0 @ INTEN (intrpt enable) -+ -+ @ wait for p14 to complete -+ mrc p14, 0, ip, c4, c1, 0 @ arbitrary read -+ mov ip, ip @ sync -+ -+ @ clear the PID register -+ mcr p15, 0, r0, c13, c0, 0 @ OR nothing with address! -+ -+ @ unlock the TLBs and the I/D cache locks -+ mcr p15, 0, r0, c10, c8, 1 @ data TLB unlocked -+ mcr p15, 0, r0, c10, c4, 1 @ instruction TLB unlocked -+ mcr p15, 0, r0, c9, c2, 1 @ unlock data cache -+ mcr p15, 0, r0, c9, c1, 1 @ unlock instruction cache -+ -+ @ zap the minidata cache to write through with write coalescing -+ @ disabled. -+ mov r1, #0x21 @ MD=b10, K=1 -+ mcr p15, 0, r0, c7, c10, 4 @ drain write buffer -+ mrc p15, 0, ip, c1, c0, 0 @ read of ctrl register -+ mov ip, ip @ sync -+ mcr p15, 0, r1, c1, c0, 1 @ write through, no coalesc -+ -+ @ set the control register, the MMU is enabled but everything else -+ @ is disabled at this point, r1 contains the control register flags -+ @ the process is now in little-endian mode (no matter, we aren't -+ @ going to do any <word access) -+ mov r1, #0x79 @ 00vIz0rs.b1111caM -+ orr r1, r1, #0x1000 @ I-cache enable -+ mcr p15, 0, r1, c1, c0, 0 -+ mrc p15, 0, ip, c1, c0, 0 -+ mov ip, ip @ sync to coproc -+ mov r1, #0x78 @ 00viz0rs.b1111cam -+ -+ @ and flush the I/D cache and BTB -+ mcr p15, 0, r0, c7, c7, 0 -+ -+ @ that's most of the work. The only thing which remains is to -+ @ remap the flash memory and disable the MMU. Do some setup -+ @ for this, also get ready to set the LED to red and put in -+ @ a watchdog timer. -+ -+ @ get ready to reset the configuration registers in the expansion -+ @ bus. CFGN1 disables byte swap and interrupt. -+ ldr r3, =IXP4XX_PERIPHERAL_BASE_VIRT -+ ldr r4, [r3, #IXP4XX_EXP_CFG1_OFFSET] -+ bic r4, r4, #0x13 @ -BYTE_SWAP_EN, -SW_INT? -+ str r4, [r3, #IXP4XX_EXP_CFG1_OFFSET] -+ -+ @ load the current configuration register from its -+ @ virtual address and set the MEM_MAP bit ready to map the -+ @ flash back to address 0, but don't write it yet. -+ ldr r4, [r3, #IXP4XX_EXP_CFG0_OFFSET] -+ orr r4, r4, #0x80000000 -+ -+ @ load the GPIO OUTR register address and current value, -+ @ set the low nibble to just red LED on. -+ ldr r5, =IXP4XX_GPIO_BASE_VIRT -+ ldr r6, [r5, #IXP4XX_GPIO_GPOUTR_OFFSET] -+ bic r6, r6, #0xf -+ orr r6, r6, #0xd -+ -+ @ load the watchdog timer virtual address, set the key and -+ @ the timer and start the down counter -+ ldr r7, =IXP4XX_TIMER_BASE_VIRT -+ ldr r8, =IXP4XX_WDT_KEY @ set key -+ str r8, [r7, #IXP4XX_OSWK_OFFSET] -+ mov r8, #0x1000000 @ about 0.25 seconds -+ str r8, [r7, #IXP4XX_OSWT_OFFSET] @ set timer -+ mov r8, #(IXP4XX_WDT_RESET_ENABLE | IXP4XX_WDT_COUNT_ENABLE) -+ str r8, [r7, #IXP4XX_OSWE_OFFSET] @ enable reset -+ -+ @ invalidate the TLBs to ensure that there isn't a match for -+ @ '0' there. - mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs -- mov pc, r0 -+ mrc p15, 0, ip, c1, c0, 0 @ read of ctrl register -+ mov ip, ip @ sync -+ -+ @ remap the flash (after preloading instructions into the -+ @ I-cache) then turn off the MMU and branch to 0 when it is -+ @ off. It seems that RedBoot relies on the page tables being -+ @ set up on boot, so set the page table head register too. -+ mov r7, #0x4000 @ flash page table -+ ldr r8, =IXP4XX_GPIO_BASE_PHYS @ for led setting -+ bic r9, r6, #0xc @ disk1+disk2 led on -+ str r6, [r5, #IXP4XX_GPIO_GPOUTR_OFFSET] @ red led -+ b cache -+ -+ @ cached instructions These 8 instructions are valid in the cache -+ @ along with the associated TLB as soon as the first is executed. -+ @ They are used to effect the transition back into the flash -+ @ ROM code. -+ .align 5 -+cache: str r4, [r3, #IXP4XX_EXP_CFG0_OFFSET] @0 no memory! -+ mcr p15, 0, r7, c2, c0, 0 @1 set translation table base -+ mcr p15, 0, r1, c1, c0, 0 @2 no MMU! -+ mrc p15, 0, ip, c2, c0, 0 @3 arbitrary read of cp15 -+ str r9, [r8, #IXP4XX_GPIO_GPOUTR_OFFSET] @4 red+disk1+disk2 led -+ sub pc, r0, ip, LSR #32 @5 sync and branch to zero -+ nop @6 -+ nop @7 - - /* - * cpu_xscale_do_idle() -@@ -168,8 +274,10 @@ - .align 5 - - ENTRY(cpu_xscale_do_idle) -- mov r0, #1 -- mcr p14, 0, r0, c7, c0, 0 @ Go to IDLE -+ @ NSLU2/ixp420: not implemented in the hardware, docs -+ @ say do not write! -+ @mov r0, #1 -+ @mcr p14, 0, r0, c7, c0, 0 @ Go to IDLE - mov pc, lr - - /* ================================= CACHE ================================ */ diff --git a/packages/linux/nslu2-kernel/2.6.13/90-little-endian.patch b/packages/linux/nslu2-kernel/2.6.13/90-little-endian.patch deleted file mode 100644 index 1fc432b5db..0000000000 --- a/packages/linux/nslu2-kernel/2.6.13/90-little-endian.patch +++ /dev/null @@ -1,148 +0,0 @@ -diff -urpN linux-2.6.11.12/arch/arm/boot/compressed/Makefile linux-2.6.11.12-le2/arch/arm/boot/compressed/Makefile ---- linux-2.6.11.12/arch/arm/boot/compressed/Makefile 2005-06-12 04:45:37.000000000 +0200 -+++ linux-2.6.11.12-le2/arch/arm/boot/compressed/Makefile 2005-07-17 12:13:55.000000000 +0200 -@@ -56,6 +56,8 @@ endif - - ifeq ($(CONFIG_CPU_BIG_ENDIAN),y) - OBJS += big-endian.o -+else -+OBJS += little-endian.o - endif - - # -diff -urpN linux-2.6.11.12/arch/arm/boot/compressed/little-endian.S linux-2.6.11.12-le2/arch/arm/boot/compressed/little-endian.S ---- linux-2.6.11.12/arch/arm/boot/compressed/little-endian.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.11.12-le2/arch/arm/boot/compressed/little-endian.S 2005-07-17 12:13:55.000000000 +0200 -@@ -0,0 +1,13 @@ -+/* -+ * linux/arch/arm/boot/compressed/little-endian.S -+ * -+ * Switch CPU into little endian mode. -+ * Author: Nicolas Pitre -+ */ -+ -+ .section ".start", #alloc, #execinstr -+ -+ mrc p15, 0, r0, c1, c0, 0 @ read control reg -+ bic r0, r0, #(1 << 7) @ enable little endian mode -+ mcr p15, 0, r0, c1, c0, 0 @ write control reg -+ -diff -urpN linux-2.6.11.12/arch/arm/mach-ixp4xx/common-pci.c linux-2.6.11.12-le2/arch/arm/mach-ixp4xx/common-pci.c ---- linux-2.6.11.12/arch/arm/mach-ixp4xx/common-pci.c 2005-06-12 04:45:37.000000000 +0200 -+++ linux-2.6.11.12-le2/arch/arm/mach-ixp4xx/common-pci.c 2005-07-17 12:13:55.000000000 +0200 -@@ -427,7 +427,7 @@ void __init ixp4xx_pci_preinit(void) - #ifdef __ARMEB__ - *PCI_CSR = PCI_CSR_IC | PCI_CSR_ABE | PCI_CSR_PDS | PCI_CSR_ADS; - #else -- *PCI_CSR = PCI_CSR_IC; -+ *PCI_CSR = PCI_CSR_IC | PCI_CSR_ABE; - #endif - - pr_debug("DONE\n"); -diff -urpN linux-2.6.11.12/drivers/mtd/maps/ixp4xx.c linux-2.6.11.12-le2/drivers/mtd/maps/ixp4xx.c ---- linux-2.6.11.12/drivers/mtd/maps/ixp4xx.c 2005-07-17 12:13:05.000000000 +0200 -+++ linux-2.6.11.12-le2/drivers/mtd/maps/ixp4xx.c 2005-07-17 12:13:55.000000000 +0200 -@@ -28,12 +28,12 @@ - #include <asm/io.h> - #include <asm/mach-types.h> - #include <asm/mach/flash.h> -- -+#include <asm/byteorder.h> - #include <asm/unaligned.h> - - #include <linux/reboot.h> - --#ifndef __ARMEB__ -+#if !defined(__ARMEB__) && !defined(CONFIG_ARCH_NSLU2) - #define BYTE0(h) ((h) & 0xFF) - #define BYTE1(h) (((h) >> 8) & 0xFF) - #else -@@ -44,6 +44,10 @@ - static map_word ixp4xx_read16(struct map_info *map, unsigned long ofs) - { - map_word val; -+ -+#ifndef __ARMEB__ -+ ofs ^= 2; -+#endif - val.x[0] = *(__u16 *) (map->map_priv_1 + ofs); - return val; - } -@@ -53,6 +57,21 @@ static map_word ixp4xx_read16(struct map - * when attached to a 16-bit wide device (such as the 28F128J3A), - * so we can't just memcpy_fromio(). - */ -+ -+#if !defined(__ARMEB__) && defined(CONFIG_MTD_REDBOOT_PARTS) -+struct fis_image_desc { -+ unsigned char name[16]; // Null terminated name -+ unsigned long flash_base; // Address within FLASH of image -+ unsigned long mem_base; // Address in memory where it executes -+ unsigned long size; // Length of image -+ unsigned long entry_point; // Execution entry point -+ unsigned long data_length; // Length of actual data -+ unsigned char _pad[256-(16+7*sizeof(unsigned long))]; -+ unsigned long desc_cksum; // Checksum over image descriptor -+ unsigned long file_cksum; // Checksum over image data -+}; -+#endif -+ - static void ixp4xx_copy_from(struct map_info *map, void *to, - unsigned long from, ssize_t len) - { -@@ -62,13 +81,34 @@ static void ixp4xx_copy_from(struct map_ - u16 data; - - for (i = 0; i < (len / 2); i++) { -- data = get_unaligned((u16*)(src + i)); -+ int j = i; -+#ifndef __ARMEB__ -+ j ^= 1; -+#endif -+ data = get_unaligned((u16*)(src + j)); - dest[i * 2] = BYTE0(data); - dest[i * 2 + 1] = BYTE1(data); - } - -+#ifndef __ARMEB__ -+ i ^= 1; -+#endif -+ - if (len & 1) - dest[len - 1] = BYTE0(get_unaligned((u16*)(src + i))); -+ -+ /* Hack: Last sector contains RedBoot FIS table in big-endian format. -+ Convert into little endian format so we can use RedBoot parser */ -+#if !defined(__ARMEB__) && defined(CONFIG_MTD_REDBOOT_PARTS) -+ if (from == 0x7e0000) { -+ struct fis_image_desc *desc = (struct fis_image_desc *)to; -+ for (i=0; i < (len/sizeof(struct fis_image_desc)); i++) { -+ desc[i].flash_base = be32_to_cpu(desc[i].flash_base); -+ desc[i].mem_base = be32_to_cpu(desc[i].mem_base); -+ desc[i].size = be32_to_cpu(desc[i].size); -+ } -+ } -+#endif - } - - /* -@@ -77,6 +117,9 @@ static void ixp4xx_copy_from(struct map_ - */ - static void ixp4xx_probe_write16(struct map_info *map, map_word d, unsigned long adr) - { -+#ifndef __ARMEB__ -+ adr ^= 2; -+#endif - if (!(adr & 1)) - *(__u16 *) (map->map_priv_1 + adr) = d.x[0]; - } -@@ -86,6 +129,9 @@ static void ixp4xx_probe_write16(struct - */ - static void ixp4xx_write16(struct map_info *map, map_word d, unsigned long adr) - { -+#ifndef __ARMEB__ -+ adr ^= 2; -+#endif - *(__u16 *) (map->map_priv_1 + adr) = d.x[0]; - } - diff --git a/packages/linux/nslu2-kernel/2.6.13/95-nslu2-defconfig.patch b/packages/linux/nslu2-kernel/2.6.13/95-nslu2-defconfig.patch deleted file mode 100644 index f86830d82b..0000000000 --- a/packages/linux/nslu2-kernel/2.6.13/95-nslu2-defconfig.patch +++ /dev/null @@ -1,1442 +0,0 @@ -diff -urN linux-2.6.13.1/arch/arm/configs/nslu2_defconfig nslu2-2.6.13.1/arch/arm/configs/nslu2_defconfig ---- linux-2.6.13.1/arch/arm/configs/nslu2_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ nslu2-2.6.13.1/arch/arm/configs/nslu2_defconfig 2005-09-17 16:45:43.000000000 +0200 -@@ -0,0 +1,1438 @@ -+# -+# Automatically generated make config: don't edit -+# Linux kernel version: 2.6.13.1 -+# Sat Sep 17 16:45:18 2005 -+# -+CONFIG_ARM=y -+CONFIG_MMU=y -+CONFIG_UID16=y -+CONFIG_RWSEM_GENERIC_SPINLOCK=y -+CONFIG_GENERIC_CALIBRATE_DELAY=y -+ -+# -+# Code maturity level options -+# -+CONFIG_EXPERIMENTAL=y -+CONFIG_CLEAN_COMPILE=y -+CONFIG_BROKEN_ON_SMP=y -+CONFIG_INIT_ENV_ARG_LIMIT=32 -+ -+# -+# General setup -+# -+CONFIG_LOCALVERSION="" -+CONFIG_SWAP=y -+CONFIG_SYSVIPC=y -+# CONFIG_POSIX_MQUEUE is not set -+CONFIG_BSD_PROCESS_ACCT=y -+# CONFIG_BSD_PROCESS_ACCT_V3 is not set -+CONFIG_SYSCTL=y -+# CONFIG_AUDIT is not set -+CONFIG_HOTPLUG=y -+CONFIG_KOBJECT_UEVENT=y -+# CONFIG_IKCONFIG is not set -+CONFIG_EMBEDDED=y -+# CONFIG_KALLSYMS is not set -+CONFIG_PRINTK=y -+CONFIG_BUG=y -+CONFIG_BASE_FULL=y -+CONFIG_FUTEX=y -+CONFIG_EPOLL=y -+CONFIG_CC_OPTIMIZE_FOR_SIZE=y -+CONFIG_SHMEM=y -+CONFIG_CC_ALIGN_FUNCTIONS=0 -+CONFIG_CC_ALIGN_LABELS=0 -+CONFIG_CC_ALIGN_LOOPS=0 -+CONFIG_CC_ALIGN_JUMPS=0 -+# CONFIG_TINY_SHMEM is not set -+CONFIG_BASE_SMALL=0 -+ -+# -+# Loadable module support -+# -+CONFIG_MODULES=y -+CONFIG_MODULE_UNLOAD=y -+# CONFIG_MODULE_FORCE_UNLOAD is not set -+CONFIG_OBSOLETE_MODPARM=y -+# CONFIG_MODVERSIONS is not set -+# CONFIG_MODULE_SRCVERSION_ALL is not set -+CONFIG_KMOD=y -+ -+# -+# System Type -+# -+# CONFIG_ARCH_CLPS7500 is not set -+# CONFIG_ARCH_CLPS711X is not set -+# CONFIG_ARCH_CO285 is not set -+# CONFIG_ARCH_EBSA110 is not set -+# CONFIG_ARCH_CAMELOT is not set -+# CONFIG_ARCH_FOOTBRIDGE is not set -+# CONFIG_ARCH_INTEGRATOR is not set -+# CONFIG_ARCH_IOP3XX is not set -+CONFIG_ARCH_IXP4XX=y -+# CONFIG_ARCH_IXP2000 is not set -+# CONFIG_ARCH_L7200 is not set -+# CONFIG_ARCH_PXA is not set -+# CONFIG_ARCH_RPC is not set -+# CONFIG_ARCH_SA1100 is not set -+# CONFIG_ARCH_S3C2410 is not set -+# CONFIG_ARCH_SHARK is not set -+# CONFIG_ARCH_LH7A40X is not set -+# CONFIG_ARCH_OMAP is not set -+# CONFIG_ARCH_VERSATILE is not set -+# CONFIG_ARCH_IMX is not set -+# CONFIG_ARCH_H720X is not set -+# CONFIG_ARCH_AAEC2000 is not set -+CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y -+ -+# -+# Intel IXP4xx Implementation Options -+# -+ -+# -+# IXP4xx Platforms -+# -+# CONFIG_ARCH_AVILA is not set -+# CONFIG_ARCH_ADI_COYOTE is not set -+# CONFIG_ARCH_IXDP425 is not set -+# CONFIG_MACH_IXDPG425 is not set -+# CONFIG_MACH_IXDP465 is not set -+CONFIG_ARCH_NSLU2=y -+# CONFIG_ARCH_PRPMC1100 is not set -+# CONFIG_MACH_GTWX5715 is not set -+ -+# -+# IXP4xx Options -+# -+CONFIG_IXP4XX_INDIRECT_PCI=y -+ -+# -+# Processor Type -+# -+CONFIG_CPU_32=y -+CONFIG_CPU_XSCALE=y -+CONFIG_CPU_32v5=y -+CONFIG_CPU_ABRT_EV5T=y -+CONFIG_CPU_CACHE_VIVT=y -+CONFIG_CPU_TLB_V4WBI=y -+ -+# -+# Processor Features -+# -+# CONFIG_ARM_THUMB is not set -+CONFIG_CPU_BIG_ENDIAN=y -+CONFIG_XSCALE_PMU=y -+CONFIG_DMABOUNCE=y -+ -+# -+# Bus support -+# -+CONFIG_ISA_DMA_API=y -+CONFIG_PCI=y -+CONFIG_PCI_LEGACY_PROC=y -+# CONFIG_PCI_NAMES is not set -+# CONFIG_PCI_DEBUG is not set -+ -+# -+# PCCARD (PCMCIA/CardBus) support -+# -+# CONFIG_PCCARD is not set -+ -+# -+# Kernel Features -+# -+# CONFIG_PREEMPT is not set -+# CONFIG_NO_IDLE_HZ is not set -+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set -+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_ALIGNMENT_TRAP=y -+ -+# -+# Boot options -+# -+CONFIG_ZBOOT_ROM_TEXT=0x0 -+CONFIG_ZBOOT_ROM_BSS=0x0 -+CONFIG_CMDLINE="root=/dev/sda2 ro rootdelay=10 rootfstype=ext2 noinitrd noirqdebug mem=32M@0x00000000 console=ttyS0,115200n8" -+# CONFIG_XIP_KERNEL is not set -+ -+# -+# Floating point emulation -+# -+ -+# -+# At least one emulation must be selected -+# -+CONFIG_FPE_NWFPE=y -+# CONFIG_FPE_FASTFPE is not set -+ -+# -+# Userspace binary formats -+# -+CONFIG_BINFMT_ELF=y -+# CONFIG_BINFMT_AOUT is not set -+# CONFIG_BINFMT_MISC is not set -+# CONFIG_ARTHUR is not set -+ -+# -+# Power management options -+# -+CONFIG_PM=y -+CONFIG_APM=y -+ -+# -+# Networking -+# -+CONFIG_NET=y -+ -+# -+# Networking options -+# -+CONFIG_PACKET=m -+CONFIG_PACKET_MMAP=y -+CONFIG_UNIX=y -+CONFIG_XFRM=y -+# CONFIG_XFRM_USER is not set -+# CONFIG_NET_KEY is not set -+CONFIG_INET=y -+# CONFIG_IP_MULTICAST is not set -+# CONFIG_IP_ADVANCED_ROUTER is not set -+CONFIG_IP_FIB_HASH=y -+CONFIG_IP_PNP=y -+CONFIG_IP_PNP_DHCP=y -+CONFIG_IP_PNP_BOOTP=y -+# CONFIG_IP_PNP_RARP is not set -+CONFIG_NET_IPIP=m -+CONFIG_NET_IPGRE=m -+# CONFIG_ARPD is not set -+CONFIG_SYN_COOKIES=y -+# CONFIG_INET_AH is not set -+# CONFIG_INET_ESP is not set -+# CONFIG_INET_IPCOMP is not set -+CONFIG_INET_TUNNEL=m -+CONFIG_IP_TCPDIAG=y -+# CONFIG_IP_TCPDIAG_IPV6 is not set -+# CONFIG_TCP_CONG_ADVANCED is not set -+CONFIG_TCP_CONG_BIC=y -+ -+# -+# IP: Virtual Server Configuration -+# -+CONFIG_IP_VS=m -+CONFIG_IP_VS_DEBUG=y -+CONFIG_IP_VS_TAB_BITS=12 -+ -+# -+# IPVS transport protocol load balancing support -+# -+# CONFIG_IP_VS_PROTO_TCP is not set -+# CONFIG_IP_VS_PROTO_UDP is not set -+# CONFIG_IP_VS_PROTO_ESP is not set -+# CONFIG_IP_VS_PROTO_AH is not set -+ -+# -+# IPVS scheduler -+# -+CONFIG_IP_VS_RR=m -+CONFIG_IP_VS_WRR=m -+CONFIG_IP_VS_LC=m -+CONFIG_IP_VS_WLC=m -+CONFIG_IP_VS_LBLC=m -+CONFIG_IP_VS_LBLCR=m -+CONFIG_IP_VS_DH=m -+CONFIG_IP_VS_SH=m -+# CONFIG_IP_VS_SED is not set -+# CONFIG_IP_VS_NQ is not set -+ -+# -+# IPVS application helper -+# -+# CONFIG_IPV6 is not set -+CONFIG_NETFILTER=y -+# CONFIG_NETFILTER_DEBUG is not set -+CONFIG_BRIDGE_NETFILTER=y -+ -+# -+# IP: Netfilter Configuration -+# -+# CONFIG_IP_NF_CONNTRACK is not set -+# CONFIG_IP_NF_CONNTRACK_MARK is not set -+# CONFIG_IP_NF_QUEUE is not set -+# CONFIG_IP_NF_IPTABLES is not set -+# CONFIG_IP_NF_ARPTABLES is not set -+ -+# -+# Bridge: Netfilter Configuration -+# -+# CONFIG_BRIDGE_NF_EBTABLES is not set -+ -+# -+# SCTP Configuration (EXPERIMENTAL) -+# -+# CONFIG_IP_SCTP is not set -+# CONFIG_ATM is not set -+CONFIG_BRIDGE=m -+CONFIG_VLAN_8021Q=m -+# CONFIG_DECNET is not set -+CONFIG_LLC=m -+# CONFIG_LLC2 is not set -+CONFIG_IPX=m -+# CONFIG_IPX_INTERN is not set -+CONFIG_ATALK=m -+CONFIG_DEV_APPLETALK=y -+CONFIG_IPDDP=m -+CONFIG_IPDDP_ENCAP=y -+CONFIG_IPDDP_DECAP=y -+# CONFIG_X25 is not set -+# CONFIG_LAPB is not set -+# CONFIG_NET_DIVERT is not set -+# CONFIG_ECONET is not set -+# CONFIG_WAN_ROUTER is not set -+CONFIG_NET_SCHED=y -+CONFIG_NET_SCH_CLK_JIFFIES=y -+# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set -+# CONFIG_NET_SCH_CLK_CPU is not set -+CONFIG_NET_SCH_CBQ=m -+CONFIG_NET_SCH_HTB=m -+# CONFIG_NET_SCH_HFSC is not set -+CONFIG_NET_SCH_PRIO=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 is not set -+CONFIG_NET_SCH_INGRESS=m -+CONFIG_NET_QOS=y -+CONFIG_NET_ESTIMATOR=y -+CONFIG_NET_CLS=y -+# CONFIG_NET_CLS_BASIC is not set -+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 is not set -+# CONFIG_NET_CLS_IND is not set -+# CONFIG_CLS_U32_MARK is not set -+CONFIG_NET_CLS_RSVP=m -+CONFIG_NET_CLS_RSVP6=m -+# CONFIG_NET_EMATCH is not set -+# CONFIG_NET_CLS_ACT is not set -+CONFIG_NET_CLS_POLICE=y -+ -+# -+# Network testing -+# -+CONFIG_NET_PKTGEN=m -+# 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_HIDP is not set -+ -+# -+# Bluetooth device drivers -+# -+CONFIG_BT_HCIUSB=m -+CONFIG_BT_HCIUSB_SCO=y -+# CONFIG_BT_HCIUART is not set -+# CONFIG_BT_HCIBCM203X is not set -+# CONFIG_BT_HCIBPA10X is not set -+# CONFIG_BT_HCIBFUSB is not set -+# CONFIG_BT_HCIVHCI is not set -+ -+# -+# Device Drivers -+# -+ -+# -+# Generic Driver Options -+# -+CONFIG_STANDALONE=y -+CONFIG_PREVENT_FIRMWARE_BUILD=y -+# CONFIG_FW_LOADER is not set -+# CONFIG_DEBUG_DRIVER is not set -+ -+# -+# Memory Technology Devices (MTD) -+# -+CONFIG_MTD=y -+# CONFIG_MTD_DEBUG is not set -+CONFIG_MTD_CONCAT=y -+CONFIG_MTD_PARTITIONS=y -+CONFIG_MTD_REDBOOT_PARTS=y -+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 -+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set -+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set -+CONFIG_MTD_CMDLINE_PARTS=y -+# CONFIG_MTD_AFS_PARTS is not set -+ -+# -+# User Modules And Translation Layers -+# -+CONFIG_MTD_CHAR=y -+CONFIG_MTD_BLOCK=y -+# CONFIG_FTL is not set -+# CONFIG_NFTL is not set -+# CONFIG_INFTL 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=y -+# CONFIG_MTD_CFI_AMDSTD is not set -+# 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 -+# CONFIG_MTD_XIP is not set -+ -+# -+# Mapping drivers for chip access -+# -+CONFIG_MTD_COMPLEX_MAPPINGS=y -+# CONFIG_MTD_PHYSMAP is not set -+# CONFIG_MTD_ARM_INTEGRATOR is not set -+CONFIG_MTD_IXP4XX=y -+# CONFIG_MTD_EDB7312 is not set -+# CONFIG_MTD_PCI is not set -+# CONFIG_MTD_PLATRAM is not set -+ -+# -+# Self-contained MTD device drivers -+# -+# CONFIG_MTD_PMC551 is not set -+# CONFIG_MTD_SLRAM is not set -+# CONFIG_MTD_PHRAM is not set -+# CONFIG_MTD_MTDRAM is not set -+# CONFIG_MTD_BLKMTD 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 -+ -+# -+# NAND Flash Device Drivers -+# -+# CONFIG_MTD_NAND is not set -+ -+# -+# Parallel port support -+# -+# CONFIG_PARPORT is not set -+ -+# -+# Plug and Play support -+# -+ -+# -+# Block devices -+# -+# 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=m -+# CONFIG_BLK_DEV_CRYPTOLOOP is not set -+# 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=10240 -+CONFIG_BLK_DEV_INITRD=y -+CONFIG_INITRAMFS_SOURCE="" -+# CONFIG_CDROM_PKTCDVD is not set -+ -+# -+# IO Schedulers -+# -+CONFIG_IOSCHED_NOOP=y -+# CONFIG_IOSCHED_AS is not set -+CONFIG_IOSCHED_DEADLINE=y -+# CONFIG_IOSCHED_CFQ is not set -+# CONFIG_ATA_OVER_ETH is not set -+ -+# -+# ATA/ATAPI/MFM/RLL support -+# -+# CONFIG_IDE is not set -+ -+# -+# SCSI device support -+# -+CONFIG_SCSI=y -+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 is not set -+# 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 -+ -+# -+# SCSI Transport Attributes -+# -+# CONFIG_SCSI_SPI_ATTRS is not set -+# CONFIG_SCSI_FC_ATTRS is not set -+# CONFIG_SCSI_ISCSI_ATTRS is not set -+ -+# -+# SCSI low-level drivers -+# -+# 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_DPT_I2O is not set -+# CONFIG_MEGARAID_NEWGEN is not set -+# CONFIG_MEGARAID_LEGACY is not set -+# CONFIG_SCSI_SATA 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_SYM53C8XX_2 is not set -+# CONFIG_SCSI_IPR is not set -+# CONFIG_SCSI_QLOGIC_FC is not set -+# CONFIG_SCSI_QLOGIC_1280 is not set -+CONFIG_SCSI_QLA2XXX=y -+# CONFIG_SCSI_QLA21XX is not set -+# CONFIG_SCSI_QLA22XX is not set -+# CONFIG_SCSI_QLA2300 is not set -+# CONFIG_SCSI_QLA2322 is not set -+# CONFIG_SCSI_QLA6312 is not set -+# CONFIG_SCSI_QLA24XX is not set -+# CONFIG_SCSI_LPFC is not set -+# CONFIG_SCSI_DC395x is not set -+# CONFIG_SCSI_DC390T is not set -+# CONFIG_SCSI_NSP32 is not set -+# CONFIG_SCSI_DEBUG is not set -+ -+# -+# Multi-device support (RAID and LVM) -+# -+CONFIG_MD=y -+CONFIG_BLK_DEV_MD=m -+# CONFIG_MD_LINEAR is not set -+CONFIG_MD_RAID0=m -+CONFIG_MD_RAID1=m -+# CONFIG_MD_RAID10 is not set -+CONFIG_MD_RAID5=m -+# CONFIG_MD_RAID6 is not set -+# CONFIG_MD_MULTIPATH is not set -+# CONFIG_MD_FAULTY is not set -+# CONFIG_BLK_DEV_DM is not set -+ -+# -+# Fusion MPT device support -+# -+# CONFIG_FUSION is not set -+# CONFIG_FUSION_SPI is not set -+# CONFIG_FUSION_FC is not set -+ -+# -+# IEEE 1394 (FireWire) support -+# -+# CONFIG_IEEE1394 is not set -+ -+# -+# I2O device support -+# -+# CONFIG_I2O is not set -+ -+# -+# Network device support -+# -+CONFIG_NETDEVICES=y -+# CONFIG_DUMMY is not set -+# CONFIG_BONDING is not set -+# CONFIG_EQUALIZER is not set -+# CONFIG_TUN is not set -+ -+# -+# ARCnet devices -+# -+# CONFIG_ARCNET is not set -+ -+# -+# Ethernet (10 or 100Mbit) -+# -+CONFIG_NET_ETHERNET=y -+CONFIG_MII=y -+# CONFIG_HAPPYMEAL is not set -+# CONFIG_SUNGEM is not set -+# CONFIG_NET_VENDOR_3COM is not set -+# CONFIG_SMC91X is not set -+# CONFIG_DM9000 is not set -+ -+# -+# Tulip family network device support -+# -+# 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 is not set -+# 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 -+ -+# -+# Ethernet (1000 Mbit) -+# -+# 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_SKGE is not set -+# CONFIG_SK98LIN is not set -+# CONFIG_VIA_VELOCITY is not set -+# CONFIG_TIGON3 is not set -+# CONFIG_BNX2 is not set -+ -+# -+# Ethernet (10000 Mbit) -+# -+# CONFIG_IXGB is not set -+# CONFIG_S2IO is not set -+ -+# -+# Token Ring devices -+# -+# CONFIG_TR is not set -+ -+# -+# Wireless LAN (non-hamradio) -+# -+CONFIG_NET_RADIO=y -+ -+# -+# Obsolete Wireless cards support (pre-802.11) -+# -+# CONFIG_STRIP is not set -+ -+# -+# Wireless 802.11b ISA/PCI cards support -+# -+# CONFIG_HERMES is not set -+# CONFIG_ATMEL is not set -+ -+# -+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support -+# -+# CONFIG_PRISM54 is not set -+CONFIG_NET_WIRELESS=y -+ -+# -+# Wan interfaces -+# -+# CONFIG_WAN is not set -+# CONFIG_FDDI is not set -+# CONFIG_HIPPI is not set -+CONFIG_PPP=m -+# CONFIG_PPP_MULTILINK is not set -+CONFIG_PPP_FILTER=y -+CONFIG_PPP_ASYNC=m -+# CONFIG_PPP_SYNC_TTY is not set -+CONFIG_PPP_DEFLATE=m -+CONFIG_PPP_BSDCOMP=m -+# CONFIG_PPPOE is not set -+# CONFIG_SLIP is not set -+# 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 -+ -+# -+# ISDN subsystem -+# -+# CONFIG_ISDN is not set -+ -+# -+# Input device support -+# -+# CONFIG_INPUT 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_NR_UARTS=2 -+# CONFIG_SERIAL_8250_EXTENDED is not set -+ -+# -+# Non-8250 serial port support -+# -+CONFIG_SERIAL_CORE=y -+CONFIG_SERIAL_CORE_CONSOLE=y -+# CONFIG_SERIAL_JSM is not set -+CONFIG_UNIX98_PTYS=y -+CONFIG_LEGACY_PTYS=y -+CONFIG_LEGACY_PTY_COUNT=256 -+ -+# -+# IPMI -+# -+# CONFIG_IPMI_HANDLER is not set -+ -+# -+# Watchdog Cards -+# -+CONFIG_WATCHDOG=y -+# CONFIG_WATCHDOG_NOWAYOUT is not set -+ -+# -+# Watchdog Device Drivers -+# -+# CONFIG_SOFT_WATCHDOG is not set -+CONFIG_IXP4XX_WATCHDOG=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_NVRAM is not set -+# CONFIG_RTC is not set -+# CONFIG_DTLK is not set -+# CONFIG_R3964 is not set -+# CONFIG_APPLICOM is not set -+ -+# -+# Ftape, the floppy tape device driver -+# -+# CONFIG_DRM is not set -+# CONFIG_RAW_DRIVER is not set -+ -+# -+# TPM devices -+# -+# CONFIG_TCG_TPM is not set -+ -+# -+# I2C support -+# -+CONFIG_I2C=y -+CONFIG_I2C_CHARDEV=y -+ -+# -+# I2C Algorithms -+# -+CONFIG_I2C_ALGOBIT=y -+# 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_IOP3XX is not set -+# CONFIG_I2C_ISA is not set -+CONFIG_I2C_IXP4XX=y -+# CONFIG_I2C_NFORCE2 is not set -+# CONFIG_I2C_PARPORT_LIGHT is not set -+# CONFIG_I2C_PROSAVAGE is not set -+# CONFIG_I2C_SAVAGE4 is not set -+# CONFIG_SCx200_ACB is not set -+# CONFIG_I2C_SIS5595 is not set -+# CONFIG_I2C_SIS630 is not set -+# CONFIG_I2C_SIS96X is not set -+# CONFIG_I2C_STUB is not set -+# CONFIG_I2C_VIA is not set -+# CONFIG_I2C_VIAPRO is not set -+# CONFIG_I2C_VOODOO3 is not set -+# CONFIG_I2C_PCA_ISA is not set -+CONFIG_I2C_SENSOR=y -+ -+# -+# Miscellaneous I2C Chip support -+# -+# CONFIG_SENSORS_DS1337 is not set -+# CONFIG_SENSORS_DS1374 is not set -+CONFIG_SENSORS_EEPROM=y -+# CONFIG_SENSORS_PCF8574 is not set -+# CONFIG_SENSORS_PCA9539 is not set -+# CONFIG_SENSORS_PCF8591 is not set -+# CONFIG_SENSORS_RTC8564 is not set -+# CONFIG_SENSORS_MAX6875 is not set -+CONFIG_SENSORS_X1205=y -+# CONFIG_I2C_DEBUG_CORE is not set -+# CONFIG_I2C_DEBUG_ALGO is not set -+# CONFIG_I2C_DEBUG_BUS is not set -+# CONFIG_I2C_DEBUG_CHIP is not set -+ -+# -+# Hardware Monitoring support -+# -+# CONFIG_HWMON is not set -+ -+# -+# Misc devices -+# -+ -+# -+# Multimedia devices -+# -+CONFIG_VIDEO_DEV=m -+ -+# -+# Video For Linux -+# -+ -+# -+# Video Adapters -+# -+# CONFIG_VIDEO_BT848 is not set -+# CONFIG_VIDEO_CPIA is not set -+# CONFIG_VIDEO_SAA5246A is not set -+# CONFIG_VIDEO_SAA5249 is not set -+# CONFIG_TUNER_3036 is not set -+# CONFIG_VIDEO_STRADIS is not set -+# CONFIG_VIDEO_ZORAN is not set -+# CONFIG_VIDEO_SAA7134 is not set -+# CONFIG_VIDEO_MXB is not set -+# CONFIG_VIDEO_DPC is not set -+# CONFIG_VIDEO_HEXIUM_ORION is not set -+# CONFIG_VIDEO_HEXIUM_GEMINI is not set -+# CONFIG_VIDEO_CX88 is not set -+# CONFIG_VIDEO_OVCAMCHIP is not set -+ -+# -+# Radio Adapters -+# -+# CONFIG_RADIO_GEMTEK_PCI is not set -+# CONFIG_RADIO_MAXIRADIO is not set -+# CONFIG_RADIO_MAESTRO is not set -+ -+# -+# Digital Video Broadcasting Devices -+# -+# CONFIG_DVB is not set -+ -+# -+# Graphics support -+# -+# CONFIG_FB is not set -+ -+# -+# Sound -+# -+CONFIG_SOUND=y -+ -+# -+# Advanced Linux Sound Architecture -+# -+CONFIG_SND=y -+CONFIG_SND_TIMER=y -+CONFIG_SND_PCM=y -+CONFIG_SND_HWDEP=y -+CONFIG_SND_RAWMIDI=y -+# CONFIG_SND_SEQUENCER is not set -+CONFIG_SND_OSSEMUL=y -+CONFIG_SND_MIXER_OSS=y -+CONFIG_SND_PCM_OSS=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_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_CS46XX is not set -+# CONFIG_SND_CS4281 is not set -+# CONFIG_SND_EMU10K1 is not set -+# CONFIG_SND_EMU10K1X is not set -+# CONFIG_SND_CA0106 is not set -+# CONFIG_SND_KORG1212 is not set -+# CONFIG_SND_MIXART is not set -+# CONFIG_SND_NM256 is not set -+# CONFIG_SND_RME32 is not set -+# CONFIG_SND_RME96 is not set -+# CONFIG_SND_RME9652 is not set -+# CONFIG_SND_HDSP is not set -+# CONFIG_SND_HDSPM is not set -+# CONFIG_SND_TRIDENT is not set -+# CONFIG_SND_YMFPCI is not set -+# CONFIG_SND_ALS4000 is not set -+# CONFIG_SND_CMIPCI 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_MAESTRO3 is not set -+# CONFIG_SND_FM801 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_SONICVIBES is not set -+# CONFIG_SND_VIA82XX is not set -+# CONFIG_SND_VIA82XX_MODEM is not set -+# CONFIG_SND_VX222 is not set -+# CONFIG_SND_HDA_INTEL is not set -+ -+# -+# ALSA ARM devices -+# -+ -+# -+# USB devices -+# -+CONFIG_SND_USB_AUDIO=y -+ -+# -+# Open Sound System -+# -+# CONFIG_SOUND_PRIME is not set -+ -+# -+# USB support -+# -+CONFIG_USB_ARCH_HAS_HCD=y -+CONFIG_USB_ARCH_HAS_OHCI=y -+CONFIG_USB=y -+# CONFIG_USB_DEBUG is not set -+ -+# -+# Miscellaneous USB options -+# -+CONFIG_USB_DEVICEFS=y -+# CONFIG_USB_BANDWIDTH is not set -+# CONFIG_USB_DYNAMIC_MINORS is not set -+# CONFIG_USB_SUSPEND is not set -+# CONFIG_USB_OTG is not set -+ -+# -+# USB Host Controller Drivers -+# -+CONFIG_USB_EHCI_HCD=y -+# CONFIG_USB_EHCI_SPLIT_ISO is not set -+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -+# CONFIG_USB_ISP116X_HCD is not set -+CONFIG_USB_OHCI_HCD=y -+# CONFIG_USB_OHCI_BIG_ENDIAN is not set -+CONFIG_USB_OHCI_LITTLE_ENDIAN=y -+# CONFIG_USB_UHCI_HCD is not set -+# CONFIG_USB_SL811_HCD is not set -+ -+# -+# USB Device Class drivers -+# -+# CONFIG_USB_AUDIO is not set -+ -+# -+# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem -+# -+# CONFIG_USB_MIDI is not set -+CONFIG_USB_ACM=m -+CONFIG_USB_PRINTER=m -+ -+# -+# 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=y -+CONFIG_USB_STORAGE_FREECOM=y -+CONFIG_USB_STORAGE_DPCM=y -+CONFIG_USB_STORAGE_USBAT=y -+CONFIG_USB_STORAGE_SDDR09=y -+CONFIG_USB_STORAGE_SDDR55=y -+CONFIG_USB_STORAGE_JUMPSHOT=y -+ -+# -+# USB Input Devices -+# -+CONFIG_USB_HID=m -+ -+# -+# Input core support is needed for USB HID input layer or HIDBP support -+# -+CONFIG_USB_HIDDEV=y -+ -+# -+# USB HID Boot Protocol drivers -+# -+ -+# -+# USB Imaging devices -+# -+# CONFIG_USB_MDC800 is not set -+# CONFIG_USB_MICROTEK is not set -+ -+# -+# USB Multimedia devices -+# -+# CONFIG_USB_DABUSB is not set -+# CONFIG_USB_VICAM is not set -+# CONFIG_USB_DSBR is not set -+# CONFIG_USB_IBMCAM is not set -+# CONFIG_USB_KONICAWC is not set -+# CONFIG_USB_OV511 is not set -+# CONFIG_USB_SE401 is not set -+# CONFIG_USB_SN9C102 is not set -+# CONFIG_USB_STV680 is not set -+# CONFIG_USB_PWC is not set -+ -+# -+# USB Network Adapters -+# -+CONFIG_USB_CATC=y -+CONFIG_USB_KAWETH=m -+CONFIG_USB_PEGASUS=y -+CONFIG_USB_RTL8150=y -+CONFIG_USB_USBNET=y -+ -+# -+# USB Host-to-Host Cables -+# -+CONFIG_USB_ALI_M5632=y -+CONFIG_USB_AN2720=y -+CONFIG_USB_BELKIN=y -+CONFIG_USB_GENESYS=y -+CONFIG_USB_NET1080=y -+CONFIG_USB_PL2301=y -+CONFIG_USB_KC2190=y -+ -+# -+# Intelligent USB Devices/Gadgets -+# -+CONFIG_USB_ARMLINUX=y -+CONFIG_USB_EPSON2888=y -+CONFIG_USB_ZAURUS=y -+CONFIG_USB_CDCETHER=y -+ -+# -+# USB Network Adapters -+# -+CONFIG_USB_AX8817X=y -+# CONFIG_USB_ZD1201 is not set -+# CONFIG_USB_MON is not set -+ -+# -+# USB port drivers -+# -+ -+# -+# USB Serial Converter support -+# -+CONFIG_USB_SERIAL=m -+CONFIG_USB_SERIAL_GENERIC=y -+# CONFIG_USB_SERIAL_AIRPRIME is not set -+CONFIG_USB_SERIAL_BELKIN=m -+CONFIG_USB_SERIAL_WHITEHEAT=m -+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -+CONFIG_USB_SERIAL_CP2101=m -+CONFIG_USB_SERIAL_CYPRESS_M8=m -+CONFIG_USB_SERIAL_EMPEG=m -+CONFIG_USB_SERIAL_FTDI_SIO=m -+CONFIG_USB_SERIAL_VISOR=m -+CONFIG_USB_SERIAL_IPAQ=m -+CONFIG_USB_SERIAL_IR=m -+CONFIG_USB_SERIAL_EDGEPORT=m -+CONFIG_USB_SERIAL_EDGEPORT_TI=m -+CONFIG_USB_SERIAL_GARMIN=m -+CONFIG_USB_SERIAL_IPW=m -+CONFIG_USB_SERIAL_KEYSPAN_PDA=m -+# CONFIG_USB_SERIAL_KEYSPAN is not set -+CONFIG_USB_SERIAL_KLSI=m -+CONFIG_USB_SERIAL_KOBIL_SCT=m -+CONFIG_USB_SERIAL_MCT_U232=m -+CONFIG_USB_SERIAL_PL2303=m -+CONFIG_USB_SERIAL_HP4X=m -+# CONFIG_USB_SERIAL_SAFE is not set -+# CONFIG_USB_SERIAL_TI is not set -+CONFIG_USB_SERIAL_CYBERJACK=m -+CONFIG_USB_SERIAL_XIRCOM=m -+CONFIG_USB_SERIAL_OMNINET=m -+CONFIG_USB_EZUSB=y -+ -+# -+# USB Miscellaneous drivers -+# -+# CONFIG_USB_EMI62 is not set -+# CONFIG_USB_EMI26 is not set -+# CONFIG_USB_AUERSWALD is not set -+# CONFIG_USB_RIO500 is not set -+# CONFIG_USB_LEGOTOWER is not set -+CONFIG_USB_LCD=m -+# CONFIG_USB_LED is not set -+# CONFIG_USB_CYTHERM is not set -+# CONFIG_USB_PHIDGETKIT is not set -+# CONFIG_USB_PHIDGETSERVO is not set -+# CONFIG_USB_IDMOUSE is not set -+CONFIG_USB_SISUSBVGA=m -+# CONFIG_USB_LD is not set -+# CONFIG_USB_TEST is not set -+ -+# -+# USB DSL modem support -+# -+ -+# -+# USB Gadget Support -+# -+# CONFIG_USB_GADGET is not set -+ -+# -+# MMC/SD Card support -+# -+# CONFIG_MMC is not set -+ -+# -+# 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 is not set -+CONFIG_JBD=y -+# CONFIG_JBD_DEBUG is not set -+CONFIG_REISERFS_FS=m -+# CONFIG_REISERFS_CHECK is not set -+# CONFIG_REISERFS_PROC_INFO is not set -+# CONFIG_REISERFS_FS_XATTR is not set -+# CONFIG_JFS_FS is not set -+# CONFIG_FS_POSIX_ACL is not set -+ -+# -+# XFS support -+# -+# CONFIG_XFS_FS is not set -+# CONFIG_MINIX_FS is not set -+# CONFIG_ROMFS_FS is not set -+# CONFIG_INOTIFY is not set -+# CONFIG_QUOTA is not set -+CONFIG_DNOTIFY=y -+# CONFIG_AUTOFS_FS is not set -+# CONFIG_AUTOFS4_FS is not set -+ -+# -+# CD-ROM/DVD Filesystems -+# -+CONFIG_ISO9660_FS=m -+# CONFIG_JOLIET is not set -+# CONFIG_ZISOFS is not set -+CONFIG_UDF_FS=m -+CONFIG_UDF_NLS=y -+ -+# -+# DOS/FAT/NT Filesystems -+# -+CONFIG_FAT_FS=m -+CONFIG_MSDOS_FS=m -+CONFIG_VFAT_FS=m -+CONFIG_FAT_DEFAULT_CODEPAGE=437 -+CONFIG_FAT_DEFAULT_IOCHARSET="utf8" -+CONFIG_NTFS_FS=m -+# CONFIG_NTFS_DEBUG is not set -+# CONFIG_NTFS_RW is not set -+ -+# -+# Pseudo filesystems -+# -+CONFIG_PROC_FS=y -+CONFIG_SYSFS=y -+# CONFIG_DEVPTS_FS_XATTR is not set -+CONFIG_TMPFS=y -+# CONFIG_TMPFS_XATTR is not set -+# CONFIG_HUGETLB_PAGE is not set -+CONFIG_RAMFS=y -+ -+# -+# 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_JFFS_FS is not set -+CONFIG_JFFS2_FS=y -+CONFIG_JFFS2_FS_DEBUG=0 -+# CONFIG_JFFS2_FS_WRITEBUFFER 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 is not set -+# 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=m -+CONFIG_NFS_V3=y -+# CONFIG_NFS_V3_ACL is not set -+# CONFIG_NFS_V4 is not set -+# CONFIG_NFS_DIRECTIO is not set -+CONFIG_NFSD=m -+# CONFIG_NFSD_V3 is not set -+CONFIG_NFSD_TCP=y -+CONFIG_LOCKD=m -+CONFIG_LOCKD_V4=y -+CONFIG_EXPORTFS=m -+CONFIG_NFS_COMMON=y -+CONFIG_SUNRPC=m -+# 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_CIFS 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 is not set -+# CONFIG_SGI_PARTITION is not set -+# CONFIG_ULTRIX_PARTITION is not set -+# CONFIG_SUN_PARTITION is not set -+# CONFIG_EFI_PARTITION is not set -+ -+# -+# Native Language Support -+# -+CONFIG_NLS=m -+CONFIG_NLS_DEFAULT="utf8" -+CONFIG_NLS_CODEPAGE_437=m -+CONFIG_NLS_CODEPAGE_737=m -+CONFIG_NLS_CODEPAGE_775=m -+CONFIG_NLS_CODEPAGE_850=m -+CONFIG_NLS_CODEPAGE_852=m -+CONFIG_NLS_CODEPAGE_855=m -+CONFIG_NLS_CODEPAGE_857=m -+CONFIG_NLS_CODEPAGE_860=m -+CONFIG_NLS_CODEPAGE_861=m -+CONFIG_NLS_CODEPAGE_862=m -+CONFIG_NLS_CODEPAGE_863=m -+CONFIG_NLS_CODEPAGE_864=m -+CONFIG_NLS_CODEPAGE_865=m -+CONFIG_NLS_CODEPAGE_866=m -+CONFIG_NLS_CODEPAGE_869=m -+CONFIG_NLS_CODEPAGE_936=m -+CONFIG_NLS_CODEPAGE_950=m -+CONFIG_NLS_CODEPAGE_932=m -+CONFIG_NLS_CODEPAGE_949=m -+CONFIG_NLS_CODEPAGE_874=m -+CONFIG_NLS_ISO8859_8=m -+CONFIG_NLS_CODEPAGE_1250=m -+CONFIG_NLS_CODEPAGE_1251=m -+CONFIG_NLS_ASCII=m -+CONFIG_NLS_ISO8859_1=m -+CONFIG_NLS_ISO8859_2=m -+CONFIG_NLS_ISO8859_3=m -+CONFIG_NLS_ISO8859_4=m -+CONFIG_NLS_ISO8859_5=m -+CONFIG_NLS_ISO8859_6=m -+CONFIG_NLS_ISO8859_7=m -+CONFIG_NLS_ISO8859_9=m -+CONFIG_NLS_ISO8859_13=m -+CONFIG_NLS_ISO8859_14=m -+CONFIG_NLS_ISO8859_15=m -+CONFIG_NLS_KOI8_R=m -+CONFIG_NLS_KOI8_U=m -+CONFIG_NLS_UTF8=m -+ -+# -+# Profiling support -+# -+# CONFIG_PROFILING is not set -+ -+# -+# Kernel hacking -+# -+# CONFIG_PRINTK_TIME is not set -+CONFIG_DEBUG_KERNEL=y -+CONFIG_MAGIC_SYSRQ=y -+CONFIG_LOG_BUF_SHIFT=14 -+# CONFIG_SCHEDSTATS is not set -+# CONFIG_DEBUG_SLAB is not set -+# CONFIG_DEBUG_SPINLOCK is not set -+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -+# CONFIG_DEBUG_KOBJECT is not set -+CONFIG_DEBUG_BUGVERBOSE=y -+# CONFIG_DEBUG_INFO is not set -+# CONFIG_DEBUG_FS is not set -+CONFIG_FRAME_POINTER=y -+# CONFIG_DEBUG_USER is not set -+# CONFIG_DEBUG_WAITQ is not set -+CONFIG_DEBUG_ERRORS=y -+CONFIG_DEBUG_LL=y -+# CONFIG_DEBUG_ICEDCC is not set -+ -+# -+# Security options -+# -+# CONFIG_KEYS is not set -+# CONFIG_SECURITY is not set -+ -+# -+# Cryptographic options -+# -+CONFIG_CRYPTO=y -+CONFIG_CRYPTO_HMAC=y -+CONFIG_CRYPTO_NULL=m -+CONFIG_CRYPTO_MD4=m -+CONFIG_CRYPTO_MD5=m -+CONFIG_CRYPTO_SHA1=m -+CONFIG_CRYPTO_SHA256=m -+CONFIG_CRYPTO_SHA512=m -+CONFIG_CRYPTO_WP512=m -+CONFIG_CRYPTO_TGR192=m -+CONFIG_CRYPTO_DES=m -+CONFIG_CRYPTO_BLOWFISH=m -+CONFIG_CRYPTO_TWOFISH=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_TEST=m -+ -+# -+# Hardware crypto devices -+# -+ -+# -+# Library routines -+# -+CONFIG_CRC_CCITT=m -+CONFIG_CRC32=y -+CONFIG_LIBCRC32C=m -+CONFIG_ZLIB_INFLATE=y -+CONFIG_ZLIB_DEFLATE=y diff --git a/packages/linux/nslu2-kernel/2.6.13/96-nslu2-le-defconfig.patch b/packages/linux/nslu2-kernel/2.6.13/96-nslu2-le-defconfig.patch deleted file mode 100644 index 4b6e28a878..0000000000 --- a/packages/linux/nslu2-kernel/2.6.13/96-nslu2-le-defconfig.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff -urN nslu2-2.6.13.1/arch/arm/configs/nslu2_defconfig test/arch/arm/configs/nslu2_defconfig ---- nslu2-2.6.13.1/arch/arm/configs/nslu2_defconfig 2005-09-17 16:45:43.000000000 +0200 -+++ test/arch/arm/configs/nslu2_defconfig 2005-09-17 16:46:48.000000000 +0200 -@@ -1,7 +1,7 @@ - # - # Automatically generated make config: don't edit - # Linux kernel version: 2.6.13.1 --# Sat Sep 17 16:45:18 2005 -+# Sat Sep 17 16:23:38 2005 - # - CONFIG_ARM=y - CONFIG_MMU=y -@@ -120,7 +120,7 @@ - # Processor Features - # - # CONFIG_ARM_THUMB is not set --CONFIG_CPU_BIG_ENDIAN=y -+# CONFIG_CPU_BIG_ENDIAN is not set - CONFIG_XSCALE_PMU=y - CONFIG_DMABOUNCE=y - -@@ -168,6 +168,7 @@ - # At least one emulation must be selected - # - CONFIG_FPE_NWFPE=y -+# CONFIG_FPE_NWFPE_XP is not set - # CONFIG_FPE_FASTFPE is not set - - # diff --git a/packages/linux/nslu2-kernel/2.6.14-mm/.mtn2git_empty b/packages/linux/nslu2-kernel/2.6.14-mm/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.14-mm/.mtn2git_empty diff --git a/packages/linux/nslu2-kernel/2.6.14-mm/00-memory-h-page-shift.patch b/packages/linux/nslu2-kernel/2.6.14-mm/00-memory-h-page-shift.patch new file mode 100644 index 0000000000..999b69e851 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.14-mm/00-memory-h-page-shift.patch @@ -0,0 +1,10 @@ +--- linux-2.6.14/include/asm-arm/arch-ixp4xx/memory.h.orig 2005-11-07 23:16:48.456117450 -0800 ++++ linux-2.6.14/include/asm-arm/arch-ixp4xx/memory.h 2005-11-07 23:16:58.160728123 -0800 +@@ -8,6 +8,7 @@ + #define __ASM_ARCH_MEMORY_H + + #include <asm/sizes.h> ++#include <asm/page.h> + + /* + * Physical DRAM offset. diff --git a/packages/linux/nslu2-kernel/2.6.14-mm/30-i2c-x1205-mm1.patch b/packages/linux/nslu2-kernel/2.6.14-mm/30-i2c-x1205-mm1.patch new file mode 100644 index 0000000000..67cbd4cdf4 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.14-mm/30-i2c-x1205-mm1.patch @@ -0,0 +1,1036 @@ +--- linux-2.6.14/drivers/i2c/chips/Kconfig.orig 2005-11-07 22:30:30.413306237 -0800 ++++ linux-2.6.14/drivers/i2c/chips/Kconfig 2005-11-07 22:41:15.785916976 -0800 +@@ -126,13 +126,13 @@ config SENSORS_MAX6875 + This driver can also be built as a module. If so, the module + will be called max6875. + +-config RTC_X1205_I2C +- tristate "Xicor X1205 RTC chip" +- depends on I2C && EXPERIMENTAL +- help +- If you say yes here you get support for the Xicor X1205 RTC chip. ++config SENSORS_X1205 ++ tristate "Xicor X1205 RTC chip" ++ depends on I2C ++ help ++ If you say yes here you get support for the Xicor X1205 RTC chip. + +- This driver can also be built as a module. If so, the module +- will be called x1205. ++ This driver can also be built as a module. If so, the module ++ will be called x1205 + + endmenu +--- linux-2.6.14/drivers/i2c/chips/Makefile.orig 2005-11-07 22:30:30.417306489 -0800 ++++ linux-2.6.14/drivers/i2c/chips/Makefile 2005-11-07 22:41:59.616675071 -0800 +@@ -13,7 +13,7 @@ obj-$(CONFIG_SENSORS_PCF8591) += pcf8591 + obj-$(CONFIG_SENSORS_RTC8564) += rtc8564.o + obj-$(CONFIG_ISP1301_OMAP) += isp1301_omap.o + obj-$(CONFIG_TPS65010) += tps65010.o +-obj-$(CONFIG_RTC_X1205_I2C) += x1205.o ++obj-$(CONFIG_SENSORS_X1205) += x1205.o + + ifeq ($(CONFIG_I2C_DEBUG_CHIP),y) + EXTRA_CFLAGS += -DDEBUG +--- linux-2.6.14/drivers/i2c/chips/x1205.c.orig 2005-11-07 22:30:30.421306741 -0800 ++++ linux-2.6.14/drivers/i2c/chips/x1205.c 2005-11-07 22:42:54.960157617 -0800 +@@ -1,14 +1,16 @@ + /* +- * x1205.c - An i2c driver for the Xicor X1205 RTC ++ * linux/drivers/i2c/chips/x1205.c ++ * ++ * x1205.c - An 12c driver for the Xicor X1205 RTC + * Copyright 2004 Karen Spearel + * Copyright 2005 Alessandro Zummo + * + * please send all reports to: + * kas11 at tampabay dot rr dot com + * a dot zummo at towertech dot it +- * ++ * + * based on the other drivers in this same directory. +- * ++ * + * 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 +@@ -26,83 +28,36 @@ + + #include <linux/x1205.h> + +-#define DRV_VERSION "0.9.9" ++#define EPOCH_1900 1900 ++#define EPOCH_1970 1970 ++ ++#define DRIVER_VERSION "0.9.6" ++#define DRIVER_NAME (x1205_driver.name) + +-/* Addresses to scan: none. This chip is located at +- * 0x6f and uses a two bytes register addressing. +- * Two bytes need to be written to read a single register, +- * while most other chips just require one and take the second +- * one as the data to be written. To prevent corrupting +- * unknown chips, the user must explicitely set the probe parameter. +- */ + +-static unsigned short normal_i2c[] = { I2C_CLIENT_END }; ++/* Addresses to scan */ ++static unsigned short normal_i2c[] = { X1205_I2C_BUS_ADDR, I2C_CLIENT_END }; + + /* Insmod parameters */ + I2C_CLIENT_INSMOD; + I2C_CLIENT_MODULE_PARM(hctosys, + "Set the system time from the hardware clock upon initialization"); + +-/* offsets into CCR area */ +- +-#define CCR_SEC 0 +-#define CCR_MIN 1 +-#define CCR_HOUR 2 +-#define CCR_MDAY 3 +-#define CCR_MONTH 4 +-#define CCR_YEAR 5 +-#define CCR_WDAY 6 +-#define CCR_Y2K 7 +- +-#define X1205_REG_SR 0x3F /* status register */ +-#define X1205_REG_Y2K 0x37 +-#define X1205_REG_DW 0x36 +-#define X1205_REG_YR 0x35 +-#define X1205_REG_MO 0x34 +-#define X1205_REG_DT 0x33 +-#define X1205_REG_HR 0x32 +-#define X1205_REG_MN 0x31 +-#define X1205_REG_SC 0x30 +-#define X1205_REG_DTR 0x13 +-#define X1205_REG_ATR 0x12 +-#define X1205_REG_INT 0x11 +-#define X1205_REG_0 0x10 +-#define X1205_REG_Y2K1 0x0F +-#define X1205_REG_DWA1 0x0E +-#define X1205_REG_YRA1 0x0D +-#define X1205_REG_MOA1 0x0C +-#define X1205_REG_DTA1 0x0B +-#define X1205_REG_HRA1 0x0A +-#define X1205_REG_MNA1 0x09 +-#define X1205_REG_SCA1 0x08 +-#define X1205_REG_Y2K0 0x07 +-#define X1205_REG_DWA0 0x06 +-#define X1205_REG_YRA0 0x05 +-#define X1205_REG_MOA0 0x04 +-#define X1205_REG_DTA0 0x03 +-#define X1205_REG_HRA0 0x02 +-#define X1205_REG_MNA0 0x01 +-#define X1205_REG_SCA0 0x00 +- +-#define X1205_CCR_BASE 0x30 /* Base address of CCR */ +-#define X1205_ALM0_BASE 0x00 /* Base address of ALARM0 */ +- +-#define X1205_SR_RTCF 0x01 /* Clock failure */ +-#define X1205_SR_WEL 0x02 /* Write Enable Latch */ +-#define X1205_SR_RWEL 0x04 /* Register Write Enable */ +- +-#define X1205_DTR_DTR0 0x01 +-#define X1205_DTR_DTR1 0x02 +-#define X1205_DTR_DTR2 0x04 +- +-#define X1205_HR_MIL 0x80 /* Set in ccr.hour for 24 hr mode */ +- + /* Prototypes */ ++ + static int x1205_attach(struct i2c_adapter *adapter); + static int x1205_detach(struct i2c_client *client); + static int x1205_probe(struct i2c_adapter *adapter, int address, int kind); +-static int x1205_command(struct i2c_client *client, unsigned int cmd, +- void *arg); ++static int x1205_validate_client(struct i2c_client *client); ++ ++static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm, ++ u8 reg_base); ++static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm, ++ int datetoo, u8 reg_base); ++static int x1205_validate_tm(struct rtc_time *tm); ++static int x1205_command(struct i2c_client *client, unsigned int cmd, void *arg); ++static int x1205_hctosys(struct i2c_client *client); ++ + + static struct i2c_driver x1205_driver = { + .owner = THIS_MODULE, +@@ -110,6 +65,7 @@ static struct i2c_driver x1205_driver = + .flags = I2C_DF_NOTIFY, + .attach_adapter = &x1205_attach, + .detach_client = &x1205_detach, ++/* .command = &x1205_command,*/ + }; + + struct x1205_data { +@@ -118,8 +74,9 @@ struct x1205_data { + unsigned int epoch; + }; + +-static const unsigned char days_in_mo[] = +- { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; ++ ++static const unsigned char days_in_mo[] = ++{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; + + static LIST_HEAD(x1205_clients); + +@@ -127,6 +84,7 @@ static LIST_HEAD(x1205_clients); + * commands to a specific client. This function will send the command + * to the first client. + */ ++ + int x1205_do_command(unsigned int cmd, void *arg) + { + struct list_head *walk; +@@ -141,114 +99,98 @@ int x1205_do_command(unsigned int cmd, v + return -ENODEV; + } + +-#define is_leap(year) \ +- ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) +- +-/* make sure the rtc_time values are in bounds */ +-static int x1205_validate_tm(struct rtc_time *tm) +-{ +- int year = tm->tm_year + 1900; +- +- if ((tm->tm_year < 70) || (tm->tm_year > 255)) +- return -EINVAL; +- +- if ((tm->tm_mon > 11) || (tm->tm_mday == 0)) +- return -EINVAL; +- +- if (tm->tm_mday > days_in_mo[tm->tm_mon] +- + ((tm->tm_mon == 1) && is_leap(year))) +- return -EINVAL; +- +- if ((tm->tm_hour >= 24) || (tm->tm_min >= 60) || (tm->tm_sec >= 60)) +- return -EINVAL; +- +- return 0; +-} + + /* +- * In the routines that deal directly with the x1205 hardware, we use ++ * in the routines that deal directly with the x1205 hardware, we use + * rtc_time -- month 0-11, hour 0-23, yr = calendar year-epoch +- * Epoch is initialized as 2000. Time is set to UTC. ++ * Epoch is inited as 2000. Time is set to UT + */ ++ + static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm, + u8 reg_base) + { +- unsigned char dt_addr[2] = { 0, reg_base }; +- static unsigned char sr_addr[2] = { 0, X1205_REG_SR }; ++ static unsigned char dt_addr[] = { 0, }; ++ static unsigned char sr_addr[] = { 0, }; + +- unsigned char buf[8], sr; ++ unsigned char buf[8], sr; + + struct i2c_msg msgs[] = { +- { client->addr, 0, 2, sr_addr }, /* setup read ptr */ +- { client->addr, I2C_M_RD, 1, &sr }, /* read status */ +- { client->addr, 0, 2, dt_addr }, /* setup read ptr */ +- { client->addr, I2C_M_RD, 8, buf }, /* read date */ ++ { client->addr, 0, 2, sr_addr }, /* random read */ ++ { client->addr, I2C_M_RD, 1, &sr }, ++ { client->addr, 0, 2, dt_addr }, /* random read */ ++ { client->addr, I2C_M_RD, 8, buf }, + }; + +- struct x1205_data *data = i2c_get_clientdata(client); ++ struct x1205_data *xdata = i2c_get_clientdata(client); + +- /* read status register */ +- if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) { +- dev_err(&client->dev, "%s: read error\n", __FUNCTION__); +- return -EIO; +- } ++ dt_addr[1] = reg_base; ++ sr_addr[1] = X1205_REG_SR; + +- /* check for battery failure */ +- if (sr & X1205_SR_RTCF) { +- dev_warn(&client->dev, +- "Clock had a power failure, you must set the date.\n"); +- return -EINVAL; +- } ++ if ((i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs))) == ++ ARRAY_SIZE(msgs)) { ++ /* did we read the correct number of messages? */ ++ ++ /* check for battery failure */ ++ if (sr & X1205_SR_RTCF) ++ { ++ dev_info(&client->adapter->dev, ++ "%s: Clock had a power failure, you must set the date.\n", ++ DRIVER_NAME); + +- /* read date registers */ +- if ((i2c_transfer(client->adapter, &msgs[2], 2)) != 2) { +- dev_err(&client->dev, "%s: read error\n", __FUNCTION__); +- return -EIO; +- } +- +- dev_dbg(&client->dev, +- "%s: raw read data - sec=%02x, min=%02x, hr=%02x, " +- "mday=%02x, mon=%02x, year=%02x, wday=%02x, y2k=%02x\n", +- __FUNCTION__, +- buf[0], buf[1], buf[2], buf[3], +- buf[4], buf[5], buf[6], buf[7]); +- +- tm->tm_sec = BCD2BIN(buf[CCR_SEC]); +- tm->tm_min = BCD2BIN(buf[CCR_MIN]); +- tm->tm_hour = BCD2BIN(buf[CCR_HOUR] & 0x3F); /* hr is 0-23 */ +- tm->tm_mday = BCD2BIN(buf[CCR_MDAY]); +- tm->tm_mon = BCD2BIN(buf[CCR_MONTH]); +- data->epoch = BCD2BIN(buf[CCR_Y2K]) * 100; +- tm->tm_year = BCD2BIN(buf[CCR_YEAR]) + data->epoch - 1900; +- tm->tm_wday = buf[CCR_WDAY]; ++ return -EINVAL; ++ } + +- dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d, " +- "mday=%d, mon=%d, year=%d, wday=%d\n", +- __FUNCTION__, +- tm->tm_sec, tm->tm_min, tm->tm_hour, +- tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); ++ dev_dbg(&client->dev, ++ "%s: raw read data - sec-%02x min-%02x hr-%02x" ++ " mday-%02x mon-%02x year-%02x wday-%02x y2k-%02x\n", ++ __FUNCTION__, ++ buf[0], buf[1], buf[2], buf[3], ++ buf[4], buf[5], buf[6], buf[7]); ++ ++ tm->tm_sec = BCD2BIN(buf[CCR_SEC]); ++ tm->tm_min = BCD2BIN(buf[CCR_MIN]); ++ buf[CCR_HOUR] &= ~X1205_HR_MIL; ++ tm->tm_hour = BCD2BIN(buf[CCR_HOUR]); /* hr is 0-23 */ ++ tm->tm_mday = BCD2BIN(buf[CCR_MDAY]); ++ tm->tm_mon = BCD2BIN(buf[CCR_MONTH]); ++ xdata->epoch = BCD2BIN(buf[CCR_Y2K]) * 100; ++ tm->tm_year = BCD2BIN(buf[CCR_YEAR]) + xdata->epoch - EPOCH_1900; ++ tm->tm_wday = buf[CCR_WDAY]; ++ ++ dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d, " ++ "mday=%d, mon=%d, year=%d, wday=%d\n", ++ __FUNCTION__, ++ tm->tm_sec, tm->tm_min, tm->tm_hour, ++ tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); + ++ } else { ++ dev_dbg(&client->dev, "%s: read error\n", __FUNCTION__); ++ return -EIO; ++ } ++ + return 0; + } + ++ + static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm, + int datetoo, u8 reg_base) + { + int i, err, xfer; + +- unsigned char buf[8]; ++ static unsigned char wel[3] = { 0, X1205_REG_SR, ++ X1205_SR_WEL }; + +- static const unsigned char wel[3] = { 0, X1205_REG_SR, +- X1205_SR_WEL }; + +- static const unsigned char rwel[3] = { 0, X1205_REG_SR, +- X1205_SR_WEL | X1205_SR_RWEL }; ++ static unsigned char rwel[3] = { 0, X1205_REG_SR, ++ X1205_SR_WEL | X1205_SR_RWEL }; + +- static const unsigned char diswe[3] = { 0, X1205_REG_SR, 0 }; ++ static unsigned char diswe[3] = { 0, X1205_REG_SR, 0 }; + +- struct x1205_data *data = i2c_get_clientdata(client); ++ static unsigned char data[3] = { 0, }; ++ static unsigned char buf[8]; ++ ++ struct x1205_data *xdata = i2c_get_clientdata(client); + +- /* check if all values in the tm struct are correct */ + if ((err = x1205_validate_tm(tm)) < 0) + return err; + +@@ -258,124 +200,52 @@ static int x1205_set_datetime(struct i2c + tm->tm_sec, tm->tm_min, tm->tm_hour, + tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday); + +- buf[CCR_SEC] = BIN2BCD(tm->tm_sec); +- buf[CCR_MIN] = BIN2BCD(tm->tm_min); + +- /* set hour and 24hr bit */ ++ buf[CCR_SEC] = BIN2BCD(tm->tm_sec); ++ buf[CCR_MIN] = BIN2BCD(tm->tm_min); ++ ++ /* Set 24HR format */ + buf[CCR_HOUR] = BIN2BCD(tm->tm_hour) | X1205_HR_MIL; + +- /* should we also set the date? */ +- if (datetoo) { +- buf[CCR_MDAY] = BIN2BCD(tm->tm_mday); ++ if (datetoo == X1205_DATETOO) { ++ buf[CCR_MDAY] = BIN2BCD(tm->tm_mday); + + /* month, 0 - 11 */ +- buf[CCR_MONTH] = BIN2BCD(tm->tm_mon); ++ buf[CCR_MONTH] = BIN2BCD(tm->tm_mon); /* input is 0-11 */ + + /* year, since 1900 */ +- buf[CCR_YEAR] = BIN2BCD(tm->tm_year + 1900 - data->epoch); +- buf[CCR_WDAY] = tm->tm_wday & 0x07; +- buf[CCR_Y2K] = BIN2BCD(data->epoch / 100); ++ buf[CCR_YEAR] = BIN2BCD((tm->tm_year + EPOCH_1900 - xdata->epoch)); ++ buf[CCR_WDAY] = tm->tm_wday & 7; ++ buf[CCR_Y2K] = BIN2BCD(xdata->epoch / 100); + } + +- /* this sequence is required to unlock the chip */ + xfer = i2c_master_send(client, wel, 3); +- if (xfer != 3) { +- dev_err(&client->dev, "%s: wel - %d\n", __FUNCTION__, xfer); ++ dev_dbg(&client->dev, "%s: wen - %x\n", __FUNCTION__, xfer); ++ if (xfer != 3) + return -EIO; +- } + + xfer = i2c_master_send(client, rwel, 3); +- if (xfer != 3) { +- dev_err(&client->dev, "%s: rwel - %d\n", __FUNCTION__, xfer); ++ dev_dbg(&client->dev, "%s: wenb - %x\n", __FUNCTION__, xfer); ++ if (xfer != 3) + return -EIO; +- } + +- /* write register's data */ +- for (i = 0; i < (datetoo ? 8 : 3); i++) { +- unsigned char rdata[3] = { 0, reg_base + i, buf[i] }; +- +- xfer = i2c_master_send(client, rdata, 3); +- if (xfer != 3) { +- dev_err(&client->dev, +- "%s: xfer=%d addr=%02x, data=%02x\n", +- __FUNCTION__, +- xfer, rdata[1], rdata[2]); ++ for (i = 0; i < 8; i++) { ++ data[1] = i + reg_base; ++ data[2] = buf[i]; ++ xfer = i2c_master_send(client, data, 3); ++ ++ dev_dbg(&client->dev, "%s: xfer %d addr, %02x, data %02x\n", ++ __FUNCTION__, ++ xfer, data[1], data[2]); ++ ++ if (xfer != 3) + return -EIO; +- } + }; + +- /* disable further writes */ + xfer = i2c_master_send(client, diswe, 3); +- if (xfer != 3) { +- dev_err(&client->dev, "%s: diswe - %d\n", __FUNCTION__, xfer); +- return -EIO; +- } +- +- return 0; +-} +- +-static int x1205_get_dtrim(struct i2c_client *client, int *trim) +-{ +- unsigned char dtr; +- static unsigned char dtr_addr[2] = { 0, X1205_REG_DTR }; +- +- struct i2c_msg msgs[] = { +- { client->addr, 0, 2, dtr_addr }, /* setup read ptr */ +- { client->addr, I2C_M_RD, 1, &dtr }, /* read dtr */ +- }; +- +- /* read dtr register */ +- if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) { +- dev_err(&client->dev, "%s: read error\n", __FUNCTION__); +- return -EIO; +- } +- +- dev_dbg(&client->dev, "%s: raw dtr=%x\n", __FUNCTION__, dtr); +- +- *trim = 0; +- +- if (dtr & X1205_DTR_DTR0) +- *trim += 20; +- +- if (dtr & X1205_DTR_DTR1) +- *trim += 10; +- +- if (dtr & X1205_DTR_DTR2) +- *trim = -*trim; +- +- return 0; +-} +- +-static int x1205_get_atrim(struct i2c_client *client, int *trim) +-{ +- s8 atr; +- static unsigned char atr_addr[2] = { 0, X1205_REG_ATR }; +- +- struct i2c_msg msgs[] = { +- { client->addr, 0, 2, atr_addr }, /* setup read ptr */ +- { client->addr, I2C_M_RD, 1, &atr }, /* read atr */ +- }; +- +- /* read atr register */ +- if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) { +- dev_err(&client->dev, "%s: read error\n", __FUNCTION__); +- return -EIO; +- } +- +- dev_dbg(&client->dev, "%s: raw atr=%x\n", __FUNCTION__, atr); +- +- /* atr is a two's complement value on 6 bits, +- * perform sign extension. The formula is +- * Catr = (atr * 0.25pF) + 11.00pF. +- */ +- if (atr & 0x20) +- atr |= 0xC0; +- +- dev_dbg(&client->dev, "%s: raw atr=%x (%d)\n", __FUNCTION__, atr, atr); +- +- *trim = (atr * 250) + 11000; +- +- dev_dbg(&client->dev, "%s: real=%d\n", __FUNCTION__, *trim); ++ dev_dbg(&client->dev, "%s: wdis - %x\n", __FUNCTION__, xfer); ++ if (xfer != 3) ++ return -EIO; + + return 0; + } +@@ -386,24 +256,28 @@ static int x1205_hctosys(struct i2c_clie + + struct rtc_time tm; + struct timespec tv; ++ + + err = x1205_command(client, X1205_CMD_GETDATETIME, &tm); + +- if (err) { +- dev_err(&client->dev, +- "Unable to set the system clock\n"); ++ if (err) ++ { ++ dev_info(&client->adapter->dev, ++ "%s: Unable to set the system clock\n", ++ DRIVER_NAME); ++ + return err; ++ + } + +- /* IMPORTANT: the RTC only stores whole seconds. It is arbitrary +- * whether it stores the most close value or the value with partial +- * seconds truncated. However, it is important that we use it to store +- * the truncated value. This is because otherwise it is necessary, +- * in an rtc sync function, to read both xtime.tv_sec and +- * xtime.tv_nsec. On some processors (i.e. ARM), an atomic read +- * of >32bits is not possible. So storing the most close value would +- * slow down the sync API. So here we have the truncated value and +- * the best guess is to add 0.5s. ++ /* IMPORTANT: the RTC only stores whole seconds. It is arbitrary whether ++ * it stores the most close value or the value with partial seconds ++ * truncated, however it is important for x1205_sync_rtc that it be ++ * defined to store the truncated value. This is because otherwise it ++ * is necessary to read both xtime.tv_sec and xtime.tv_nsec in the ++ * sync function, and atomic reads of >32bits on ARM are not possible. ++ * So storing the most close value would slow down the sync API. So ++ * Here we have the truncated value and the best guess is to add 0.5s + */ + + tv.tv_nsec = NSEC_PER_SEC >> 1; +@@ -413,15 +287,16 @@ static int x1205_hctosys(struct i2c_clie + * the month to be in the range 1-12 + */ + +- tv.tv_sec = mktime(tm.tm_year + 1900, tm.tm_mon + 1, ++ tv.tv_sec = mktime(tm.tm_year + EPOCH_1900, tm.tm_mon + 1, + tm.tm_mday, tm.tm_hour, + tm.tm_min, tm.tm_sec); + + do_settimeofday(&tv); + +- dev_info(&client->dev, +- "setting the system clock to %d-%d-%d %d:%d:%d\n", +- tm.tm_year + 1900, tm.tm_mon + 1, ++ dev_info(&client->adapter->dev, ++ "%s: Setting the system clock to %d-%d-%d %d:%d:%d\n", ++ DRIVER_NAME, ++ tm.tm_year + EPOCH_1900, tm.tm_mon + 1, + tm.tm_mday, tm.tm_hour, tm.tm_min, + tm.tm_sec); + +@@ -432,7 +307,7 @@ struct x1205_limit + { + unsigned char reg; + unsigned char mask; +- unsigned char min; ++ unsigned char min; + unsigned char max; + }; + +@@ -443,16 +318,34 @@ static int x1205_validate_client(struct + /* Probe array. We will read the register at the specified + * address and check if the given bits are zero. + */ +- static const unsigned char probe_zero_pattern[] = { +- /* register, mask */ ++ ++ const unsigned char probe_zero_pattern[] = { ++ + X1205_REG_SR, 0x18, ++ X1205_REG_Y2K, 0xC6, ++ X1205_REG_DW, 0xF8, ++ X1205_REG_MO, 0xE0, ++ X1205_REG_DT, 0xC0, ++ X1205_REG_HR, 0x40, ++ X1205_REG_MN, 0x80, ++ X1205_REG_SC, 0x80, + X1205_REG_DTR, 0xF8, + X1205_REG_ATR, 0xC0, + X1205_REG_INT, 0x18, + X1205_REG_0, 0xFF, ++ X1205_REG_Y2K1, 0xC6, ++ X1205_REG_DWA1, 0x78, ++ X1205_REG_MOA1, 0x60, ++ X1205_REG_DTA1, 0x40, ++ X1205_REG_HRA1, 0x40, ++ X1205_REG_Y2K0, 0xC6, ++ X1205_REG_DWA0, 0x78, ++ X1205_REG_MOA0, 0x60, ++ X1205_REG_DTA0, 0x40, ++ X1205_REG_HRA0, 0x40, + }; + +- static const struct x1205_limit probe_limits_pattern[] = { ++ const struct x1205_limit probe_limits_pattern[] = { + /* register, mask, min, max */ + { X1205_REG_Y2K, 0xFF, 19, 20 }, + { X1205_REG_DW, 0xFF, 0, 6 }, +@@ -463,23 +356,41 @@ static int x1205_validate_client(struct + { X1205_REG_MN, 0xFF, 0, 59 }, + { X1205_REG_SC, 0xFF, 0, 59 }, + { X1205_REG_Y2K1, 0xFF, 19, 20 }, ++ { X1205_REG_DWA1, 0x7F, 0, 6 }, ++ { X1205_REG_MOA1, 0x7F, 0, 12 }, ++ { X1205_REG_DTA1, 0x7F, 0, 31 }, ++ { X1205_REG_HRA1, 0x7F, 0, 23 }, ++ { X1205_REG_MNA1, 0x7F, 0, 59 }, ++ { X1205_REG_SCA1, 0x7F, 0, 59 }, + { X1205_REG_Y2K0, 0xFF, 19, 20 }, ++ { X1205_REG_DWA0, 0x7F, 0, 6 }, ++ { X1205_REG_MOA0, 0x7F, 0, 12 }, ++ { X1205_REG_DTA0, 0x7F, 0, 31 }, ++ { X1205_REG_HRA0, 0x7F, 0, 23 }, ++ { X1205_REG_MNA0, 0x7F, 0, 59 }, ++ { X1205_REG_SCA0, 0x7F, 0, 59 }, + }; + + /* check that registers have bits a 0 where expected */ +- for (i = 0; i < ARRAY_SIZE(probe_zero_pattern); i += 2) { ++ ++ for (i = 0; i < ARRAY_SIZE(probe_zero_pattern); i += 2) ++ { + unsigned char buf; + +- unsigned char addr[2] = { 0, probe_zero_pattern[i] }; ++ static unsigned char addr[2]; + + struct i2c_msg msgs[2] = { +- { client->addr, 0, 2, addr }, ++ { client->addr, 0, 2, addr }, /* random read */ + { client->addr, I2C_M_RD, 1, &buf }, + }; + ++ addr[0] = 0x00; ++ addr[1] = probe_zero_pattern[i]; ++ + xfer = i2c_transfer(client->adapter, msgs, 2); ++ + if (xfer != 2) { +- dev_err(&client->adapter->dev, ++ dev_dbg(&client->adapter->dev, + "%s: could not read register %x\n", + __FUNCTION__, addr[1]); + +@@ -487,42 +398,47 @@ static int x1205_validate_client(struct + } + + if ((buf & probe_zero_pattern[i+1]) != 0) { +- dev_err(&client->adapter->dev, +- "%s: register=%02x, zero pattern=%d, value=%x\n", ++ dev_dbg(&client->adapter->dev, ++ "%s: register %x, zero pattern %d: %x\n", + __FUNCTION__, addr[1], i, buf); + + return -ENODEV; + } + } + +- /* check limits (only registers with bcd values) */ +- for (i = 0; i < ARRAY_SIZE(probe_limits_pattern); i++) { +- unsigned char reg, value; ++ /* check limits */ + +- unsigned char addr[2] = { 0, probe_limits_pattern[i].reg }; ++ for (i = 0; i < ARRAY_SIZE(probe_limits_pattern); i++) ++ { ++ unsigned char buf, val; ++ ++ static unsigned char addr[2]; + + struct i2c_msg msgs[2] = { +- { client->addr, 0, 2, addr }, +- { client->addr, I2C_M_RD, 1, ® }, ++ { client->addr, 0, 2, addr }, /* random read */ ++ { client->addr, I2C_M_RD, 1, &buf }, + }; + ++ addr[0] = 0x00; ++ addr[1] = probe_limits_pattern[i].reg; ++ + xfer = i2c_transfer(client->adapter, msgs, 2); + + if (xfer != 2) { +- dev_err(&client->adapter->dev, ++ dev_dbg(&client->adapter->dev, + "%s: could not read register %x\n", + __FUNCTION__, addr[1]); + + return -EIO; + } + +- value = BCD2BIN(reg & probe_limits_pattern[i].mask); ++ val = BCD2BIN(buf & probe_limits_pattern[i].mask); + +- if (value > probe_limits_pattern[i].max || +- value < probe_limits_pattern[i].min) { ++ if (val > probe_limits_pattern[i].max || ++ val < probe_limits_pattern[i].min) { + dev_dbg(&client->adapter->dev, +- "%s: register=%x, lim pattern=%d, value=%d\n", +- __FUNCTION__, addr[1], i, value); ++ "%s: register %x, lim pattern %d: %d\n", ++ __FUNCTION__, addr[1], i, val); + + return -ENODEV; + } +@@ -538,79 +454,66 @@ static int x1205_attach(struct i2c_adapt + return i2c_probe(adapter, &addr_data, x1205_probe); + } + +-int x1205_direct_attach(int adapter_id, +- struct i2c_client_address_data *address_data) +-{ +- int err; +- struct i2c_adapter *adapter = i2c_get_adapter(adapter_id); +- +- if (adapter) { +- err = i2c_probe(adapter, +- address_data, x1205_probe); +- +- i2c_put_adapter(adapter); +- +- return err; +- } +- +- return -ENODEV; +-} +- + static int x1205_probe(struct i2c_adapter *adapter, int address, int kind) + { +- struct i2c_client *client; +- struct x1205_data *data; ++ struct i2c_client *new_client; ++ struct x1205_data *xdata; + + int err = 0; + + dev_dbg(&adapter->dev, "%s\n", __FUNCTION__); + +- if (!i2c_check_functionality(adapter, I2C_FUNC_I2C)) { +- err = -ENODEV; +- goto exit; +- } +- +- if (!(data = kzalloc(sizeof(struct x1205_data), GFP_KERNEL))) { ++ if (!(xdata = kmalloc(sizeof(struct x1205_data), GFP_KERNEL))) { + err = -ENOMEM; + goto exit; + } + +- /* Initialize our structures */ +- data->epoch = 2000; ++ /* Fill our data structure */ + +- client = &data->client; +- client->addr = address; +- client->driver = &x1205_driver; +- client->adapter = adapter; ++ memset(xdata, 0, sizeof(struct x1205_data)); + +- strlcpy(client->name, "x1205", I2C_NAME_SIZE); ++ xdata->epoch = 2000; ++ ++ ++ /* Prepare i2c_client structure */ ++ ++ new_client = &xdata->client; ++ i2c_set_clientdata(new_client, xdata); ++ new_client->addr = address; ++ new_client->adapter = adapter; ++ new_client->driver = &x1205_driver; ++ new_client->flags = 0; ++ ++ strlcpy(new_client->name, "x1205", I2C_NAME_SIZE); + +- i2c_set_clientdata(client, data); + + /* Verify the chip is really an X1205 */ +- if (kind < 0) { +- if (x1205_validate_client(client) < 0) { ++ ++ if (kind < 0) ++ { ++ if (x1205_validate_client(new_client) < 0) { + err = -ENODEV; + goto exit_kfree; + } + } + + /* Inform the i2c layer */ +- if ((err = i2c_attach_client(client))) ++ if ((err = i2c_attach_client(new_client))) + goto exit_kfree; + +- list_add(&data->list, &x1205_clients); ++ list_add(&xdata->list, &x1205_clients); + +- dev_info(&client->dev, "chip found, driver version " DRV_VERSION "\n"); ++ dev_info(&adapter->dev, "%s: Chip found, driver " DRIVER_VERSION "\n", ++ DRIVER_NAME); + +- /* If requested, set the system time */ ++ /* If requested, se the system time */ + if (hctosys) +- x1205_hctosys(client); ++ x1205_hctosys(new_client); + + return 0; + + exit_kfree: +- kfree(data); ++ kfree(xdata); + + exit: + return err; +@@ -620,23 +523,44 @@ static int x1205_detach(struct i2c_clien + { + int err; + struct x1205_data *data = i2c_get_clientdata(client); +- ++ + dev_dbg(&client->dev, "%s\n", __FUNCTION__); + + if ((err = i2c_detach_client(client))) + return err; + + list_del(&data->list); +- + kfree(data); ++ return 0; ++} ++ ++/* make sure the rtc_time values are in bounds */ ++static int x1205_validate_tm(struct rtc_time *tm) ++{ ++ tm->tm_year += 1900; ++ ++ if (tm->tm_year < EPOCH_1970) ++ return -EINVAL; ++ ++ if ((tm->tm_mon > 11) || (tm->tm_mday == 0)) ++ return -EINVAL; ++ ++ if (tm->tm_mday > (days_in_mo[tm->tm_mon] + ( (tm->tm_mon == 1) && ++ ((!(tm->tm_year % 4) && (tm->tm_year % 100) ) || !(tm->tm_year % 400))))) ++ return -EINVAL; ++ ++ if ((tm->tm_year -= EPOCH_1900) > 255) ++ return -EINVAL; ++ ++ if ((tm->tm_hour >= 24) || (tm->tm_min >= 60) || (tm->tm_sec >= 60)) ++ return -EINVAL; + + return 0; + } + +-static int x1205_command(struct i2c_client *client, unsigned int cmd, +- void *param) ++static int x1205_command(struct i2c_client *client, unsigned int cmd, void *tm) + { +- if (param == NULL) ++ if (client == NULL || tm == NULL) + return -EINVAL; + + if (!capable(CAP_SYS_TIME)) +@@ -646,34 +570,26 @@ static int x1205_command(struct i2c_clie + + switch (cmd) { + case X1205_CMD_GETDATETIME: +- return x1205_get_datetime(client, param, X1205_CCR_BASE); ++ return x1205_get_datetime(client, tm, X1205_CCR_BASE); + + case X1205_CMD_SETTIME: +- return x1205_set_datetime(client, param, 0, +- X1205_CCR_BASE); ++ return x1205_set_datetime(client, tm, X1205_NODATE, X1205_CCR_BASE); + + case X1205_CMD_SETDATETIME: +- return x1205_set_datetime(client, param, 1, +- X1205_CCR_BASE); ++ return x1205_set_datetime(client, tm, X1205_DATETOO, X1205_CCR_BASE); + + case X1205_CMD_GETALARM: +- return x1205_get_datetime(client, param, X1205_ALM0_BASE); ++ return x1205_get_datetime(client, tm, X1205_ALM0_BASE); + + case X1205_CMD_SETALARM: +- return x1205_set_datetime(client, param, 1, +- X1205_ALM0_BASE); +- +- case X1205_CMD_GETDTRIM: +- return x1205_get_dtrim(client, param); +- +- case X1205_CMD_GETATRIM: +- return x1205_get_atrim(client, param); ++ return x1205_set_datetime(client, tm, X1205_DATETOO, X1205_ALM0_BASE); + + default: + return -EINVAL; + } + } + ++ + static int __init x1205_init(void) + { + return i2c_add_driver(&x1205_driver); +@@ -689,10 +605,8 @@ MODULE_AUTHOR( + "Alessandro Zummo <a.zummo@towertech.it>"); + MODULE_DESCRIPTION("Xicor X1205 RTC driver"); + MODULE_LICENSE("GPL"); +-MODULE_VERSION(DRV_VERSION); + + EXPORT_SYMBOL_GPL(x1205_do_command); +-EXPORT_SYMBOL_GPL(x1205_direct_attach); + + module_init(x1205_init); + module_exit(x1205_exit); +--- linux-2.6.14/include/linux/x1205.h.orig 2005-11-07 22:38:42.196252187 -0800 ++++ linux-2.6.14/include/linux/x1205.h 2005-11-07 22:42:54.960157617 -0800 +@@ -1,31 +1,67 @@ +-/* +- * x1205.h - defines for drivers/i2c/chips/x1205.c +- * Copyright 2004 Karen Spearel +- * Copyright 2005 Alessandro Zummo +- * +- * 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. +- */ +- +-#ifndef __LINUX_X1205_H__ +-#define __LINUX_X1205_H__ + + /* commands */ + +-#define X1205_CMD_GETDATETIME 0 +-#define X1205_CMD_SETTIME 1 +-#define X1205_CMD_SETDATETIME 2 ++#define X1205_CMD_GETDATETIME 0 ++#define X1205_CMD_SETTIME 1 ++#define X1205_CMD_SETDATETIME 2 + #define X1205_CMD_GETALARM 3 + #define X1205_CMD_SETALARM 4 +-#define X1205_CMD_GETDTRIM 5 +-#define X1205_CMD_SETDTRIM 6 +-#define X1205_CMD_GETATRIM 7 +-#define X1205_CMD_SETATRIM 8 ++ ++/* flags */ ++ ++#define X1205_NODATE 0 ++#define X1205_DATETOO 1 ++ ++/* offsets into read buf - add 2 for write buf */ ++ ++#define CCR_SEC 0 ++#define CCR_MIN 1 ++#define CCR_HOUR 2 ++#define CCR_MDAY 3 ++#define CCR_MONTH 4 ++#define CCR_YEAR 5 ++#define CCR_WDAY 6 ++#define CCR_Y2K 7 ++ ++#define X1205_REG_SR 0x3F /* status register */ ++#define X1205_REG_Y2K 0x37 ++#define X1205_REG_DW 0x36 ++#define X1205_REG_YR 0x35 ++#define X1205_REG_MO 0x34 ++#define X1205_REG_DT 0x33 ++#define X1205_REG_HR 0x32 ++#define X1205_REG_MN 0x31 ++#define X1205_REG_SC 0x30 ++#define X1205_REG_DTR 0x13 ++#define X1205_REG_ATR 0x12 ++#define X1205_REG_INT 0x11 ++#define X1205_REG_0 0x10 ++#define X1205_REG_Y2K1 0x0F ++#define X1205_REG_DWA1 0x0E ++#define X1205_REG_YRA1 0x0D ++#define X1205_REG_MOA1 0x0C ++#define X1205_REG_DTA1 0x0B ++#define X1205_REG_HRA1 0x0A ++#define X1205_REG_MNA1 0x09 ++#define X1205_REG_SCA1 0x08 ++#define X1205_REG_Y2K0 0x07 ++#define X1205_REG_DWA0 0x06 ++#define X1205_REG_YRA0 0x05 ++#define X1205_REG_MOA0 0x04 ++#define X1205_REG_DTA0 0x03 ++#define X1205_REG_HRA0 0x02 ++#define X1205_REG_MNA0 0x01 ++#define X1205_REG_SCA0 0x00 ++ ++#define X1205_I2C_BUS_ADDR 0x6f /* hardwired into x1205 */ ++#define X1205_CCR_BASE 0x30 /* Base address of CCR */ ++#define X1205_ALM0_BASE 0x00 /* Base address of ALARM0 */ ++ ++#define X1205_SR_RTCF 0x01 ++#define X1205_SR_WEL 0x02 /* Write Enable Latch bit */ ++#define X1205_SR_RWEL 0x04 /* Register Write Enable Bit */ ++ ++#define X1205_HR_MIL 0x80 /* set in ccr.hour for 24 hr mode */ + + extern int x1205_do_command(unsigned int cmd, void *arg); +-extern int x1205_direct_attach(int adapter_id, +- struct i2c_client_address_data *address_data); + +-#endif /* __LINUX_X1205_H__ */ diff --git a/packages/linux/nslu2-kernel/2.6.14-mm/80-nslu2-class-device-create.patch b/packages/linux/nslu2-kernel/2.6.14-mm/80-nslu2-class-device-create.patch new file mode 100644 index 0000000000..116f95b2f7 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.14-mm/80-nslu2-class-device-create.patch @@ -0,0 +1,20 @@ +--- linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-io.c.orig 2005-11-07 22:26:36.010556202 -0800 ++++ linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-io.c 2005-11-07 22:27:15.921067613 -0800 +@@ -504,7 +504,7 @@ static int __init n2iom_init(void) + return -EBUSY; + } + else { +- class_device_create(n2lm_class, MKDEV(NSLU2LM_MAJOR, 0), NULL, "leds"); ++ class_device_create(n2lm_class, NULL, MKDEV(NSLU2LM_MAJOR, 0), NULL, "leds"); + } + #endif + +@@ -513,7 +513,7 @@ static int __init n2iom_init(void) + return -EBUSY; + } + else { +- class_device_create(n2lm_class, MKDEV(NSLU2BZ_MAJOR, 0), NULL, "buzzer"); ++ class_device_create(n2lm_class, NULL, MKDEV(NSLU2BZ_MAJOR, 0), NULL, "buzzer"); + } + + return 0; diff --git a/packages/linux/nslu2-kernel/2.6.14-rc5-mm1/defconfig b/packages/linux/nslu2-kernel/2.6.14-mm/defconfig index a0de10bc91..ecb422f0d7 100644 --- a/packages/linux/nslu2-kernel/2.6.14-rc5-mm1/defconfig +++ b/packages/linux/nslu2-kernel/2.6.14-mm/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.14-rc5-mm1 -# Wed Oct 26 21:32:12 2005 +# Linux kernel version: 2.6.14 +# Mon Nov 7 22:59:39 2005 # CONFIG_ARM=y CONFIG_MMU=y @@ -46,8 +46,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 CONFIG_CC_ALIGN_LABELS=0 CONFIG_CC_ALIGN_LOOPS=0 CONFIG_CC_ALIGN_JUMPS=0 +CONFIG_SLAB=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=1 +# CONFIG_SLOB is not set # # Loadable module support @@ -82,6 +84,7 @@ CONFIG_ARCH_IXP4XX=y # CONFIG_ARCH_LH7A40X is not set # CONFIG_ARCH_OMAP is not set # CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_REALVIEW is not set # CONFIG_ARCH_IMX is not set # CONFIG_ARCH_H720X is not set # CONFIG_ARCH_AAEC2000 is not set @@ -342,6 +345,10 @@ CONFIG_IPDDP_DECAP=y # CONFIG_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# # CONFIG_NET_SCHED is not set CONFIG_NET_CLS_ROUTE=y @@ -929,7 +936,7 @@ CONFIG_SENSORS_EEPROM=y # CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_RTC8564 is not set # CONFIG_SENSORS_MAX6875 is not set -# CONFIG_RTC_X1205_I2C is not set +CONFIG_SENSORS_X1205=y # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -1016,6 +1023,7 @@ CONFIG_VIDEO_DPC=m CONFIG_VIDEO_HEXIUM_ORION=m CONFIG_VIDEO_HEXIUM_GEMINI=m CONFIG_VIDEO_CX88=m +# CONFIG_VIDEO_EM28XX is not set CONFIG_VIDEO_OVCAMCHIP=m # @@ -1189,6 +1197,7 @@ CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_SDDR55 is not set # CONFIG_USB_STORAGE_JUMPSHOT is not set # CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_LIBUSUAL is not set # # USB Input Devices @@ -1286,6 +1295,7 @@ CONFIG_USB_SERIAL_KEYSPAN_PDA=m CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_NOKIA_DKU2 is not set CONFIG_USB_SERIAL_PL2303=m # CONFIG_USB_SERIAL_HP4X is not set CONFIG_USB_SERIAL_SAFE=m diff --git a/packages/linux/nslu2-kernel/2.6.14/19-jffs2-force-be.patch b/packages/linux/nslu2-kernel/2.6.14/19-jffs2-force-be.patch new file mode 100644 index 0000000000..4406d17857 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.14/19-jffs2-force-be.patch @@ -0,0 +1,13 @@ +--- linux-2.6.14.1/fs/jffs2/nodelist.h.orig 2005-11-09 23:12:29.641449728 -0800 ++++ linux-2.6.14.1/fs/jffs2/nodelist.h 2005-11-09 23:13:19.228570049 -0800 +@@ -44,7 +44,9 @@ + #define D2(x) + #endif + +-#define JFFS2_NATIVE_ENDIAN ++#undef JFFS2_NATIVE_ENDIAN ++#define JFFS2_BIG_ENDIAN 1 ++#undef JFFS2_LITTLE_ENDIAN + + /* Note we handle mode bits conversion from JFFS2 (i.e. Linux) to/from + whatever OS we're actually running on here too. */ diff --git a/packages/linux/nslu2-kernel/2.6.14/20-timer.patch b/packages/linux/nslu2-kernel/2.6.14/20-timer.patch index 5d78ce25eb..3d4a03f616 100644 --- a/packages/linux/nslu2-kernel/2.6.14/20-timer.patch +++ b/packages/linux/nslu2-kernel/2.6.14/20-timer.patch @@ -1,16 +1,285 @@ -diff -urN linux-2.6.13.1/include/asm-arm/arch-ixp4xx/timex.h nslu2-2.6.13.1/include/asm-arm/arch-ixp4xx/timex.h ---- linux-2.6.13.1/include/asm-arm/arch-ixp4xx/timex.h 2005-09-17 12:42:45.000000000 +0200 -+++ nslu2-2.6.13.1/include/asm-arm/arch-ixp4xx/timex.h 2005-09-17 12:15:31.000000000 +0200 -@@ -9,7 +9,12 @@ - * We use IXP425 General purpose timer for our timer needs, it runs at - * 66.66... MHz. We do a convulted calculation of CLOCK_TICK_RATE b/c the - * timer register ignores the bottom 2 bits of the LATCH value. -+ * The NSLU2 has a 33.00MHz crystal, so a different FREQ is required. - */ -+#ifdef CONFIG_MACH_NSLU2 -+#define FREQ 66000000 -+#else - #define FREQ 66666666 +--- linux-2.6.15/arch/arm/mach-ixp4xx/common.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/arch/arm/mach-ixp4xx/common.c 1970-01-01 00:00:00.000000000 +0000 +@@ -239,36 +239,165 @@ void __init ixp4xx_init_irq(void) + * IXP4xx timer tick + * We use OS timer1 on the CPU for the timer tick and the timestamp + * counter as a source of real clock ticks to account for missed jiffies. ++ * ++ * 'CLOCK_TICK_RATE' is the nominal number of internal ticks per second, ++ * this is significantly greater than the actual number on any ixp4xx ++ * board. Neither this nor 'LATCH' are required by this code because ++ * the only requirement is to generate HZ timer_tick calls per second. + *************************************************************************/ ++#if TICK_NSEC * HZ != 1000000000 ++ /* This will cause the jiffies to drift unnecessarily. */ ++# error CLOCK_TICK_RATE should be a multiple of HZ for this code ++#endif ++ ++/* These are the control registers for the interrupt handler, they must ++ * only be read and written by the interrupt handler and by the init ++ * method (which sets them to 0). ++ */ ++static volatile u32 last_timer_time; ++static volatile int accumulated_error; ++ ++/* Most ixp4xx boards have 66.6666MHz crystals, so default to this, reset ++ * this from the board level code if required. The following variables ++ * must be *written* only by set_board_tick_rate ++ */ ++static u32 board_tick_rate; ++static u32 board_tick_per_1000; /* board_tick_rate/1000 */ ++static u32 timer_count; ++ ++/* The following symbol may be written to change the current tick rate, ++ * it is read by the interrupt handler and used to reload the timer. ++ * The 'real' value (the one in use) is 'board_tick_rate' above. ++ * NOTE: this can be tweaked to match the actual crystal on a particular ++ * machine. ++ */ ++volatile u32 ixp4xx_board_tick_rate = 66666600; ++EXPORT_SYMBOL(ixp4xx_board_tick_rate); ++ ++/* The set API may run asynchronously in the presence of interrupts, ++ * everything it does it is both atomic and complete (notice that it ++ * doesn't change any of the 'volatile' values). The mathematics in ++ * here require the following values. Changing the board tick rate ++ * implies an unknown error in the current timestamp tick count. ++ */ ++#if IXP4XX_OST_RELOAD_MASK != 3 || IXP4XX_OST_ENABLE != 1 ++# error unexpected value for timer reload mask +#endif - #define CLOCK_TICK_RATE (((FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ) ++static void set_board_tick_rate(u32 rate) { ++ u32 reload; ++ ++ /* Store the two effectively informational rate values, the ++ * error calculation is (rate - count*HZ) (above), and rate ++ * is changed first, this can cause a temporary error which ++ * will be corrected on the next interrupt. ++ */ ++ board_tick_rate = rate; ++ board_tick_per_1000 = (rate+500)/1000; ++ ++ /* Calculate the correct value to load into the timer countdown ++ * register, the low two bits must be b01 (to enable the timer). ++ * Select the top bits to be as close to the desired value as ++ * possible. ++ * ++ * First find the best value, regardless of the low two bits - ++ * this is the value used in the interrupt calculation even though ++ * it cannot necessarily be set into the register. ++ */ ++ timer_count = (rate + (HZ/2))/HZ; ++ ++ /* Now the timer_ticks are being generated at this rate, calculate ++ * an appropriate value for the register. This stores a 30 bit ++ * value which gives a period of 4*x+1, we want: ++ * ++ * 4*x+1 = board_tick_rate/HZ ++ * ++ * This needs to be rounded to the closest 4*HZ value: ++ * ++ * x = ((board_tick_rate-HZ) + (4*HZ)/2) / 4*HZ ++ * x = (board_tick_rate+HZ) / (4*HZ); ++ */ ++ reload = (board_tick_rate + HZ) / HZ; ++ reload = (reload & ~IXP4XX_OST_RELOAD_MASK) | IXP4XX_OST_ENABLE; ++ *IXP4XX_OSRT1 = reload; + +-static unsigned volatile last_jiffy_time; ++ /* If the clock is drifing, look in syslog: */ ++ printk(KERN_INFO "IXP4xx: FREQ=%d COUNT=%d\n", rate, reload); ++} + +-#define CLOCK_TICKS_PER_USEC ((CLOCK_TICK_RATE + USEC_PER_SEC/2) / USEC_PER_SEC) ++/* This returns the time in timer ticks since the 'last_timer_time' ++ * recorded above. Use this to avoid arithmetic errors because of ++ * the overflow when the timer wraps. ++ */ ++static inline u32 ixp4xx_timer_delta(void) ++{ ++ return *IXP4XX_OSTS - last_timer_time; ++} + + /* IRQs are disabled before entering here from do_gettimeofday() */ + static unsigned long ixp4xx_gettimeoffset(void) + { +- u32 elapsed; +- +- elapsed = *IXP4XX_OSTS - last_jiffy_time; ++ /* Return the offset of the current time from the last time ++ * timer tick in microseconds. This is only used for the ++ * gettimeofday call. ++ * ++ * The result of this API is at most about 20000 (for a 50Hz ++ * HZ - 20000 uS/tick), the input delta is at most about ++ * 1.3M - 21 bits. ++ */ ++ u32 delta = ixp4xx_timer_delta(); /* About 21 bits max */ ++ /* return delta * 1000000 / board_tick_rate; */ ++ return (delta * 1000 + board_tick_per_1000/2) / board_tick_per_1000; ++} + +- return elapsed / CLOCK_TICKS_PER_USEC; ++/* This is the correct adjustment to the counter to compensate for an ++ * error iff timer_count-1 <= exact_count <= timer_count+1 ++ */ ++static inline int adjustment(int error) { ++ if (error >= HZ) ++ return 1; ++ else if (error <= -HZ) ++ return -1; ++ return 0; + } + + static irqreturn_t ixp4xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) + { ++ u32 rate; ++ u32 count; ++ int error; ++ + write_seqlock(&xtime_lock); + + /* Clear Pending Interrupt by writing '1' to it */ + *IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND; + ++ /* If the board tick rate has been changed update the cached ++ * value. ++ */ ++ if (ixp4xx_board_tick_rate != board_tick_rate) { ++ set_board_tick_rate(ixp4xx_board_tick_rate); ++ accumulated_error = 0; ++ } ++ + /* + * Catch up with the real idea of time ++ * ++ * board_tick_rate: actual ixp4xx ticks/second, read-only ++ * accumulated_error: aggregate error/tick * HZ, read/write ++ * timer_count: best ixp4xx ticks per timer_tick, read-only + */ +- while ((*IXP4XX_OSTS - last_jiffy_time) > LATCH) { ++ rate = board_tick_rate; ++ error = accumulated_error; ++ count = timer_count; ++ do { ++ u32 adjusted_count = count + adjustment(error); ++ if (ixp4xx_timer_delta() < adjusted_count) ++ break; + timer_tick(regs); +- last_jiffy_time += LATCH; +- } ++ last_timer_time += adjusted_count; ++ error += rate - adjusted_count*HZ; ++ } while (1); ++ accumulated_error = error; + + write_sequnlock(&xtime_lock); + +@@ -281,17 +410,30 @@ static struct irqaction ixp4xx_timer_irq + .handler = ixp4xx_timer_interrupt, + }; + ++u32 ixp4xx_get_board_tick_rate(void) { ++ return board_tick_rate; ++} ++ ++EXPORT_SYMBOL(ixp4xx_get_board_tick_rate); ++ ++void ixp4xx_set_board_tick_rate(u32 rate) { ++ ixp4xx_board_tick_rate = rate; ++} ++ ++EXPORT_SYMBOL(ixp4xx_set_board_tick_rate); ++ + static void __init ixp4xx_timer_init(void) + { + /* Clear Pending Interrupt by writing '1' to it */ + *IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND; + + /* Setup the Timer counter value */ +- *IXP4XX_OSRT1 = (LATCH & ~IXP4XX_OST_RELOAD_MASK) | IXP4XX_OST_ENABLE; ++ set_board_tick_rate(ixp4xx_board_tick_rate); + + /* Reset time-stamp counter */ + *IXP4XX_OSTS = 0; +- last_jiffy_time = 0; ++ last_timer_time = 0; ++ accumulated_error = 0; + + /* Connect the interrupt handler and enable the interrupt */ + setup_irq(IRQ_IXP4XX_TIMER1, &ixp4xx_timer_irq); +@@ -337,4 +479,3 @@ void __init ixp4xx_sys_init(void) + ARRAY_SIZE(ixp46x_devices)); + } + } +- +--- linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-setup.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-setup.c 1970-01-01 00:00:00.000000000 +0000 +@@ -119,6 +119,11 @@ static void nslu2_power_off(void) + + static void __init nslu2_init(void) + { ++ /* The NSLU2 has a 33MHz crystal on board - 1.01% different ++ * from the typical value. ++ */ ++ ixp4xx_set_board_tick_rate(66000000); ++ + ixp4xx_sys_init(); + + pm_power_off = nslu2_power_off; +--- linux-2.6.15/drivers/input/misc/nslu2spkr.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/drivers/input/misc/nslu2spkr.c 1970-01-01 00:00:00.000000000 +0000 +@@ -51,7 +51,7 @@ static int nslu2_spkr_event(struct input + } + + if (value > 20 && value < 32767) +- count = (NSLU2_FREQ / (value*4)) - 1; ++ count = (ixp4xx_get_board_tick_rate() / (value*4)) - 1; + + spin_lock_irqsave(&beep_lock, flags); + +--- linux-2.6.15/include/asm-arm/arch-ixp4xx/nslu2.h 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/include/asm-arm/arch-ixp4xx/nslu2.h 1970-01-01 00:00:00.000000000 +0000 +@@ -38,11 +38,6 @@ + #define NSLU2_PCI_INTD_PIN 8 + + +-/* NSLU2 Timer */ +-#define NSLU2_FREQ 66000000 +-#define NSLU2_CLOCK_TICK_RATE (((NSLU2_FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ) +-#define NSLU2_CLOCK_TICKS_PER_USEC ((NSLU2_CLOCK_TICK_RATE + USEC_PER_SEC/2) / USEC_PER_SEC) +- + /* GPIO */ + + #define NSLU2_GPIO0 0 +--- linux-2.6.15/include/asm-arm/arch-ixp4xx/timex.h 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/include/asm-arm/arch-ixp4xx/timex.h 1970-01-01 00:00:00.000000000 +0000 +@@ -6,10 +6,23 @@ + #include <asm/hardware.h> + + /* +- * We use IXP425 General purpose timer for our timer needs, it runs at +- * 66.66... MHz. We do a convulted calculation of CLOCK_TICK_RATE b/c the +- * timer register ignores the bottom 2 bits of the LATCH value. ++ * In linux/timex.h 'LATCH' is defined as CLOCK_TICK_RATE/HZ and ++ * is the number of internal counts per timer interrupt. Thus ++ * CLOCK_TICK_RATE is LATCH*HZ. ++ * ++ * The actual values of these numbers do not matter, because they ++ * are only used to calculate ACTHZ (rate/latch as a 24.8 fixed ++ * point number), so the value here gives a LATCH of 1 and pretty ++ * much guarantees to flush out any off-by-one errors. ++ * ++ * ACTHZ is equal to HZ, because CLOCK_TICK_RATE is a multiple of ++ * HZ, this is checked in the ixp4xx/common.c code. + */ +-#define FREQ 66666666 +-#define CLOCK_TICK_RATE (((FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ) ++#define CLOCK_TICK_RATE HZ ++/* The following allow the exact board tick rate to be set and ++ * discovered. The value should be exactly twice the frequency ++ * (in Hz) of the onboard crystal. ++ */ ++extern u32 ixp4xx_get_board_tick_rate(void); ++extern void ixp4xx_set_board_tick_rate(u32 new_rate); diff --git a/packages/linux/nslu2-kernel/2.6.14/50-nslu2-arch.patch b/packages/linux/nslu2-kernel/2.6.14/50-nslu2-arch.patch index 7d15e75ed4..038c71c3b3 100644 --- a/packages/linux/nslu2-kernel/2.6.14/50-nslu2-arch.patch +++ b/packages/linux/nslu2-kernel/2.6.14/50-nslu2-arch.patch @@ -1,39 +1,33 @@ ---- linux-2.6.13/arch/arm/boot/compressed/head.S 2005-08-28 16:41:01.000000000 -0700 -+++ linux-2.6.13/arch/arm/boot/compressed/head.S 2005-10-26 15:23:39.646352497 -0700 -@@ -37,6 +37,7 @@ - defined(CONFIG_ARCH_INTEGRATOR) || \ - defined(CONFIG_ARCH_PXA) || \ - defined(CONFIG_ARCH_IXP4XX) || \ -+ defined(CONFIG_MACH_NSLU2) || \ - defined(CONFIG_ARCH_IXP2000) || \ - defined(CONFIG_ARCH_LH7A40X) || \ - defined(CONFIG_ARCH_OMAP) ---- linux-2.6.13/arch/arm/mach-ixp4xx/Kconfig 2005-08-28 16:41:01.000000000 -0700 -+++ linux-2.6.13/arch/arm/mach-ixp4xx/Kconfig 2005-10-26 15:23:39.646352497 -0700 -@@ -43,6 +43,12 @@ config MACH_IXDP465 - IXDP465 Development Platform (Also known as BMP). - For more information on this platform, see <file:Documentation/arm/IXP4xx>. +--- linux-2.6.14/arch/arm/mach-ixp4xx/Kconfig 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.14/arch/arm/mach-ixp4xx/Kconfig 1970-01-01 00:00:00.000000000 +0000 +@@ -8,6 +8,16 @@ menu "Intel IXP4xx Implementation Option -+config MACH_NSLU2 -+ bool "NSLU2" -+ help -+ Say 'Y' here if you want your kernel to support Linksys's -+ NSLU2 NAS device. For more information on this platform, -+ see http://www.nslu2-linux.org + comment "IXP4xx Platforms" - # - # IXCDP1100 is the exact same HW as IXDP425, but with a different machine ---- linux-2.6.13/arch/arm/mach-ixp4xx/Makefile 2005-08-28 16:41:01.000000000 -0700 -+++ linux-2.6.13/arch/arm/mach-ixp4xx/Makefile 2005-10-26 15:23:39.646352497 -0700 ++# This entry is placed on top because otherwise it would have ++# been shown as a submenu. ++config MACH_NSLU2 ++ bool ++ prompt "NSLU2" if !(MACH_IXDP465 || MACH_IXDPG425 || ARCH_IXDP425 || ARCH_ADI_COYOTE || ARCH_AVILA || ARCH_IXCDP1100 || ARCH_PRPMC1100 || MACH_GTWX5715) ++ help ++ Say 'Y' here if you want your kernel to support Linksys's ++ NSLU2 NAS device. For more information on this platform, ++ see http://www.nslu2-linux.org ++ + config ARCH_AVILA + bool "Avila" + help +--- linux-2.6.14/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.14/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -8,4 +8,5 @@ obj-$(CONFIG_ARCH_IXDP4XX) += ixdp425-pc obj-$(CONFIG_MACH_IXDPG425) += ixdpg425-pci.o coyote-setup.o obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o obj-$(CONFIG_MACH_GTWX5715) += gtwx5715-pci.o gtwx5715-setup.o +obj-$(CONFIG_MACH_NSLU2) += nslu2-pci.o nslu2-setup.o nslu2-power.o ---- linux-2.6.13/arch/arm/mach-ixp4xx/nslu2-pci.c 2005-10-26 15:19:43.171472071 -0700 -+++ linux-2.6.13/arch/arm/mach-ixp4xx/nslu2-pci.c 2005-10-26 15:23:39.646352497 -0700 -@@ -0,0 +1,78 @@ +--- linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-pci.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-pci.c 1970-01-01 00:00:00.000000000 +0000 +@@ -0,0 +1,77 @@ +/* + * arch/arm/mach-ixp4xx/nslu2-pci.c + * @@ -87,8 +81,7 @@ + + if (slot >= 1 && slot <= NSLU2_PCI_MAX_DEV && + pin >= 1 && pin <= NSLU2_PCI_IRQ_LINES) { -+ irq = pci_irq_table[ -+ (slot + pin - 2) % NSLU2_PCI_IRQ_LINES]; ++ irq = pci_irq_table[(slot + pin - 2) % NSLU2_PCI_IRQ_LINES]; + } + + return irq; @@ -112,9 +105,9 @@ +} + +subsys_initcall(nslu2_pci_init); ---- linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-power.c 2005-09-06 00:17:15.000000000 -0700 -+++ linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-power.c 2005-10-28 15:50:43.554157030 -0700 -@@ -0,0 +1,94 @@ +--- linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-power.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-power.c 1970-01-01 00:00:00.000000000 +0000 +@@ -0,0 +1,92 @@ +/* + * arch/arm/mach-ixp4xx/nslu2-power.c + * @@ -122,7 +115,7 @@ + * + * Copyright (C) 2005 Tower Technologies + * -+ * based on nslu2-io.c ++ * based on nslu2-io.c + * Copyright (C) 2004 Karen Spearel + * + * Author: Alessandro Zummo <a.zummo@towertech.it> @@ -166,8 +159,6 @@ + if (!(machine_is_nslu2())) + return 0; + -+ printk(KERN_INFO "NSLU2: power/reset\n"); -+ + *IXP4XX_GPIO_GPISR = 0x20400000; /* read the 2 irqs to clr */ + + set_irq_type(NSLU2_RB_IRQ, IRQT_LOW); @@ -191,7 +182,7 @@ + printk(KERN_DEBUG "Power Button IRQ %d not available\n", + NSLU2_PB_IRQ); + -+ return -EIO; ++ return -EIO; + } + + return 0; @@ -209,8 +200,8 @@ +MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>"); +MODULE_DESCRIPTION("NSLU2 Power/Reset driver"); +MODULE_LICENSE("GPL"); ---- linux-2.6.13/arch/arm/mach-ixp4xx/nslu2-setup.c 2005-10-26 15:19:43.171472071 -0700 -+++ linux-2.6.13/arch/arm/mach-ixp4xx/nslu2-setup.c 2005-10-26 15:23:39.646352497 -0700 +--- linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-setup.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-setup.c 1970-01-01 00:00:00.000000000 +0000 @@ -0,0 +1,134 @@ +/* + * arch/arm/mach-ixp4xx/nslu2-setup.c @@ -224,7 +215,7 @@ + * Maintainers: http://www.nslu2-linux.org/ + * + * Fixed missing init_time in MACHINE_START kas11 10/22/04 -+ * Changed to conform to new style __init ixdp425 kas11 10/22/04 ++ * Changed to conform to new style __init ixdp425 kas11 10/22/04 + */ + +#include <linux/kernel.h> @@ -346,8 +337,8 @@ + .timer = &ixp4xx_timer, + .init_machine = nslu2_init, +MACHINE_END ---- linux-2.6.13/include/asm-arm/arch-ixp4xx/hardware.h 2005-10-26 15:19:37.451112111 -0700 -+++ linux-2.6.13/include/asm-arm/arch-ixp4xx/hardware.h 2005-10-26 15:23:39.650352748 -0700 +--- linux-2.6.14/include/asm-arm/arch-ixp4xx/hardware.h 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.14/include/asm-arm/arch-ixp4xx/hardware.h 1970-01-01 00:00:00.000000000 +0000 @@ -44,5 +44,6 @@ extern unsigned int processor_id; #include "ixdp425.h" #include "coyote.h" @@ -355,8 +346,8 @@ +#include "nslu2.h" #endif /* _ASM_ARCH_HARDWARE_H */ ---- linux-2.6.13/include/asm-arm/arch-ixp4xx/irqs.h 2005-08-28 16:41:01.000000000 -0700 -+++ linux-2.6.13/include/asm-arm/arch-ixp4xx/irqs.h 2005-10-26 15:23:39.650352748 -0700 +--- linux-2.6.14/include/asm-arm/arch-ixp4xx/irqs.h 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.14/include/asm-arm/arch-ixp4xx/irqs.h 1970-01-01 00:00:00.000000000 +0000 @@ -93,4 +93,11 @@ #define IRQ_COYOTE_PCI_SLOT1 IRQ_IXP4XX_GPIO11 #define IRQ_COYOTE_IDE IRQ_IXP4XX_GPIO5 @@ -369,8 +360,8 @@ +#define IRQ_NSLU2_PCI_INTC IRQ_IXP4XX_GPIO9 + #endif ---- linux-2.6.13/include/asm-arm/arch-ixp4xx/nslu2.h 2005-10-26 15:19:43.175472322 -0700 -+++ linux-2.6.13/include/asm-arm/arch-ixp4xx/nslu2.h 2005-10-26 15:23:39.650352748 -0700 +--- linux-2.6.14/include/asm-arm/arch-ixp4xx/nslu2.h 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.14/include/asm-arm/arch-ixp4xx/nslu2.h 1970-01-01 00:00:00.000000000 +0000 @@ -0,0 +1,96 @@ +/* + * include/asm-arm/arch-ixp4xx/nslu2.h diff --git a/packages/linux/nslu2-kernel/2.6.15/.mtn2git_empty b/packages/linux/nslu2-kernel/2.6.15/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.15/.mtn2git_empty diff --git a/packages/linux/nslu2-kernel/2.6.15/00-memory-h-page-shift.patch b/packages/linux/nslu2-kernel/2.6.15/00-memory-h-page-shift.patch new file mode 100644 index 0000000000..29b048e27a --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.15/00-memory-h-page-shift.patch @@ -0,0 +1,10 @@ +--- linux-2.6.15/include/asm-arm/arch-ixp4xx/memory.h 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/include/asm-arm/arch-ixp4xx/memory.h 1970-01-01 00:00:00.000000000 +0000 +@@ -8,6 +8,7 @@ + #define __ASM_ARCH_MEMORY_H + + #include <asm/sizes.h> ++#include <asm/page.h> + + /* + * Physical DRAM offset. diff --git a/packages/linux/nslu2-kernel/2.6.15/01-i2c-ixp4xx.patch b/packages/linux/nslu2-kernel/2.6.15/01-i2c-ixp4xx.patch new file mode 100644 index 0000000000..16426bdee6 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.15/01-i2c-ixp4xx.patch @@ -0,0 +1,29 @@ +--- linux-2.6.15/drivers/i2c/busses/i2c-ixp4xx.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/drivers/i2c/busses/i2c-ixp4xx.c 1970-01-01 00:00:00.000000000 +0000 +@@ -35,7 +35,7 @@ + + #include <asm/hardware.h> /* Pick up IXP4xx-specific bits */ + +-static struct device_driver ixp4xx_i2c_driver; ++static struct platform_driver ixp4xx_i2c_driver; + + static inline int ixp4xx_scl_pin(void *data) + { +@@ -128,7 +128,7 @@ static int ixp4xx_i2c_probe(struct platf + drv_data->algo_data.timeout = 100; + + drv_data->adapter.id = I2C_HW_B_IXP4XX; +- strlcpy(drv_data->adapter.name, ixp4xx_i2c_driver.name, ++ strlcpy(drv_data->adapter.name, ixp4xx_i2c_driver.driver.name, + I2C_NAME_SIZE); + drv_data->adapter.algo_data = &drv_data->algo_data; + +@@ -140,7 +140,7 @@ static int ixp4xx_i2c_probe(struct platf + gpio_line_set(gpio->sda_pin, 0); + + if ((err = i2c_bit_add_bus(&drv_data->adapter) != 0)) { +- printk(KERN_ERR "ERROR: Could not install %s\n", dev->bus_id); ++ printk(KERN_ERR "ERROR: Could not install %s\n", ixp4xx_i2c_driver.driver.name); + + kfree(drv_data); + return err; diff --git a/packages/linux/nslu2-kernel/2.6.15/10-mtdpart-redboot-fis-byteswap.patch b/packages/linux/nslu2-kernel/2.6.15/10-mtdpart-redboot-fis-byteswap.patch new file mode 100644 index 0000000000..edee083e3c --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.15/10-mtdpart-redboot-fis-byteswap.patch @@ -0,0 +1,44 @@ +On IXP4XX systems the FIS directory is big endian even with a little +endian kernel. This patch recognises the FIS directory on such a +system and byte swaps it to obtain a valid table based on the 'size' +field of the FIS directory (the size field is know to always match the +erase block size on such systems, and probably all systems.) + +--- linux-2.6.15/drivers/mtd/redboot.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/drivers/mtd/redboot.c 1970-01-01 00:00:00.000000000 +0000 +@@ -89,8 +89,34 @@ + i = numslots; + break; + } +- if (!memcmp(buf[i].name, "FIS directory", 14)) ++ if (!memcmp(buf[i].name, "FIS directory", 14)) { ++ /* This is apparently the FIS directory entry for the ++ * FIS directory itself. The FIS directory size is ++ * one erase block, if the buf[i].size field is ++ * swab32(erasesize) then we know we are looking at ++ * a byte swapped FIS directory - swap all the entries! ++ * (NOTE: this is 'size' not 'data_length', size is ++ * the full size of the entry.) ++ */ ++ if (swab32(buf[i].size) == master->erasesize) { ++ int j; ++ for (j = 0; j < numslots && buf[j].name[0] != 0xff; ++j) { ++ /* The unsigned long fields were written with the ++ * wrong byte sex, name and pad have no byte sex. ++ */ ++# define do_swab32(x) (x) = swab32(x) ++ do_swab32(buf[j].flash_base); ++ do_swab32(buf[j].mem_base); ++ do_swab32(buf[j].size); ++ do_swab32(buf[j].entry_point); ++ do_swab32(buf[j].data_length); ++ do_swab32(buf[j].desc_cksum); ++ do_swab32(buf[j].file_cksum); ++# undef do_swab32 ++ } ++ } + break; ++ } + } + if (i == numslots) { + /* Didn't find it */ diff --git a/packages/linux/nslu2-kernel/2.6.15/19-jffs2-force-be.patch b/packages/linux/nslu2-kernel/2.6.15/19-jffs2-force-be.patch new file mode 100644 index 0000000000..09379031dd --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.15/19-jffs2-force-be.patch @@ -0,0 +1,13 @@ +--- linux-2.6.15/fs/jffs2/nodelist.h 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/fs/jffs2/nodelist.h 1970-01-01 00:00:00.000000000 +0000 +@@ -44,7 +44,9 @@ + #define D2(x) + #endif + +-#define JFFS2_NATIVE_ENDIAN ++#undef JFFS2_NATIVE_ENDIAN ++#define JFFS2_BIG_ENDIAN 1 ++#undef JFFS2_LITTLE_ENDIAN + + /* Note we handle mode bits conversion from JFFS2 (i.e. Linux) to/from + whatever OS we're actually running on here too. */ diff --git a/packages/linux/nslu2-kernel/2.6.15/20-timer.patch b/packages/linux/nslu2-kernel/2.6.15/20-timer.patch new file mode 100644 index 0000000000..3d4a03f616 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.15/20-timer.patch @@ -0,0 +1,285 @@ +--- linux-2.6.15/arch/arm/mach-ixp4xx/common.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/arch/arm/mach-ixp4xx/common.c 1970-01-01 00:00:00.000000000 +0000 +@@ -239,36 +239,165 @@ void __init ixp4xx_init_irq(void) + * IXP4xx timer tick + * We use OS timer1 on the CPU for the timer tick and the timestamp + * counter as a source of real clock ticks to account for missed jiffies. ++ * ++ * 'CLOCK_TICK_RATE' is the nominal number of internal ticks per second, ++ * this is significantly greater than the actual number on any ixp4xx ++ * board. Neither this nor 'LATCH' are required by this code because ++ * the only requirement is to generate HZ timer_tick calls per second. + *************************************************************************/ ++#if TICK_NSEC * HZ != 1000000000 ++ /* This will cause the jiffies to drift unnecessarily. */ ++# error CLOCK_TICK_RATE should be a multiple of HZ for this code ++#endif ++ ++/* These are the control registers for the interrupt handler, they must ++ * only be read and written by the interrupt handler and by the init ++ * method (which sets them to 0). ++ */ ++static volatile u32 last_timer_time; ++static volatile int accumulated_error; ++ ++/* Most ixp4xx boards have 66.6666MHz crystals, so default to this, reset ++ * this from the board level code if required. The following variables ++ * must be *written* only by set_board_tick_rate ++ */ ++static u32 board_tick_rate; ++static u32 board_tick_per_1000; /* board_tick_rate/1000 */ ++static u32 timer_count; ++ ++/* The following symbol may be written to change the current tick rate, ++ * it is read by the interrupt handler and used to reload the timer. ++ * The 'real' value (the one in use) is 'board_tick_rate' above. ++ * NOTE: this can be tweaked to match the actual crystal on a particular ++ * machine. ++ */ ++volatile u32 ixp4xx_board_tick_rate = 66666600; ++EXPORT_SYMBOL(ixp4xx_board_tick_rate); ++ ++/* The set API may run asynchronously in the presence of interrupts, ++ * everything it does it is both atomic and complete (notice that it ++ * doesn't change any of the 'volatile' values). The mathematics in ++ * here require the following values. Changing the board tick rate ++ * implies an unknown error in the current timestamp tick count. ++ */ ++#if IXP4XX_OST_RELOAD_MASK != 3 || IXP4XX_OST_ENABLE != 1 ++# error unexpected value for timer reload mask ++#endif ++static void set_board_tick_rate(u32 rate) { ++ u32 reload; ++ ++ /* Store the two effectively informational rate values, the ++ * error calculation is (rate - count*HZ) (above), and rate ++ * is changed first, this can cause a temporary error which ++ * will be corrected on the next interrupt. ++ */ ++ board_tick_rate = rate; ++ board_tick_per_1000 = (rate+500)/1000; ++ ++ /* Calculate the correct value to load into the timer countdown ++ * register, the low two bits must be b01 (to enable the timer). ++ * Select the top bits to be as close to the desired value as ++ * possible. ++ * ++ * First find the best value, regardless of the low two bits - ++ * this is the value used in the interrupt calculation even though ++ * it cannot necessarily be set into the register. ++ */ ++ timer_count = (rate + (HZ/2))/HZ; ++ ++ /* Now the timer_ticks are being generated at this rate, calculate ++ * an appropriate value for the register. This stores a 30 bit ++ * value which gives a period of 4*x+1, we want: ++ * ++ * 4*x+1 = board_tick_rate/HZ ++ * ++ * This needs to be rounded to the closest 4*HZ value: ++ * ++ * x = ((board_tick_rate-HZ) + (4*HZ)/2) / 4*HZ ++ * x = (board_tick_rate+HZ) / (4*HZ); ++ */ ++ reload = (board_tick_rate + HZ) / HZ; ++ reload = (reload & ~IXP4XX_OST_RELOAD_MASK) | IXP4XX_OST_ENABLE; ++ *IXP4XX_OSRT1 = reload; + +-static unsigned volatile last_jiffy_time; ++ /* If the clock is drifing, look in syslog: */ ++ printk(KERN_INFO "IXP4xx: FREQ=%d COUNT=%d\n", rate, reload); ++} + +-#define CLOCK_TICKS_PER_USEC ((CLOCK_TICK_RATE + USEC_PER_SEC/2) / USEC_PER_SEC) ++/* This returns the time in timer ticks since the 'last_timer_time' ++ * recorded above. Use this to avoid arithmetic errors because of ++ * the overflow when the timer wraps. ++ */ ++static inline u32 ixp4xx_timer_delta(void) ++{ ++ return *IXP4XX_OSTS - last_timer_time; ++} + + /* IRQs are disabled before entering here from do_gettimeofday() */ + static unsigned long ixp4xx_gettimeoffset(void) + { +- u32 elapsed; +- +- elapsed = *IXP4XX_OSTS - last_jiffy_time; ++ /* Return the offset of the current time from the last time ++ * timer tick in microseconds. This is only used for the ++ * gettimeofday call. ++ * ++ * The result of this API is at most about 20000 (for a 50Hz ++ * HZ - 20000 uS/tick), the input delta is at most about ++ * 1.3M - 21 bits. ++ */ ++ u32 delta = ixp4xx_timer_delta(); /* About 21 bits max */ ++ /* return delta * 1000000 / board_tick_rate; */ ++ return (delta * 1000 + board_tick_per_1000/2) / board_tick_per_1000; ++} + +- return elapsed / CLOCK_TICKS_PER_USEC; ++/* This is the correct adjustment to the counter to compensate for an ++ * error iff timer_count-1 <= exact_count <= timer_count+1 ++ */ ++static inline int adjustment(int error) { ++ if (error >= HZ) ++ return 1; ++ else if (error <= -HZ) ++ return -1; ++ return 0; + } + + static irqreturn_t ixp4xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) + { ++ u32 rate; ++ u32 count; ++ int error; ++ + write_seqlock(&xtime_lock); + + /* Clear Pending Interrupt by writing '1' to it */ + *IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND; + ++ /* If the board tick rate has been changed update the cached ++ * value. ++ */ ++ if (ixp4xx_board_tick_rate != board_tick_rate) { ++ set_board_tick_rate(ixp4xx_board_tick_rate); ++ accumulated_error = 0; ++ } ++ + /* + * Catch up with the real idea of time ++ * ++ * board_tick_rate: actual ixp4xx ticks/second, read-only ++ * accumulated_error: aggregate error/tick * HZ, read/write ++ * timer_count: best ixp4xx ticks per timer_tick, read-only + */ +- while ((*IXP4XX_OSTS - last_jiffy_time) > LATCH) { ++ rate = board_tick_rate; ++ error = accumulated_error; ++ count = timer_count; ++ do { ++ u32 adjusted_count = count + adjustment(error); ++ if (ixp4xx_timer_delta() < adjusted_count) ++ break; + timer_tick(regs); +- last_jiffy_time += LATCH; +- } ++ last_timer_time += adjusted_count; ++ error += rate - adjusted_count*HZ; ++ } while (1); ++ accumulated_error = error; + + write_sequnlock(&xtime_lock); + +@@ -281,17 +410,30 @@ static struct irqaction ixp4xx_timer_irq + .handler = ixp4xx_timer_interrupt, + }; + ++u32 ixp4xx_get_board_tick_rate(void) { ++ return board_tick_rate; ++} ++ ++EXPORT_SYMBOL(ixp4xx_get_board_tick_rate); ++ ++void ixp4xx_set_board_tick_rate(u32 rate) { ++ ixp4xx_board_tick_rate = rate; ++} ++ ++EXPORT_SYMBOL(ixp4xx_set_board_tick_rate); ++ + static void __init ixp4xx_timer_init(void) + { + /* Clear Pending Interrupt by writing '1' to it */ + *IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND; + + /* Setup the Timer counter value */ +- *IXP4XX_OSRT1 = (LATCH & ~IXP4XX_OST_RELOAD_MASK) | IXP4XX_OST_ENABLE; ++ set_board_tick_rate(ixp4xx_board_tick_rate); + + /* Reset time-stamp counter */ + *IXP4XX_OSTS = 0; +- last_jiffy_time = 0; ++ last_timer_time = 0; ++ accumulated_error = 0; + + /* Connect the interrupt handler and enable the interrupt */ + setup_irq(IRQ_IXP4XX_TIMER1, &ixp4xx_timer_irq); +@@ -337,4 +479,3 @@ void __init ixp4xx_sys_init(void) + ARRAY_SIZE(ixp46x_devices)); + } + } +- +--- linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-setup.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-setup.c 1970-01-01 00:00:00.000000000 +0000 +@@ -119,6 +119,11 @@ static void nslu2_power_off(void) + + static void __init nslu2_init(void) + { ++ /* The NSLU2 has a 33MHz crystal on board - 1.01% different ++ * from the typical value. ++ */ ++ ixp4xx_set_board_tick_rate(66000000); ++ + ixp4xx_sys_init(); + + pm_power_off = nslu2_power_off; +--- linux-2.6.15/drivers/input/misc/nslu2spkr.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/drivers/input/misc/nslu2spkr.c 1970-01-01 00:00:00.000000000 +0000 +@@ -51,7 +51,7 @@ static int nslu2_spkr_event(struct input + } + + if (value > 20 && value < 32767) +- count = (NSLU2_FREQ / (value*4)) - 1; ++ count = (ixp4xx_get_board_tick_rate() / (value*4)) - 1; + + spin_lock_irqsave(&beep_lock, flags); + +--- linux-2.6.15/include/asm-arm/arch-ixp4xx/nslu2.h 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/include/asm-arm/arch-ixp4xx/nslu2.h 1970-01-01 00:00:00.000000000 +0000 +@@ -38,11 +38,6 @@ + #define NSLU2_PCI_INTD_PIN 8 + + +-/* NSLU2 Timer */ +-#define NSLU2_FREQ 66000000 +-#define NSLU2_CLOCK_TICK_RATE (((NSLU2_FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ) +-#define NSLU2_CLOCK_TICKS_PER_USEC ((NSLU2_CLOCK_TICK_RATE + USEC_PER_SEC/2) / USEC_PER_SEC) +- + /* GPIO */ + + #define NSLU2_GPIO0 0 +--- linux-2.6.15/include/asm-arm/arch-ixp4xx/timex.h 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/include/asm-arm/arch-ixp4xx/timex.h 1970-01-01 00:00:00.000000000 +0000 +@@ -6,10 +6,23 @@ + #include <asm/hardware.h> + + /* +- * We use IXP425 General purpose timer for our timer needs, it runs at +- * 66.66... MHz. We do a convulted calculation of CLOCK_TICK_RATE b/c the +- * timer register ignores the bottom 2 bits of the LATCH value. ++ * In linux/timex.h 'LATCH' is defined as CLOCK_TICK_RATE/HZ and ++ * is the number of internal counts per timer interrupt. Thus ++ * CLOCK_TICK_RATE is LATCH*HZ. ++ * ++ * The actual values of these numbers do not matter, because they ++ * are only used to calculate ACTHZ (rate/latch as a 24.8 fixed ++ * point number), so the value here gives a LATCH of 1 and pretty ++ * much guarantees to flush out any off-by-one errors. ++ * ++ * ACTHZ is equal to HZ, because CLOCK_TICK_RATE is a multiple of ++ * HZ, this is checked in the ixp4xx/common.c code. + */ +-#define FREQ 66666666 +-#define CLOCK_TICK_RATE (((FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ) ++#define CLOCK_TICK_RATE HZ + ++/* The following allow the exact board tick rate to be set and ++ * discovered. The value should be exactly twice the frequency ++ * (in Hz) of the onboard crystal. ++ */ ++extern u32 ixp4xx_get_board_tick_rate(void); ++extern void ixp4xx_set_board_tick_rate(u32 new_rate); diff --git a/packages/linux/nslu2-kernel/2.6.15/55-rtc-x1205.patch b/packages/linux/nslu2-kernel/2.6.15/55-rtc-x1205.patch new file mode 100644 index 0000000000..70befe5fe4 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.15/55-rtc-x1205.patch @@ -0,0 +1,193 @@ + drivers/char/Kconfig | 4 + + drivers/char/Makefile | 1 + drivers/char/x1205-rtc.c | 162 +++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 167 insertions(+) + +--- linux-2.6.15/drivers/char/Kconfig 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/drivers/char/Kconfig 1970-01-01 00:00:00.000000000 +0000 +@@ -783,6 +783,10 @@ config RTC_VR41XX + tristate "NEC VR4100 series Real Time Clock Support" + depends on CPU_VR41XX + ++config RTC_X1205 ++ tristate "X1205 I2C RTC Support" ++ depends on I2C && RTC_X1205_I2C ++ + config COBALT_LCD + bool "Support for Cobalt LCD" + depends on MIPS_COBALT +--- linux-2.6.15/drivers/char/Makefile 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/drivers/char/Makefile 1970-01-01 00:00:00.000000000 +0000 +@@ -65,6 +65,7 @@ obj-$(CONFIG_SGI_IP27_RTC) += ip27-rtc.o + obj-$(CONFIG_DS1302) += ds1302.o + obj-$(CONFIG_S3C2410_RTC) += s3c2410-rtc.o + obj-$(CONFIG_RTC_VR41XX) += vr41xx_rtc.o ++obj-$(CONFIG_RTC_X1205) += x1205-rtc.o + ifeq ($(CONFIG_GENERIC_NVRAM),y) + obj-$(CONFIG_NVRAM) += generic_nvram.o + else +--- linux-2.6.15/drivers/char/x1205-rtc.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/drivers/char/x1205-rtc.c 1970-01-01 00:00:00.000000000 +0000 +@@ -0,0 +1,162 @@ ++/* ++ * drivers/char/x1205-rtc.c ++ * ++ * NSLU2 RTC driver ++ * ++ * Copyright (C) 2005 Tower Technologies ++ * ++ * based on the original X1205 NSLU2 driver ++ * Copyright (C) 2004 Karen Spearel ++ * ++ * Author: Alessandro Zummo <a.zummo@towertech.it> ++ * Maintainers: http://www.nslu2-linux.org/ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include <linux/module.h> ++#include <linux/device.h> ++#include <linux/time.h> ++#include <linux/rtc.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++ ++#include <linux/i2c.h> ++#include <linux/x1205.h> ++ ++#include <asm/rtc.h> ++ ++#define DRV_VERSION "0.9" ++ ++extern int (*set_rtc)(void); ++ ++static int x1205_set_rtc(void) ++{ ++ int err; ++ ++ struct rtc_time new_tm, old_tm; ++ unsigned long cur_secs = xtime.tv_sec; ++ ++ if ((err = x1205_do_command(X1205_CMD_GETDATETIME, &old_tm) == 0)) ++ return err; ++ ++ /* FIXME xtime.tv_nsec = old_tm.tm_sec * 10000000; */ ++ new_tm.tm_sec = cur_secs % 60; ++ cur_secs /= 60; ++ new_tm.tm_min = cur_secs % 60; ++ cur_secs /= 60; ++ new_tm.tm_hour = cur_secs % 24; ++ ++ /* ++ * avoid writing when we're going to change the day ++ * of the month. We will retry in the next minute. ++ * This basically means that if the RTC must not drift ++ * by more than 1 minute in 11 minutes. ++ */ ++ if ((old_tm.tm_hour == 23 && old_tm.tm_min == 59) || ++ (new_tm.tm_hour == 23 && new_tm.tm_min == 59)) ++ return 1; ++ ++ return x1205_do_command(X1205_CMD_SETTIME, &new_tm); ++} ++ ++static int x1205_rtc_read_alarm(struct rtc_wkalrm *alrm) ++{ ++ return x1205_do_command(X1205_CMD_GETALARM, &alrm->time); ++} ++ ++static int x1205_rtc_set_alarm(struct rtc_wkalrm *alrm) ++{ ++ return x1205_do_command(X1205_CMD_SETALARM, &alrm->time); ++} ++ ++static int x1205_rtc_read_time(struct rtc_time *tm) ++{ ++ return x1205_do_command(X1205_CMD_GETDATETIME, tm); ++} ++ ++static int x1205_rtc_set_time(struct rtc_time *tm) ++{ ++ return x1205_do_command(X1205_CMD_SETDATETIME, tm); ++} ++ ++static int x1205_rtc_proc(char *buf) ++{ ++ int err, dtrim, atrim; ++ char *p = buf; ++ ++ p += sprintf(p, "24hr\t\t: yes\n"); ++ ++ err = x1205_do_command(X1205_CMD_GETDTRIM, &dtrim); ++ if (err == 0) ++ p += sprintf(p, "digital_trim\t: %d ppm\n", dtrim); ++ ++ err = x1205_do_command(X1205_CMD_GETATRIM, &atrim); ++ if (err == 0) ++ p += sprintf(p, "analog_trim\t: %d.%02d pF\n", ++ atrim / 1000, atrim % 1000); ++ ++ return p - buf; ++} ++ ++static struct rtc_ops x1205_rtc_ops = { ++ .owner = THIS_MODULE, ++ .proc = x1205_rtc_proc, ++ .read_time = x1205_rtc_read_time, ++ .set_time = x1205_rtc_set_time, ++ .read_alarm = x1205_rtc_read_alarm, ++ .set_alarm = x1205_rtc_set_alarm, ++}; ++ ++static int x1205_rtc_probe(struct device *dev) ++{ ++ int ret; ++ ++ if ((ret = register_rtc(&x1205_rtc_ops)) != 0) ++ return ret; ++ ++ set_rtc = x1205_set_rtc; ++ ++ printk(KERN_INFO "x1205-rtc: real time clock\n"); ++ ++ return 0; ++} ++ ++static int x1205_rtc_remove(struct device *dev) ++{ ++ set_rtc = NULL; ++ ++ unregister_rtc(&x1205_rtc_ops); ++ ++ return 0; ++} ++ ++static struct device_driver x1205_rtc_driver = { ++ .name = "x1205-rtc", ++ .bus = &platform_bus_type, ++ .probe = x1205_rtc_probe, ++ .remove = x1205_rtc_remove, ++}; ++ ++static int __init x1205_rtc_init(void) ++{ ++ return driver_register(&x1205_rtc_driver); ++} ++ ++static void __exit x1205_rtc_exit(void) ++{ ++ driver_unregister(&x1205_rtc_driver); ++} ++ ++module_init(x1205_rtc_init); ++module_exit(x1205_rtc_exit); ++ ++MODULE_AUTHOR( ++ "Karen Spearel <kas11@tampabay.rr.com>, " ++ "Alessandro Zummo <a.zummo@towertech.it>"); ++MODULE_DESCRIPTION("Xicor X1205 RTC platform driver"); ++MODULE_LICENSE("GPL"); ++MODULE_VERSION(DRV_VERSION); diff --git a/packages/linux/nslu2-kernel/2.6.15/60-nslu2-beeper.patch b/packages/linux/nslu2-kernel/2.6.15/60-nslu2-beeper.patch new file mode 100644 index 0000000000..12fdc4d96e --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.15/60-nslu2-beeper.patch @@ -0,0 +1,184 @@ + drivers/input/misc/Kconfig | 12 +++ + drivers/input/misc/Makefile | 1 + drivers/input/misc/nslu2spkr.c | 148 +++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 161 insertions(+) + +--- linux-2.6.15/drivers/input/misc/Kconfig 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/drivers/input/misc/Kconfig 1970-01-01 00:00:00.000000000 +0000 +@@ -40,6 +40,18 @@ config INPUT_M68K_BEEP + tristate "M68k Beeper support" + depends on M68K + ++config INPUT_NSLU2_BEEPER ++ tristate "NSLU2 Beeper support" ++ depends on MACH_NSLU2 ++ help ++ Say Y here if you want the embedded beeper on the LinkSys NSLU2 ++ to be used for bells and whistles. ++ ++ If unsure, say Y. ++ ++ To compile this driver as a module, choose M here: the ++ module will be called nslu2spkr. ++ + config INPUT_UINPUT + tristate "User level driver support" + help +--- linux-2.6.15/drivers/input/misc/Makefile 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/drivers/input/misc/Makefile 1970-01-01 00:00:00.000000000 +0000 +@@ -10,3 +10,4 @@ obj-$(CONFIG_INPUT_M68K_BEEP) += m68ksp + obj-$(CONFIG_INPUT_98SPKR) += 98spkr.o + obj-$(CONFIG_INPUT_UINPUT) += uinput.o + obj-$(CONFIG_HP_SDC_RTC) += hp_sdc_rtc.o ++obj-$(CONFIG_INPUT_NSLU2_BEEPER) += nslu2spkr.o +--- linux-2.6.15/drivers/input/misc/nslu2spkr.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/drivers/input/misc/nslu2spkr.c 1970-01-01 00:00:00.000000000 +0000 +@@ -0,0 +1,148 @@ ++/* ++ * drivers/input/misc/nslu2spkr.c ++ * ++ * NSLU2 Beeper driver ++ * ++ * Copyright (C) 2005 Tower Technologies ++ * ++ * based on nslu2-io.c ++ * Copyright (C) 2004 Karen Spearel ++ * ++ * Author: Alessandro Zummo <a.zummo@towertech.it> ++ * Maintainers: http://www.nslu2-linux.org/ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include <linux/config.h> ++#include <linux/module.h> ++#include <linux/init.h> ++#include <linux/input.h> ++#include <linux/delay.h> ++ ++#include <asm/hardware.h> ++#include <asm/irq.h> ++#include <asm/mach-types.h> ++ ++static unsigned int beep_on_startup = 1; ++module_param(beep_on_startup, bool, 0); ++MODULE_PARM_DESC(beep_on_startup, "Play a beep on module startup"); ++ ++DEFINE_SPINLOCK(beep_lock); ++ ++static int nslu2_spkr_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) ++{ ++ unsigned int count = 0; ++ unsigned long flags; ++ ++ if (type != EV_SND) ++ return -1; ++ ++ switch (code) { ++ case SND_BELL: ++ if (value) value = 1000; ++ case SND_TONE: ++ break; ++ default: ++ return -1; ++ } ++ ++ if (value > 20 && value < 32767) ++ count = (NSLU2_FREQ / (value*4)) - 1; ++ ++ spin_lock_irqsave(&beep_lock, flags); ++ ++ if (count) { ++ ++ gpio_line_config(NSLU2_GPIO_BUZZ, IXP4XX_GPIO_OUT); ++ gpio_line_set(NSLU2_GPIO_BUZZ, IXP4XX_GPIO_LOW); ++ ++ *IXP4XX_OSRT2 = (count & ~IXP4XX_OST_RELOAD_MASK) | IXP4XX_OST_ENABLE; ++ ++ } else { ++ ++ gpio_line_config(NSLU2_GPIO_BUZZ, IXP4XX_GPIO_IN); ++ gpio_line_set(NSLU2_GPIO_BUZZ, IXP4XX_GPIO_HIGH); ++ ++ *IXP4XX_OSRT2 = 0; ++ } ++ ++ spin_unlock_irqrestore(&beep_lock, flags); ++ ++ return 0; ++} ++ ++static struct input_dev nslu2_spkr_dev = { ++ .phys = "ixp420/gpio4", ++ .name = "NSLU2 Beeper", ++ .evbit[0] = BIT(EV_SND), ++ .sndbit[0] = BIT(SND_BELL) | BIT(SND_TONE), ++ .event = nslu2_spkr_event, ++ .id = { ++ .bustype = BUS_HOST, ++ .vendor = 0x001f, ++ .product = 0x0001, ++ .version = 0x0100 ++ } ++}; ++ ++static irqreturn_t nslu2_spkr_handler(int irq, void *dev_id, struct pt_regs *regs) ++{ ++ /* clear interrupt */ ++ *IXP4XX_OSST = IXP4XX_OSST_TIMER_2_PEND; ++ ++ /* flip the beeper output */ ++ *IXP4XX_GPIO_GPOUTR ^= NSLU2_BZ_BM; ++ ++ return IRQ_HANDLED; ++} ++ ++static int __init nslu2_spkr_init(void) ++{ ++ if (!(machine_is_nslu2())) ++ return -ENODEV; ++ ++ if (request_irq(IRQ_IXP4XX_TIMER2, &nslu2_spkr_handler, ++ SA_INTERRUPT | SA_TIMER, "nslu2-beeper", NULL < 0)) { ++ ++ printk(KERN_INFO "NSLU2 beeper: IRQ %d not available\n", ++ IRQ_IXP4XX_TIMER2); ++ ++ return -EIO; ++ } ++ ++ input_register_device(&nslu2_spkr_dev); ++ ++ /* do a little beep to tell the world we are alive */ ++ if (beep_on_startup) ++ { ++ nslu2_spkr_event(NULL, EV_SND, SND_TONE, 440); ++ msleep(120); ++ nslu2_spkr_event(NULL, EV_SND, SND_TONE, 0); ++ } ++ ++ printk(KERN_INFO "NSLU2: beeper\n"); ++ return 0; ++} ++ ++static void __exit nslu2_spkr_exit(void) ++{ ++ input_unregister_device(&nslu2_spkr_dev); ++ ++ disable_irq(IRQ_IXP4XX_TIMER2); ++ ++ /* turn it off */ ++ nslu2_spkr_event(NULL, EV_SND, SND_BELL, 0); ++ ++ free_irq(IRQ_IXP4XX_TIMER2, NULL); ++} ++ ++module_init(nslu2_spkr_init); ++module_exit(nslu2_spkr_exit); ++ ++MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>"); ++MODULE_DESCRIPTION("NSLU2 Beeper driver"); ++MODULE_LICENSE("GPL"); diff --git a/packages/linux/nslu2-kernel/2.6.15/60-nslu2-rtc.patch b/packages/linux/nslu2-kernel/2.6.15/60-nslu2-rtc.patch new file mode 100644 index 0000000000..9e390c6b7a --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.15/60-nslu2-rtc.patch @@ -0,0 +1,21 @@ + arch/arm/mach-ixp4xx/nslu2-setup.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-setup.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-setup.c 1970-01-01 00:00:00.000000000 +0000 +@@ -95,10 +95,15 @@ static struct platform_device nslu2_uart + .resource = nslu2_uart_resources, + }; + ++static struct platform_device nslu2_rtc = { ++ .name = "x1205-rtc", ++}; ++ + static struct platform_device *nslu2_devices[] __initdata = { + &nslu2_i2c_controller, + &nslu2_flash, + &nslu2_uart, ++ &nslu2_rtc, + }; + + static void nslu2_power_off(void) diff --git a/packages/linux/nslu2-kernel/2.6.15/75-nslu2-leds.patch b/packages/linux/nslu2-kernel/2.6.15/75-nslu2-leds.patch new file mode 100644 index 0000000000..7497409e77 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.15/75-nslu2-leds.patch @@ -0,0 +1,272 @@ + arch/arm/Kconfig | 8 - + arch/arm/mach-ixp4xx/Makefile | 4 + arch/arm/mach-ixp4xx/nslu2-leds.c | 223 ++++++++++++++++++++++++++++++++++++++ + 3 files changed, 232 insertions(+), 3 deletions(-) + +--- linux-2.6.15/arch/arm/Kconfig 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/arch/arm/Kconfig 1970-01-01 00:00:00.000000000 +0000 +@@ -418,7 +418,8 @@ config LEDS + ARCH_EBSA285 || ARCH_IMX || ARCH_INTEGRATOR || \ + ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \ + ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \ +- ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE ++ ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \ ++ MACH_NSLU2 + help + If you say Y here, the LEDs on your machine will be used + to provide useful information about your current system status. +@@ -432,7 +433,7 @@ config LEDS + + config LEDS_TIMER + bool "Timer LED" if (!ARCH_CDB89712 && !ARCH_OMAP) || \ +- MACH_OMAP_H2 || MACH_OMAP_PERSEUS2 ++ MACH_OMAP_H2 || MACH_OMAP_PERSEUS2 || MACH_NSLU2 + depends on LEDS + default y if ARCH_EBSA110 + help +@@ -448,7 +449,8 @@ config LEDS_TIMER + + config LEDS_CPU + bool "CPU usage LED" if (!ARCH_CDB89712 && !ARCH_EBSA110 && \ +- !ARCH_OMAP) || MACH_OMAP_H2 || MACH_OMAP_PERSEUS2 ++ !ARCH_OMAP) || MACH_OMAP_H2 || MACH_OMAP_PERSEUS2 \ ++ || MACH_NSLU2 + depends on LEDS + help + If you say Y here, the red LED will be used to give a good real +--- linux-2.6.15/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000 +@@ -10,3 +10,7 @@ obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote- + obj-$(CONFIG_MACH_GTWX5715) += gtwx5715-pci.o gtwx5715-setup.o + obj-$(CONFIG_MACH_NSLU2) += nslu2-pci.o nslu2-setup.o nslu2-power.o + ++leds-$(CONFIG_MACH_NSLU2) += nslu2-leds.o ++obj-$(CONFIG_LEDS) += $(leds-y) ++ ++ +--- linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-leds.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-leds.c 1970-01-01 00:00:00.000000000 +0000 +@@ -0,0 +1,223 @@ ++/* ++ * arch/arm/mach-ixp4xx/nslu2-leds.c ++ * ++ * NSLU2 LEDs driver ++ * ++ * Copyright (C) 2005 Tower Technologies ++ * ++ * based on nslu2-io.c ++ * Copyright (C) 2004 Karen Spearel ++ * and arch/arm/mach-footbridge/netwinder-leds.c ++ * Copyright (C) 1998-1999 Russell King ++ * ++ * Author: Alessandro Zummo <a.zummo@towertech.it> ++ * Maintainers: http://www.nslu2-linux.org/ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include <linux/config.h> ++#include <linux/module.h> ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/spinlock.h> ++#include <linux/notifier.h> ++ ++#include <asm/hardware.h> ++#include <asm/leds.h> ++#include <asm/mach-types.h> ++#include <asm/system.h> ++ ++#define LED_STATE_ENABLED 0x01 ++#define LED_STATE_CLAIMED 0x02 ++#define LED_STATE_IDLE 0x04 ++ ++static unsigned char led_state; ++static unsigned int hw_led_state; ++ ++#ifdef CONFIG_LEDS_TIMER ++static const unsigned long idle_seq[4] = { ++ NSLU2_LED_GRN_BM, 0, ++ NSLU2_LED_GRN_BM, 0, ++}; ++ ++static const unsigned long busy_seq[4] = { ++ NSLU2_LED_GRN_BM, 0, ++ NSLU2_LED_GRN_BM | NSLU2_LED_RED_BM, 0, ++}; ++#endif ++ ++static unsigned char led_count = 0; ++ ++static DEFINE_SPINLOCK(leds_lock); ++extern spinlock_t gpio_lock; ++ ++static void nslu2_leds_event(led_event_t evt) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&leds_lock, flags); ++ ++ switch (evt) { ++ case led_start: ++ /* Let's rock! Red led on, all others off. Remember ++ * that disk1/disk2 works inverted. ++ */ ++ led_state = LED_STATE_ENABLED; ++ hw_led_state = NSLU2_LED_DISK1_BM | NSLU2_LED_DISK2_BM ++ | NSLU2_LED_RED_BM; ++ break; ++ ++ case led_stop: ++ led_state &= ~LED_STATE_ENABLED; ++ break; ++ ++ case led_claim: ++ /* The user claimed the interface, red and green off */ ++ led_state |= LED_STATE_CLAIMED; ++ hw_led_state &= ~(NSLU2_LED_RED_BM | NSLU2_LED_GRN_BM); ++ break; ++ ++ case led_release: ++ /* The user released the interface, preserve the last ++ * status of the leds, except red/green. ++ */ ++ led_state &= ~LED_STATE_CLAIMED; ++ hw_led_state = *IXP4XX_GPIO_GPOUTR & 0x0000000C; ++ break; ++ ++#ifdef CONFIG_LEDS_TIMER ++ case led_timer: ++ /* Pulse green led */ ++ if (!(led_state & LED_STATE_CLAIMED)) ++ { ++ /* clear red and green bits */ ++ hw_led_state &= ~(NSLU2_LED_RED_BM | NSLU2_LED_GRN_BM); ++ ++ /* copy the right sequence in */ ++ if (led_state & LED_STATE_IDLE) ++ hw_led_state |= idle_seq[led_count % 4]; ++ else ++ hw_led_state |= busy_seq[led_count % 4]; ++ ++ led_count++; ++ } ++ break; ++#endif ++ ++#ifdef CONFIG_LEDS_CPU ++ case led_idle_start: ++ led_state |= LED_STATE_IDLE; ++#ifndef CONFIG_LEDS_TIMER ++ /* green on, red off */ ++ hw_led_state |= NSLU2_LED_GRN_BM; ++ hw_led_state &= ~NSLU2_LED_RED_BM; ++#endif ++ break; ++ ++ case led_idle_end: ++ led_state &= ~LED_STATE_IDLE; ++#ifndef CONFIG_LEDS_TIMER ++ /* green on, red on -> amber on */ ++ hw_led_state |= NSLU2_LED_GRN_BM | NSLU2_LED_RED_BM; ++#endif ++ break; ++#endif /* CONFIG_LEDS_CPU */ ++ ++ case led_halted: ++ if (!(led_state & LED_STATE_CLAIMED)) ++ hw_led_state |= NSLU2_LED_RED_BM; ++ break; ++ ++ /* leds */ ++ ++ case led_green_on: ++ if (led_state & LED_STATE_CLAIMED) ++ hw_led_state |= NSLU2_LED_GRN_BM; ++ break; ++ ++ case led_green_off: ++ if (led_state & LED_STATE_CLAIMED) ++ hw_led_state &= ~NSLU2_LED_GRN_BM; ++ break; ++ ++ case led_amber_on: ++ if (led_state & LED_STATE_CLAIMED) ++ hw_led_state |= (NSLU2_LED_RED_BM | NSLU2_LED_GRN_BM); ++ break; ++ ++ case led_amber_off: ++ if (led_state & LED_STATE_CLAIMED) ++ hw_led_state &= ~(NSLU2_LED_RED_BM | NSLU2_LED_GRN_BM); ++ break; ++ ++ case led_red_on: ++ if (led_state & LED_STATE_CLAIMED) ++ hw_led_state |= NSLU2_LED_RED_BM; ++ break; ++ ++ case led_red_off: ++ if (led_state & LED_STATE_CLAIMED) ++ hw_led_state &= ~NSLU2_LED_RED_BM; ++ break; ++ ++ default: ++ break; ++ } ++ ++ spin_unlock_irqrestore(&leds_lock, flags); ++ ++ if (led_state & LED_STATE_ENABLED) { ++ spin_lock_irqsave(&gpio_lock, flags); ++ *IXP4XX_GPIO_GPOUTR = (*IXP4XX_GPIO_GPOUTR & 0xFFFFFFF0) | hw_led_state; ++ spin_unlock_irqrestore(&gpio_lock, flags); ++ } ++} ++ ++static int nslu2_leds_panic_event(struct notifier_block *this, unsigned long event, ++ void *ptr) ++{ ++#ifdef CONFIG_LEDS_TIMER ++ leds_event(led_claim); ++#endif ++ leds_event(led_green_off); ++ leds_event(led_red_on); ++ ++ return NOTIFY_DONE; ++} ++ ++static struct notifier_block nslu2_leds_panic_block = { ++ .notifier_call = nslu2_leds_panic_event, ++}; ++ ++static int __init nslu2_leds_init(void) ++{ ++ if (!(machine_is_nslu2())) ++ return 0; ++ ++ printk(KERN_INFO "NSLU2: leds\n"); ++ ++ /* register panic notifier */ ++ notifier_chain_register(&panic_notifier_list, &nslu2_leds_panic_block); ++ ++ /* enable gpio 0-3 */ ++ gpio_line_config(NSLU2_LED_GRN, IXP4XX_GPIO_OUT); ++ gpio_line_config(NSLU2_LED_RED, IXP4XX_GPIO_OUT); ++ gpio_line_config(NSLU2_LED_DISK1, IXP4XX_GPIO_OUT); ++ gpio_line_config(NSLU2_LED_DISK2, IXP4XX_GPIO_OUT); ++ ++ leds_event = nslu2_leds_event; ++ ++ /* this will also initialize the leds to the ++ * default state. ++ */ ++ ++ leds_event(led_start); ++ ++ return 0; ++} ++ ++module_init(nslu2_leds_init); diff --git a/packages/linux/nslu2-kernel/2.6.15/80-nslu2-io.patch b/packages/linux/nslu2-kernel/2.6.15/80-nslu2-io.patch new file mode 100644 index 0000000000..0b90c486e3 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.15/80-nslu2-io.patch @@ -0,0 +1,560 @@ +--- linux-2.6.15/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000 +@@ -8,5 +8,5 @@ obj-$(CONFIG_ARCH_IXDP4XX) += ixdp425-pc + obj-$(CONFIG_MACH_IXDPG425) += ixdpg425-pci.o coyote-setup.o + obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o + obj-$(CONFIG_MACH_GTWX5715) += gtwx5715-pci.o gtwx5715-setup.o +-obj-$(CONFIG_MACH_NSLU2) += nslu2-pci.o nslu2-setup.o nslu2-power.o ++obj-$(CONFIG_MACH_NSLU2) += nslu2-pci.o nslu2-setup.o nslu2-power.o nslu2-io.o + +--- linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-io.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-io.c 1970-01-01 00:00:00.000000000 +0000 +@@ -0,0 +1,548 @@ ++//============================================================================= ++// ++// n2-io.c version 0.1.7 ++// Author: Karen Spearel <kas11 at tampabay.rr.com> ++// please report problems/bugs directly to the address above ++// ++// Boilerplate to be added "real soon now"...it is and has always been GPL'ed per ++// MODULE_LICENSE but is offered without warrantee of any sort..use at your own risk ++// ++// NOTE: THIS IS INCOMPLETE. INCLUDED ONLY TO KEEP FROM BREAKING THE BUILD, ++// IT BEEPS AND SENDS A MESSAGE TO /proc/poweroff. EVENTUALLY IT ++// WILL TALK TO THE n2_pbd DAEMON. EVENTUALLY THE LED DRIVER ++// WILL TALK TO SOME USERLAND APP BUT ***NOT*** SET_LEDS. ++// ++//============================================================================= ++// GPIO Function State ++// 0 Red LED Status ++// 1 Green LED Ready = 1 ++// 2 Disk 2 LED On = 0 ++// 3 Disk 1 LED On = 0 ++// 4 Buzzer ++// 5 Power Button Pressed = 1 ++// 8 Power Down Output = 1 powers down NSLU2 ++// 12 Reset Pressed = 0 ++ ++#include <linux/config.h> ++#include <linux/version.h> ++#include <linux/module.h> ++#include <linux/kernel.h> ++#include <linux/proc_fs.h> ++#include <linux/device.h> ++#include <linux/reboot.h> ++ ++#include <asm/uaccess.h> ++#include <asm-arm/irq.h> ++#include <asm-arm/delay.h> ++ ++/* Set this to 1 to output lots of debug messages. */ ++#define NSLU2_IO_DEBUG 0 ++ ++#if NSLU2_IO_DEBUG ++#define nslu2_io_debug(args) printk args ++#else ++#define nslu2_io_debug(args) ((void)0) ++#endif ++ ++#define VERSION "0.1.7" ++ ++#define NSLU2BZ_MAJOR 62 //buzzer ++#define NSLU2LM_MAJOR 126 ++ ++ ++#define NSLU2_BEEP_DUR_LONG 2000 ++#define NSLU2_BEEP_DUR_MED 400 ++#define NSLU2_BEEP_DUR_SHORT 100 ++#define NSLU2_BEEP_PITCH_HIGH 250 ++#define NSLU2_BEEP_PITCH_MED 500 ++#define NSLU2_BEEP_PITCH_LOW 1000 ++#define NSLU2_LONG_DELAY 30000 ++ ++#define NSLU2_BZ_BM (1L << NSLU2_GPIO_BUZZ) ++ ++// ioctls -- 'M" is used for sound cards...we don't got one so it seems safe ++ ++#define NSLU2BZ_BEEP_STOP _IO('M',0) //stop multi-beep at end of audible ++#define NSLU2BZ_BEEP _IO('M',1) //one beep at current defaults ++#define NSLU2BZ_BEEPS _IOW('M',3,long) //param beeps at current defaults ++#define NSLU2BZ_TONESET _IOW('M',4,long) //set tone: range is high=250 to low=2000 ++#define NSLU2BZ_ONTIME _IOW('M',5,long) //ontime for multi-beeps in jiffies ++#define NSLU2BZ_SILENTTIME _IOW('M',6,long) //offtime for multi-beeps in jiffies ++#define NSLU2BZ_REPEATCNT _IOW('M',7,long) //number of repeats for multi-beeps 0 = forever ++#define NSLU2BZ_COMBINED _IOW('M',8,long) //combine all params in a long ++ ++#define NSLU2LM_OFF _IOW('M',32,long) ++#define NSLU2LM_ON _IOW('M',33,long) ++#define NSLU2LM_BLINK _IOW('M',34,long) ++#define NSLU2LM_ALT _IOW('M',35,long) ++#define NSLU2LM_ALL_ON _IO('M',36) ++#define NSLU2LM_ALL_OFF _IO('M',37) ++ ++#define PHYS_LEDS 4 ++#define BLINK_DELAY 25 ++ ++// OR Masks to turn these LEDs ON ++ ++#define RS_RED_ON 0x00000001 //0b0000 0000 0000 0010 ++#define RS_GRN_ON 0x00000002 //0b0000 0000 0000 0001 ++#define RS_YEL_ON 0x00000003 //0b0000 0000 0000 0011 ++ ++// AND Masks to turn these LEDs OFF ++ ++#define RS_RED_OFF 0xfffffffe //0b1111 1111 1111 1101 ++#define RS_GRN_OFF 0xfffffffd //0b1111 1111 1111 1110 ++#define RS_YEL_OFF 0xfffffffc //0b1111 1111 1111 1100 ++ ++// AND Masks to turn these LEDs ON ++ ++#define DISK1_ON 0xfffffff7 //0b1111 1111 1111 0111 ++#define DISK2_ON 0xfffffffb //0b1111 1111 1111 1011 ++ ++// Or Masks to turn these LEDs OFF ++ ++#define DISK1_OFF 0x00000008 //0b0000 0000 0000 1000 ++#define DISK2_OFF 0x00000004 //0b0000 0000 0000 0100 ++ ++// EOR masks for toggling LEDs on/off ++ ++#define RS_RG_ALT 0x00000003 //eor mask to toggle rs rg bits ++#define RS_GRN_TGL 0x00000002 ++#define RS_RED_TGL 0x00000001 ++#define DISK1_TGL 0x00000008 ++#define DISK2_TGL 0x00000004 ++ ++// The LED names for switches ++ ++#define LED_RS_RED 0 ++#define LED_RS_GRN 1 ++#define LED_DISK1 2 ++#define LED_DISK2 3 ++#define LED_ALL 4 ++ ++static unsigned long ontime = 50; ++static unsigned long offtime = 450; ++static unsigned long bz_repeatcnt = 10; ++static unsigned long tone = 1000; ++ ++static struct timer_list n2lm_rsg_timer; //rs green ++static struct timer_list n2lm_rsr_timer; //rs red ++static struct timer_list n2lm_d1_timer; //drive 1 ++static struct timer_list n2lm_d2_timer; //drive 2 ++static struct timer_list n2bz_timer; //beeper ++ ++// sysfs class ++static struct class *n2lm_class; ++ ++//================================================================================================== ++// ++// Blinking is handled entirely by the 4 timer handlers. On timeout, the bit in the ++// GPIO output register is xor'd with a mask corresponding to the selected led which simply ++// flips that bit. No record of what any of the other leds is doing is needed. ++// ++//================================================================================================== ++// this blinks rs green or green/yellow if rs red is on ++#ifndef CONFIG_LEDS ++static void n2lm_rsg_handler(unsigned long data) ++{ ++ *IXP4XX_GPIO_GPOUTR ^= RS_GRN_TGL; //flip the led ++ n2lm_rsg_timer.expires = jiffies + BLINK_DELAY; //next timeout ++ add_timer(&n2lm_rsg_timer); //reinit timer ++ return; ++} ++ ++// this blinks or alternates rs red green... inited wit green on/red off ++static void n2lm_rsr_handler(unsigned long data) ++{ ++ *IXP4XX_GPIO_GPOUTR ^= n2lm_rsr_timer.data; ++ n2lm_rsr_timer.expires = jiffies + BLINK_DELAY; ++ add_timer(&n2lm_rsr_timer); ++ return; ++} ++// blinks disk 1 ++static void n2lm_d1_handler(unsigned long data) ++{ ++ *IXP4XX_GPIO_GPOUTR ^= DISK1_TGL; ++ n2lm_d1_timer.expires = jiffies + BLINK_DELAY; ++ add_timer(&n2lm_d1_timer); ++ return; ++} ++// blinks disk 2 ++static void n2lm_d2_handler(unsigned long data) ++{ ++ *IXP4XX_GPIO_GPOUTR ^= DISK2_TGL; ++ n2lm_d2_timer.expires = jiffies + BLINK_DELAY; ++ add_timer(&n2lm_d2_timer); ++ return; ++} ++ ++//================================================================================================== ++ ++static void n2lm_timer_start(unsigned long led) ++{ ++ ++ nslu2_io_debug((KERN_DEBUG "timer: %ld\n",led)); ++ ++ switch(led) { ++ case LED_RS_RED: ++ n2lm_rsr_timer.expires = jiffies + BLINK_DELAY; ++ add_timer(&n2lm_rsr_timer); ++ break; ++ ++ case LED_RS_GRN: ++ n2lm_rsg_timer.expires = jiffies + BLINK_DELAY; ++ add_timer(&n2lm_rsg_timer); ++ break; ++ ++ case LED_DISK1: ++ n2lm_d1_timer.expires = jiffies + BLINK_DELAY; ++ add_timer(&n2lm_d1_timer); ++ break; ++ ++ case LED_DISK2: ++ n2lm_d2_timer.expires = jiffies + BLINK_DELAY; ++ add_timer(&n2lm_d2_timer); ++ break; ++ ++ default: ++ break; ++ } ++ return; ++} ++ ++//================================================================================================== ++ ++static void n2lm_timer_stop(unsigned long led) ++{ ++ switch (led) { ++ case LED_RS_RED: ++ del_timer(&n2lm_rsr_timer); ++ break; ++ case LED_RS_GRN: ++ del_timer(&n2lm_rsg_timer); ++ break; ++ case LED_DISK1: ++ del_timer(&n2lm_d1_timer); ++ break; ++ case LED_DISK2: ++ del_timer(&n2lm_d2_timer); ++ break; ++ default: ++ break; ++ } ++ return; ++} ++ ++//-------------------------------------------------------------------------------------------------- ++ ++static void n2lm_timer_stop_all(void) ++{ ++ del_timer(&n2lm_rsg_timer); ++ del_timer(&n2lm_rsr_timer); ++ del_timer(&n2lm_d1_timer); ++ del_timer(&n2lm_d2_timer); ++ return; ++} ++//-------------------------------------------------------------------------------------------------- ++ ++static void n2lm_ledon(unsigned long led) ++{ ++ ++ nslu2_io_debug((KERN_DEBUG "ledon: %ld\n", led)); ++ ++ switch (led) { ++ case LED_RS_RED: ++ *IXP4XX_GPIO_GPOUTR |= RS_RED_ON; //1 ++ return; ++ case LED_RS_GRN: ++ *IXP4XX_GPIO_GPOUTR |= RS_GRN_ON; //2 ++ return; ++ case LED_DISK1: ++ *IXP4XX_GPIO_GPOUTR &= DISK1_ON; //0xfffffff7 ++ return; ++ case LED_DISK2: ++ *IXP4XX_GPIO_GPOUTR &= DISK2_ON; //0xfffffffb ++ return; ++ case LED_ALL: //all green ++ *IXP4XX_GPIO_GPOUTR |= RS_GRN_ON; ++ *IXP4XX_GPIO_GPOUTR &= (DISK1_ON & DISK2_ON); ++ return; ++ } ++} ++ ++//-------------------------------------------------------------------------------------------------- ++ ++static void n2lm_ledoff(unsigned long led) ++{ ++ ++ switch (led) { ++ case LED_RS_RED: ++ *IXP4XX_GPIO_GPOUTR &= RS_RED_OFF; //0xffffffffe ++ return; ++ case LED_RS_GRN: ++ *IXP4XX_GPIO_GPOUTR &= RS_GRN_OFF; //0xfffffffd ++ return; ++ case LED_DISK1: ++ *IXP4XX_GPIO_GPOUTR |= DISK1_OFF; //0x00000008 ++ return; ++ case LED_DISK2: ++ *IXP4XX_GPIO_GPOUTR |= DISK2_OFF; //0x00000004 ++ return; ++ case LED_ALL: ++ *IXP4XX_GPIO_GPOUTR &= (RS_GRN_OFF & RS_RED_OFF); ++ *IXP4XX_GPIO_GPOUTR |= (DISK1_OFF | DISK2_OFF); ++ } ++} ++ ++//================================================================================================== ++ ++static int n2lm_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long led) ++{ ++ ++ nslu2_io_debug((KERN_DEBUG "cmd=%d, led=%ld\n", cmd, led)); ++ ++ if (led < 0 || led >= PHYS_LEDS) ++ return -EINVAL; ++ ++ switch (cmd ) { ++ case NSLU2LM_ON: ++ n2lm_timer_stop(led); ++ n2lm_ledon(led); ++ break; ++ ++ case NSLU2LM_OFF: ++ n2lm_timer_stop(led); ++ n2lm_ledoff(led); ++ break; ++ ++ case NSLU2LM_BLINK: ++ n2lm_ledon(led); ++ if (led == LED_RS_RED) ++ n2lm_rsr_timer.data = RS_RED_TGL; ++ n2lm_timer_start(led); ++ break; ++ ++ case NSLU2LM_ALT: ++ if (led == LED_RS_RED) ++ { ++ n2lm_ledon(LED_RS_GRN); ++ n2lm_ledoff(LED_RS_RED); ++ n2lm_rsr_timer.data = RS_RG_ALT; ++ n2lm_timer_start(LED_RS_RED); ++ break; ++ } else ++ return -EINVAL; ++ ++ case NSLU2LM_ALL_ON: ++ n2lm_timer_stop_all(); ++ n2lm_ledon(LED_ALL); ++ break; ++ ++ case NSLU2LM_ALL_OFF: ++ n2lm_timer_stop_all(); ++ n2lm_ledoff(LED_ALL); ++ break; ++ ++ default: ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static struct file_operations n2lm_fops = { ++ .owner = THIS_MODULE, ++ .ioctl = n2lm_ioctl, ++}; ++#endif ++//================================================================================================== ++// We can't do anything fancy here since the system tick rate is far below that required to ++// generate a desirable tone. Therefore we haven't much choice but to use a busy loop until ++// I get up to speed on the timers. The saving grace is that for the normal uses, nothing ++// important should be haprepening. ++//================================================================================================== ++ ++static void n2_buzz(int tone_delay, int duration) ++{ ++ int i; ++ ++ *IXP4XX_GPIO_GPOER &= ~NSLU2_BZ_BM; ++ ++ for (i = 1; i < duration; i++) { ++ *IXP4XX_GPIO_GPOUTR &= ~NSLU2_BZ_BM; ++ udelay(tone_delay); ++ *IXP4XX_GPIO_GPOUTR |= NSLU2_BZ_BM; ++ udelay(tone_delay); ++ } ++ *IXP4XX_GPIO_GPOER |= NSLU2_BZ_BM; ++ ++ return; ++} ++//================================================================================================= ++ ++// this handles the buzzer duty cycle ++static void n2bz_handler(unsigned long data) ++{ ++ if (--bz_repeatcnt > 0) { //if just one beep left to do ++ n2bz_timer.expires = jiffies + ontime + offtime; //next timeout ++ add_timer(&n2bz_timer); //reinit timer ++ } ++ n2_buzz(tone/2, ontime); ++ nslu2_io_debug((KERN_DEBUG "Count = %d\tOntime = %d\n", bz_repeatcnt, ontime)); ++ return; ++} ++ ++//================================================================================================== ++ ++static int n2bz_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long param) ++{ ++ switch (cmd) { ++ case NSLU2BZ_BEEP: ++ n2_buzz(tone/2, ontime); ++ break; ++ ++ case NSLU2BZ_BEEP_STOP: ++ del_timer(&n2bz_timer); ++ break; ++ ++ case NSLU2BZ_BEEPS: ++ if (param == 0) ++ bz_repeatcnt = 0xffffffff; ++ else ++ bz_repeatcnt = param; ++ n2bz_handler(0); ++ break; ++ ++ case NSLU2BZ_TONESET: ++ if (param >= 250 && param <= 2000) ++ tone = param; ++ break; ++ ++ case NSLU2BZ_ONTIME: ++ if (param > 4 && param < 201) ++ ontime = param; ++ break; ++ ++ case NSLU2BZ_SILENTTIME: ++ if (param > ontime) //enforce a reasonable duty cycle ++ offtime = param; ++ else ++ offtime = ontime; ++ break; ++ ++ case NSLU2BZ_REPEATCNT: ++ if (param == 0) ++ bz_repeatcnt = 0xffffffff; ++ else ++ bz_repeatcnt = param; ++ break; ++ ++ case NSLU2BZ_COMBINED: ++ bz_repeatcnt = (param & 0xF0000000) >> 28; //repeat 1 - 16 ++ ontime = (param & 0x0FF00000) >> 20; //ontime 1 - 256 jiffies ++ offtime = (param & 0x000FFF00) >> 8; //offtime 1 - 4095 jiffies ++ tone = (param & 0x000000FF) << 4; //tone (1 - 255) * 16 ++ break; ++ ++ default: ++ break; ++ } ++ return 0; ++} ++ ++static struct file_operations n2bz_fops = { ++ .owner = THIS_MODULE, ++ .ioctl = n2bz_ioctl, ++}; ++ ++static void n2iom_initarch(void) ++{ ++#ifndef CONFIG_LEDS ++ init_timer(&n2lm_rsg_timer); ++ init_timer(&n2lm_rsr_timer); ++ init_timer(&n2lm_d1_timer); ++ init_timer(&n2lm_d2_timer); ++ ++ n2lm_rsr_timer.function = n2lm_rsr_handler; ++ n2lm_rsg_timer.function = n2lm_rsg_handler; ++ n2lm_d2_timer.function = n2lm_d2_handler; ++ n2lm_d1_timer.function = n2lm_d1_handler; ++#endif ++ ++ init_timer(&n2bz_timer); ++ n2bz_timer.function = n2bz_handler; ++ ++ n2lm_rsr_timer.data = n2lm_rsg_timer.data = n2lm_d1_timer.data = n2lm_d2_timer.data = n2bz_timer.data = 0; ++ ++#ifndef CONFIG_LEDS ++ *IXP4XX_GPIO_GPOER &= 0xfffffff0; //enable gpio 0-3 ++ *IXP4XX_GPIO_GPOUTR |= 0x00000003; //turn off the leds ++ *IXP4XX_GPIO_GPOUTR &= 0xfffffffc; ++ n2lm_ledon(LED_ALL); ++ n2_buzz(NSLU2_BEEP_PITCH_MED, NSLU2_BEEP_DUR_SHORT); ++ n2lm_ledoff(LED_ALL); ++ ++ // Default the Ready/Status to Red during kernel boot, Turn Green at the end of sysvinit ++ n2lm_ledon(LED_RS_RED); ++#endif ++ ++ return; ++} ++ ++//================================================================================================== ++ ++static int __init n2iom_init(void) ++{ ++ printk(KERN_INFO "NSLU2: i/o, %s\n", VERSION); ++ ++ n2iom_initarch(); ++ ++ n2lm_class = class_create(THIS_MODULE, "nslu2"); ++ ++#ifndef CONFIG_LEDS ++ if (register_chrdev(NSLU2LM_MAJOR, "n2_ledm", &n2lm_fops) < 0) { ++ printk(KERN_DEBUG "Led Manager Major %d not available\n", NSLU2LM_MAJOR); ++ return -EBUSY; ++ } ++ else { ++ class_device_create(n2lm_class, MKDEV(NSLU2LM_MAJOR, 0), NULL, "leds"); ++ } ++#endif ++ ++ if (register_chrdev(NSLU2BZ_MAJOR, "n2_bzm", &n2bz_fops) < 0) { ++ printk(KERN_DEBUG "Buzzer Major %d not available\n", NSLU2BZ_MAJOR); ++ return -EBUSY; ++ } ++ else { ++ class_device_create(n2lm_class, MKDEV(NSLU2BZ_MAJOR, 0), NULL, "buzzer"); ++ } ++ ++ return 0; ++} ++ ++//================================================================================================== ++ ++static void __exit n2iom_exit(void) ++{ ++ ++#ifndef CONFIG_LEDS ++ del_timer(&n2lm_rsg_timer); ++ del_timer(&n2lm_rsr_timer); ++ del_timer(&n2lm_d1_timer); ++ del_timer(&n2lm_d2_timer); ++ ++ unregister_chrdev(NSLU2LM_MAJOR, "n2lm" ); ++ class_device_destroy(n2lm_class, MKDEV(NSLU2LM_MAJOR, 0)); ++#endif ++ ++ unregister_chrdev(NSLU2BZ_MAJOR, "n2bz"); ++ class_device_destroy(n2lm_class, MKDEV(NSLU2BZ_MAJOR, 0)); ++ ++ class_destroy(n2lm_class); ++} ++ ++module_init(n2iom_init); ++module_exit(n2iom_exit); ++ ++MODULE_AUTHOR("Karen Spearel <kas11@tampabay.rr.com>"); ++MODULE_DESCRIPTION("NSLU2 I/O driver"); ++MODULE_LICENSE("GPL"); diff --git a/packages/linux/nslu2-kernel/2.6.15/81-nslu2-class-device-create.patch b/packages/linux/nslu2-kernel/2.6.15/81-nslu2-class-device-create.patch new file mode 100644 index 0000000000..cc33222d91 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.15/81-nslu2-class-device-create.patch @@ -0,0 +1,20 @@ +--- linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-io.c 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-io.c 1970-01-01 00:00:00.000000000 +0000 +@@ -504,7 +504,7 @@ static int __init n2iom_init(void) + return -EBUSY; + } + else { +- class_device_create(n2lm_class, MKDEV(NSLU2LM_MAJOR, 0), NULL, "leds"); ++ class_device_create(n2lm_class, NULL, MKDEV(NSLU2LM_MAJOR, 0), NULL, "leds"); + } + #endif + +@@ -513,7 +513,7 @@ static int __init n2iom_init(void) + return -EBUSY; + } + else { +- class_device_create(n2lm_class, MKDEV(NSLU2BZ_MAJOR, 0), NULL, "buzzer"); ++ class_device_create(n2lm_class, NULL, MKDEV(NSLU2BZ_MAJOR, 0), NULL, "buzzer"); + } + + return 0; diff --git a/packages/linux/nslu2-kernel/2.6.15/90-ixp4xx-nslu2.patch b/packages/linux/nslu2-kernel/2.6.15/90-ixp4xx-nslu2.patch new file mode 100644 index 0000000000..c106f7c957 --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6.15/90-ixp4xx-nslu2.patch @@ -0,0 +1,132 @@ +ixp4xx updates: + - Handle reads that don't start on a half-word boundary. + - Make it work when CPU is in little-endian mode. + +Signed-off-by: John Bowler <jbowler@acm.org> +Signed-off-by: Alessandro Zummo <a.zummo@towertech.it> +Signed-off-by: David Vrabel <dvrabel@arcom.com> + +Index: linux-2.6-working/drivers/mtd/maps/ixp4xx.c +=================================================================== +--- linux-2.6-working.orig/drivers/mtd/maps/ixp4xx.c 2005-11-16 15:19:34.000000000 +0000 ++++ linux-2.6-working/drivers/mtd/maps/ixp4xx.c 2005-11-16 16:06:54.000000000 +0000 +@@ -34,10 +34,55 @@ + + #include <linux/reboot.h> + ++/* ++ * Read/write a 16 bit word from flash address 'addr'. ++ * ++ * When the cpu is in little-endian mode it swizzles the address lines ++ * ('address coherency') so we need to undo the swizzling to ensure commands ++ * and the like end up on the correct flash address. ++ * ++ * To further complicate matters, due to the way the expansion bus controller ++ * handles 32 bit reads, the byte stream ABCD is stored on the flash as: ++ * D15 D0 ++ * +---+---+ ++ * | A | B | 0 ++ * +---+---+ ++ * | C | D | 2 ++ * +---+---+ ++ * This means that on LE systems each 16 bit word must be swapped. Note that ++ * this requires CONFIG_MTD_CFI_BE_BYTE_SWAP to be enabled to 'unswap' the CFI ++ * data and other flash commands which are always in D7-D0. ++ */ + #ifndef __ARMEB__ ++#ifndef CONFIG_MTD_CFI_BE_BYTE_SWAP ++# error CONFIG_MTD_CFI_BE_BYTE_SWAP required ++#endif ++ ++static inline u16 flash_read16(void __iomem *addr) ++{ ++ return be16_to_cpu(__raw_readw((void __iomem *)((unsigned long)addr ^ 0x2))); ++} ++ ++static inline void flash_write16(u16 d, void __iomem *addr) ++{ ++ __raw_writew(cpu_to_be16(d), (void __iomem *)((unsigned long)addr ^ 0x2)); ++} ++ + #define BYTE0(h) ((h) & 0xFF) + #define BYTE1(h) (((h) >> 8) & 0xFF) ++ + #else ++ ++static inline u16 flash_read16(const void __iomem *addr) ++{ ++ return __raw_readw(addr); ++} ++ ++static inline void flash_write16(u16 d, void __iomem *addr) ++{ ++ __raw_writew(d, addr); ++} ++ + #define BYTE0(h) (((h) >> 8) & 0xFF) + #define BYTE1(h) ((h) & 0xFF) + #endif +@@ -45,7 +90,7 @@ + static map_word ixp4xx_read16(struct map_info *map, unsigned long ofs) + { + map_word val; +- val.x[0] = le16_to_cpu(readw(map->virt + ofs)); ++ val.x[0] = flash_read16(map->virt + ofs); + return val; + } + +@@ -57,19 +102,28 @@ + static void ixp4xx_copy_from(struct map_info *map, void *to, + unsigned long from, ssize_t len) + { +- int i; + u8 *dest = (u8 *) to; + void __iomem *src = map->virt + from; +- u16 data; + +- for (i = 0; i < (len / 2); i++) { +- data = le16_to_cpu(readw(src + 2*i)); +- dest[i * 2] = BYTE0(data); +- dest[i * 2 + 1] = BYTE1(data); ++ if (len <= 0) ++ return; ++ ++ if (from & 1) { ++ *dest++ = BYTE1(flash_read16(src)); ++ src++; ++ --len; + } + +- if (len & 1) +- dest[len - 1] = BYTE0(le16_to_cpu(readw(src + 2*i))); ++ while (len >= 2) { ++ u16 data = flash_read16(src); ++ *dest++ = BYTE0(data); ++ *dest++ = BYTE1(data); ++ src += 2; ++ len -= 2; ++ } ++ ++ if (len > 0) ++ *dest++ = BYTE0(flash_read16(src)); + } + + /* +@@ -79,7 +133,7 @@ + static void ixp4xx_probe_write16(struct map_info *map, map_word d, unsigned long adr) + { + if (!(adr & 1)) +- writew(cpu_to_le16(d.x[0]), map->virt + adr); ++ flash_write16(d.x[0], map->virt + adr); + } + + /* +@@ -87,7 +141,7 @@ + */ + static void ixp4xx_write16(struct map_info *map, map_word d, unsigned long adr) + { +- writew(cpu_to_le16(d.x[0]), map->virt + adr); ++ flash_write16(d.x[0], map->virt + adr); + } + + struct ixp4xx_flash_info { diff --git a/packages/linux/nslu2-kernel/2.6.13/defconfig b/packages/linux/nslu2-kernel/2.6.15/defconfig index 1124139026..9a9bc34c7d 100644 --- a/packages/linux/nslu2-kernel/2.6.13/defconfig +++ b/packages/linux/nslu2-kernel/2.6.15/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.13.2 -# Fri Sep 23 02:19:35 2005 +# Linux kernel version: 2.6.15 +# Mon Nov 14 10:44:43 2005 # CONFIG_ARM=y CONFIG_MMU=y @@ -21,6 +21,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 # General setup # CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set @@ -30,6 +31,7 @@ CONFIG_SYSCTL=y CONFIG_HOTPLUG=y CONFIG_KOBJECT_UEVENT=y # CONFIG_IKCONFIG is not set +CONFIG_INITRAMFS_SOURCE="" CONFIG_EMBEDDED=y # CONFIG_KALLSYMS is not set CONFIG_PRINTK=y @@ -58,6 +60,23 @@ CONFIG_OBSOLETE_MODPARM=y CONFIG_KMOD=y # +# Block layer +# + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +# CONFIG_IOSCHED_AS is not set +CONFIG_IOSCHED_DEADLINE=y +# CONFIG_IOSCHED_CFQ is not set +# CONFIG_DEFAULT_AS is not set +CONFIG_DEFAULT_DEADLINE=y +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="deadline" + +# # System Type # # CONFIG_ARCH_CLPS7500 is not set @@ -79,6 +98,7 @@ CONFIG_ARCH_IXP4XX=y # CONFIG_ARCH_LH7A40X is not set # CONFIG_ARCH_OMAP is not set # CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_REALVIEW is not set # CONFIG_ARCH_IMX is not set # CONFIG_ARCH_H720X is not set # CONFIG_ARCH_AAEC2000 is not set @@ -91,12 +111,12 @@ CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y # # IXP4xx Platforms # +CONFIG_MACH_NSLU2=y # CONFIG_ARCH_AVILA is not set # CONFIG_ARCH_ADI_COYOTE is not set # CONFIG_ARCH_IXDP425 is not set # CONFIG_MACH_IXDPG425 is not set # CONFIG_MACH_IXDP465 is not set -CONFIG_ARCH_NSLU2=y # CONFIG_ARCH_PRPMC1100 is not set # CONFIG_MACH_GTWX5715 is not set @@ -129,7 +149,6 @@ CONFIG_DMABOUNCE=y CONFIG_ISA_DMA_API=y CONFIG_PCI=y # CONFIG_PCI_LEGACY_PROC is not set -# CONFIG_PCI_NAMES is not set # # PCCARD (PCMCIA/CardBus) support @@ -148,6 +167,9 @@ CONFIG_FLATMEM_MANUAL=y # 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=4096 +# CONFIG_LEDS is not set CONFIG_ALIGNMENT_TRAP=y # @@ -155,7 +177,7 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc noirqdebug console=ttyS0,115200n8" +CONFIG_CMDLINE="root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc x1205.hctosys=1 noirqdebug console=ttyS0,115200n8" # CONFIG_XIP_KERNEL is not set # @@ -166,6 +188,7 @@ CONFIG_CMDLINE="root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init= # At least one emulation must be selected # CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set # CONFIG_FPE_FASTFPE is not set # @@ -208,19 +231,123 @@ CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m CONFIG_INET_TUNNEL=m -CONFIG_IP_TCPDIAG=m -# CONFIG_IP_TCPDIAG_IPV6 is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_BIC=y -# CONFIG_IPV6 is not set -# CONFIG_NETFILTER is not set + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +CONFIG_IPV6=m +# CONFIG_IPV6_PRIVACY is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_INET6_TUNNEL=m +CONFIG_IPV6_TUNNEL=m +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set + +# +# IP: Netfilter Configuration +# +CONFIG_IP_NF_CONNTRACK=m +# CONFIG_IP_NF_CT_ACCT is not set +# CONFIG_IP_NF_CONNTRACK_MARK is not set +# CONFIG_IP_NF_CONNTRACK_EVENTS is not set +CONFIG_IP_NF_CT_PROTO_SCTP=m +CONFIG_IP_NF_FTP=m +CONFIG_IP_NF_IRC=m +# CONFIG_IP_NF_NETBIOS_NS is not set +CONFIG_IP_NF_TFTP=m +CONFIG_IP_NF_AMANDA=m +# CONFIG_IP_NF_PPTP is not set +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_LIMIT=m +CONFIG_IP_NF_MATCH_IPRANGE=m +CONFIG_IP_NF_MATCH_MAC=m +CONFIG_IP_NF_MATCH_PKTTYPE=m +CONFIG_IP_NF_MATCH_MARK=m +CONFIG_IP_NF_MATCH_MULTIPORT=m +CONFIG_IP_NF_MATCH_TOS=m +CONFIG_IP_NF_MATCH_RECENT=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_DSCP=m +CONFIG_IP_NF_MATCH_AH_ESP=m +CONFIG_IP_NF_MATCH_LENGTH=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_MATCH_TCPMSS=m +CONFIG_IP_NF_MATCH_HELPER=m +CONFIG_IP_NF_MATCH_STATE=m +CONFIG_IP_NF_MATCH_CONNTRACK=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_MATCH_PHYSDEV=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_MATCH_REALM=m +# CONFIG_IP_NF_MATCH_SCTP is not set +# CONFIG_IP_NF_MATCH_DCCP is not set +CONFIG_IP_NF_MATCH_COMMENT=m +CONFIG_IP_NF_MATCH_HASHLIMIT=m +# CONFIG_IP_NF_MATCH_STRING is not set +CONFIG_IP_NF_FILTER=m +# CONFIG_IP_NF_TARGET_REJECT is not set +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_IP_NF_TARGET_TCPMSS=m +# CONFIG_IP_NF_TARGET_NFQUEUE is not set +CONFIG_IP_NF_NAT=m +CONFIG_IP_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_IP_NF_NAT_SNMP_BASIC=m +CONFIG_IP_NF_NAT_IRC=m +CONFIG_IP_NF_NAT_FTP=m +CONFIG_IP_NF_NAT_TFTP=m +CONFIG_IP_NF_NAT_AMANDA=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_TOS=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_DSCP=m +CONFIG_IP_NF_TARGET_MARK=m +CONFIG_IP_NF_TARGET_CLASSIFY=m +# CONFIG_IP_NF_TARGET_TTL is not set +# CONFIG_IP_NF_RAW is not set +# CONFIG_IP_NF_ARPTABLES is not set + +# +# IPv6: Netfilter Configuration (EXPERIMENTAL) +# +# CONFIG_IP6_NF_QUEUE is not set +# CONFIG_IP6_NF_IPTABLES is not set +# CONFIG_IP6_NF_TARGET_NFQUEUE is not set + +# +# Bridge: Netfilter Configuration +# +# CONFIG_BRIDGE_NF_EBTABLES is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set # # SCTP Configuration (EXPERIMENTAL) # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set -# CONFIG_BRIDGE is not set +CONFIG_BRIDGE=m CONFIG_VLAN_8021Q=m # CONFIG_DECNET is not set CONFIG_LLC=m @@ -237,8 +364,12 @@ CONFIG_IPDDP_DECAP=y # CONFIG_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# # CONFIG_NET_SCHED is not set -# CONFIG_NET_CLS_ROUTE is not set +CONFIG_NET_CLS_ROUTE=y # # Network testing @@ -262,10 +393,11 @@ CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_HCIUSB=m CONFIG_BT_HCIUSB_SCO=y # CONFIG_BT_HCIUART is not set -# CONFIG_BT_HCIBCM203X is not set +CONFIG_BT_HCIBCM203X=m # CONFIG_BT_HCIBPA10X is not set # CONFIG_BT_HCIBFUSB is not set # CONFIG_BT_HCIVHCI is not set +# CONFIG_IEEE80211 is not set # # Device Drivers @@ -276,7 +408,7 @@ CONFIG_BT_HCIUSB_SCO=y # CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y -# CONFIG_FW_LOADER is not set +CONFIG_FW_LOADER=m # # Memory Technology Devices (MTD) @@ -289,7 +421,7 @@ CONFIG_MTD_REDBOOT_PARTS=y CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 # CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set # CONFIG_MTD_REDBOOT_PARTS_READONLY is not set -CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_CMDLINE_PARTS is not set # CONFIG_MTD_AFS_PARTS is not set # @@ -300,6 +432,7 @@ 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 # # RAM/ROM/Flash chip drivers @@ -307,10 +440,14 @@ CONFIG_MTD_BLOCK=y 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_CFI_ADV_OPTIONS=y +# CONFIG_MTD_CFI_NOSWAP is not set +CONFIG_MTD_CFI_BE_BYTE_SWAP=y +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +CONFIG_MTD_CFI_GEOMETRY=y +# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set # 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 @@ -318,6 +455,7 @@ 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_OTP is not set CONFIG_MTD_CFI_INTELEXT=y # CONFIG_MTD_CFI_AMDSTD is not set # CONFIG_MTD_CFI_STAA is not set @@ -334,7 +472,6 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y # CONFIG_MTD_PHYSMAP is not set # CONFIG_MTD_ARM_INTEGRATOR is not set CONFIG_MTD_IXP4XX=y -# CONFIG_MTD_EDB7312 is not set # CONFIG_MTD_PCI is not set # CONFIG_MTD_PLATRAM is not set @@ -361,6 +498,11 @@ CONFIG_MTD_IXP4XX=y # CONFIG_MTD_NAND is not set # +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# # Parallel port support # # CONFIG_PARPORT is not set @@ -386,18 +528,9 @@ CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=4 CONFIG_BLK_DEV_RAM_SIZE=10240 CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -# CONFIG_IOSCHED_AS is not set -CONFIG_IOSCHED_DEADLINE=y -# CONFIG_IOSCHED_CFQ is not set # CONFIG_ATA_OVER_ETH is not set # @@ -408,6 +541,7 @@ CONFIG_IOSCHED_DEADLINE=y # # SCSI device support # +# CONFIG_RAID_ATTRS is not set CONFIG_SCSI=y CONFIG_SCSI_PROC_FS=y @@ -417,14 +551,15 @@ CONFIG_SCSI_PROC_FS=y 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 is not set +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=m # 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_MULTI_LUN=y # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set @@ -434,10 +569,12 @@ CONFIG_BLK_DEV_SD=y # CONFIG_SCSI_SPI_ATTRS is not set # CONFIG_SCSI_FC_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set # # SCSI low-level drivers # +# 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 @@ -448,6 +585,7 @@ CONFIG_BLK_DEV_SD=y # CONFIG_SCSI_DPT_I2O is not set # CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set # CONFIG_SCSI_SATA is not set # CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_DMX3191D is not set @@ -477,7 +615,22 @@ CONFIG_SCSI_QLA2XXX=y # # Multi-device support (RAID and LVM) # -# CONFIG_MD is not set +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID5=m +CONFIG_MD_RAID6=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_CRYPT is not set +# CONFIG_DM_SNAPSHOT is not set +# CONFIG_DM_MIRROR is not set +# CONFIG_DM_ZERO is not set +# CONFIG_DM_MULTIPATH is not set # # Fusion MPT device support @@ -485,6 +638,7 @@ CONFIG_SCSI_QLA2XXX=y # 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 @@ -511,12 +665,18 @@ CONFIG_TUN=m # CONFIG_ARCNET is not set # +# PHY device support +# +# CONFIG_PHYLIB is not set + +# # Ethernet (10 or 100Mbit) # 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_SMC91X is not set # CONFIG_DM9000 is not set @@ -556,6 +716,7 @@ CONFIG_NET_PCI=y # 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_SK98LIN is not set # CONFIG_VIA_VELOCITY is not set @@ -565,6 +726,7 @@ CONFIG_NET_PCI=y # # Ethernet (10000 Mbit) # +# CONFIG_CHELSIO_T1 is not set # CONFIG_IXGB is not set # CONFIG_S2IO is not set @@ -586,6 +748,7 @@ CONFIG_NET_RADIO=y # # Wireless 802.11b ISA/PCI cards support # +# CONFIG_AIRO is not set # CONFIG_HERMES is not set # CONFIG_ATMEL is not set @@ -593,6 +756,7 @@ CONFIG_NET_RADIO=y # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support # # CONFIG_PRISM54 is not set +# CONFIG_HOSTAP is not set CONFIG_NET_WIRELESS=y # @@ -601,7 +765,15 @@ CONFIG_NET_WIRELESS=y # CONFIG_WAN is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set -# CONFIG_PPP is not set +CONFIG_PPP=m +# CONFIG_PPP_MULTILINK is not set +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +# CONFIG_PPP_MPPE is not set +# CONFIG_PPPOE is not set # CONFIG_SLIP is not set # CONFIG_NET_FC is not set # CONFIG_SHAPER is not set @@ -619,7 +791,27 @@ CONFIG_NET_POLL_CONTROLLER=y # # Input device support # -# CONFIG_INPUT is not set +CONFIG_INPUT=m + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=m +# 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_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_NSLU2_BEEPER=m +# CONFIG_INPUT_UINPUT is not set # # Hardware I/O ports @@ -679,7 +871,8 @@ CONFIG_IXP4XX_WATCHDOG=y # # CONFIG_USBPCWATCHDOG is not set # CONFIG_NVRAM is not set -CONFIG_RTC=m +# CONFIG_RTC is not set +CONFIG_RTC_X1205=y # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set @@ -694,6 +887,7 @@ CONFIG_RTC=m # TPM devices # # CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK is not set # # I2C support @@ -720,7 +914,6 @@ CONFIG_I2C_ALGOBIT=y # CONFIG_I2C_I810 is not set # CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_IOP3XX is not set -# CONFIG_I2C_ISA is not set CONFIG_I2C_IXP4XX=y # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_PARPORT_LIGHT is not set @@ -735,7 +928,6 @@ CONFIG_I2C_IXP4XX=y # CONFIG_I2C_VIAPRO is not set # CONFIG_I2C_VOODOO3 is not set # CONFIG_I2C_PCA_ISA is not set -CONFIG_I2C_SENSOR=y # # Miscellaneous I2C Chip support @@ -748,7 +940,7 @@ CONFIG_SENSORS_EEPROM=y # CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_RTC8564 is not set # CONFIG_SENSORS_MAX6875 is not set -CONFIG_SENSORS_X1205=y +CONFIG_RTC_X1205_I2C=y # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -758,6 +950,7 @@ CONFIG_SENSORS_X1205=y # Hardware Monitoring support # CONFIG_HWMON=y +# CONFIG_HWMON_VID is not set # CONFIG_SENSORS_ADM1021 is not set # CONFIG_SENSORS_ADM1025 is not set # CONFIG_SENSORS_ADM1026 is not set @@ -788,6 +981,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_SMSC47B397 is not set # CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83792D is not set # CONFIG_SENSORS_W83L785TS is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set @@ -798,14 +992,63 @@ CONFIG_HWMON=y # # +# Multimedia Capabilities Port drivers +# + +# # Multimedia devices # -# CONFIG_VIDEO_DEV is not set +CONFIG_VIDEO_DEV=m + +# +# Video For Linux +# + +# +# Video Adapters +# +CONFIG_VIDEO_BT848=m +# CONFIG_VIDEO_SAA6588 is not set +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_TUNER_3036=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_DPC=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +# CONFIG_VIDEO_EM28XX is not set +CONFIG_VIDEO_OVCAMCHIP=m + +# +# Radio Adapters +# +# CONFIG_RADIO_GEMTEK_PCI is not set +# CONFIG_RADIO_MAXIRADIO is not set +# CONFIG_RADIO_MAESTRO is not set # # Digital Video Broadcasting Devices # # CONFIG_DVB is not set +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_VIDEOBUF=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_BUF=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m # # Graphics support @@ -815,7 +1058,89 @@ CONFIG_HWMON=y # # Sound # -# CONFIG_SOUND is not set +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_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_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_CS46XX is not set +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_EMU10K1 is not set +# CONFIG_SND_EMU10K1X is not set +# CONFIG_SND_CA0106 is not set +# CONFIG_SND_KORG1212 is not set +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +# CONFIG_SND_RME9652 is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_HDSPM is not set +# CONFIG_SND_TRIDENT is not set +# CONFIG_SND_YMFPCI is not set +# CONFIG_SND_AD1889 is not set +# CONFIG_SND_ALS4000 is not set +# CONFIG_SND_CMIPCI 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_MAESTRO3 is not set +# CONFIG_SND_FM801 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_SONICVIBES is not set +# CONFIG_SND_VIA82XX is not set +# CONFIG_SND_VIA82XX_MODEM is not set +# CONFIG_SND_VX222 is not set +# CONFIG_SND_HDA_INTEL is not set + +# +# ALSA ARM devices +# + +# +# USB devices +# +CONFIG_SND_USB_AUDIO=m + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set # # USB support @@ -837,7 +1162,7 @@ CONFIG_USB_DEVICEFS=y # USB Host Controller Drivers # CONFIG_USB_EHCI_HCD=y -# CONFIG_USB_EHCI_SPLIT_ISO is not set +CONFIG_USB_EHCI_SPLIT_ISO=y # CONFIG_USB_EHCI_ROOT_HUB_TT is not set # CONFIG_USB_ISP116X_HCD is not set CONFIG_USB_OHCI_HCD=y @@ -849,15 +1174,16 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y # # USB Device Class drivers # +# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m # -# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' # -# CONFIG_USB_ACM is not set -CONFIG_USB_PRINTER=m # -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information +# may also be needed; see USB_STORAGE Help for more information # CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set @@ -868,15 +1194,34 @@ CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_SDDR09 is not set # CONFIG_USB_STORAGE_SDDR55 is not set # CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set # # USB Input Devices # -# CONFIG_USB_HID is not set +CONFIG_USB_HID=m +CONFIG_USB_HIDINPUT=y +# CONFIG_HID_FF is not set +CONFIG_USB_HIDDEV=y # # USB HID Boot Protocol drivers # +CONFIG_USB_KBD=m +# CONFIG_USB_MOUSE is not set +# CONFIG_USB_AIPTEK is not set +# CONFIG_USB_WACOM is not set +# CONFIG_USB_ACECAD is not set +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_MTOUCH is not set +# CONFIG_USB_ITMTOUCH is not set +# CONFIG_USB_EGALAX is not set +# CONFIG_USB_YEALINK is not set +# CONFIG_USB_XPAD is not set +# CONFIG_USB_ATI_REMOTE is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set # # USB Imaging devices @@ -888,10 +1233,16 @@ CONFIG_USB_STORAGE=y # USB Multimedia devices # # CONFIG_USB_DABUSB is not set - -# -# Video4Linux support is needed for USB Multimedia device support -# +# CONFIG_USB_VICAM is not set +# CONFIG_USB_DSBR is not set +# CONFIG_USB_IBMCAM is not set +# CONFIG_USB_KONICAWC is not set +# CONFIG_USB_OV511 is not set +# CONFIG_USB_SE401 is not set +# CONFIG_USB_SN9C102 is not set +# CONFIG_USB_STV680 is not set +# CONFIG_USB_W9968CF is not set +CONFIG_USB_PWC=m # # USB Network Adapters @@ -901,30 +1252,14 @@ CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m CONFIG_USB_USBNET=m - -# -# USB Host-to-Host Cables -# -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_GENESYS=y -CONFIG_USB_NET1080=y -CONFIG_USB_PL2301=y -CONFIG_USB_KC2190=y - -# -# Intelligent USB Devices/Gadgets -# -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_ZAURUS=y -CONFIG_USB_CDCETHER=y - -# -# USB Network Adapters -# -CONFIG_USB_AX8817X=y +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +# CONFIG_USB_NET_GL620A is not set +CONFIG_USB_NET_NET1080=m +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +CONFIG_USB_NET_ZAURUS=m # CONFIG_USB_ZD1201 is not set # CONFIG_USB_MON is not set @@ -957,6 +1292,7 @@ CONFIG_USB_SERIAL_KEYSPAN_PDA=m CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_NOKIA_DKU2 is not set CONFIG_USB_SERIAL_PL2303=m # CONFIG_USB_SERIAL_HP4X is not set CONFIG_USB_SERIAL_SAFE=m @@ -1022,10 +1358,6 @@ CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y - -# -# XFS support -# # CONFIG_XFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set @@ -1034,6 +1366,7 @@ CONFIG_INOTIFY=y CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set CONFIG_AUTOFS4_FS=m +# CONFIG_FUSE_FS is not set # # CD-ROM/DVD Filesystems @@ -1062,11 +1395,10 @@ CONFIG_NTFS_RW=y # CONFIG_PROC_FS=y CONFIG_SYSFS=y -# CONFIG_DEVPTS_FS_XATTR is not set CONFIG_TMPFS=y -# CONFIG_TMPFS_XATTR is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y +# CONFIG_RELAYFS_FS is not set # # Miscellaneous filesystems @@ -1082,6 +1414,7 @@ CONFIG_RAMFS=y CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y @@ -1124,6 +1457,7 @@ CONFIG_CIFS_POSIX=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set # # Partition Types @@ -1247,6 +1581,7 @@ CONFIG_CRYPTO_TEST=m # Library routines # CONFIG_CRC_CCITT=m +# CONFIG_CRC16 is not set CONFIG_CRC32=y CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y diff --git a/packages/linux/nslu2-kernel/files/.mtn2git_empty b/packages/linux/nslu2-kernel/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/nslu2-kernel/files/.mtn2git_empty diff --git a/packages/linux/openslug-kernel-2.6.11.2/anonymiser.patch b/packages/linux/nslu2-kernel/files/anonymiser.patch index 3384b15fe2..3384b15fe2 100644 --- a/packages/linux/openslug-kernel-2.6.11.2/anonymiser.patch +++ b/packages/linux/nslu2-kernel/files/anonymiser.patch diff --git a/packages/linux/nslu2-kernel_2.6.11-mm4.bb b/packages/linux/nslu2-kernel_2.6.11-mm4.bb deleted file mode 100644 index e4ac2b5fb9..0000000000 --- a/packages/linux/nslu2-kernel_2.6.11-mm4.bb +++ /dev/null @@ -1,22 +0,0 @@ -# Kernel for NSLU2 -PR = "r1" -include nslu2-kernel.inc - -# N2K_EXTRA_PATCHES - list of patches to apply (can include -# patches to the files installed above) -# N2K_PATCHES - full list of patches to apply, defaults to: -# file://nslu2_2.6.11.patch;patch=1 -# file://usbnet.patch;patch=1 -# file://ixp4xx_copy_from.patch;patch=1 -# ${N2K_EXTRA_PATCHES} -# - -N2K_PATCHES = "\ - file://bootramdisk.patch;patch=1 \ - file://reiser4.patch;patch=1 \ - file://nslu2_2.6.11.patch;patch=1 \ - file://compile-switches.patch;patch=1 \ - file://ixp4xx_copy_from.patch;patch=1 \ - file://anonymiser.patch;patch=1 \ - file://x1205-rtc.c-mm.patch;patch=1 \ -" diff --git a/packages/linux/nslu2-kernel_2.6.11.8.bb b/packages/linux/nslu2-kernel_2.6.11.8.bb deleted file mode 100644 index 7a1a1548e5..0000000000 --- a/packages/linux/nslu2-kernel_2.6.11.8.bb +++ /dev/null @@ -1,3 +0,0 @@ -# Kernel for NSLU2 -PR = "r0" -include nslu2-kernel.inc diff --git a/packages/linux/nslu2-kernel_2.6.12.2.bb b/packages/linux/nslu2-kernel_2.6.12.2.bb deleted file mode 100644 index ef2f1f6b2c..0000000000 --- a/packages/linux/nslu2-kernel_2.6.12.2.bb +++ /dev/null @@ -1,38 +0,0 @@ -# Kernel for NSLU2 -# -# Increment PR_CONFIG for changes to the nslu2-kernel specific -# defconfig (do *NOT* increment anything in here for changes -# to other kernel configs!) -PR_CONFIG = "0" -# -# Increment the number below (i.e. the digits after PR) when -# making changes within this file or for changes to the patches -# applied to the kernel. -PR = "r17.${PR_CONFIG}" - -include nslu2-kernel.inc - -# N2K_EXTRA_PATCHES - list of patches to apply (can include -# patches to the files installed above) -# N2K_PATCHES - full list of patches to apply, defaults to: -# file://nslu2_2.6.11.patch;patch=1 -# file://usbnet.patch;patch=1 -# file://ixp4xx_copy_from.patch;patch=1 -# ${N2K_EXTRA_PATCHES} -# - -N2K_PATCHES = "\ - file://nslu2-arch.patch;patch=1 \ - file://x1205-rtc.patch;patch=1 \ - file://ixp4xx-regs.patch;patch=1 \ - file://compile-switches.patch;patch=1 \ - file://ixp4xx_copy_from.patch;patch=1 \ - file://anonymiser.patch;patch=1 \ - file://xscale-reset.patch;patch=1 \ - file://x1205-rtc.c-id.patch;patch=1 \ - file://mtd-shutdown.patch;patch=1 \ - file://missing-exports.patch;patch=1 \ - file://timer.patch;patch=1 \ - file://nslu2-io_rpbutton.patch;patch=1 \ - file://disk_led_blinking.patch;patch=1 \ -" diff --git a/packages/linux/nslu2-kernel_2.6.12.bb b/packages/linux/nslu2-kernel_2.6.12.bb deleted file mode 100644 index 73adf4aab0..0000000000 --- a/packages/linux/nslu2-kernel_2.6.12.bb +++ /dev/null @@ -1,35 +0,0 @@ -# Kernel for NSLU2 -# -# Increment PR_CONFIG for changes to the nslu2-kernel specific -# defconfig (do *NOT* increment anything in here for changes -# to other kernel configs!) -PR_CONFIG = "0" -# -# Increment the number below (i.e. the digits after PR) when -# making changes within this file or for changes to the patches -# applied to the kernel. -PR = "r3.${PR_CONFIG}" - -include nslu2-kernel.inc - -# N2K_EXTRA_PATCHES - list of patches to apply (can include -# patches to the files installed above) -# N2K_PATCHES - full list of patches to apply, defaults to: -# file://nslu2_2.6.11.patch;patch=1 -# file://usbnet.patch;patch=1 -# file://ixp4xx_copy_from.patch;patch=1 -# ${N2K_EXTRA_PATCHES} -# - -N2K_PATCHES = "\ - file://nslu2-arch.patch;patch=1 \ - file://x1205-rtc.patch;patch=1 \ - file://ixp4xx-regs.patch;patch=1 \ - file://compile-switches.patch;patch=1 \ - file://ixp4xx_copy_from.patch;patch=1 \ - file://anonymiser.patch;patch=1 \ - file://xscale-reset.patch;patch=1 \ - file://x1205-rtc.c-id.patch;patch=1 \ - file://mtd-shutdown.patch;patch=1 \ - file://timer.patch;patch=1 \ -" diff --git a/packages/linux/nslu2-kernel_2.6.13.2.bb b/packages/linux/nslu2-kernel_2.6.13.2.bb deleted file mode 100644 index 5dcb1a2e9c..0000000000 --- a/packages/linux/nslu2-kernel_2.6.13.2.bb +++ /dev/null @@ -1,37 +0,0 @@ -# Kernel for NSLU2 -# -# Increment PR_CONFIG for changes to the nslu2-kernel specific -# defconfig (do *NOT* increment anything in here for changes -# to other kernel configs!) -PR_CONFIG = "0" -# -# Increment the number below (i.e. the digits after PR) when -# making changes within this file or for changes to the patches -# applied to the kernel. -PR = "r1.${PR_CONFIG}" - -include nslu2-kernel.inc - -# N2K_EXTRA_PATCHES - list of patches to apply (can include -# patches to the files installed above) -# N2K_PATCHES - full list of patches to apply, defaults to: -# file://nslu2_2.6.11.patch;patch=1 -# file://usbnet.patch;patch=1 -# file://ixp4xx_copy_from.patch;patch=1 -# ${N2K_EXTRA_PATCHES} -# -# There are no added files no more. -N2K_FILES = "" - -N2K_PATCHES = "\ - file://10-ixp4xx-copy-from.patch;patch=1 \ - file://20-timer.patch;patch=1 \ - file://30-i2c-x1205.patch;patch=1 \ - file://50-nslu2-arch.patch;patch=1 \ - file://50-nslu2-include.patch;patch=1 \ - file://50-nslu2-setup.patch;patch=1 \ - file://55-nslu2-rpbutton.patch;patch=1 \ - file://anonymiser.patch;patch=1 \ -" - -CMDLINE_KERNEL_OPTIONS = "" diff --git a/packages/linux/nslu2-kernel_2.6.14-rc5-mm1.bb b/packages/linux/nslu2-kernel_2.6.14-mm1.bb index 205a57a5f4..ded1e5930d 100644 --- a/packages/linux/nslu2-kernel_2.6.14-rc5-mm1.bb +++ b/packages/linux/nslu2-kernel_2.6.14-mm1.bb @@ -8,35 +8,26 @@ PR_CONFIG = "0" # Increment the number below (i.e. the digits after PR) when # making changes within this file or for changes to the patches # applied to the kernel. -PR = "r0.${PR_CONFIG}" +PR = "r1.${PR_CONFIG}" include nslu2-kernel.inc -# N2K_EXTRA_PATCHES - list of patches to apply (can include -# patches to the files installed above) -# N2K_PATCHES - full list of patches to apply, defaults to: -# file://nslu2_2.6.11.patch;patch=1 -# file://usbnet.patch;patch=1 -# file://ixp4xx_copy_from.patch;patch=1 -# ${N2K_EXTRA_PATCHES} -# -# There are no added files no more. -N2K_FILES = "" - +# N2K_PATCHES - full list of patches to apply N2K_PATCHES = "\ + file://00-memory-h-page-shift.patch;patch=1 \ file://90-ixp4xx-pci-le.patch;patch=1 \ - file://10-ixp4xx-copy-from.patch;patch=1 \ - file://10-mtdpart-redboot-fis-byteswap.patch;patch=1 \ - file://15-ixp4xx-writesb-l-w.patch;patch=1 \ - file://16-ixp4xx-ioremap.patch;patch=1 \ file://18-ixp4xx-io-h-addr.patch;patch=1 \ + file://19-jffs2-force-be.patch;patch=1 \ file://20-timer.patch;patch=1 \ - file://25-nslu2-arch-reset.patch;patch=1 \ - file://28-spinlock-up.patch;patch=1 \ file://29-ipv4-route-c-spinlock.patch;patch=1 \ + file://30-i2c-x1205-mm1.patch;patch=1 \ file://50-nslu2-arch.patch;patch=1 \ + file://55-nslu2-rtc.patch;patch=1 \ file://60-nslu2-beeper.patch;patch=1 \ + file://70-nslu2-io.patch;patch=1 \ file://75-nslu2-leds.patch;patch=1 \ + file://80-nslu2-class-device-create.patch;patch=1 \ + file://90-pegasus.patch;patch=1 \ file://anonymiser.patch;patch=1 \ " diff --git a/packages/linux/nslu2-kernel_2.6.14.bb b/packages/linux/nslu2-kernel_2.6.14.3.bb index 122e88de6d..eca0862724 100644 --- a/packages/linux/nslu2-kernel_2.6.14.bb +++ b/packages/linux/nslu2-kernel_2.6.14.3.bb @@ -3,26 +3,16 @@ # Increment PR_CONFIG for changes to the nslu2-kernel specific # defconfig (do *NOT* increment anything in here for changes # to other kernel configs!) -PR_CONFIG = "1" +PR_CONFIG = "0" # # Increment the number below (i.e. the digits after PR) when # making changes within this file or for changes to the patches # applied to the kernel. -PR = "r3.${PR_CONFIG}" +PR = "r0.${PR_CONFIG}" include nslu2-kernel.inc -# N2K_EXTRA_PATCHES - list of patches to apply (can include -# patches to the files installed above) -# N2K_PATCHES - full list of patches to apply, defaults to: -# file://nslu2_2.6.11.patch;patch=1 -# file://usbnet.patch;patch=1 -# file://ixp4xx_copy_from.patch;patch=1 -# ${N2K_EXTRA_PATCHES} -# -# There are no added files no more. -N2K_FILES = "" - +# N2K_PATCHES - full list of patches to apply N2K_PATCHES = "\ file://90-ixp4xx-pci-le.patch;patch=1 \ file://10-ixp4xx-copy-from.patch;patch=1 \ @@ -30,8 +20,7 @@ N2K_PATCHES = "\ file://10-mtdpart-redboot-fis-byteswap.patch;patch=1 \ file://15-ixp4xx-writesb-l-w.patch;patch=1 \ file://18-ixp4xx-io-h-addr.patch;patch=1 \ - file://20-timer.patch;patch=1 \ - file://28-spinlock-up.patch;patch=1 \ + file://19-jffs2-force-be.patch;patch=1 \ file://29-ipv4-route-c-spinlock.patch;patch=1 \ file://30-i2c-x1205.patch;patch=1 \ file://50-nslu2-arch.patch;patch=1 \ @@ -40,6 +29,7 @@ N2K_PATCHES = "\ file://70-nslu2-io.patch;patch=1 \ file://75-nslu2-leds.patch;patch=1 \ file://90-pegasus.patch;patch=1 \ + file://20-timer.patch;patch=1 \ file://anonymiser.patch;patch=1 \ " diff --git a/packages/linux/nslu2-kernel_2.6.15-rc2.bb b/packages/linux/nslu2-kernel_2.6.15-rc2.bb new file mode 100644 index 0000000000..d2b55c8e7b --- /dev/null +++ b/packages/linux/nslu2-kernel_2.6.15-rc2.bb @@ -0,0 +1,35 @@ +# Kernel for NSLU2 +# +# Increment PR_CONFIG for changes to the nslu2-kernel specific +# defconfig (do *NOT* increment anything in here for changes +# to other kernel configs!) +PR_CONFIG = "0" +# +# Increment the number below (i.e. the digits after PR) when +# making changes within this file or for changes to the patches +# applied to the kernel. +PR = "r0.${PR_CONFIG}" + +include nslu2-kernel.inc + +# N2K_PATCHES - full list of patches to apply +N2K_PATCHES = "\ + file://00-memory-h-page-shift.patch;patch=1 \ + file://10-mtdpart-redboot-fis-byteswap.patch;patch=1 \ + file://19-jffs2-force-be.patch;patch=1 \ + file://55-rtc-x1205.patch;patch=1 \ + file://60-nslu2-beeper.patch;patch=1 \ + file://60-nslu2-rtc.patch;patch=1 \ + file://75-nslu2-leds.patch;patch=1 \ + file://80-nslu2-io.patch;patch=1 \ + file://81-nslu2-class-device-create.patch;patch=1 \ + file://90-ixp4xx-nslu2.patch;patch=1 \ + file://20-timer.patch;patch=1 \ + file://anonymiser.patch;patch=1 \ +" + +# These options get added to the kernel command line, only put things +# specific to the bootstrap of *this* kernel in here - DISTRO specfic +# config must be in CMDLINE_ROOT (see the full definition of CMDLINE +# in nslu2-kernel.inc) +CMDLINE_KERNEL_OPTIONS = "x1205.hctosys=1" diff --git a/packages/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/defconfig-simpad b/packages/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/defconfig-simpad index 90791c65f8..dd67df8a5b 100644 --- a/packages/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/defconfig-simpad +++ b/packages/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/defconfig-simpad @@ -102,7 +102,6 @@ CONFIG_ARCH_SA1100=y # CONFIG_SA1100_SHANNON is not set # CONFIG_SA1100_SHERMAN is not set CONFIG_SA1100_SIMPAD=y -# CONFIG_SA1100_SIMPAD_SINUSPAD is not set # CONFIG_SA1100_SIMPUTER is not set # CONFIG_SA1100_PFS168 is not set # CONFIG_SA1100_VICTOR is not set @@ -304,10 +303,6 @@ CONFIG_MTD_SA1100=y # # CONFIG_MTD_PMC551 is not set # CONFIG_MTD_SLRAM is not set -CONFIG_MTD_MTDRAM=y -CONFIG_MTDRAM_TOTAL_SIZE=32768 -CONFIG_MTDRAM_ERASE_SIZE=1 -CONFIG_MTDRAM_ABS_POS=C2000000 # CONFIG_MTD_BLKMTD is not set # @@ -332,6 +327,7 @@ CONFIG_MTDRAM_ABS_POS=C2000000 # # Block devices # +CONFIG_BLK_DEV_MMC=m # CONFIG_BLK_DEV_FD is not set # CONFIG_BLK_DEV_XD is not set # CONFIG_PARIDE is not set diff --git a/packages/linux/opensimpad-2.4.27-vrs1-pxa1-jpm1/defconfig-simpad b/packages/linux/opensimpad-2.4.27-vrs1-pxa1-jpm1/defconfig-simpad index 88d334a6fe..ebeab96e23 100644 --- a/packages/linux/opensimpad-2.4.27-vrs1-pxa1-jpm1/defconfig-simpad +++ b/packages/linux/opensimpad-2.4.27-vrs1-pxa1-jpm1/defconfig-simpad @@ -102,7 +102,6 @@ CONFIG_ARCH_SA1100=y # CONFIG_SA1100_SHANNON is not set # CONFIG_SA1100_SHERMAN is not set CONFIG_SA1100_SIMPAD=y -# CONFIG_SA1100_SIMPAD_SINUSPAD is not set # CONFIG_SA1100_SIMPUTER is not set # CONFIG_SA1100_PFS168 is not set # CONFIG_SA1100_VICTOR is not set @@ -305,10 +304,6 @@ CONFIG_MTD_SA1100=y # # CONFIG_MTD_PMC551 is not set # CONFIG_MTD_SLRAM is not set -CONFIG_MTD_MTDRAM=y -CONFIG_MTDRAM_TOTAL_SIZE=32768 -CONFIG_MTDRAM_ERASE_SIZE=1 -CONFIG_MTDRAM_ABS_POS=C2000000 # CONFIG_MTD_BLKMTD is not set # @@ -333,6 +328,7 @@ CONFIG_MTDRAM_ABS_POS=C2000000 # # Block devices # +CONFIG_BLK_DEV_MMC=m # CONFIG_BLK_DEV_FD is not set # CONFIG_BLK_DEV_XD is not set # CONFIG_PARIDE is not set diff --git a/packages/linux/opensimpad-64+0_2.4.27-vrs1-pxa1-jpm1.bb b/packages/linux/opensimpad-64+0_2.4.27-vrs1-pxa1-jpm1.bb index fb12c70b59..5bd4c85483 100644 --- a/packages/linux/opensimpad-64+0_2.4.27-vrs1-pxa1-jpm1.bb +++ b/packages/linux/opensimpad-64+0_2.4.27-vrs1-pxa1-jpm1.bb @@ -1,5 +1,11 @@ +# to use another configuration, duplicate this file, change the sizes, +# change the filename accordingly, and add the followin line to local.conf: +# PREFERRED_PROVIDER_virtual/kernel_kernel24 = "opensimpad-64+0" + SECTION = "kernel" include opensimpad_${PV}.bb +# fraction of the memory (in Mb) used for RAM SIMPAD_MEM = "64" +# fraction of the memory (in Mb) used as a ramdisk SIMPAD_RD = "0" diff --git a/packages/linux/opensimpad/mmc-spi.patch b/packages/linux/opensimpad/mmc-spi.patch new file mode 100644 index 0000000000..1841b45fbd --- /dev/null +++ b/packages/linux/opensimpad/mmc-spi.patch @@ -0,0 +1,885 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- /dev/null ++++ linux-2.4.27/drivers/block/mmc.c +@@ -0,0 +1,857 @@ ++/* ++ * Copyright (c) Clément Ballabriga, 2005 - GPL ++ * Copyright (c) Guylhem Aznar, 2005 - GPL ++ * ++ * Please check http://externe.net/zaurus/simpad-bluetooth reference design first. ++ * ++ * Based on Madsuk/Rohde work on a MMC driver for the WRT54G. ++ * ++ * This is an ugly hack of a driver. I am surprised if it ever works! ++ * So please use a real driver or contribute one to the 2.4/2.6 mmc framework ++ */ ++ ++#include <linux/stddef.h> ++#include <linux/delay.h> ++#include <linux/timer.h> ++#include <linux/module.h> ++#include <linux/mm.h> ++#include <linux/init.h> ++#include <linux/fs.h> ++#include <linux/blkpg.h> ++#include <linux/hdreg.h> ++#include <linux/major.h> ++ ++#include <asm/hardware.h> ++#include <asm/uaccess.h> ++#include <asm/io.h> ++ ++/* ++ * ******************************************************************* ++ * ++ * This is the only configurable part. ++ * ++ * ******************************************************************* ++ * ++ */ ++ ++// #define DEBUG 1 ++ ++#define DEVICE_NAME "mmc" ++#define DEVICE_NR(device) (MINOR(device)) ++#define DEVICE_ON(device) ++#define DEVICE_OFF(device) ++#define MAJOR_NR 121 ++ ++/* Let that include where it is or compilation fails on INIT_REQUEST/CURRENT */ ++ ++#include <linux/blk.h> ++ ++MODULE_AUTHOR("Guylhem Aznar <mmc-driver @externe.net>"); ++MODULE_DESCRIPTION("Driver for MMC/SD-Cards in SPI mode by GPIO"); ++MODULE_SUPPORTED_DEVICE("Simpad"); ++MODULE_LICENSE("GPL"); ++ ++/* Registers should be architecture independant - but it's not ! */ ++ ++#define MAP_START 0x90040000 ++#define MAP_SIZE 0x00001000 ++ ++#define MY_GPLR 0 ++#define MY_GPDR 1 ++#define MY_GPSR 2 ++#define MY_GPCR 3 ++#define MY_GRER 4 ++#define MY_GFER 5 ++#define MY_GEDR 6 ++#define MY_GAFR 7 ++ ++/* ++ * If you are using different GPIOs in your hardware hack, you must ++ * first make sure they are unused for other functions and then ++ * configure them here. ++ * ++ * On the simpad I use spare pins from the UART1 (internal serial port): ++ * - DCD (in) : GPIO 23 : DO ++ * - DTR (out) : GPIO 07 : CS ++ * - RI (in) : GPIO 19 : CLK ++ * - DSR (in) : GPIO 06 : DI ++ * ++ * Don't worry about in/out original function - the GPIOs will be ++ * reprogrammed. ++ */ ++ ++#define GPIO_SD_DO 23 ++#define GPIO_SD_CS 7 ++#define GPIO_SD_CLK 19 ++#define GPIO_SD_DI 6 ++ ++/* ++ * ******************************************************************* ++ * ++ * Do not change anything below ! ++ * ++ * ******************************************************************* ++ * ++ */ ++ ++ ++/* GPIO states */ ++#define LOW 0 ++#define HIGH 1 ++ ++#define INPUT 0 ++#define OUTPUT 1 ++ ++#define PRESENT 1 ++#define ABSENT 0 ++ ++typedef unsigned int uint32; ++typedef unsigned long u32_t; ++typedef unsigned short u16_t; ++typedef unsigned char u8_t; ++ ++/* we have only one device */ ++static int hd_sizes[1 << 6]; ++static int hd_blocksizes[1 << 6]; ++static int hd_hardsectsizes[1 << 6]; ++static int hd_maxsect[1 << 6]; ++static struct hd_struct hd[1 << 6]; ++ ++static struct timer_list mmc_timer; ++ ++/* start with no card */ ++static int mmc_media_detect = 0; ++static int mmc_media_changed = 1; ++ ++extern struct gendisk hd_gendisk; ++ ++/* Use only one global device */ ++typedef struct gpio_s gpio_t; ++struct gpio_s { ++ volatile u32_t *base; ++}; ++ ++static gpio_t gp = { ++ (void *) io_p2v(MAP_START) ++}; ++ ++/* ++ * ******************************************************************* ++ * ++ * Begin GPIO hardware access functions. ++ * ++ * ******************************************************************* ++ * ++ */ ++ ++gpio_t *gpio_open(void) ++{ ++ static gpio_t tmp; ++ tmp.base = (void *) io_p2v(MAP_START); ++ return (&tmp); ++} ++ ++void gpio_setdir(gpio_t * g, int num, int dir) ++{ ++ if (dir == 1) { ++ g->base[MY_GPDR] |= (1 << num); ++ } else { ++ g->base[MY_GPDR] &= ~(1 << num); ++ ++ } ++} ++ ++void gpio_setalt(gpio_t * g, int num, int alt) ++{ ++ if (alt == 1) { ++ g->base[MY_GAFR] |= (1 << num); ++ } else { ++ g->base[MY_GAFR] &= ~(1 << num); ++ } ++} ++ ++int gpio_getdir(gpio_t * g, int num) ++{ ++ return ((g->base[MY_GPDR] & (1 << num)) ? 1 : 0); ++} ++ ++int gpio_getalt(gpio_t * g, int num) ++{ ++ return ((g->base[MY_GAFR] & (1 << num)) ? 1 : 0); ++} ++ ++static int gpio_read(gpio_t * g, int num) ++{ ++ int what; ++ ++ what=(g->base[MY_GPLR] & (1 << num)) ? 1 : 0; ++ ++#ifdef DEBUG ++ if (num == GPIO_SD_DO) { ++ printk ("GPIO_SD_DO read: %u\n", what); ++ } ++#endif ++ return (what); ++} ++ ++static int gpio_write(gpio_t * g, int num, int val) ++{ ++#ifdef DEBUG ++ int check; ++#endif ++ ++ if (val == 1) { ++ g->base[MY_GPSR] = 1 << num; ++ } else { ++ g->base[MY_GPCR] = 1 << num; ++ } ++#ifdef DEBUG ++ check=gpio_read(g,num); ++ if (check != val) ++ { ++ printk ("Error while write to %d: found %d after writing %d\n",num, check, val); ++ return (1); ++ } ++ else return(0); ++#endif ++ ++} ++ ++/* ++ * ******************************************************************* ++ * ++ * Begin SPI hardware access functions. ++ * ++ * ******************************************************************* ++ * ++ */ ++static int mmc_spi_media_detect(void) ++{ ++// FIXME: add card detection/test by SPI ++ ++ return 1; ++} ++ ++static int mmc_spi_hardware_init(void) ++{ ++ /*unsigned char gpio_outen;*/ ++ ++ printk("mmc: GPIO init\n"); ++ ++ /* Now global ++ * gp = gpio_open(); */ ++ ++ /* Cut existing functions */ ++ gpio_setalt(&gp, GPIO_SD_CLK, 0); ++ gpio_setalt(&gp, GPIO_SD_DI, 0); ++ gpio_setalt(&gp, GPIO_SD_DO, 0); ++ gpio_setalt(&gp, GPIO_SD_CS, 0); ++ ++ /* Remap directions */ ++ gpio_setdir(&gp, GPIO_SD_CLK, OUTPUT); ++ gpio_setdir(&gp, GPIO_SD_DI, OUTPUT); ++ gpio_setdir(&gp, GPIO_SD_DO, INPUT); ++ gpio_setdir(&gp, GPIO_SD_CS, OUTPUT); ++ ++ printk("mmc: initialising MMC\n"); ++ ++ /* Start */ ++ gpio_write(&gp, GPIO_SD_CLK, LOW); ++ gpio_write(&gp, GPIO_SD_DI, LOW); ++ gpio_write(&gp, GPIO_SD_CS, LOW); ++ return 0; ++} ++ ++/* return what has been read, write the parameter */ ++ ++static unsigned char mmc_spi_readwrite(unsigned char data_out) ++{ ++ int i; ++ unsigned char result = 0/*, tmp_data = 0*/; ++ ++ for (i = 0; i < 8; i++) { ++ if (data_out & (0x01 << (7 - i))) ++ gpio_write(&gp, GPIO_SD_DI, HIGH); ++ else ++ gpio_write(&gp, GPIO_SD_DI, LOW); ++ ++ gpio_write(&gp, GPIO_SD_CLK, HIGH); ++ ++ result <<= 1; ++ ++ if (gpio_read(&gp, GPIO_SD_DO) == 1) ++ result |= 1; ++ ++ gpio_write(&gp, GPIO_SD_CLK, LOW); ++ } ++ ++ return (result); ++} ++ ++static int mmc_spi_card_init(void) ++{ ++ unsigned char result = 0; ++ short i, j; ++ unsigned long flags; ++ ++ save_flags(flags); ++ cli(); ++ ++ printk("GPIO_SD_CS dir: %u alt: %u\n", gpio_getdir(&gp, GPIO_SD_CS), gpio_getalt(&gp, GPIO_SD_CS)); ++ printk("GPIO_SD_DI dir: %u alt: %u\n", gpio_getdir(&gp, GPIO_SD_DI), gpio_getalt(&gp, GPIO_SD_DI)); ++ printk("GPIO_SD_DO dir: %u alt: %u\n", gpio_getdir(&gp, GPIO_SD_DO), gpio_getalt(&gp, GPIO_SD_DO)); ++ printk("GPIO_SD_CS dir: %u alt: %u\n", gpio_getdir(&gp, GPIO_SD_CLK), gpio_getalt(&gp, GPIO_SD_CLK)); ++ ++ printk("mmc: card init 1/2\n"); ++ gpio_write(&gp, GPIO_SD_CS, HIGH); ++ for (i = 0; i < 20; i++) ++ mmc_spi_readwrite(0xff); ++ ++ gpio_write(&gp, GPIO_SD_CS, LOW); ++ ++ mmc_spi_readwrite(0x40); ++ for (i = 0; i < 4; i++) ++ mmc_spi_readwrite(0x00); ++ mmc_spi_readwrite(0x95); ++ for (i = 0; i < 8; i++) { ++ result = mmc_spi_readwrite(0xff); ++ if (result == 0x01) ++ break; ++ } ++ gpio_write(&gp, GPIO_SD_CS, HIGH); ++ mmc_spi_readwrite(0xff); ++ if (result != 0x01) { ++ printk("mmc: card init %d error\n", result); ++ restore_flags(flags); ++ return (1); ++ } ++ ++ printk("mmc: card init 2/2\n"); ++ for (j = 0; j < 10000; j++) { ++ gpio_write(&gp, GPIO_SD_CS, LOW); ++ ++ mmc_spi_readwrite(0x41); ++ for (i = 0; i < 4; i++) ++ mmc_spi_readwrite(0x00); ++ mmc_spi_readwrite(0xff); ++ for (i = 0; i < 8; i++) { ++ result = mmc_spi_readwrite(0xff); ++ if (result == 0x00) ++ break; ++ } ++ gpio_write(&gp, GPIO_SD_CS, HIGH); ++ mmc_spi_readwrite(0xff); ++ if (result == 0x00) { ++ restore_flags(flags); ++ printk("mmc: card init 3/3\n"); ++ return (0); ++ } ++ } ++ restore_flags(flags); ++ ++ return (2); ++} ++ ++ ++static int mmc_spi_card_config(void) ++{ ++ unsigned char result = 0; ++ short i; ++ unsigned char csd[32]; ++ unsigned int c_size; ++ unsigned int c_size_mult; ++ unsigned int mult; ++ unsigned int read_bl_len; ++ unsigned int blocknr = 0; ++ unsigned int block_len = 0; ++ unsigned int size = 0; ++ ++ gpio_write(&gp, GPIO_SD_CS, LOW); ++ for (i = 0; i < 4; i++) ++ mmc_spi_readwrite(0xff); ++ mmc_spi_readwrite(0x49); ++ for (i = 0; i < 4; i++) ++ mmc_spi_readwrite(0x00); ++ mmc_spi_readwrite(0xff); ++ for (i = 0; i < 8; i++) { ++ result = mmc_spi_readwrite(0xff); ++ if (result == 0x00) ++ break; ++ } ++ if (result != 0x00) { ++ gpio_write(&gp, GPIO_SD_CS, HIGH); ++ mmc_spi_readwrite(0xff); ++ return (1); ++ } ++ for (i = 0; i < 8; i++) { ++ result = mmc_spi_readwrite(0xff); ++ if (result == 0xfe) ++ break; ++ } ++ if (result != 0xfe) { ++ gpio_write(&gp, GPIO_SD_CS, HIGH); ++ mmc_spi_readwrite(0xff); ++ return (2); ++ } ++ for (i = 0; i < 16; i++) { ++ result = mmc_spi_readwrite(0xff); ++ csd[i] = result; ++ } ++ for (i = 0; i < 2; i++) { ++ result = mmc_spi_readwrite(0xff); ++ } ++ gpio_write(&gp, GPIO_SD_CS, HIGH); ++ mmc_spi_readwrite(0xff); ++ if (result == 0x00) ++ return (3); ++ ++ c_size = csd[8] + csd[7] * 256 + (csd[6] & 0x03) * 256 * 256; ++ c_size >>= 6; ++ c_size_mult = csd[10] + (csd[9] & 0x03) * 256; ++ c_size_mult >>= 7; ++ read_bl_len = csd[5] & 0x0f; ++ mult = 1; ++ mult <<= c_size_mult + 2; ++ blocknr = (c_size + 1) * mult; ++ block_len = 1; ++ block_len <<= read_bl_len; ++ size = block_len * blocknr; ++ size >>= 10; ++ ++ for (i = 0; i < (1 << 6); i++) { ++ hd_blocksizes[i] = 1024; ++ hd_hardsectsizes[i] = block_len; ++ hd_maxsect[i] = 256; ++ } ++ hd_sizes[0] = size; ++ hd[0].nr_sects = blocknr; ++ ++ ++ printk("Size = %d, hardsectsize = %d, sectors = %d\n", ++ size, block_len, blocknr); ++ ++ return 0; ++} ++ ++ ++/* ++ * ******************************************************************* ++ * ++ * End of SPI hardware access functions. ++ * ++ * ******************************************************************* ++ */ ++ ++ ++static int mmc_write_block(unsigned int dest_addr, unsigned char *data) ++{ ++ unsigned int address; ++ unsigned char result = 0; ++ unsigned char ab0, ab1, ab2, ab3; ++ int i; ++ ++ address = dest_addr; ++ ++ ab3 = 0xff & (address >> 24); ++ ab2 = 0xff & (address >> 16); ++ ab1 = 0xff & (address >> 8); ++ ab0 = 0xff & address; ++ gpio_write(&gp, GPIO_SD_CS, LOW); ++ for (i = 0; i < 4; i++) ++ mmc_spi_readwrite(0xff); ++ mmc_spi_readwrite(0x58); ++ mmc_spi_readwrite(ab3); /* msb */ ++ mmc_spi_readwrite(ab2); ++ mmc_spi_readwrite(ab1); ++ mmc_spi_readwrite(ab0); /* lsb */ ++ mmc_spi_readwrite(0xff); ++ for (i = 0; i < 8; i++) { ++ result = mmc_spi_readwrite(0xff); ++ if (result == 0x00) ++ break; ++ } ++ if (result != 0x00) { ++ gpio_write(&gp, GPIO_SD_CS, HIGH); ++ mmc_spi_readwrite(0xff); ++ return (1); ++ } ++ ++ mmc_spi_readwrite(0xfe); ++ for (i = 0; i < 512; i++) ++ mmc_spi_readwrite(data[i]); ++ for (i = 0; i < 2; i++) ++ mmc_spi_readwrite(0xff); ++ ++ for (i = 0; i < 1000000; i++) { ++ result = mmc_spi_readwrite(0xff); ++ if (result == 0xff) ++ break; ++ } ++ if (result != 0xff) { ++ gpio_write(&gp, GPIO_SD_CS, HIGH); ++ mmc_spi_readwrite(0xff); ++ return (3); ++ } ++ gpio_write(&gp, GPIO_SD_CS, HIGH); ++ mmc_spi_readwrite(0xff); ++ return (0); ++} ++ ++static int mmc_read_block(unsigned char *data, unsigned int src_addr) ++{ ++ unsigned int address; ++ unsigned char result = 0; ++ unsigned char ab0, ab1, ab2, ab3; ++ int i; ++ ++ address = src_addr; ++ ++ ab3 = 0xff & (address >> 24); ++ ab2 = 0xff & (address >> 16); ++ ab1 = 0xff & (address >> 8); ++ ab0 = 0xff & address; ++ ++ gpio_write(&gp, GPIO_SD_CS, LOW); ++ for (i = 0; i < 4; i++) ++ mmc_spi_readwrite(0xff); ++ mmc_spi_readwrite(0x51); ++ mmc_spi_readwrite(ab3); /* msb */ ++ mmc_spi_readwrite(ab2); ++ mmc_spi_readwrite(ab1); ++ mmc_spi_readwrite(ab0); /* lsb */ ++ ++ mmc_spi_readwrite(0xff); ++ for (i = 0; i < 8; i++) { ++ result = mmc_spi_readwrite(0xff); ++ if (result == 0x00) ++ break; ++ } ++ if (result != 0x00) { ++ gpio_write(&gp, GPIO_SD_CS, HIGH); ++ mmc_spi_readwrite(0xff); ++ return (1); ++ } ++ for (i = 0; i < 100000; i++) { ++ result = mmc_spi_readwrite(0xff); ++ if (result == 0xfe) ++ break; ++ } ++ if (result != 0xfe) { ++ gpio_write(&gp, GPIO_SD_CS, HIGH); ++ mmc_spi_readwrite(0xff); ++ return (2); ++ } ++ for (i = 0; i < 512; i++) { ++ result = mmc_spi_readwrite(0xff); ++ data[i] = result; ++ } ++ for (i = 0; i < 2; i++) { ++ result = mmc_spi_readwrite(0xff); ++ } ++ gpio_write(&gp, GPIO_SD_CS, HIGH); ++ mmc_spi_readwrite(0xff); ++ ++ return (0); ++} ++ ++static void mmc_request(request_queue_t * q) ++{ ++ unsigned int mmc_address; ++ unsigned char *buffer_address; ++ int nr_sectors; ++ int i; ++ int cmd; ++ int result, code; ++ ++ (void) q; ++ while (1) { ++ code = 1; // Default is success ++ INIT_REQUEST; ++ mmc_address = ++ (CURRENT->sector + ++ hd[MINOR(CURRENT->rq_dev)].start_sect) * hd_hardsectsizes[0]; ++ buffer_address = CURRENT->buffer; ++ nr_sectors = CURRENT->current_nr_sectors; ++ cmd = CURRENT->cmd; ++ if (((CURRENT->sector + CURRENT->current_nr_sectors + ++ hd[MINOR(CURRENT->rq_dev)].start_sect) > hd[0].nr_sects) ++ || (mmc_media_detect == 0)) { ++ code = 0; ++ } else if (cmd == READ) { ++ spin_unlock_irq(&io_request_lock); ++ for (i = 0; i < nr_sectors; i++) { ++ result = mmc_read_block(buffer_address, mmc_address); ++ if (result != 0) { ++ printk("mmc: error %d in mmc_read_block\n", result); ++ code = 0; ++ break; ++ } else { ++ mmc_address += hd_hardsectsizes[0]; ++ buffer_address += hd_hardsectsizes[0]; ++ } ++ } ++ spin_lock_irq(&io_request_lock); ++ } else if (cmd == WRITE) { ++ spin_unlock_irq(&io_request_lock); ++ for (i = 0; i < nr_sectors; i++) { ++ result = mmc_write_block(mmc_address, buffer_address); ++ if (result != 0) { ++ printk("mmc: error %d in mmc_write_block\n", result); ++ code = 0; ++ break; ++ } else { ++ mmc_address += hd_hardsectsizes[0]; ++ buffer_address += hd_hardsectsizes[0]; ++ } ++ } ++ spin_lock_irq(&io_request_lock); ++ } else { ++ code = 0; ++ } ++ end_request(code); ++ } ++} ++ ++ ++static int mmc_open(struct inode *inode, struct file *filp) ++{ ++ /*int device;*/ ++ (void) filp; ++ mmc_media_detect = mmc_spi_media_detect(); ++ ++ if (mmc_media_detect == 0) ++ return -ENODEV; ++ ++#if defined(MODULE) ++ MOD_INC_USE_COUNT; ++#endif ++ return 0; ++} ++ ++static int mmc_release(struct inode *inode, struct file *filp) ++{ ++ (void) filp; ++ fsync_dev(inode->i_rdev); ++ invalidate_buffers(inode->i_rdev); ++ ++#if defined(MODULE) ++ MOD_DEC_USE_COUNT; ++#endif ++ return 0; ++} ++ ++static int mmc_revalidate(kdev_t dev) ++{ ++ int target, max_p, start, i; ++ ++ mmc_media_detect = mmc_spi_media_detect(); ++ ++ if (mmc_media_detect == 0) ++ return -ENODEV; ++ ++ target = DEVICE_NR(dev); ++ ++ max_p = hd_gendisk.max_p; ++ start = target << 6; ++ for (i = max_p - 1; i >= 0; i--) { ++ int minor = start + i; ++ invalidate_device(MKDEV(MAJOR_NR, minor), 1); ++ hd_gendisk.part[minor].start_sect = 0; ++ hd_gendisk.part[minor].nr_sects = 0; ++ } ++ ++ grok_partitions(&hd_gendisk, target, 1 << 6, hd_sizes[0] * 2); ++ ++ return 0; ++} ++ ++static int mmc_ioctl(struct inode *inode, struct file *filp, ++ unsigned int cmd, unsigned long arg) ++{ ++ if (!inode || !inode->i_rdev) ++ return -EINVAL; ++ ++ switch (cmd) { ++ case BLKGETSIZE: ++ return put_user(hd[MINOR(inode->i_rdev)].nr_sects, ++ (unsigned long *) arg); ++ case BLKGETSIZE64: ++ return put_user((u64) hd[MINOR(inode->i_rdev)]. ++ nr_sects, (u64 *) arg); ++ case BLKRRPART: ++ if (!capable(CAP_SYS_ADMIN)) ++ return -EACCES; ++ ++ return mmc_revalidate(inode->i_rdev); ++ case HDIO_GETGEO: ++ { ++ struct hd_geometry *loc, g; ++ loc = (struct hd_geometry *) arg; ++ if (!loc) ++ return -EINVAL; ++ g.heads = 4; ++ g.sectors = 16; ++ g.cylinders = hd[0].nr_sects / (4 * 16); ++ g.start = hd[MINOR(inode->i_rdev)].start_sect; ++ return copy_to_user(loc, &g, sizeof(g)) ? -EFAULT : 0; ++ } ++ default: ++ return blk_ioctl(inode->i_rdev, cmd, arg); ++ } ++} ++ ++ ++/* ++static int mmc_check_media_change(kdev_t dev) ++{ ++ (void) dev; ++ if (mmc_media_changed == 1) { ++ mmc_media_changed = 0; ++ return 1; ++ } else ++ return 0; ++} ++*/ ++ ++static struct block_device_operations mmc_bdops = { ++ open:mmc_open, ++ release:mmc_release, ++ ioctl:mmc_ioctl, ++/* FIXME: add media change support ++ * check_media_change: mmc_check_media_change, ++ * revalidate: mmc_revalidate, ++ */ ++}; ++ ++static struct gendisk hd_gendisk = { ++ major:MAJOR_NR, ++ major_name:DEVICE_NAME, ++ minor_shift:6, ++ max_p:1 << 6, ++ part:hd, ++ sizes:hd_sizes, ++ fops:&mmc_bdops, ++}; ++ ++static int mmc_init(void) ++{ ++ int result; ++ ++ result = mmc_spi_hardware_init(); ++ ++ if (result != 0) { ++ printk("mmc: error %d in mmc_spi_hardware_init\n", result); ++ return -1; ++ } ++ ++ result = mmc_spi_card_init(); ++ if (result != 0) { ++ // Give it an extra shot ++ result = mmc_spi_card_init(); ++ if (result != 0) { ++ printk("mmc: error %d in mmc_card_init\n", result); ++ return -1; ++ } ++ } ++ ++ memset(hd_sizes, 0, sizeof(hd_sizes)); ++ result = mmc_spi_card_config(); ++ if (result != 0) { ++ printk("mmc: error %d in mmc_card_config\n", result); ++ return -1; ++ } ++ ++ ++ blk_size[MAJOR_NR] = hd_sizes; ++ ++ memset(hd, 0, sizeof(hd)); ++ hd[0].nr_sects = hd_sizes[0] * 2; ++ ++ blksize_size[MAJOR_NR] = hd_blocksizes; ++ hardsect_size[MAJOR_NR] = hd_hardsectsizes; ++ max_sectors[MAJOR_NR] = hd_maxsect; ++ ++ hd_gendisk.nr_real = 1; ++ ++ register_disk(&hd_gendisk, MKDEV(MAJOR_NR, 0), 1 << 6, ++ &mmc_bdops, hd_sizes[0] * 2); ++ ++ return 0; ++} ++ ++static void mmc_exit(void) ++{ ++ blk_size[MAJOR_NR] = NULL; ++ blksize_size[MAJOR_NR] = NULL; ++ hardsect_size[MAJOR_NR] = NULL; ++ max_sectors[MAJOR_NR] = NULL; ++ hd[0].nr_sects = 0; ++} ++ ++static void mmc_check_media(void) ++{ ++ int old_state, new_state; ++ int result; ++ ++ old_state = mmc_media_detect; ++ new_state = mmc_spi_media_detect(); ++ ++ if (old_state != new_state) { ++ mmc_media_changed = 1; ++ if (new_state == PRESENT) { ++ result = mmc_init(); ++ if (result != 0) ++ printk("mmc: error %d in mmc_init\n", result); ++ } else { ++ mmc_exit(); ++ } ++ } ++ ++ /* del_timer(&mmc_timer); ++ mmc_timer.expires = jiffies + 10*HZ; ++ add_timer(&mmc_timer); */ ++} ++ ++static int __init mmc_driver_init(void) ++{ ++ int result; ++ ++ result = devfs_register_blkdev(MAJOR_NR, DEVICE_NAME, &mmc_bdops); ++ if (result < 0) { ++ printk(KERN_WARNING "mmc: can't get major %d\n", MAJOR_NR); ++ return result; ++ } ++ ++ blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), mmc_request); ++ ++ mmc_check_media(); ++ ++ /*init_timer(&mmc_timer); ++ mmc_timer.expires = jiffies + HZ; ++ mmc_timer.function = (void *)mmc_check_media; ++ add_timer(&mmc_timer); */ ++ ++ ++ read_ahead[MAJOR_NR] = 8; ++ add_gendisk(&hd_gendisk); ++ ++ ++ return 0; ++} ++ ++static void __exit mmc_driver_exit(void) ++{ ++ int i; ++ del_timer(&mmc_timer); ++ ++ for (i = 0; i < (1 << 6); i++) ++ fsync_dev(MKDEV(MAJOR_NR, i)); ++ ++ blk_cleanup_queue(BLK_DEFAULT_QUEUE(MAJOR_NR)); ++ del_gendisk(&hd_gendisk); ++ devfs_unregister_blkdev(MAJOR_NR, DEVICE_NAME); ++ mmc_exit(); ++} ++ ++module_init(mmc_driver_init); ++module_exit(mmc_driver_exit); +--- linux-2.4.27/drivers/block/Config.in~mmc-spi ++++ linux-2.4.27/drivers/block/Config.in +@@ -4,6 +4,7 @@ + mainmenu_option next_comment + comment 'Block devices' + ++tristate 'MMC SPI driver' CONFIG_BLK_DEV_MMC + tristate 'Normal floppy disk support' CONFIG_BLK_DEV_FD + if [ "$CONFIG_AMIGA" = "y" ]; then + tristate 'Amiga floppy support' CONFIG_AMIGA_FLOPPY +--- linux-2.4.27/drivers/block/Makefile~mmc-spi ++++ linux-2.4.27/drivers/block/Makefile +@@ -15,6 +15,7 @@ + obj-y := ll_rw_blk.o blkpg.o genhd.o elevator.o + + obj-$(CONFIG_MAC_FLOPPY) += swim3.o ++obj-$(CONFIG_BLK_DEV_MMC) += mmc.o + obj-$(CONFIG_BLK_DEV_FD) += floppy.o + obj-$(CONFIG_AMIGA_FLOPPY) += amiflop.o + obj-$(CONFIG_ATARI_FLOPPY) += ataflop.o diff --git a/packages/linux/opensimpad/support-128mb-flash.patch b/packages/linux/opensimpad/support-128mb-flash.patch deleted file mode 100644 index 2a6b1bd31d..0000000000 --- a/packages/linux/opensimpad/support-128mb-flash.patch +++ /dev/null @@ -1,25 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- linux-2.4.27/arch/arm/mach-sa1100/simpad.c~support-128mb-flash -+++ linux-2.4.27/arch/arm/mach-sa1100/simpad.c -@@ -83,11 +83,16 @@ - { - #ifdef CONFIG_SA1100_SIMPAD_SINUSPAD - SET_BANK( 0, 0xc0000000, 32*1024*1024 ); -+ mi->nr_banks = 1; - #else - SET_BANK( 0, 0xc0000000, 64*1024*1024 ); --#endif - mi->nr_banks = 1; -+#endif - -+#ifdef CONFIG_SA1100_SIMPAD_128M -+ SET_BANK( 1, 0xc8000000, 64*1024*1024 ); -+ mi->nr_banks = 2; -+#endif - setup_ramdisk( 1, 0, 0, 8192 ); - setup_initrd( __phys_to_virt(0xc0800000), 4*1024*1024 ); - } diff --git a/packages/linux/opensimpad/support-128mb-ram.patch b/packages/linux/opensimpad/support-128mb-ram.patch new file mode 100644 index 0000000000..f0cde06b57 --- /dev/null +++ b/packages/linux/opensimpad/support-128mb-ram.patch @@ -0,0 +1,35 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- linux-2.4.27/arch/arm/mach-sa1100/simpad.c~support-128mb-ram ++++ linux-2.4.27/arch/arm/mach-sa1100/simpad.c +@@ -83,11 +83,16 @@ + { + #ifdef CONFIG_SA1100_SIMPAD_SINUSPAD + SET_BANK( 0, 0xc0000000, 32*1024*1024 ); ++ mi->nr_banks = 1; + #else + SET_BANK( 0, 0xc0000000, 64*1024*1024 ); +-#endif + mi->nr_banks = 1; ++#endif + ++#ifdef CONFIG_SA1100_SIMPAD_128M ++ SET_BANK( 1, 0xc8000000, 64*1024*1024 ); ++ mi->nr_banks = 2; ++#endif + setup_ramdisk( 1, 0, 0, 8192 ); + setup_initrd( __phys_to_virt(0xc0800000), 4*1024*1024 ); + } +--- linux-2.4.27/arch/arm/config.in~support-128mb-ram ++++ linux-2.4.27/arch/arm/config.in +@@ -130,6 +130,7 @@ + dep_bool ' Simpad' CONFIG_SA1100_SIMPAD $CONFIG_ARCH_SA1100 + if [ "$CONFIG_SA1100_SIMPAD" = "y" ]; then + bool ' T-Sinus PAD' CONFIG_SA1100_SIMPAD_SINUSPAD ++ bool ' Simpad with 128Mb RAM' CONFIG_SA1100_SIMPAD_128M + fi + dep_bool ' Simputer' CONFIG_SA1100_SIMPUTER $CONFIG_ARCH_SA1100 + dep_bool ' Tulsa' CONFIG_SA1100_PFS168 $CONFIG_ARCH_SA1100 diff --git a/packages/linux/opensimpad_2.4.25-vrs2-pxa1-jpm1.bb b/packages/linux/opensimpad_2.4.25-vrs2-pxa1-jpm1.bb index a707910122..6970dd994b 100644 --- a/packages/linux/opensimpad_2.4.25-vrs2-pxa1-jpm1.bb +++ b/packages/linux/opensimpad_2.4.25-vrs2-pxa1-jpm1.bb @@ -1,12 +1,12 @@ DESCRIPTION = "Linux kernel for the SIEMENS SIMpad family of devices." -MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>" +MAINTAINER = "Frederic Devernay <frederic.devernay@m4x.org>" SECTION = "kernel" LICENSE = "GPL" KV = "${@bb.data.getVar('PV',d,True).split('-')[0]}" VRSV = "${@bb.data.getVar('PV',d,True).split('-')[1]}" PXAV = "${@bb.data.getVar('PV',d,True).split('-')[2]}" JPMV = "${@bb.data.getVar('PV',d,True).split('-')[3]}" -PR = "r19" +PR = "r20" FILESPATH = "${FILE_DIRNAME}/opensimpad-${PV}:${FILE_DIRNAME}/opensimpad:${FILE_DIRNAME}/files:${FILE_DIRNAME}" @@ -26,7 +26,9 @@ SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-${KV}.tar.bz2 \ file://simpad-apm.diff;patch=1;pnum=0 \ file://simpad-ts-noninput.patch;patch=1 \ file://simpad-pm-updates.patch;patch=1;pnum=0 \ - file://support-128mb-flash.patch;patch=1" + file://support-128mb-ram.patch;patch=1 \ + file://mmc-spi.patch;patch=1 \ +" # apply this when we have a patch that allows building with gcc 3.x: # SRC_URI_append = file://gcc-3.3.patch;patch=1 @@ -65,6 +67,18 @@ do_configure() { echo "CONFIG_MTDRAM_ERASE_SIZE=1" >> ${S}/.config echo "CONFIG_MTDRAM_ABS_POS=$addr" >> ${S}/.config fi + if [ "$total" == "128" ] + then + echo "CCONFIG_SA1100_SIMPAD_128M=y" >> ${S}/.config + else + echo "# CONFIG_SA1100_SIMPAD_128M is not set" >> ${S}/.config + fi + if [ "$total" == "32" ] + then + echo "CONFIG_SA1100_SIMPAD_SINUSPAD=y" >> ${S}/.config + else + echo "# CONFIG_SA1100_SIMPAD_SINUSPAD is not set" >> ${S}/.config + fi echo "CONFIG_CMDLINE=\"${CMDLINE} mem=${mem}M\"" >> ${S}/.config oe_runmake oldconfig } diff --git a/packages/linux/opensimpad_2.4.27-vrs1-pxa1-jpm1.bb b/packages/linux/opensimpad_2.4.27-vrs1-pxa1-jpm1.bb index 0183f36429..95e483a5c8 100644 --- a/packages/linux/opensimpad_2.4.27-vrs1-pxa1-jpm1.bb +++ b/packages/linux/opensimpad_2.4.27-vrs1-pxa1-jpm1.bb @@ -1,5 +1,5 @@ DESCRIPTION = "Linux kernel for the SIEMENS SIMpad family of devices." -MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>" +MAINTAINER = "Frederic Devernay <frederic.devernay@m4x.org>" SECTION = "kernel" LICENSE = "GPL" KV = "${@bb.data.getVar('PV',d,True).split('-')[0]}" @@ -7,7 +7,7 @@ VRSV = "${@bb.data.getVar('PV',d,True).split('-')[1]}" PXAV = "${@bb.data.getVar('PV',d,True).split('-')[2]}" JPMV = "${@bb.data.getVar('PV',d,True).split('-')[3]}" USBV= "usb20040610" -PR = "r1" +PR = "r2" FILESPATH = "${FILE_DIRNAME}/opensimpad-${PV}:${FILE_DIRNAME}/opensimpad:${FILE_DIRNAME}/files:${FILE_DIRNAME}" @@ -28,11 +28,12 @@ SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-${KV}.tar.bz2 \ file://simpad-apm.patch;patch=1 \ file://simpad-ts-noninput.patch;patch=1 \ file://simpad-pm-updates.patch;patch=1 \ - file://support-128mb-flash.patch;patch=1 \ + file://support-128mb-ram.patch;patch=1 \ file://simpad-proc-sys-board.patch;patch=1 \ file://simpad-serial.patch;patch=1 \ file://mppe-20040216.patch;patch=1 \ file://sa1100-usb-tcl1.patch;patch=1 \ + file://mmc-spi.patch;patch=1 \ " # This applies right after the jpm patch but is useless until we # have sa1100_udc.c @@ -75,6 +76,18 @@ do_configure() { echo "CONFIG_MTDRAM_ERASE_SIZE=1" >> ${S}/.config echo "CONFIG_MTDRAM_ABS_POS=$addr" >> ${S}/.config fi + if [ "$total" == "128" ] + then + echo "CONFIG_SA1100_SIMPAD_128M=y" >> ${S}/.config + else + echo "# CONFIG_SA1100_SIMPAD_128M is not set" >> ${S}/.config + fi + if [ "$total" == "32" ] + then + echo "CONFIG_SA1100_SIMPAD_SINUSPAD=y" >> ${S}/.config + else + echo "# CONFIG_SA1100_SIMPAD_SINUSPAD is not set" >> ${S}/.config + fi echo "CONFIG_CMDLINE=\"${CMDLINE} mem=${mem}M\"" >> ${S}/.config oe_runmake oldconfig } diff --git a/packages/linux/openslug-kernel-2.6.11.2/ixp4xx_copy_from.patch b/packages/linux/openslug-kernel-2.6.11.2/ixp4xx_copy_from.patch deleted file mode 100644 index 8d0f187d44..0000000000 --- a/packages/linux/openslug-kernel-2.6.11.2/ixp4xx_copy_from.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- linux-2.6.11/drivers/mtd/maps/ixp4xx.c.orig 2005-03-05 20:00:28.000000000 +0100 -+++ linux-2.6.11/drivers/mtd/maps/ixp4xx.c 2005-03-05 22:10:48.000000000 +0100 -@@ -29,6 +29,8 @@ - #include <asm/mach-types.h> - #include <asm/mach/flash.h> - -+#include <asm/unaligned.h> -+ - #include <linux/reboot.h> - - #ifndef __ARMEB__ -@@ -60,13 +62,13 @@ static void ixp4xx_copy_from(struct map_ - u16 data; - - for (i = 0; i < (len / 2); i++) { -- data = src[i]; -+ data = get_unaligned((u16*)(src + i)); - dest[i * 2] = BYTE0(data); - dest[i * 2 + 1] = BYTE1(data); - } - - if (len & 1) -- dest[len - 1] = BYTE0(src[i]); -+ dest[len - 1] = BYTE0(get_unaligned((u16*)(src + i))); - } - - /* diff --git a/packages/linux/openslug-kernel-2.6.11.2/mtd-shutdown.patch b/packages/linux/openslug-kernel-2.6.11.2/mtd-shutdown.patch deleted file mode 100644 index e7cce4ebc0..0000000000 --- a/packages/linux/openslug-kernel-2.6.11.2/mtd-shutdown.patch +++ /dev/null @@ -1,66 +0,0 @@ -# Ensure that the MTD is shut down on halt/reboot, otherwise the -# hardware reset hangs - ---- linux-2.6.12.2/drivers/mtd/maps/ixp4xx.c.orig 2005-07-17 15:07:47.790388300 -0700 -+++ linux-2.6.12.2/drivers/mtd/maps/ixp4xx.c 2005-07-17 17:00:08.082672710 -0700 -@@ -144,6 +144,52 @@ - return 0; - } - -+static void ixp4xx_flash_shutdown(struct device *_dev) -+{ -+ struct platform_device *dev = to_platform_device(_dev); -+ struct flash_platform_data *plat = dev->dev.platform_data; -+ struct ixp4xx_flash_info *info = dev_get_drvdata(&dev->dev); -+ map_word d; -+ -+ dev_set_drvdata(&dev->dev, NULL); -+ -+ if(!info) -+ return; -+ -+ /* -+ * This is required for a soft reboot to work. -+ */ -+ d.x[0] = 0xff; -+ ixp4xx_write16(&info->map, d, 0x55 * 0x2); -+ -+#if 0 -+ /* This is commented out because it seems to cause a kernel -+ * panic (at least if it isn't commented out the kernel fails -+ * to shut down). Should be investigated. -+ */ -+ if (info->mtd) { -+ del_mtd_partitions(info->mtd); -+ map_destroy(info->mtd); -+ } -+#endif -+ if (info->map.map_priv_1) -+ iounmap((void *) info->map.map_priv_1); -+ -+ if (info->partitions) -+ kfree(info->partitions); -+ -+ if (info->res) { -+ release_resource(info->res); -+ kfree(info->res); -+ } -+ -+ if (plat->exit) -+ plat->exit(); -+ -+ /* Disable flash write */ -+ *IXP4XX_EXP_CS0 &= ~IXP4XX_FLASH_WRITABLE; -+} -+ - static int ixp4xx_flash_probe(struct device *_dev) - { - struct platform_device *dev = to_platform_device(_dev); -@@ -243,6 +289,7 @@ - .bus = &platform_bus_type, - .probe = ixp4xx_flash_probe, - .remove = ixp4xx_flash_remove, -+ .shutdown = ixp4xx_flash_shutdown, - }; - - static int __init ixp4xx_flash_init(void) diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2-io.c b/packages/linux/openslug-kernel-2.6.11.2/nslu2-io.c deleted file mode 100644 index d27b6732b0..0000000000 --- a/packages/linux/openslug-kernel-2.6.11.2/nslu2-io.c +++ /dev/null @@ -1,777 +0,0 @@ -//============================================================================= -// -// n2-io.c version 0.1.7 -// Author: Karen Spearel <kas11 at tampabay.rr.com> -// please report problems/bugs directly to the address above -// -// Boilerplate to be added "real soon now"...it is and has always been GPL'ed per -// MODULE_LICENSE but is offered without warrantee of any sort..use at your own risk -// -// NOTE: THIS IS INCOMPLETE. INCLUDED ONLY TO KEEP FROM BREAKING THE BUILD, -// IT BEEPS AND SENDS A MESSAGE TO /proc/poweroff. EVENTUALLY IT -// WILL TALK TO THE n2_pbd DAEMON. EVENTUALLY THE LED DRIVER -// WILL TALK TO SOME USERLAND APP BUT ***NOT*** SET_LEDS. -// -//============================================================================= -// GPIO Function State -// 0 Red LED Status -// 1 Green LED Ready = 1 -// 2 Disk 2 LED On = 0 -// 3 Disk 1 LED On = 0 -// 4 Buzzer -// 5 Power Button Pressed = 1 -// 8 Power Down Output = 1 powers down N2 -// 12 Reset Pressed = 0 -//============================================================================= -// this driver is N2 specific and is purposely designed to do the minimum -// necessary to provide the necessary services given the limited memory resources -// of the N2. As OpenN2 develops, addition features will be added as -// suggested by the community. -// -//============================================================================= - -#include <linux/config.h> -#include <linux/version.h> -#include <linux/module.h> -#include <linux/utsname.h> -#include <linux/kernel.h> -#include <linux/major.h> -#include <linux/string.h> -#include <linux/proc_fs.h> -#include <linux/slab.h> -#include <linux/init.h> -#include <linux/errno.h> -#include <linux/fs.h> -#include <linux/miscdevice.h> -#include <linux/device.h> -#include <linux/interrupt.h> -#include <linux/moduleparam.h> -#include <linux/timer.h> -#include <linux/reboot.h> - -#include <asm/system.h> -#include <asm/uaccess.h> -#include <asm/hardware.h> -#include <asm-arm/irq.h> -#include <asm-arm/delay.h> -#include <asm-arm/signal.h> - -/* Set this to 1 to output lots of debug messages. */ -#if NSLU2_IO_DEBUG -#define nslu2_io_debug(args) printk args -#else -#define nslu2_io_debug(args) ((void)0) -#endif - -#define VERSION "0.1.7" - -#define N2RB_MAJOR 60 //rbuttons -#define N2PB_MAJOR 61 //pbuttons -#define N2BZ_MAJOR 62 //buzzer -#define N2LM_MAJOR 126 - -#define N2PB_IRQ 22 //gpio5 -#define N2RB_IRQ 29 //gpio12 - -#define N2_BEEP_DUR_LONG 2000 -#define N2_BEEP_DUR_MED 400 -#define N2_BEEP_DUR_SHORT 100 -#define N2_BEEP_PITCH_HIGH 250 -#define N2_BEEP_PITCH_MED 500 -#define N2_BEEP_PITCH_LOW 1000 -#define N2_LONG_DELAY 30000 - -#define N2_BZ_GPIO 4 -#define N2_PB_GPIO 5 -#define N2_PO_GPIO 8 //power off -#define N2_RB_GPIO 12 - -#define GPIO_BZ_BM 0x0010 //b0000 0000 0001 0000 -#define GPIO_PB_BM 0x0020 //b0000 0000 0010 0000 -#define GPIO_PO_BM 0x0100 //b0000 0001 0000 0000 -#define GPIO_RB_BM 0x1000 //b0001 0000 0000 0000 - -#define NOERR 0 - -#define RB_DELAY 50 -#define PB_DELAY 20 - -#define PWR_OFF_STR "poweroff" - - -// ioctls -- 'M" is used for sound cards...we don't got one so it seems safe - -#define N2BZ_BEEP_STOP _IO('M',0) //stop multi-beep at end of audible -#define N2BZ_BEEP _IO('M',1) //one beep at current defaults -#define N2BZ_BEEPS _IOW('M',3,long) //param beeps at current defaults -#define N2BZ_TONESET _IOW('M',4,long) //set tone: range is high=250 to low=2000 -#define N2BZ_ONTIME _IOW('M',5,long) //ontime for multi-beeps in jiffies -#define N2BZ_SILENTTIME _IOW('M',6,long) //offtime for multi-beeps in jiffies -#define N2BZ_REPEATCNT _IOW('M',7,long) //number of repeats for multi-beeps 0 = forever -#define N2BZ_COMBINED _IOW('M',8,long) //combine all params in a long - -#define N2LM_OFF _IOW('M',32,long) -#define N2LM_ON _IOW('M',33,long) -#define N2LM_BLINK _IOW('M',34,long) -#define N2LM_ALT _IOW('M',35,long) -#define N2LM_ALL_ON _IO('M',36) -#define N2LM_ALL_OFF _IO('M',37) - -#define PHYS_LEDS 4 -#define BLINK_DELAY 25 - -// OR Masks to turn these LEDs ON - -#define RS_RED_ON 0x00000001 //0b0000 0000 0000 0010 -#define RS_GRN_ON 0x00000002 //0b0000 0000 0000 0001 -#define RS_YEL_ON 0x00000003 //0b0000 0000 0000 0011 - -// AND Masks to turn these LEDs OFF - -#define RS_RED_OFF 0xfffffffe //0b1111 1111 1111 1101 -#define RS_GRN_OFF 0xfffffffd //0b1111 1111 1111 1110 -#define RS_YEL_OFF 0xfffffffc //0b1111 1111 1111 1100 - -// AND Masks to turn these LEDs ON - -#define DISK1_ON 0xfffffff7 //0b1111 1111 1111 0111 -#define DISK2_ON 0xfffffffb //0b1111 1111 1111 1011 - -// Or Masks to turn these LEDs OFF - -#define DISK1_OFF 0x00000008 //0b0000 0000 0000 1000 -#define DISK2_OFF 0x00000004 //0b0000 0000 0000 0100 - -// EOR masks for toggling LEDs on/off - -#define RS_RG_ALT 0x00000003 //eor mask to toggle rs rg bits -#define RS_GRN_TGL 0x00000002 -#define RS_RED_TGL 0x00000001 -#define DISK1_TGL 0x00000008 -#define DISK2_TGL 0x00000004 - -// The LED names for switches - -#define LED_RS_RED 0 -#define LED_RS_GRN 1 -#define LED_DISK1 2 -#define LED_DISK2 3 -#define LED_ALL 4 - -static unsigned long init_jiffy = 0; //jiffies at init time -static unsigned long rb_presses = 0; //number of reset button presses -static unsigned long ontime = 50; -static unsigned long offtime = 450; -static unsigned long bz_repeatcnt = 10; -static unsigned long tone = 1000; - -DECLARE_WAIT_QUEUE_HEAD(n2rb_waitq); -DECLARE_WAIT_QUEUE_HEAD(n2pb_waitq); - -static struct timer_list n2lm_rsg_timer; //rs green -static struct timer_list n2lm_rsr_timer; //rs red -static struct timer_list n2lm_d1_timer; //drive 1 -static struct timer_list n2lm_d2_timer; //drive 2 -static struct timer_list n2rb_timer; -static struct timer_list n2pb_timer; -static struct timer_list n2bz_timer; //beeper - -// sysfs class -static struct class_simple *n2lm_class; - -//================================================================================================== -// -// Blinking is handled entirely by the 4 timer handlers. On timeout, the bit in the -// GPIO output register is xor'd with a mask corresponding to the selected led which simply -// flips that bit. No record of what any of the other leds is doing is needed. -// -//================================================================================================== -// this blinks rs green or green/yellow if rs red is on -static void n2lm_rsg_handler(unsigned long data) -{ - *IXP4XX_GPIO_GPOUTR ^= RS_GRN_TGL; //flip the led - n2lm_rsg_timer.expires = jiffies + BLINK_DELAY; //next timeout - add_timer(&n2lm_rsg_timer); //reinit timer - return; -} - -// this blinks or alternates rs red green... inited wit green on/red off -static void n2lm_rsr_handler(unsigned long data) -{ - *IXP4XX_GPIO_GPOUTR ^= n2lm_rsr_timer.data; - n2lm_rsr_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_rsr_timer); - return; -} -// blinks disk 1 -static void n2lm_d1_handler(unsigned long data) -{ - *IXP4XX_GPIO_GPOUTR ^= DISK1_TGL; - n2lm_d1_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_d1_timer); - return; -} -// blinks disk 2 -static void n2lm_d2_handler(unsigned long data) -{ - *IXP4XX_GPIO_GPOUTR ^= DISK2_TGL; - n2lm_d2_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_d2_timer); - return; -} - -//================================================================================================== - -static void n2lm_timer_start(unsigned long led) -{ - - nslu2_io_debug((KERN_DEBUG "timer: %ld\n",led)); - - switch(led) { - case LED_RS_RED: - n2lm_rsr_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_rsr_timer); - break; - - case LED_RS_GRN: - n2lm_rsg_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_rsg_timer); - break; - - case LED_DISK1: - n2lm_d1_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_d1_timer); - break; - - case LED_DISK2: - n2lm_d2_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_d2_timer); - break; - - default: - break; - } - return; -} - -//================================================================================================== - -static void n2lm_timer_stop(unsigned long led) -{ - switch (led) { - case LED_RS_RED: - del_timer(&n2lm_rsr_timer); - break; - case LED_RS_GRN: - del_timer(&n2lm_rsg_timer); - break; - case LED_DISK1: - del_timer(&n2lm_d1_timer); - break; - case LED_DISK2: - del_timer(&n2lm_d2_timer); - break; - default: - break; - } - return; -} - -//-------------------------------------------------------------------------------------------------- - -static void n2lm_timer_stop_all(void) -{ - del_timer(&n2lm_rsg_timer); - del_timer(&n2lm_rsr_timer); - del_timer(&n2lm_d1_timer); - del_timer(&n2lm_d2_timer); - return; -} -//-------------------------------------------------------------------------------------------------- - -static void n2lm_ledon(unsigned long led) -{ - - nslu2_io_debug((KERN_DEBUG "ledon: %ld\n", led)); - - switch (led) { - case LED_RS_RED: - *IXP4XX_GPIO_GPOUTR |= RS_RED_ON; //1 - return; - case LED_RS_GRN: - *IXP4XX_GPIO_GPOUTR |= RS_GRN_ON; //2 - return; - case LED_DISK1: - *IXP4XX_GPIO_GPOUTR &= DISK1_ON; //0xfffffff7 - return; - case LED_DISK2: - *IXP4XX_GPIO_GPOUTR &= DISK2_ON; //0xfffffffb - return; - case LED_ALL: //all green - *IXP4XX_GPIO_GPOUTR |= RS_GRN_ON; - *IXP4XX_GPIO_GPOUTR &= (DISK1_ON & DISK2_ON); - return; - } -} - -//-------------------------------------------------------------------------------------------------- - -static void n2lm_ledoff(unsigned long led) -{ - - switch (led) { - case LED_RS_RED: - *IXP4XX_GPIO_GPOUTR &= RS_RED_OFF; //0xffffffffe - return; - case LED_RS_GRN: - *IXP4XX_GPIO_GPOUTR &= RS_GRN_OFF; //0xfffffffd - return; - case LED_DISK1: - *IXP4XX_GPIO_GPOUTR |= DISK1_OFF; //0x00000008 - return; - case LED_DISK2: - *IXP4XX_GPIO_GPOUTR |= DISK2_OFF; //0x00000004 - return; - case LED_ALL: - *IXP4XX_GPIO_GPOUTR &= (RS_GRN_OFF & RS_RED_OFF); - *IXP4XX_GPIO_GPOUTR |= (DISK1_OFF | DISK2_OFF); - } -} - -//================================================================================================== - -static int n2lm_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long led) -{ - - nslu2_io_debug((KERN_DEBUG "cmd=%d, led=%ld\n", cmd, led)); - - if (led < 0 || led >= PHYS_LEDS) - return -EINVAL; - - switch (cmd ) { - case N2LM_ON: - n2lm_timer_stop(led); - n2lm_ledon(led); - break; - - case N2LM_OFF: - n2lm_timer_stop(led); - n2lm_ledoff(led); - break; - - case N2LM_BLINK: - n2lm_ledon(led); - if (led == LED_RS_RED) - n2lm_rsr_timer.data = RS_RED_TGL; - n2lm_timer_start(led); - break; - - case N2LM_ALT: - if (led == LED_RS_RED) - { - n2lm_ledon(LED_RS_GRN); - n2lm_ledoff(LED_RS_RED); - n2lm_rsr_timer.data = RS_RG_ALT; - n2lm_timer_start(LED_RS_RED); - break; - } else - return -EINVAL; - - case N2LM_ALL_ON: - n2lm_timer_stop_all(); - n2lm_ledon(LED_ALL); - break; - - case N2LM_ALL_OFF: - n2lm_timer_stop_all(); - n2lm_ledoff(LED_ALL); - break; - - default: - return -EINVAL; - } - - return NOERR; -} - -static struct file_operations n2lm_fops = { - .owner = THIS_MODULE, - .ioctl = n2lm_ioctl, -}; -//================================================================================================== -// We can't do anything fancy here since the system tick rate is far below that required to -// generate a desirable tone. Therefore we haven't much choice but to use a busy loop until -// I get up to speed on the timers. The saving grace is that for the normal uses, nothing -// important should be haprepening. -//================================================================================================== - -static void n2_buzz(int tone_delay, int duration) -{ - int i; - - *IXP4XX_GPIO_GPOER &= ~GPIO_BZ_BM; - - for (i = 1; i < duration; i++) { - *IXP4XX_GPIO_GPOUTR &= ~GPIO_BZ_BM; - udelay(tone_delay); - *IXP4XX_GPIO_GPOUTR |= GPIO_BZ_BM; - udelay(tone_delay); - } - *IXP4XX_GPIO_GPOER |= GPIO_BZ_BM; - - return; -} -//================================================================================================= - -// this handles the buzzer duty cycle -static void n2bz_handler(unsigned long data) -{ - if (--bz_repeatcnt > 0) { //if just one beep left to do - n2bz_timer.expires = jiffies + ontime + offtime; //next timeout - add_timer(&n2bz_timer); //reinit timer - } - n2_buzz(tone/2, ontime); - nslu2_io_debug((KERN_DEBUG "Count = %d\tOntime = %d\n", bz_repeatcnt, ontime)); - return; -} - -//================================================================================================== - -static int n2bz_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long param) -{ - switch (cmd) { - case N2BZ_BEEP: - n2_buzz(tone/2, ontime); - break; - - case N2BZ_BEEP_STOP: - del_timer(&n2bz_timer); - break; - - case N2BZ_BEEPS: - if (param == 0) - bz_repeatcnt = 0xffffffff; - else - bz_repeatcnt = param; - n2bz_handler(0); - break; - - case N2BZ_TONESET: - if (param >= 250 && param <= 2000) - tone = param; - break; - - case N2BZ_ONTIME: - if (param > 4 && param < 201) - ontime = param; - break; - - case N2BZ_SILENTTIME: - if (param > ontime) //enforce a reasonable duty cycle - offtime = param; - else - offtime = ontime; - break; - - case N2BZ_REPEATCNT: - if (param == 0) - bz_repeatcnt = 0xffffffff; - else - bz_repeatcnt = param; - break; - - case N2BZ_COMBINED: - bz_repeatcnt = (param & 0xF0000000) >> 28; //repeat 1 - 16 - ontime = (param & 0x0FF00000) >> 20; //ontime 1 - 256 jiffies - offtime = (param & 0x000FFF00) >> 8; //offtime 1 - 4095 jiffies - tone = (param & 0x000000FF) << 4; //tone (1 - 255) * 16 - break; - - default: - break; - } - return NOERR; -} - -static struct file_operations n2bz_fops = { - .owner = THIS_MODULE, - .ioctl = n2bz_ioctl, -}; - -//================================================================================================== - -static irqreturn_t n2pb_handler (int irq, void *dev_id, struct pt_regs *regs) -{ - void *ret; - - wake_up(&n2pb_waitq); - remove_proc_entry(PWR_OFF_STR, NULL); //no parent - n2_buzz(N2_BEEP_PITCH_MED, N2_BEEP_DUR_MED); - ret = create_proc_entry(PWR_OFF_STR, 0, NULL); - nslu2_io_debug((KERN_DEBUG "cpe ret = %p\n", ret)); - -// WARNING: This is RUDE...it unconditionally pulls the power plug. -// Your data will be at risk...since this is just a test system -// I am leaving it enabled...eventually userland needs to get the -// message, do an orderly shutdown and use an ioctl or something in -// /proc/powerdowm to actually have us pull the plug. - - machine_power_off(); - - return IRQ_HANDLED; -} - -//================================================================================================== -// -//static void do_rb_timeout(unsigned long data) -//{ -// int i; -// -// for (i = 0; i < rb_presses; i++) -// n2_buzz(N2_BEEP_PITCH_MED,N2_BEEP_DUR_SHORT); -// return; -//} -// -//================================================================================================== -// does nothing -- waiting for userland to define -// This thing is sorta braindead...edge triggered IRQs aren't available in the drivers yet...so -// we hang in a loop until the button is no longer pressed - -struct testr { - int ctl; - long param; -}; - -static irqreturn_t n2rb_handler (int irq, void *dev_id, struct pt_regs *regs) -{ - - static struct testr test[] = { - { N2LM_ALL_OFF,0 }, - { N2LM_ON,0 }, - { N2LM_OFF,0 }, - { N2LM_ON,1 }, - { N2LM_ALL_OFF,1 }, - { N2LM_ON,2 }, - { N2LM_OFF,2 }, - { N2LM_ON,3 }, - { N2LM_OFF,3 }, - { N2LM_BLINK,0 }, - { N2LM_OFF,0 }, - { N2LM_BLINK,1 }, - { N2LM_OFF,1 }, - { N2LM_BLINK,2 }, - { N2LM_OFF,2 }, - { N2LM_BLINK,3 }, - { N2LM_OFF,3 }, - { N2LM_ALL_OFF,0 }, - { N2LM_ALT,1 }, - { N2LM_OFF,1 }, - { N2LM_ALL_ON,0 } - }; - - nslu2_io_debug(("Reset Entry IRQ =%d Presses = %d Jiffies = %08lx\tIO = %x\tIOW = %x\n", irq, rb_presses, jiffies, (int)_IO('M',rb_presses), (int)_IOW('M',rb_presses,long))); - - wake_up(&n2rb_waitq); - while ((*IXP4XX_GPIO_GPINR & GPIO_RB_BM) == 0) - ; //wait for button release - - if (rb_presses > 20) - rb_presses = 0; - tone = (rb_presses * 50) + 200; - ontime = (rb_presses*10) + 100; - offtime = 500 - (rb_presses*20); - nslu2_io_debug(("Ontime = %d\tOfftime = %d\tTone = %d\n",ontime,offtime,tone)); - rb_presses++; - - n2bz_ioctl(NULL,NULL, N2BZ_BEEPS, rb_presses); - n2lm_ioctl(NULL,NULL, test[rb_presses].ctl, test[rb_presses].param); -// if (rb_presses == 0) { -// init_jiffy = jiffies; -// init_timer (&n2rb_timer); -// n2rb_timer.function = do_rb_timeout; -// }; -// -// if (rb_presses == 8) -// rb_presses = 0; -// if (rb_presses & 1) -// n2lm_ledon(test[rb_presses]); -// else -// n2lm_ledoff(test[rb_presses]); -// -// n2rb_timer.expires = (jiffies + RB_DELAY); -// add_timer (&n2rb_timer); -// if (rb_presses < 5) { -// if (rb_presses > 0) -// n2lm_ledoff(rb_presses); -// n2lm_ledon(++rb_presses); -// n2lm_timer_start(rb_presses); -// }; - - nslu2_io_debug((KERN_DEBUG "Reset Exit IRQ=%d Presses= %d Jiffies= %08lx\n", irq, rb_presses, jiffies)); - return IRQ_HANDLED; - -} - -//================================================================================================== -// What to do here is majorly undetermined... - -static int n2rb_read (struct file *filp, char __user *buffer, size_t count, loff_t *ppos) -{ - printk(KERN_DEBUG "Reset Button Wait\n"); - interruptible_sleep_on(&n2rb_waitq); - return copy_to_user(buffer, "reset", 5) ? -EFAULT : 5; - -} - -//================================================================================================== -// What to do here is majorly undetermined... - -static int n2pb_read (struct file *filp, char __user *buffer, size_t count, loff_t *ppos) -{ - printk(KERN_DEBUG "Power Button Wait\n"); - interruptible_sleep_on(&n2pb_waitq); - return copy_to_user(buffer, "poweroff", 8) ? -EFAULT : 8; - -} - -//-------------------------------------------------------------------------------------------------- - -static struct file_operations n2rb_fops = { - .owner = THIS_MODULE, - .read = n2rb_read, -}; - -//-------------------------------------------------------------------------------------------------- - -static struct file_operations n2pb_fops = { - .owner = THIS_MODULE, - .read = n2pb_read, -}; - -//================================================================================================== - -static void n2iom_initarch(void) -{ - printk(KERN_DEBUG "setup_interrupts - jiffies=%ld init_jiffy=%ld\n", jiffies, init_jiffy); - - *IXP4XX_GPIO_GPISR = 0x20400000; // read the 2 irqs to clr - gpio_line_config(N2_RB_GPIO, IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); - gpio_line_isr_clear(N2_RB_GPIO); - gpio_line_config(N2_PB_GPIO, IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_HIGH); - gpio_line_isr_clear(N2_PB_GPIO); - - init_timer(&n2lm_rsg_timer); - init_timer(&n2lm_rsr_timer); - init_timer(&n2lm_d1_timer); - init_timer(&n2lm_d2_timer); -// init_timer(&n2rb_timer); -// init_timer(&n2pb_timer); - init_timer(&n2bz_timer); - n2lm_rsr_timer.function = n2lm_rsr_handler; - n2lm_rsg_timer.function = n2lm_rsg_handler; - n2lm_d2_timer.function = n2lm_d2_handler; - n2lm_d1_timer.function = n2lm_d1_handler; - n2bz_timer.function = n2bz_handler; - n2lm_rsr_timer.data = n2lm_rsg_timer.data = n2lm_d1_timer.data = n2lm_d2_timer.data = n2bz_timer.data = 0; - - *IXP4XX_GPIO_GPOER &= 0xfffffff0; //enable gpio 0-3 - *IXP4XX_GPIO_GPOUTR |= 0x00000003; //turn off the leds - *IXP4XX_GPIO_GPOUTR &= 0xfffffffc; - n2lm_ledon(LED_ALL); - n2_buzz(N2_BEEP_PITCH_MED, N2_BEEP_DUR_SHORT); - n2lm_ledoff(LED_ALL); -// Default the Ready/Status to Red during kernel boot, Turn Green at the end of sysvinit - n2lm_ledon(LED_RS_RED); - - return; -} - -//================================================================================================== - -static int __init n2iom_init(void) -{ - printk(KERN_INFO "OpenN2 Misc I/O Driver Version %s\n", VERSION); - - init_jiffy = jiffies; - printk(KERN_DEBUG "init_jiffy=%ld\n",init_jiffy); - n2iom_initarch(); - - n2lm_class = class_simple_create(THIS_MODULE, "nslu2"); - - if (register_chrdev(N2RB_MAJOR, "n2_rbm", &n2pb_fops) < NOERR) { - printk(KERN_DEBUG "Reset Button Major %d not available\n", N2RB_MAJOR); - return -EBUSY; - } - else { - class_simple_device_add(n2lm_class, MKDEV(N2RB_MAJOR, 0), NULL, "rbuttons"); - } - if (register_chrdev(N2PB_MAJOR, "n2_pbm", &n2rb_fops) < NOERR) { - printk(KERN_DEBUG "Power Button Major %d not available\n", N2PB_MAJOR); - return -EBUSY; - } - else { - class_simple_device_add(n2lm_class, MKDEV(N2PB_MAJOR, 0), NULL, "pbuttons"); - } - if (register_chrdev(N2LM_MAJOR, "n2_ledm", &n2lm_fops) < NOERR) { - printk(KERN_DEBUG "Led Manager Major %d not available\n", N2LM_MAJOR); - return -EBUSY; - } - else { - class_simple_device_add(n2lm_class, MKDEV(N2LM_MAJOR, 0), NULL, "leds"); - } - if (register_chrdev(N2BZ_MAJOR, "n2_bzm", &n2bz_fops) < NOERR) { - printk(KERN_DEBUG "Buzzer Major %d not available\n", N2BZ_MAJOR); - return -EBUSY; - } - else { - class_simple_device_add(n2lm_class, MKDEV(N2BZ_MAJOR, 0), NULL, "buzzer"); - } - - if (request_irq(N2RB_IRQ, &n2rb_handler, SA_INTERRUPT, "n2_rb", NULL) < NOERR) { - printk(KERN_DEBUG "Reset Button IRQ %d not available\n", N2RB_IRQ); - return -EIO; - } - if (request_irq(N2PB_IRQ, &n2pb_handler, SA_INTERRUPT, "n2_pb", NULL) < NOERR) { - printk(KERN_DEBUG "Power Button IRQ %d not available\n", N2PB_IRQ); - return -EIO; - } - - enable_irq(N2PB_IRQ); - enable_irq(N2RB_IRQ); - return (NOERR); -} - -//================================================================================================== - -static void __exit n2iom_exit(void) -{ - remove_proc_entry(PWR_OFF_STR, NULL); - del_timer(&n2rb_timer); - free_irq(N2RB_IRQ,NULL); - unregister_chrdev(N2PB_MAJOR, "n2pb"); - class_simple_device_remove(MKDEV(N2PB_MAJOR, 0)); - del_timer(&n2pb_timer); - free_irq(N2PB_IRQ, NULL); - unregister_chrdev(N2RB_MAJOR, "n2rb" ); - class_simple_device_remove(MKDEV(N2RB_MAJOR, 0)); - del_timer(&n2lm_rsg_timer); - del_timer(&n2lm_rsr_timer); - del_timer(&n2lm_d1_timer); - del_timer(&n2lm_d2_timer); - unregister_chrdev(N2LM_MAJOR, "n2lm" ); - class_simple_device_remove(MKDEV(N2LM_MAJOR, 0)); - unregister_chrdev(N2BZ_MAJOR, "n2bz"); - class_simple_device_remove(MKDEV(N2BZ_MAJOR, 0)); - class_simple_destroy(n2lm_class); -} - -module_init (n2iom_init); -module_exit (n2iom_exit); - -MODULE_AUTHOR("Karen Spearel <kas11@tampabay.rr.com>"); -MODULE_DESCRIPTION("OpenN2 Buttons/LEDs IO Driver"); -MODULE_LICENSE("GPL"); -static int debug = 7; -module_param(debug, int, 0644); -MODULE_PARM_DESC(debug, "Debugging enabled = 8"); - diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2-part.c b/packages/linux/openslug-kernel-2.6.11.2/nslu2-part.c deleted file mode 100644 index 6fbf952e2a..0000000000 --- a/packages/linux/openslug-kernel-2.6.11.2/nslu2-part.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * nslu2-part.c - * - * Maintainers: http://www.nslu2-linux.org/ - * Initial port: Mark Rakes <mrakes AT mac.com> - * - * "Parse" the fixed partition table of the Linksys NSLU2 and - * produce a Linux partition array to match. - */ - -#include <linux/kernel.h> -#include <linux/slab.h> -#include <linux/init.h> -#include <linux/vmalloc.h> -#include <linux/mtd/mtd.h> -#include <linux/mtd/partitions.h> - -/* info we know about the NSLU2's flash setup: - * - * Num Partition offset size - * --- --------- ---------- ----------- - * 0 RedBoot 0x00000000 0x00040000 - * 1 System Configuration 0x00040000 0x00020000 - * 2 Kernel 0x00060000 0x00100000 - * 3 Ramdisk 0x00160000 0x006a0000 - */ - #define NSLU2_NUM_FLASH_PARTITIONS 4 - #define NSLU2_FLASH_PART0_NAME "RedBoot" - #define NSLU2_FLASH_PART0_OFFSET 0x00000000 - #define NSLU2_FLASH_PART0_SIZE 0x00040000 - #define NSLU2_FLASH_PART1_NAME "System Configuration" - #define NSLU2_FLASH_PART1_OFFSET (NSLU2_FLASH_PART0_OFFSET + NSLU2_FLASH_PART0_SIZE) - #define NSLU2_FLASH_PART1_SIZE 0x00020000 - #define NSLU2_FLASH_PART2_NAME "Kernel" - #define NSLU2_FLASH_PART2_OFFSET (NSLU2_FLASH_PART1_OFFSET + NSLU2_FLASH_PART1_SIZE) - #define NSLU2_FLASH_PART2_SIZE 0x00100000 - #define NSLU2_FLASH_PART3_NAME "Ramdisk" - #define NSLU2_FLASH_PART3_OFFSET (NSLU2_FLASH_PART2_OFFSET + NSLU2_FLASH_PART2_SIZE) - #define NSLU2_FLASH_PART3_SIZE 0x006a0000 - -static int parse_nslu2_partitions(struct mtd_info *master, - struct mtd_partition **pparts, - unsigned long flash_start) -{ - struct mtd_partition *parts; - int ret = 0, namelen = 0; - char *names; - - namelen = strlen(NSLU2_FLASH_PART0_NAME) + - strlen(NSLU2_FLASH_PART1_NAME) + - strlen(NSLU2_FLASH_PART2_NAME) + - strlen(NSLU2_FLASH_PART3_NAME) + - NSLU2_NUM_FLASH_PARTITIONS; /*4 strings + each terminator */ - - parts = kmalloc(sizeof(*parts)*NSLU2_NUM_FLASH_PARTITIONS + namelen, GFP_KERNEL); - if (!parts) { - ret = -ENOMEM; - goto out; - } - - memset(parts, 0, sizeof(*parts)*NSLU2_NUM_FLASH_PARTITIONS + namelen); - names = (char *)&parts[NSLU2_NUM_FLASH_PARTITIONS]; - - /* RedBoot partition */ - parts[0].size = NSLU2_FLASH_PART0_SIZE; - parts[0].offset = NSLU2_FLASH_PART0_OFFSET; - parts[0].name = NSLU2_FLASH_PART0_NAME; - parts[0].mask_flags = MTD_WRITEABLE; /* readonly */ - strcpy(names, NSLU2_FLASH_PART0_NAME); - names += strlen(names)+1; - /* System Configuration */ - parts[1].size = NSLU2_FLASH_PART1_SIZE; - parts[1].offset = NSLU2_FLASH_PART1_OFFSET; - parts[1].name = NSLU2_FLASH_PART1_NAME; - parts[1].mask_flags = MTD_WRITEABLE; /* readonly */ - strcpy(names, NSLU2_FLASH_PART1_NAME); - names += strlen(names)+1; - /* Kernel */ - parts[2].size = NSLU2_FLASH_PART2_SIZE; - parts[2].offset = NSLU2_FLASH_PART2_OFFSET; - parts[2].name = NSLU2_FLASH_PART2_NAME; - parts[2].mask_flags = MTD_WRITEABLE; /* readonly */ - strcpy(names, NSLU2_FLASH_PART2_NAME); - names += strlen(names)+1; - /* Ramdisk */ - parts[3].size = NSLU2_FLASH_PART3_SIZE; - parts[3].offset = NSLU2_FLASH_PART3_OFFSET; - parts[3].name = NSLU2_FLASH_PART3_NAME; - parts[3].mask_flags = MTD_WRITEABLE; /* readonly */ - strcpy(names, NSLU2_FLASH_PART3_NAME); - names += strlen(names)+1; - - ret = NSLU2_NUM_FLASH_PARTITIONS; - *pparts = parts; - out: - return ret; -} - -static struct mtd_part_parser nslu2_parser = { - .owner = THIS_MODULE, - .parse_fn = parse_nslu2_partitions, - .name = "NSLU2", -}; - -static int __init nslu2_parser_init(void) -{ - return register_mtd_parser(&nslu2_parser); -} - -static void __exit nslu2_parser_exit(void) -{ - deregister_mtd_parser(&nslu2_parser); -} - -module_init(nslu2_parser_init); -module_exit(nslu2_parser_exit); - -MODULE_LICENSE("GPL"); -MODULE_AUTHOR("Mark Rakes"); -MODULE_DESCRIPTION("Parsing code for NSLU2 flash tables"); diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2-pci.c b/packages/linux/openslug-kernel-2.6.11.2/nslu2-pci.c deleted file mode 100644 index 7327c65a4f..0000000000 --- a/packages/linux/openslug-kernel-2.6.11.2/nslu2-pci.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * arch/arm/mach-ixp4xx/nslu2-pci.c - * - * NSLU2 board-level PCI initialization - * - * based on ixdp425-pci.c: - * Copyright (C) 2002 Intel Corporation. - * Copyright (C) 2003-2004 MontaVista Software, Inc. - * - * Maintainer: http://www.nslu2-linux.org/ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - */ -// GPIO 8 is used as the power input so is not free for use as a PCI IRQ -// However, all the common PCI setup code presumes the standard 4 PCI -// interrupts are available. So we compromise...we don't enable the -// IRQ on Pin 8 but we let - -#include <linux/config.h> -#include <linux/pci.h> -#include <linux/init.h> -#include <linux/delay.h> - -#include <asm/mach/pci.h> -#include <asm/irq.h> -#include <asm/hardware.h> -#include <asm/mach-types.h> - -void __init nslu2_pci_preinit(void) -{ - gpio_line_config(NSLU2_PCI_INTA_PIN, - IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); - gpio_line_config(NSLU2_PCI_INTB_PIN, - IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); - gpio_line_config(NSLU2_PCI_INTC_PIN, - IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); -// gpio_line_config(NSLU2_PCI_INTD_PIN, -// IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); - - gpio_line_isr_clear(NSLU2_PCI_INTA_PIN); - gpio_line_isr_clear(NSLU2_PCI_INTB_PIN); - gpio_line_isr_clear(NSLU2_PCI_INTC_PIN); -// gpio_line_isr_clear(NSLU2_PCI_INTD_PIN); - - ixp4xx_pci_preinit(); -} - -static int __init nslu2_map_irq(struct pci_dev *dev, u8 slot, u8 pin) -{ - static int pci_irq_table[NSLU2_PCI_IRQ_LINES] = { - IRQ_NSLU2_PCI_INTA, - IRQ_NSLU2_PCI_INTB, - IRQ_NSLU2_PCI_INTC, -// IRQ_NSLU2_PCI_INTD - }; - - int irq = -1; - - if (slot >= 1 && slot <= NSLU2_PCI_MAX_DEV && - pin >= 1 && pin <= NSLU2_PCI_IRQ_LINES) { - irq = pci_irq_table[(slot + pin - 2) % 3]; // ! % 4 kas11 - } - - return irq; -} - -struct hw_pci __initdata nslu2_pci = { - .nr_controllers = 1, - .preinit = nslu2_pci_preinit, - .swizzle = pci_std_swizzle, - .setup = ixp4xx_setup, - .scan = ixp4xx_scan_bus, - .map_irq = nslu2_map_irq, -}; - -int __init nslu2_pci_init(void) //monkey see, monkey do -{ - if (machine_is_nslu2()) - pci_common_init(&nslu2_pci); - return 0; -} - -subsys_initcall(nslu2_pci_init); - diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2-setup.c b/packages/linux/openslug-kernel-2.6.11.2/nslu2-setup.c deleted file mode 100644 index 358c58f22e..0000000000 --- a/packages/linux/openslug-kernel-2.6.11.2/nslu2-setup.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - * arch/arm/mach-ixp4xx/nslu2-setup.c - * - * NSLU2 board-setup - * - * based ixdp425-setup.c: - * Copyright (C) 2003-2004 MontaVista Software, Inc. - * - * Author: Mark Rakes <mrakes at mac.com> - * Maintainers: http://www.nslu2-linux.org/ - * - * Fixed missing init_time in MACHINE_START kas11 10/22/04 - * Changed to conform to new style __init ixdp425 kas11 10/22/04 - */ - -#include <linux/kernel.h> -#include <linux/init.h> -#include <linux/device.h> -#include <linux/serial.h> -#include <linux/tty.h> -#include <linux/serial_core.h> - -#include <asm/types.h> -#include <asm/setup.h> -#include <asm/memory.h> -#include <asm/hardware.h> -#include <asm/mach-types.h> -#include <asm/irq.h> -#include <asm/mach/arch.h> -#include <asm/mach/flash.h> - -#ifdef __ARMEB__ -#define REG_OFFSET 3 -#else -#define REG_OFFSET 0 -#endif - -/* - * NSLU2 uses only one serial port - */ -static struct uart_port nslu2_serial_ports[] = { - { - .membase = (char*)(IXP4XX_UART1_BASE_VIRT + REG_OFFSET), - .mapbase = (IXP4XX_UART1_BASE_PHYS), - .irq = IRQ_IXP4XX_UART1, - .flags = UPF_SKIP_TEST, - .iotype = UPIO_MEM, - .regshift = 2, - .uartclk = IXP4XX_UART_XTAL, - .line = 0, - .type = PORT_XSCALE, - .fifosize = 32 - } -#if 0 - , { - .membase = (char*)(IXP4XX_UART2_BASE_VIRT + REG_OFFSET), - .mapbase = (IXP4XX_UART2_BASE_PHYS), - .irq = IRQ_IXP4XX_UART2, - .flags = UPF_SKIP_TEST, - .iotype = UPIO_MEM, - .regshift = 2, - .uartclk = IXP4XX_UART_XTAL, - .line = 1, - .type = PORT_XSCALE, - .fifosize = 32 - } -#endif -}; - -void __init nslu2_map_io(void) -{ - early_serial_setup(&nslu2_serial_ports[0]); -#if 0 - early_serial_setup(&nslu2_serial_ports[1]); -#endif - ixp4xx_map_io(); -} - -static struct flash_platform_data nslu2_flash_data = { - .map_name = "cfi_probe", - .width = 2, -}; - -static struct resource nslu2_flash_resource = { - .start = NSLU2_FLASH_BASE, - .end = NSLU2_FLASH_BASE + NSLU2_FLASH_SIZE, - .flags = IORESOURCE_MEM, -}; - -static struct platform_device nslu2_flash = { - .name = "IXP4XX-Flash", - .id = 0, - .dev = { - .platform_data = &nslu2_flash_data, - }, - .num_resources = 1, - .resource = &nslu2_flash_resource, -}; - -static struct ixp4xx_i2c_pins nslu2_i2c_gpio_pins = { - .sda_pin = NSLU2_SDA_PIN, - .scl_pin = NSLU2_SCL_PIN, -}; - -static struct platform_device nslu2_i2c_controller = { - .name = "IXP4XX-I2C", - .id = 0, - .dev = { - .platform_data = &nslu2_i2c_gpio_pins, - }, - .num_resources = 0 -}; - -static struct platform_device *nslu2_devices[] __initdata = { - &nslu2_i2c_controller, - &nslu2_flash -}; - -static void n2_power_off(void) -{ - /* This causes the box to drop the power and go dead. */ -#define GPIO_PO_BM 0x0100 //b0000 0001 0000 0000 - *IXP4XX_GPIO_GPOER &= ~GPIO_PO_BM; // enable the pwr cntl gpio - *IXP4XX_GPIO_GPOUTR |= GPIO_PO_BM; // do the deed -} - -static void __init nslu2_init(void) -{ - /* Need power off to work. */ - pm_power_off = n2_power_off; - platform_add_devices(nslu2_devices, ARRAY_SIZE(nslu2_devices)); -} - -MACHINE_START(NSLU2, "Linksys NSLU2") - MAINTAINER("www.nslu2-linux.org") - BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS, - IXP4XX_PERIPHERAL_BASE_VIRT) - MAPIO(nslu2_map_io) - INITIRQ(ixp4xx_init_irq) //FIXME: all irq are off here - .timer = &ixp4xx_timer, - // INITTIME(ixp4xx_init_time) //this was missing in 2.6.7 code ...soft reboot needed? - BOOT_PARAMS(0x0100) - INIT_MACHINE(nslu2_init) -MACHINE_END diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2.h b/packages/linux/openslug-kernel-2.6.11.2/nslu2.h deleted file mode 100644 index bb79aaa007..0000000000 --- a/packages/linux/openslug-kernel-2.6.11.2/nslu2.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * include/asm-arm/arch-ixp4xx/nslu2.h - * - * NSLU2 platform specific definitions - * - * Author: Mark Rakes <mrakes AT mac.com> - * Maintainers: http://www.nslu2-linux.org - * - * based on ixdp425.h: - * Copyright 2004 (c) MontaVista, Software, Inc. - * - * This file is licensed under the terms of the GNU General Public - * License version 2. This program is licensed "as is" without any - * warranty of any kind, whether express or implied. - */ - -// GPIO 8 is used as the power input so is not free for use as a PCI IRQ -// kas11 11-2-04 - -#ifndef __ASM_ARCH_HARDWARE_H__ -#error "Do not include this directly, instead #include <asm/hardware.h>" -#endif - -#define NSLU2_FLASH_BASE IXP4XX_EXP_BUS_CS0_BASE_PHYS -#define NSLU2_FLASH_SIZE IXP4XX_EXP_BUS_CSX_REGION_SIZE - -#define NSLU2_SDA_PIN 7 -#define NSLU2_SCL_PIN 6 - -/* - * NSLU2 PCI IRQs - */ -#define NSLU2_PCI_MAX_DEV 3 -#define NSLU2_PCI_IRQ_LINES 3 - - -/* PCI controller GPIO to IRQ pin mappings */ -#define NSLU2_PCI_INTA_PIN 11 -#define NSLU2_PCI_INTB_PIN 10 -#define NSLU2_PCI_INTC_PIN 9 -//#define NSLU2_PCI_INTD_PIN 8 - - diff --git a/packages/linux/openslug-kernel-2.6.11.2/nslu2_2.6.11.patch b/packages/linux/openslug-kernel-2.6.11.2/nslu2_2.6.11.patch deleted file mode 100644 index bff8400396..0000000000 --- a/packages/linux/openslug-kernel-2.6.11.2/nslu2_2.6.11.patch +++ /dev/null @@ -1,159 +0,0 @@ -diff -urN linux-2.6.11.orig/arch/arm/boot/compressed/head.S linux-2.6.11/arch/arm/boot/compressed/head.S ---- linux-2.6.11.orig/arch/arm/boot/compressed/head.S 2005-03-01 21:38:25.000000000 -1000 -+++ linux-2.6.11/arch/arm/boot/compressed/head.S 2005-03-03 00:55:05.000000000 -1000 -@@ -79,6 +79,14 @@ - .endm - .macro writeb, rb - str \rb, [r3, #0] -+ .endm -+#elif defined(CONFIG_ARCH_NSLU2) -+ .macro loadsp, rb -+ mov \rb, #0xc8000000 -+ .endm -+ .macro writeb, rb -+ str \rb, [r3, #0] -+ .endm - #elif defined(CONFIG_ARCH_IXP2000) - .macro loadsp, rb - mov \rb, #0xc0000000 -diff -urN linux-2.6.11.orig/arch/arm/boot/compressed/head-xscale.S linux-2.6.11/arch/arm/boot/compressed/head-xscale.S ---- linux-2.6.11.orig/arch/arm/boot/compressed/head-xscale.S 2005-03-01 21:37:52.000000000 -1000 -+++ linux-2.6.11/arch/arm/boot/compressed/head-xscale.S 2005-03-02 01:41:31.000000000 -1000 -@@ -47,3 +47,8 @@ - orr r7, r7, #(MACH_TYPE_GTWX5715 & 0xff00) - #endif - -+#ifdef CONFIG_ARCH_NSLU2 -+ mov r7, #(MACH_TYPE_NSLU2 & 0xff) -+ orr r7, r7, #(MACH_TYPE_NSLU2 & 0xff00) -+#endif -+ -diff -urN linux-2.6.11.orig/arch/arm/mach-ixp4xx/Kconfig linux-2.6.11/arch/arm/mach-ixp4xx/Kconfig ---- linux-2.6.11.orig/arch/arm/mach-ixp4xx/Kconfig 2005-03-01 21:37:49.000000000 -1000 -+++ linux-2.6.11/arch/arm/mach-ixp4xx/Kconfig 2005-03-02 01:43:42.000000000 -1000 -@@ -43,6 +43,12 @@ - IXDP465 Development Platform (Also known as BMP). - For more information on this platform, see Documentation/arm/IXP4xx. - -+config ARCH_NSLU2 -+ bool "NSLU2" -+ help -+ Say 'Y' here if you want your kernel to support Linksys's -+ NSLU2 NAS device. For more information on this platform, -+ see http://www.nslu2-linux.org - - # - # IXCDP1100 is the exact same HW as IXDP425, but with a different machine -diff -urN linux-2.6.11.orig/arch/arm/mach-ixp4xx/Makefile linux-2.6.11/arch/arm/mach-ixp4xx/Makefile ---- linux-2.6.11.orig/arch/arm/mach-ixp4xx/Makefile 2005-03-01 21:37:49.000000000 -1000 -+++ linux-2.6.11/arch/arm/mach-ixp4xx/Makefile 2005-03-02 01:44:16.000000000 -1000 -@@ -9,4 +9,4 @@ - obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o - obj-$(CONFIG_ARCH_PRPMC1100) += prpmc1100-pci.o prpmc1100-setup.o - obj-$(CONFIG_MACH_GTWX5715) += gtwx5715-pci.o gtwx5715-setup.o -- -+obj-$(CONFIG_ARCH_NSLU2) += nslu2-pci.o nslu2-setup.o nslu2-part.o nslu2-io.o -diff -urN linux-2.6.11.orig/arch/arm/tools/mach-types linux-2.6.11/arch/arm/tools/mach-types ---- linux-2.6.11.orig/arch/arm/tools/mach-types 2005-03-01 21:38:08.000000000 -1000 -+++ linux-2.6.11/arch/arm/tools/mach-types 2005-03-02 01:44:50.000000000 -1000 -@@ -604,7 +604,7 @@ - roverp7 MACH_ROVERP7 ROVERP7 594 - pr818s MACH_PR818S PR818S 595 - trxpro MACH_TRXPRO TRXPRO 596 --nslu2 MACH_NSLU2 NSLU2 597 -+nslu2 ARCH_NSLU2 NSLU2 597 - e400 MACH_E400 E400 598 - trab MACH_TRAB TRAB 599 - cmc_pu2 MACH_CMC_PU2 CMC_PU2 600 -diff -urN linux-2.6.11.orig/drivers/i2c/chips/Kconfig linux-2.6.11/drivers/i2c/chips/Kconfig ---- linux-2.6.11.orig/drivers/i2c/chips/Kconfig 2005-03-01 21:38:10.000000000 -1000 -+++ linux-2.6.11/drivers/i2c/chips/Kconfig 2005-03-02 01:45:28.000000000 -1000 -@@ -370,5 +370,14 @@ - - This driver can also be built as a module. If so, the module - will be called isp1301_omap. -+config SENSORS_X1205 -+ tristate "Xicor X1205 RTC chip" -+ depends on I2C && EXPERIMENTAL -+ select I2C_SENSOR -+ help -+ If you say yes here you get support for the Xicor x1205 RTC chip. -+ -+ This driver can also be built as a module. If so, the module -+ will be called x1205-rtc - - endmenu -diff -urN linux-2.6.11.orig/drivers/i2c/chips/Makefile linux-2.6.11/drivers/i2c/chips/Makefile ---- linux-2.6.11.orig/drivers/i2c/chips/Makefile 2005-03-01 21:38:34.000000000 -1000 -+++ linux-2.6.11/drivers/i2c/chips/Makefile 2005-03-02 01:45:54.000000000 -1000 -@@ -35,6 +35,7 @@ - obj-$(CONFIG_SENSORS_VIA686A) += via686a.o - obj-$(CONFIG_SENSORS_W83L785TS) += w83l785ts.o - obj-$(CONFIG_ISP1301_OMAP) += isp1301_omap.o -+obj-$(CONFIG_SENSORS_X1205) += x1205-rtc.o - - ifeq ($(CONFIG_I2C_DEBUG_CHIP),y) - EXTRA_CFLAGS += -DDEBUG -diff -urN linux-2.6.11.orig/drivers/mtd/maps/ixp4xx.c linux-2.6.11/drivers/mtd/maps/ixp4xx.c ---- linux-2.6.11.orig/drivers/mtd/maps/ixp4xx.c 2005-03-01 21:37:30.000000000 -1000 -+++ linux-2.6.11/drivers/mtd/maps/ixp4xx.c 2005-03-02 01:46:40.000000000 -1000 -@@ -94,7 +94,11 @@ - struct resource *res; - }; - -+#ifdef CONFIG_ARCH_NSLU2 -+static const char *probes[] = { "cmdlinepart", "RedBoot", "NSLU2", NULL }; -+#else - static const char *probes[] = { "RedBoot", "cmdlinepart", NULL }; -+#endif - - static int ixp4xx_flash_remove(struct device *_dev) - { -diff -urN linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/hardware.h linux-2.6.11/include/asm-arm/arch-ixp4xx/hardware.h ---- linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/hardware.h 2005-03-01 21:37:51.000000000 -1000 -+++ linux-2.6.11/include/asm-arm/arch-ixp4xx/hardware.h 2005-03-02 17:34:46.000000000 -1000 -@@ -44,5 +44,6 @@ - #include "ixdp425.h" - #include "coyote.h" - #include "prpmc1100.h" -+#include "nslu2.h" - - #endif /* _ASM_ARCH_HARDWARE_H */ -diff -urN linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/irqs.h linux-2.6.11/include/asm-arm/arch-ixp4xx/irqs.h ---- linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/irqs.h 2005-03-01 21:38:12.000000000 -1000 -+++ linux-2.6.11/include/asm-arm/arch-ixp4xx/irqs.h 2005-03-02 01:49:27.000000000 -1000 -@@ -93,4 +93,11 @@ - #define IRQ_COYOTE_PCI_SLOT1 IRQ_IXP4XX_GPIO11 - #define IRQ_COYOTE_IDE IRQ_IXP4XX_GPIO5 - -+/* -+ * NSLU2 board IRQs -+ */ -+#define IRQ_NSLU2_PCI_INTA IRQ_IXP4XX_GPIO11 -+#define IRQ_NSLU2_PCI_INTB IRQ_IXP4XX_GPIO10 -+#define IRQ_NSLU2_PCI_INTC IRQ_IXP4XX_GPIO9 -+ - #endif -diff -urN linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h linux-2.6.11/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h ---- linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h 2005-03-01 21:37:49.000000000 -1000 -+++ linux-2.6.11/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h 2005-03-03 02:26:29.231822000 -1000 -@@ -52,7 +52,7 @@ - * Expansion BUS Configuration registers - */ - #define IXP4XX_EXP_CFG_BASE_PHYS (0xC4000000) --#define IXP4XX_EXP_CFG_BASE_VIRT (0xFFBFD000) -+#define IXP4XX_EXP_CFG_BASE_VIRT (0xFFBFE000) - #define IXP4XX_EXP_CFG_REGION_SIZE (0x00001000) - - /* -diff -urN linux-2.6.11.orig/include/linux/i2c-id.h linux-2.6.11/include/linux/i2c-id.h ---- linux-2.6.11.orig/include/linux/i2c-id.h 2005-03-01 21:38:34.000000000 -1000 -+++ linux-2.6.11/include/linux/i2c-id.h 2005-03-02 01:50:14.000000000 -1000 -@@ -110,6 +110,7 @@ - #define I2C_DRIVERID_TDA7313 62 /* TDA7313 audio processor */ - #define I2C_DRIVERID_MAX6900 63 /* MAX6900 real-time clock */ - #define I2C_DRIVERID_SAA7114H 64 /* video decoder */ -+#define I2C_DRIVERID_X1205 0xF0 - - - #define I2C_DRIVERID_EXP0 0xF0 /* experimental use id's */ diff --git a/packages/linux/openslug-kernel-2.6.11.2/usbnet.patch b/packages/linux/openslug-kernel-2.6.11.2/usbnet.patch deleted file mode 100644 index 1b3cf3fcb8..0000000000 --- a/packages/linux/openslug-kernel-2.6.11.2/usbnet.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- linux-2.6.11/drivers/usb/net/usbnet.c_orig 2005-03-03 13:50:54.053237416 -0500 -+++ linux-2.6.11/drivers/usb/net/usbnet.c 2005-03-03 13:53:19.415139048 -0500 -@@ -2404,12 +2404,13 @@ - #endif - size = (sizeof (struct ethhdr) + dev->net->mtu); - -- if ((skb = alloc_skb (size, flags)) == NULL) { -+ if ((skb = alloc_skb (size + NET_IP_ALIGN, flags)) == NULL) { - devdbg (dev, "no rx skb"); - defer_kevent (dev, EVENT_RX_MEMORY); - usb_free_urb (urb); - return; - } -+ skb_reserve (skb, NET_IP_ALIGN); - - entry = (struct skb_data *) skb->cb; - entry->urb = urb; diff --git a/packages/linux/openslug-kernel-2.6.11.2/x1205-rtc.c b/packages/linux/openslug-kernel-2.6.11.2/x1205-rtc.c deleted file mode 100644 index 9ef333b2c4..0000000000 --- a/packages/linux/openslug-kernel-2.6.11.2/x1205-rtc.c +++ /dev/null @@ -1,678 +0,0 @@ -/* - x1205 - an 12c driver for the Xicor X1205 RTC - Copyright 2004 Karen Spearel - - please send all reports to: - kas11 at tampabay dot rr dot com - - based on linux/drivers/acron/char/pcf8583.h - Copyright (C) 2000 Russell King - - 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. -*/ -/* - - * i2c_adapter is the structure used to identify a physical i2c bus along - * with the access algorithms necessary to access it. - -struct i2c_adapter { - struct module *owner; - unsigned int id; == is algo->id | hwdep.struct->id, for registered values see below - unsigned int class; - struct i2c_algorithm *algo; the algorithm to access the bus - void *algo_data; - - --- administration stuff. - int (*client_register)(struct i2c_client *); - int (*client_unregister)(struct i2c_client *); - - data fields that are valid for all devices - struct semaphore bus_lock; - struct semaphore clist_lock; - - int timeout; - int retries; - struct device dev; the adapter device - struct class_device class_dev; the class device - -#ifdef CONFIG_PROC_FS - No need to set this when you initialize the adapter - int inode; -#endif def CONFIG_PROC_FS - - int nr; - struct list_head clients; - struct list_head list; - char name[I2C_NAME_SIZE]; - struct completion dev_released; - struct completion class_dev_released; -}; -*/ - - -/*========== Driver for the X1205 on the Linksys NSLU2 ==================*/ - -#include <linux/init.h> -#include <linux/i2c.h> -#include <linux/slab.h> -#include <linux/string.h> -#include <linux/errno.h> -#include <linux/bcd.h> -#include <linux/rtc.h> -#include <linux/fs.h> -#include <linux/proc_fs.h> -#include <linux/miscdevice.h> -#include <linux/device.h> -#include <asm/uaccess.h> -#include <asm/system.h> -#include <linux/moduleparam.h> - -#define RTC_GETDATETIME 0 -#define RTC_SETTIME 1 -#define RTC_SETDATETIME 2 - -#define I2C_M_WR 0 // just for consistancy - -// offsets into read buf - add 2 for write buf -#define CCR_SEC 0 -#define CCR_MIN 1 -#define CCR_HOUR 2 -#define CCR_MDAY 3 -#define CCR_MONTH 4 -#define CCR_YEAR 5 -#define CCR_WDAY 6 -#define CCR_Y2K 7 - -#define X1205_I2C_BUS_ADDR 0x6f // hardwired into x1205 -#define X1205_ALM0_BASE 0x00 // Base address of the ALM0 -#define X1205_CCR_BASE 0x30 // Base address of the CCR -#define X1205_SR_ADDR 0x3f // Status Register -#define X1205_SR_WEL 0x02 // Write Enable Latch bit -#define X1205_SR_RWEL 0x04 // Register Write Enable Bit -#define X1205_MILBIT 0x80 // this bit set in ccr.hour for 24 hr mode -#define NOERR 0 -#define RTC_NODATE 0 -#define RTC_DATETOO 1 - -// comment out next line is your x1205 can't do page writes -//#define X1205PAGEWRITE 1 -#ifdef X1205PAGEWRITE -#define DRIVERNAME "Xicor x1205 RTC Driver v0.9.3.3" -#else -#define DRIVERNAME "Xicor x1205 RTC Dvr v0.9.3.3NPW" -#endif - -#define DEBUG KERN_DEBUG -/* This, if defined to 1, turns on a lot of debugging meessages. */ -#if X1205_DEBUG -#define x1205_debug(args) printk args -#else -#define x1205_debug(args) ((void)0) -#endif - - -static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm, u8 reg_base); -static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm, int datetoo, u8 reg_base); -static int x1205_attach(struct i2c_adapter *adapter); -static int x1205_detach(struct i2c_client *client); -static int x1205_validate_tm(struct rtc_time *tm, int datetoo); -static int x1205_command(struct i2c_client *client, unsigned int cmd, void *arg); -static int x1205_sync_rtc(void); -static int x1205_read(struct file *file, char *buf, size_t count, loff_t *ptr); -static int x1205_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg); -static int x1205_read_proc(char *buf, char **start, off_t off, int len, int *eof, void *data); - -static struct i2c_driver x1205_driver = { - .owner = THIS_MODULE, - .name = DRIVERNAME, - .id = I2C_DRIVERID_X1205, - .flags = I2C_DF_NOTIFY, - .attach_adapter = &x1205_attach, //we don't need to probe...x1205 is hardwired @ 0x6f - .detach_client = &x1205_detach, - .command = &x1205_command, //this prolly never gets called...used internally tho -}; - -static struct i2c_client x1205_i2c_client = { - .id = I2C_DRIVERID_X1205, - .flags = 0, - .addr = X1205_I2C_BUS_ADDR, // chip address - NOTE: 7bit - .adapter = NULL, // the adapter we sit on assigned in attach - .driver = &x1205_driver, // and our access routines - .usage_count = 0, // How many accesses currently to this client - .dev = {}, // the device structure - .list = {}, - .name = DRIVERNAME, - .released = {}, -}; - -static struct file_operations rtc_fops = { - owner: THIS_MODULE, - ioctl: x1205_ioctl, - read: x1205_read, -}; - -static struct miscdevice x1205_miscdev = { - .minor = RTC_MINOR, - .name = "rtc", - .fops = &rtc_fops, -}; -extern int (*set_rtc)(void); -static unsigned epoch = 1900; //coresponds to year 0 -static unsigned rtc_epoch = 2000; -static const unsigned char days_in_mo[] = -{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; - -//===================================CODE====================================== -// in the routines that deal directly with the x1205 hardware, we use -// rtc_time -- month 0-11, hour 0-23, yr = calendar year-epoch -// Epoch is inited as 2000. Time is set to UT -//============================================================================= -static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm, u8 reg_base) -{ - static unsigned char addr[2] = { 0,} ; - unsigned char buf[8]; - struct i2c_msg msgs[2] = { - { client->addr, I2C_M_WR, 2, addr }, //msg 1 = send base address - { client->addr, I2C_M_RD, 8, buf }, //msg 2 = read sequential data - }; - addr[1] = reg_base; - if ((i2c_transfer(client->adapter, msgs, 2)) == 2) { //did we read 2 messages? - x1205_debug((KERN_DEBUG "raw x1205 read data - sec-%02x min-%02x hr-%02x mday-%02x mon-%02x year-%02x wday-%02x y2k-%02x\n", - buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6], buf[7])); - tm->tm_sec = BCD2BIN(buf[CCR_SEC]); - tm->tm_min = BCD2BIN(buf[CCR_MIN]); - buf[CCR_HOUR] &= ~X1205_MILBIT; - tm->tm_hour = BCD2BIN(buf[CCR_HOUR]); //hr is 0-23 - tm->tm_mday = BCD2BIN(buf[CCR_MDAY]); - tm->tm_mon = BCD2BIN(buf[CCR_MONTH]); - rtc_epoch = BCD2BIN(buf[CCR_Y2K]) * 100; - tm->tm_year = BCD2BIN(buf[CCR_YEAR]) + rtc_epoch - epoch; - tm->tm_wday = buf[CCR_WDAY]; - x1205_debug((KERN_DEBUG "rtc_time output data - sec-%02d min-%02d hr-%02d mday-%02d mon-%02d year-%02d wday-%02d epoch-%d rtc_epoch-%d\n", - tm->tm_sec,tm->tm_min,tm->tm_hour,tm->tm_mday,tm->tm_mon,tm->tm_year,tm->tm_wday,epoch, rtc_epoch)); - } else { - printk(KERN_DEBUG "i2c_transfer Read Error\n"); - return -EIO; - } - - return NOERR; -} -// x1205pagewrite allows writing a block of registers in msg3 even though the x1205 says -// nothing about this in its spec. -// it needs more testing as it is possible some x1205s are actually not-completely- -// functional x1226s and there is a reason for the multiple write to not be in the spec. -// anyhow, it is enabled for the time being...and we even push out luck by sending 10 bytes - -static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm, int datetoo, u8 reg_base) -{ - static unsigned char wel[3] = { 0, X1205_SR_ADDR, X1205_SR_WEL }; - static unsigned char rwel[3] = { 0, X1205_SR_ADDR, X1205_SR_WEL | X1205_SR_RWEL }; - static unsigned char diswe[3] = { 0, X1205_SR_ADDR, 0 }; - -#ifdef X1205PAGEWRITE - - static unsigned char buf[10] = { 0, X1205_CCR_BASE, }; - struct i2c_msg msgs[4] = { - { client->addr, I2C_M_WR, 3, wel }, //msg 1 = write WEL to to ccr sr - { client->addr, I2C_M_WR, 3, rwel }, //msg 2 = write RWEL to ccr sr - { client->addr, I2C_M_WR, 10, buf }, //msg 3 = write ccr base addr +seq data - { client->addr, I2C_M_WR, 3, diswe }, //msg 4 = 0 to ccr sr to disable writes - }; - - msgs[2].len = 5; // 5 bytes + addr to set time only - buf [1] = reg_base; - buf[CCR_SEC+2] = BIN2BCD(tm->tm_sec); - buf[CCR_MIN+2] = BIN2BCD(tm->tm_min); - buf[CCR_HOUR+2] = BIN2BCD(tm->tm_hour) | X1205_MILBIT; // set 24 hour format - if (datetoo == 1) { - buf[CCR_MDAY+2] = BIN2BCD(tm->tm_mday); - buf[CCR_MONTH+2] = BIN2BCD(tm->tm_mon); // input is 0-11 - buf[CCR_YEAR+2] = BIN2BCD((tm->tm_year + epoch - rtc_epoch)); // input is yrs since 1900 - buf[CCR_WDAY+2] = tm->tm_wday & 7; - buf[CCR_Y2K+2] = BIN2BCD((rtc_epoch/100)); - msgs[2].len += 5; //5 more bytes to set date - } - x1205_debug((KERN_DEBUG "rtc_time input - sec-%02d min-%02d hour-%02d mday-%02d mon-%02d year-%02d wday-%02d epoch-%d rtc_epoch-%d\n", - tm->tm_sec,tm->tm_min,tm->tm_hour,tm->tm_mday,tm->tm_mon,tm->tm_year,tm->tm_wday, epoch, rtc_epoch)); - x1205_debug((KERN_DEBUG "BCD write data - sec-%02x min-%02x hour-%02x mday-%02x mon-%02x year-%02x wday-%02x y2k-%02x\n", - buf[2],buf[3],buf[4],buf[5],buf[6], buf[7], buf[8], buf[9])); - - if ((i2c_transfer(client->adapter, msgs, 4)) != 4) - return -EIO; - return NOERR; - -#else //do this if page writes aren't working - - int i,xfer,count; - static unsigned char data[3] = { 0,}; - static unsigned char buf[8]; - - buf[CCR_SEC] = BIN2BCD(tm->tm_sec); - buf[CCR_MIN] = BIN2BCD(tm->tm_min); - buf[CCR_HOUR] = BIN2BCD(tm->tm_hour) | X1205_MILBIT; // set 24 hour format - count = CCR_HOUR+1; - if (datetoo == 1) { - buf[CCR_MDAY] = BIN2BCD(tm->tm_mday); - buf[CCR_MONTH] = BIN2BCD(tm->tm_mon); // input is 0-11 - buf[CCR_YEAR] = BIN2BCD((tm->tm_year + epoch - rtc_epoch)); // input is yrs since 1900 - buf[CCR_WDAY] = tm->tm_wday & 7; - buf[CCR_Y2K] = BIN2BCD((rtc_epoch/100)); - count = CCR_Y2K+1; - } - x1205_debug((KERN_DEBUG "rtc_time input - sec-%02d min-%02d hour-%02d mday-%02d mon-%02d year-%02d wday-%02d epoch-%d rtc_epoch-%d\n", - tm->tm_sec,tm->tm_min,tm->tm_hour,tm->tm_mday,tm->tm_mon,tm->tm_year,tm->tm_wday, epoch, rtc_epoch)); - - xfer = i2c_master_send(client, wel, 3); - x1205_debug((KERN_DEBUG "wen - %x\n", xfer)); - if (xfer != 3) - return -EIO; - - xfer = i2c_master_send(client, rwel, 3); - x1205_debug((KERN_DEBUG "wenb - %x\n", xfer)); - if (xfer != 3) - return -EIO; - - for (i = 0; i < count; i++) { - data[1] = i + reg_base; - data[2] = buf[i]; - xfer = i2c_master_send(client, data, 3); - x1205_debug((KERN_DEBUG "xfer - %d addr - %02x data - %02x\n", xfer, data[1], data[2])); - if (xfer != 3) - return -EIO; - }; - - xfer = i2c_master_send(client, diswe, 3); - x1205_debug((KERN_DEBUG "wdis - %x\n", xfer)); - if (xfer != 3) - return -EIO; - return NOERR; -#endif -} -//============================================================================= - -static int x1205_attach(struct i2c_adapter *adapter) -{ - struct rtc_time tm; - struct timespec tv; - int errno; - - x1205_i2c_client.adapter = adapter; - x1205_i2c_client.id++; - - if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) != NOERR) //test for functional driver - return -EIO; - - if ((errno = i2c_attach_client(&x1205_i2c_client)) != NOERR) - return errno; - - /* IMPORTANT: the RTC only stores whole seconds. It is arbitrary whether - * it stores the most close value or the value with partial seconds - * truncated, however it is important for x1205_sync_rtc that it be - * defined to store the truncated value. This is because otherwise it - * is necessary to read both xtime.tv_sec and xtime.tv_nsec in the - * sync function, and atomic reads of >32bits on ARM are not possible. - * So storing the most close value would slow down the sync API. So - * Here we have the truncated value and the best guess is to add 0.5s - */ - tv.tv_nsec = NSEC_PER_SEC >> 1; - /* WARNING: this is not the C library 'mktime' call, it is a built in - * inline function from include/linux/time.h. It expects (requires) - * the month to be in the range 1-12 - */ - tv.tv_sec = mktime(tm.tm_year+epoch, tm.tm_mon+1, tm.tm_mday, tm.tm_hour, - tm.tm_min, tm.tm_sec); - do_settimeofday(&tv); - set_rtc = x1205_sync_rtc; - - printk(KERN_DEBUG "%s attached on adapter %s\n",x1205_i2c_client.name, - x1205_i2c_client.adapter->name); //why is this name a null string? - - return NOERR; -} - -static int x1205_detach(struct i2c_client *client) -{ - int errno; - - if ((errno = i2c_detach_client(client)) != 0) { - printk(KERN_DEBUG "i2c_detach failed - errno = %d\n", errno); - return errno; - } - - return NOERR; -} - -// make sure the rtc_time values are in bounds -static int x1205_validate_tm(struct rtc_time *tm, int datetoo) -{ - if (datetoo) { - /* This used to be 1900, not epoch, but all the read APIs subtract - * epoch, not 1900, and the result of these APIs *is* fed back in - * to x1205_command (which calls this.) - */ - tm->tm_year += epoch; - - /* The RTC uses a byte containing a BCD year value, so this is - * limited to the range 0..99 from rtc_epoch. - */ - if ((tm->tm_year < rtc_epoch || tm->tm_year > rtc_epoch + 99) || - ((tm->tm_mon > 11) || tm->tm_mon < 0 || (tm->tm_mday <= 0)) || - (tm->tm_mday > (days_in_mo[tm->tm_mon] + ( (tm->tm_mon == 1) && - ((!(tm->tm_year % 4) && (tm->tm_year % 100) ) || !(tm->tm_year % 400))))) - ) { - printk(KERN_DEBUG "x1205_validate_tm: invalid date:\t%04d,%02d,%02d\n", - tm->tm_year, tm->tm_mon, tm->tm_mday); - return -EINVAL; - } - - tm->tm_year -= epoch; - } - - if (((tm->tm_hour < 0) || (tm->tm_min < 0) || (tm->tm_sec < 0)) || - ((tm->tm_hour >= 24) || (tm->tm_min >= 60) || (tm->tm_sec >= 60))) { - printk(KERN_DEBUG "x1205_validate_tm: invalid time:\t%02d,%02d,%02d\n", - tm->tm_hour, tm->tm_min, tm->tm_sec); - return -EINVAL; - } - - return NOERR; -} - -static int x1205_command(struct i2c_client *client, unsigned int cmd, void *tm) -{ - int errno, dodate = RTC_DATETOO; - - if (client == NULL || tm == NULL) - return -EINVAL; - if (!capable(CAP_SYS_TIME)) - return -EACCES; - - x1205_debug((KERN_DEBUG "x1205_command %d\n", cmd)); - - switch (cmd) { - case RTC_GETDATETIME: - return x1205_get_datetime(client, tm, X1205_CCR_BASE); - - case RTC_SETTIME: // note fall thru - dodate = RTC_NODATE; - case RTC_SETDATETIME: - if ((errno = x1205_validate_tm(tm, dodate)) < NOERR) - return errno; - return x1205_set_datetime(client, tm, dodate, X1205_CCR_BASE); - - default: - return -EINVAL; - } -} - -static int x1205_sync_rtc(void) -{ - /* sync to xtime, tv_nsec is ignored (see the command above about - * use of the truncated value) so this is pretty easy. kas11's - * code took are to do RTC_SETTIME - i.e. not set the date. My - * assumption is that this may be because date setting is slow, so - * this feature is retained. NTP does a sync when the time is - * changed, including significant changes. The sync needs to - * set the date correctly if necessary. - */ - struct rtc_time tm; - time_t new_s, old_s, div, rem; - unsigned int cmd; - - x1205_debug((KERN_DEBUG "x1205_sync_rtc entry\n")); - - { - int err = x1205_command(&x1205_i2c_client, RTC_GETDATETIME, &tm); - if (err != NOERR) { - printk(KERN_DEBUG "x1205_sync_rtc exit (failed to get date)\n"); - return err; - } - } - - old_s = mktime(tm.tm_year+epoch, tm.tm_mon+1, tm.tm_mday, - tm.tm_hour, tm.tm_min, tm.tm_sec); - new_s = xtime.tv_sec; - - /* Optimisation, the clock only stores seconds so it's pointless - * to reset it if it is within 1s of now. - */ - if (old_s - 1 <= new_s && new_s <= old_s + 1) { - x1205_debug((KERN_DEBUG "x1205_sync_rtc exit (RTC in sync)\n")); - return NOERR; - } - - div = new_s / 60; - tm.tm_sec = new_s - div*60; - rem = div; - div /= 60; - tm.tm_min = rem - div*60; - rem = div; - div /= 24; - tm.tm_hour = rem - div*24; - - /* Now subtract the result from the original 'new' value. This - * should be zero, if not an mday change is required. Notice - * that this will tend to fire for small drifts close to UTC midnight. - */ - cmd = RTC_SETTIME; - rem = new_s - mktime(tm.tm_year+epoch, tm.tm_mon+1, tm.tm_mday, - tm.tm_hour, tm.tm_min, tm.tm_sec); - if (rem != 0) { - int dif; - - /* Make an approximation to year/month/day. */ - rem = div; - div = (2*div)/61; // 30.5 days/month - tm.tm_mday = 1 + rem - (div*61)/2; - rem = div; - div /= 12; - rem -= 12*div; - while (tm.tm_mday > days_in_mo[rem]) { - tm.tm_mday -= days_in_mo[rem]; - if (++rem >= 12) { - rem -= 12; - ++div; - } - } - tm.tm_mon = rem; - div += 1970; // base of tv_sec - - /* Calculate the error in the approximation as a signed - * int value. - */ - dif = new_s - mktime(div, tm.tm_mon+1, tm.tm_mday, - tm.tm_hour, tm.tm_min, tm.tm_sec); - while (dif < 0) { - --(tm.tm_mday); - dif += 86400; - } - while (dif >= 86400) { - ++(tm.tm_mday); - dif -= 86400; - } - if (dif != 0) - printk(KERN_ERR "x1205_sync_rtc (error in date %d)\n", dif); - - /* Normalise the result. */ - while (tm.tm_mday <= 0) { - if (--(tm.tm_mon) < 0) { - tm.tm_mon += 12; - --div; - } - tm.tm_mday += days_in_mo[tm.tm_mon] + (tm.tm_mon==1 && - ((!(div % 4) && (div % 100) ) || !(div % 400))); - } - - do { - rem = days_in_mo[tm.tm_mon] + (tm.tm_mon==1 && - ((!(div % 4) && (div % 100) ) || !(div % 400))); - if (tm.tm_mday > rem) { - tm.tm_mday -= rem; - if (++(tm.tm_mon) >= 12) { - tm.tm_mon -= 12; - ++div; - } - } else { - break; - } - } while (1); - - tm.tm_year = div-epoch; - cmd = RTC_SETDATETIME; - printk(KERN_DEBUG "x1205_sync_rtc exit (change date %d)\n", new_s-old_s); - } else { - printk(KERN_DEBUG "x1205_sync_rtc exit (change seconds %d)\n", new_s-old_s); - /* But avoid the race condition when the date is about to - * change. - */ - if (tm.tm_min == 59 && tm.tm_hour == 23) - cmd = RTC_SETDATETIME; - } - - return x1205_command(&x1205_i2c_client, cmd, &tm); -} - -static int x1205_read(struct file *file, char *buf, size_t count, loff_t *ptr) -{ - struct rtc_time tm; - - if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) < NOERR) - return -EIO; - return copy_to_user(buf, &tm, sizeof(tm)) ? -EFAULT : NOERR; -} - -//============================================================================== - -static int x1205_ioctl(struct inode *inode, struct file *file, unsigned int cmd, - unsigned long arg) -{ - struct rtc_time tm; - int errno; - - x1205_debug((KERN_DEBUG "ioctl = %x\n", cmd)); - - switch (cmd) { - case RTC_RD_TIME: - if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) < NOERR) - return -EIO; - break; - - case RTC_SET_TIME: - if (!capable(CAP_SYS_TIME)) - return -EACCES; - - if (copy_from_user(&tm, (struct rtc_time *) arg, sizeof(struct rtc_time))) - return -EFAULT; - if ((errno = x1205_validate_tm(&tm, RTC_DATETOO)) < NOERR) - return errno; - return x1205_set_datetime(&x1205_i2c_client, &tm, RTC_DATETOO, X1205_CCR_BASE); - - case RTC_ALM_SET: //FIXME: set Control Regs - if (copy_from_user(&tm, (struct rtc_time *) arg, sizeof(struct rtc_time))) - return -EFAULT; - return x1205_set_datetime(&x1205_i2c_client, &tm, RTC_DATETOO, X1205_ALM0_BASE); - - case RTC_ALM_READ: - if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_ALM0_BASE)) < NOERR) - return -EIO; - break; - - case RTC_EPOCH_READ: - - return put_user (epoch, (unsigned long __user *)arg); - - case RTC_EPOCH_SET: - if (arg < 1900) - return -EINVAL; - - if (!capable(CAP_SYS_TIME)) - return -EACCES; - - epoch = arg; - return 0; - - default: - return -ENOTTY; - } - return copy_to_user((void __user *)arg, &tm, sizeof tm) ? -EFAULT : 0; - -} - -static int x1205_read_proc(char *buf, char **start, off_t off, int len, int *eof, void *data) -{ - struct rtc_time tm; - int slen, errno; - - if ((errno = x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) < NOERR) - return errno; - -// here we return the real year and the month as 1-12 since it is human-readable - slen = sprintf(buf, "rtc_time\t: %02d:%02d:%02d\nrtc_date\t: %04d-%02d-%02d\n", - tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_year + 1900, tm.tm_mon+1, tm.tm_mday); - x1205_debug((KERN_DEBUG "raw rtc_time\t: %02d:%02d:%02d\nraw rtc_date\t: %04d-%02d-%02d\n", - tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_year, tm.tm_mon, tm.tm_mday)); - - if (slen <= off + len) - *eof = 1; - *start = buf + off; - slen -= off; - if (slen > len) - slen = len; - if ( slen < 0 ) - slen = 0; - - return slen; -} - -static int __init x1205_init(void) -{ - struct rtc_time tm; - int errno; - printk(KERN_INFO "LOADED %s\n", DRIVERNAME); - - if ((errno = i2c_add_driver(&x1205_driver)) != NOERR) { - dev_dbg(x1205_i2c_client.dev, "x1205_init failed - errno = %d\n", errno); - return (errno); - } - if ((errno = misc_register(&x1205_miscdev)) != NOERR) { - dev_dbg(x1205_i2c_client.dev, "Register Misc Driver failed - errno = %d\n", errno); - i2c_del_driver(&x1205_driver); - return errno; - } - if (create_proc_read_entry("driver/rtc", 0, NULL, x1205_read_proc, NULL) < NOERR) - return -ENOMEM; - if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) != NOERR) //test for functionality - return -EIO; - - return NOERR; -} - -static void __exit x1205_exit(void) -{ - remove_proc_entry("driver/rtc", NULL); - misc_deregister(&x1205_miscdev); - i2c_del_driver(&x1205_driver); - set_rtc = NULL; -} - -MODULE_AUTHOR("Karen Spearel <kas11@tampabay.rr.com>"); -MODULE_DESCRIPTION("Xicor X1205-RTC Driver"); -MODULE_LICENSE("GPL"); -static int debug = 7; -module_param(debug, bool, 0644); -MODULE_PARM_DESC(debug, "Debugging enabled = 1"); - -module_init(x1205_init); -module_exit(x1205_exit); diff --git a/packages/linux/openslug-kernel-2.6.11.2/xscale-reset.patch b/packages/linux/openslug-kernel-2.6.11.2/xscale-reset.patch deleted file mode 100644 index 4e68456e20..0000000000 --- a/packages/linux/openslug-kernel-2.6.11.2/xscale-reset.patch +++ /dev/null @@ -1,155 +0,0 @@ ---- linux-2.6.11.2/arch/arm/mm/proc-xscale.S 2005-03-09 00:12:44.000000000 -0800 -+++ linux-2.6.11.2/arch/arm/mm/proc-xscale.S 2005-06-18 15:39:22.701222319 -0700 -@@ -137,23 +137,129 @@ - * same state as it would be if it had been reset, and branch - * to what would be the reset vector. - * -+ * This code is ixp425 specific with respect to the reset of -+ * the 'configuration register' - to be found at address -+ * 0xC40000020 'IXP425_EXP_CNFGO' -+ * - * loc: location to jump to for soft reset - */ - .align 5 - ENTRY(cpu_xscale_reset) -+ @ always branch to 0 -+ mov r0, #0 -+ -+ @ disable both FIQ and IRQ, put us into 32 bit -+ @ SVC mode (no thumb). - mov r1, #PSR_F_BIT|PSR_I_BIT|SVC_MODE - msr cpsr_c, r1 @ reset CPSR -- mrc p15, 0, r1, c1, c0, 0 @ ctrl register -- bic r1, r1, #0x0086 @ ........B....CA. -- bic r1, r1, #0x3900 @ ..VIZ..S........ -- mcr p15, 0, r1, c1, c0, 0 @ ctrl register -- mcr p15, 0, ip, c7, c7, 0 @ invalidate I,D caches & BTB -- bic r1, r1, #0x0001 @ ...............M -- mcr p15, 0, r1, c1, c0, 0 @ ctrl register -- @ CAUTION: MMU turned off from this point. We count on the pipeline -- @ already containing those two last instructions to survive. -+ -+ @ disable debug, clock and power registers are -+ @ unimplemented. -+ mcr p14, 0, r0, c10, c0, 0 @ disable debug -+ -+ @ disable the performance monitor -+ mcr p14, 0, r0, c0, c1, 0 @ PMNC (ctrl reg) -+ mcr p14, 0, r0, c4, c1, 0 @ INTEN (intrpt enable) -+ -+ @ wait for p14 to complete -+ mrc p14, 0, ip, c4, c1, 0 @ arbitrary read -+ mov ip, ip @ sync -+ -+ @ clear the PID register -+ mcr p15, 0, r0, c13, c0, 0 @ OR nothing with address! -+ -+ @ unlock the TLBs and the I/D cache locks -+ mcr p15, 0, r0, c10, c8, 1 @ data TLB unlocked -+ mcr p15, 0, r0, c10, c4, 1 @ instruction TLB unlocked -+ mcr p15, 0, r0, c9, c2, 1 @ unlock data cache -+ mcr p15, 0, r0, c9, c1, 1 @ unlock instruction cache -+ -+ @ zap the minidata cache to write through with write coalescing -+ @ disabled. -+ mov r1, #0x21 @ MD=b10, K=1 -+ mcr p15, 0, r0, c7, c10, 4 @ drain write buffer -+ mrc p15, 0, ip, c1, c0, 0 @ read of ctrl register -+ mov ip, ip @ sync -+ mcr p15, 0, r1, c1, c0, 1 @ write through, no coalesc -+ -+ @ set the control register, the MMU is enabled but everything else -+ @ is disabled at this point, r1 contains the control register flags -+ @ the process is now in little-endian mode (no matter, we aren't -+ @ going to do any <word access) -+ mov r1, #0x79 @ 00vIz0rs.b1111caM -+ orr r1, r1, #0x1000 @ I-cache enable -+ mcr p15, 0, r1, c1, c0, 0 -+ mrc p15, 0, ip, c1, c0, 0 -+ mov ip, ip @ sync to coproc -+ mov r1, #0x78 @ 00viz0rs.b1111cam -+ -+ @ and flush the I/D cache and BTB -+ mcr p15, 0, r0, c7, c7, 0 -+ -+ @ that's most of the work. The only thing which remains is to -+ @ remap the flash memory and disable the MMU. Do some setup -+ @ for this, also get ready to set the LED to red and put in -+ @ a watchdog timer. -+ -+ @ get ready to reset the configuration registers in the expansion -+ @ bus. CFGN1 disables byte swap and interrupt. -+ ldr r3, =IXP4XX_PERIPHERAL_BASE_VIRT -+ ldr r4, [r3, #IXP4XX_EXP_CFG1_OFFSET] -+ bic r4, r4, #0x13 @ -BYTE_SWAP_EN, -SW_INT? -+ str r4, [r3, #IXP4XX_EXP_CFG1_OFFSET] -+ -+ @ load the current configuration register from its -+ @ virtual address and set the MEM_MAP bit ready to map the -+ @ flash back to address 0, but don't write it yet. -+ ldr r4, [r3, #IXP4XX_EXP_CFG0_OFFSET] -+ orr r4, r4, #0x80000000 -+ -+ @ load the GPIO OUTR register address and current value, -+ @ set the low nibble to just red LED on. -+ ldr r5, =IXP4XX_GPIO_BASE_VIRT -+ ldr r6, [r5, #IXP4XX_GPIO_GPOUTR_OFFSET] -+ bic r6, r6, #0xf -+ orr r6, r6, #0xd -+ -+ @ load the watchdog timer virtual address, set the key and -+ @ the timer and start the down counter -+ ldr r7, =IXP4XX_TIMER_BASE_VIRT -+ ldr r8, =IXP4XX_WDT_KEY @ set key -+ str r8, [r7, #IXP4XX_OSWK_OFFSET] -+ mov r8, #0x1000000 @ about 0.25 seconds -+ str r8, [r7, #IXP4XX_OSWT_OFFSET] @ set timer -+ mov r8, #(IXP4XX_WDT_RESET_ENABLE | IXP4XX_WDT_COUNT_ENABLE) -+ str r8, [r7, #IXP4XX_OSWE_OFFSET] @ enable reset -+ -+ @ invalidate the TLBs to ensure that there isn't a match for -+ @ '0' there. - mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs -- mov pc, r0 -+ mrc p15, 0, ip, c1, c0, 0 @ read of ctrl register -+ mov ip, ip @ sync -+ -+ @ remap the flash (after preloading instructions into the -+ @ I-cache) then turn off the MMU and branch to 0 when it is -+ @ off. It seems that RedBoot relies on the page tables being -+ @ set up on boot, so set the page table head register too. -+ mov r7, #0x4000 @ flash page table -+ ldr r8, =IXP4XX_GPIO_BASE_PHYS @ for led setting -+ bic r9, r6, #0xc @ disk1+disk2 led on -+ str r6, [r5, #IXP4XX_GPIO_GPOUTR_OFFSET] @ red led -+ b cache -+ -+ @ cached instructions These 8 instructions are valid in the cache -+ @ along with the associated TLB as soon as the first is executed. -+ @ They are used to effect the transition back into the flash -+ @ ROM code. -+ .align 5 -+cache: str r4, [r3, #IXP4XX_EXP_CFG0_OFFSET] @0 no memory! -+ mcr p15, 0, r7, c2, c0, 0 @1 set translation table base -+ mcr p15, 0, r1, c1, c0, 0 @2 no MMU! -+ mrc p15, 0, ip, c2, c0, 0 @3 arbitrary read of cp15 -+ str r9, [r8, #IXP4XX_GPIO_GPOUTR_OFFSET] @4 red+disk1+disk2 led -+ sub pc, r0, ip, LSR #32 @5 sync and branch to zero -+ nop @6 -+ nop @7 - - /* - * cpu_xscale_do_idle() -@@ -168,8 +274,10 @@ - .align 5 - - ENTRY(cpu_xscale_do_idle) -- mov r0, #1 -- mcr p14, 0, r0, c7, c0, 0 @ Go to IDLE -+ @ NSLU2/ixp420: not implemented in the hardware, docs -+ @ say do not write! -+ @mov r0, #1 -+ @mcr p14, 0, r0, c7, c0, 0 @ Go to IDLE - mov pc, lr - - /* ================================= CACHE ================================ */ diff --git a/packages/linux/openslug-kernel-2.6.11/ixp4xx_copy_from.patch b/packages/linux/openslug-kernel-2.6.11/ixp4xx_copy_from.patch deleted file mode 100644 index 8d0f187d44..0000000000 --- a/packages/linux/openslug-kernel-2.6.11/ixp4xx_copy_from.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- linux-2.6.11/drivers/mtd/maps/ixp4xx.c.orig 2005-03-05 20:00:28.000000000 +0100 -+++ linux-2.6.11/drivers/mtd/maps/ixp4xx.c 2005-03-05 22:10:48.000000000 +0100 -@@ -29,6 +29,8 @@ - #include <asm/mach-types.h> - #include <asm/mach/flash.h> - -+#include <asm/unaligned.h> -+ - #include <linux/reboot.h> - - #ifndef __ARMEB__ -@@ -60,13 +62,13 @@ static void ixp4xx_copy_from(struct map_ - u16 data; - - for (i = 0; i < (len / 2); i++) { -- data = src[i]; -+ data = get_unaligned((u16*)(src + i)); - dest[i * 2] = BYTE0(data); - dest[i * 2 + 1] = BYTE1(data); - } - - if (len & 1) -- dest[len - 1] = BYTE0(src[i]); -+ dest[len - 1] = BYTE0(get_unaligned((u16*)(src + i))); - } - - /* diff --git a/packages/linux/openslug-kernel-2.6.11/nslu2-io.c b/packages/linux/openslug-kernel-2.6.11/nslu2-io.c deleted file mode 100644 index cd5ed36c15..0000000000 --- a/packages/linux/openslug-kernel-2.6.11/nslu2-io.c +++ /dev/null @@ -1,750 +0,0 @@ -//============================================================================= -// -// n2-io.c version 0.1.7 -// Author: Karen Spearel <kas11 at tampabay.rr.com> -// please report problems/bugs directly to the address above -// -// Boilerplate to be added "real soon now"...it is and has always been GPL'ed per -// MODULE_LICENSE but is offered without warrantee of any sort..use at your own risk -// -// NOTE: THIS IS INCOMPLETE. INCLUDED ONLY TO KEEP FROM BREAKING THE BUILD, -// IT BEEPS AND SENDS A MESSAGE TO /proc/poweroff. EVENTUALLY IT -// WILL TALK TO THE n2_pbd DAEMON. EVENTUALLY THE LED DRIVER -// WILL TALK TO SOME USERLAND APP BUT ***NOT*** SET_LEDS. -// -//============================================================================= -// GPIO Function State -// 0 Red LED Status -// 1 Green LED Ready = 1 -// 2 Disk 2 LED On = 0 -// 3 Disk 1 LED On = 0 -// 4 Buzzer -// 5 Power Button Pressed = 1 -// 8 Power Down Output = 1 powers down N2 -// 12 Reset Pressed = 0 -//============================================================================= -// this driver is N2 specific and is purposely designed to do the minimum -// necessary to provide the necessary services given the limited memory resources -// of the N2. As OpenN2 develops, addition features will be added as -// suggested by the community. -// -//============================================================================= - -#include <linux/config.h> -#include <linux/version.h> -#include <linux/module.h> -#include <linux/utsname.h> -#include <linux/kernel.h> -#include <linux/major.h> -#include <linux/string.h> -#include <linux/proc_fs.h> -#include <linux/slab.h> -#include <linux/init.h> -#include <linux/errno.h> -#include <linux/fs.h> -#include <linux/miscdevice.h> -#include <linux/device.h> -#include <linux/interrupt.h> -#include <linux/moduleparam.h> -#include <linux/timer.h> - -#include <asm/system.h> -#include <asm/uaccess.h> -#include <asm/hardware.h> -#include <asm-arm/irq.h> -#include <asm-arm/delay.h> -#include <asm-arm/signal.h> - - -#define VERSION "0.1.7" - -#define N2RB_MAJOR 60 -#define N2PB_MAJOR 61 -#define N2BZ_MAJOR 62 -#define N2LM_MAJOR 126 - -#define N2PB_IRQ 22 //gpio5 -#define N2RB_IRQ 29 //gpio12 - -#define N2_BEEP_DUR_LONG 2000 -#define N2_BEEP_DUR_MED 400 -#define N2_BEEP_DUR_SHORT 100 -#define N2_BEEP_PITCH_HIGH 250 -#define N2_BEEP_PITCH_MED 500 -#define N2_BEEP_PITCH_LOW 1000 -#define N2_LONG_DELAY 30000 - -#define N2_BZ_GPIO 4 -#define N2_PB_GPIO 5 -#define N2_PO_GPIO 8 //power off -#define N2_RB_GPIO 12 - -#define GPIO_BZ_BM 0x0010 //b0000 0000 0001 0000 -#define GPIO_PB_BM 0x0020 //b0000 0000 0010 0000 -#define GPIO_PO_BM 0x0100 //b0000 0001 0000 0000 -#define GPIO_RB_BM 0x1000 //b0001 0000 0000 0000 - -#define NOERR 0 - -#define RB_DELAY 50 -#define PB_DELAY 20 - -#define PWR_OFF_STR "poweroff" - - -// ioctls -- 'M" is used for sound cards...we don't got one so it seems safe - -#define N2BZ_BEEP_STOP _IO('M',0) //stop multi-beep at end of audible -#define N2BZ_BEEP _IO('M',1) //one beep at current defaults -#define N2BZ_BEEPS _IOW('M',3,long) //param beeps at current defaults -#define N2BZ_TONESET _IOW('M',4,long) //set tone: range is high=250 to low=2000 -#define N2BZ_ONTIME _IOW('M',5,long) //ontime for multi-beeps in jiffies -#define N2BZ_SILENTTIME _IOW('M',6,long) //offtime for multi-beeps in jiffies -#define N2BZ_REPEATCNT _IOW('M',7,long) //number of repeats for multi-beeps 0 = forever -#define N2BZ_COMBINED _IOW('M',8,long) //combine all params in a long - -#define N2LM_OFF _IOW('M',32,long) -#define N2LM_ON _IOW('M',33,long) -#define N2LM_BLINK _IOW('M',34,long) -#define N2LM_ALT _IOW('M',35,long) -#define N2LM_ALL_ON _IO('M',36) -#define N2LM_ALL_OFF _IO('M',37) - -#define PHYS_LEDS 4 -#define BLINK_DELAY 25 - -// OR Masks to turn these LEDs ON - -#define RS_RED_ON 0x00000001 //0b0000 0000 0000 0010 -#define RS_GRN_ON 0x00000002 //0b0000 0000 0000 0001 -#define RS_YEL_ON 0x00000003 //0b0000 0000 0000 0011 - -// AND Masks to turn these LEDs OFF - -#define RS_RED_OFF 0xfffffffe //0b1111 1111 1111 1101 -#define RS_GRN_OFF 0xfffffffd //0b1111 1111 1111 1110 -#define RS_YEL_OFF 0xfffffffc //0b1111 1111 1111 1100 - -// AND Masks to turn these LEDs ON - -#define DISK1_ON 0xfffffff7 //0b1111 1111 1111 0111 -#define DISK2_ON 0xfffffffb //0b1111 1111 1111 1011 - -// Or Masks to turn these LEDs OFF - -#define DISK1_OFF 0x00000008 //0b0000 0000 0000 1000 -#define DISK2_OFF 0x00000004 //0b0000 0000 0000 0100 - -// EOR masks for toggling LEDs on/off - -#define RS_RG_ALT 0x00000003 //eor mask to toggle rs rg bits -#define RS_GRN_TGL 0x00000002 -#define RS_RED_TGL 0x00000001 -#define DISK1_TGL 0x00000008 -#define DISK2_TGL 0x00000004 - -// The LED names for switches - -#define LED_RS_RED 0 -#define LED_RS_GRN 1 -#define LED_DISK1 2 -#define LED_DISK2 3 -#define LED_ALL 4 - -static unsigned long init_jiffy = 0; //jiffies at init time -static unsigned long rb_presses = 0; //number of reset button presses -static unsigned long ontime = 50; -static unsigned long offtime = 450; -static unsigned long bz_repeatcnt = 10; -static unsigned long tone = 1000; - -DECLARE_WAIT_QUEUE_HEAD(n2rb_waitq); -DECLARE_WAIT_QUEUE_HEAD(n2pb_waitq); - -static struct timer_list n2lm_rsg_timer; //rs green -static struct timer_list n2lm_rsr_timer; //rs red -static struct timer_list n2lm_d1_timer; //drive 1 -static struct timer_list n2lm_d2_timer; //drive 2 -static struct timer_list n2rb_timer; -static struct timer_list n2pb_timer; -static struct timer_list n2bz_timer; //beeper - -//================================================================================================== -// -// Blinking is handled entirely by the 4 timer handlers. On timeout, the bit in the -// GPIO output register is xor'd with a mask corresponding to the selected led which simply -// flips that bit. No record of what any of the other leds is doing is needed. -// -//================================================================================================== -// this blinks rs green or green/yellow if rs red is on -static void n2lm_rsg_handler(unsigned long data) -{ - *IXP4XX_GPIO_GPOUTR ^= RS_GRN_TGL; //flip the led - n2lm_rsg_timer.expires = jiffies + BLINK_DELAY; //next timeout - add_timer(&n2lm_rsg_timer); //reinit timer - return; -} - -// this blinks or alternates rs red green... inited wit green on/red off -static void n2lm_rsr_handler(unsigned long data) -{ - *IXP4XX_GPIO_GPOUTR ^= n2lm_rsr_timer.data; - n2lm_rsr_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_rsr_timer); - return; -} -// blinks disk 1 -static void n2lm_d1_handler(unsigned long data) -{ - *IXP4XX_GPIO_GPOUTR ^= DISK1_TGL; - n2lm_d1_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_d1_timer); - return; -} -// blinks disk 2 -static void n2lm_d2_handler(unsigned long data) -{ - *IXP4XX_GPIO_GPOUTR ^= DISK2_TGL; - n2lm_d2_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_d2_timer); - return; -} - -//================================================================================================== - -static void n2lm_timer_start(unsigned long led) -{ - - printk(KERN_DEBUG "timer: %ld\n",led); - - switch(led) { - case LED_RS_RED: - n2lm_rsr_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_rsr_timer); - break; - - case LED_RS_GRN: - n2lm_rsg_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_rsg_timer); - break; - - case LED_DISK1: - n2lm_d1_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_d1_timer); - break; - - case LED_DISK2: - n2lm_d2_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_d2_timer); - break; - - default: - break; - } - return; -} - -//================================================================================================== - -static void n2lm_timer_stop(unsigned long led) -{ - switch (led) { - case LED_RS_RED: - del_timer(&n2lm_rsr_timer); - break; - case LED_RS_GRN: - del_timer(&n2lm_rsg_timer); - break; - case LED_DISK1: - del_timer(&n2lm_d1_timer); - break; - case LED_DISK2: - del_timer(&n2lm_d2_timer); - break; - default: - break; - } - return; -} - -//-------------------------------------------------------------------------------------------------- - -static void n2lm_timer_stop_all(void) -{ - del_timer(&n2lm_rsg_timer); - del_timer(&n2lm_rsr_timer); - del_timer(&n2lm_d1_timer); - del_timer(&n2lm_d2_timer); - return; -} -//-------------------------------------------------------------------------------------------------- - -static void n2lm_ledon(unsigned long led) -{ - - printk(KERN_DEBUG "ledon: %ld\n", led); - - switch (led) { - case LED_RS_RED: - *IXP4XX_GPIO_GPOUTR |= RS_RED_ON; //1 - return; - case LED_RS_GRN: - *IXP4XX_GPIO_GPOUTR |= RS_GRN_ON; //2 - return; - case LED_DISK1: - *IXP4XX_GPIO_GPOUTR &= DISK1_ON; //0xfffffffb - return; - case LED_DISK2: - *IXP4XX_GPIO_GPOUTR &= DISK2_ON; //0xfffffff7 - return; - case LED_ALL: //all green - *IXP4XX_GPIO_GPOUTR |= RS_GRN_ON; - *IXP4XX_GPIO_GPOUTR &= (DISK1_ON & DISK2_ON); - return; - } -} - -//-------------------------------------------------------------------------------------------------- - -static void n2lm_ledoff(unsigned long led) -{ - - switch (led) { - case LED_RS_RED: - *IXP4XX_GPIO_GPOUTR &= RS_RED_OFF; //0xffffffffe - return; - case LED_RS_GRN: - *IXP4XX_GPIO_GPOUTR &= RS_GRN_OFF; //0xfffffffd - return; - case LED_DISK1: - *IXP4XX_GPIO_GPOUTR |= DISK1_OFF; //0x00000004 - return; - case LED_DISK2: - *IXP4XX_GPIO_GPOUTR |= DISK2_OFF; //0x00000008 - return; - case LED_ALL: - *IXP4XX_GPIO_GPOUTR &= (RS_GRN_OFF & RS_RED_OFF); - *IXP4XX_GPIO_GPOUTR |= (DISK1_OFF | DISK2_OFF); - } -} - -//================================================================================================== - -static int n2lm_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long led) -{ - - printk(KERN_DEBUG "cmd=%d, led=%ld\n", cmd, led); - - if (led < 0 || led >= PHYS_LEDS) - return -EINVAL; - - switch (cmd ) { - case N2LM_ON: - n2lm_timer_stop(led); - n2lm_ledon(led); - break; - - case N2LM_OFF: - n2lm_timer_stop(led); - n2lm_ledoff(led); - break; - - case N2LM_BLINK: - n2lm_ledon(led); - if (led == LED_RS_RED) - n2lm_rsr_timer.data = RS_RED_TGL; - if (led == LED_RS_GRN) - n2lm_rsr_timer.data = RS_GRN_TGL; - n2lm_timer_start(led); - break; - - case N2LM_ALT: - if (led == LED_RS_RED) - { - n2lm_ledon(LED_RS_GRN); - n2lm_ledoff(LED_RS_RED); - n2lm_rsr_timer.data = RS_RG_ALT; - n2lm_timer_start(LED_RS_RED); - break; - } else - return -EINVAL; - - case N2LM_ALL_ON: - n2lm_timer_stop_all(); - n2lm_ledon(LED_ALL); - break; - - case N2LM_ALL_OFF: - n2lm_timer_stop_all(); - n2lm_ledoff(LED_ALL); - break; - - default: - return -EINVAL; - } - - return NOERR; -} - -static struct file_operations n2lm_fops = { - .owner = THIS_MODULE, - .ioctl = n2lm_ioctl, -}; -//================================================================================================== -// We can't do anything fancy here since the system tick rate is far below that required to -// generate a desirable tone. Therefore we haven't much choice but to use a busy loop until -// I get up to speed on the timers. The saving grace is that for the normal uses, nothing -// important should be haprepening. -//================================================================================================== - -static void n2_buzz(int tone_delay, int duration) -{ - int i; - - *IXP4XX_GPIO_GPOER &= ~GPIO_BZ_BM; - - for (i = 1; i < duration; i++) { - *IXP4XX_GPIO_GPOUTR &= ~GPIO_BZ_BM; - udelay(tone_delay); - *IXP4XX_GPIO_GPOUTR |= GPIO_BZ_BM; - udelay(tone_delay); - } - *IXP4XX_GPIO_GPOER |= GPIO_BZ_BM; - - return; -} -//================================================================================================= - -// this handles the buzzer duty cycle -static void n2bz_handler(unsigned long data) -{ - if (--bz_repeatcnt > 0) { //if just one beep left to do - n2bz_timer.expires = jiffies + ontime + offtime; //next timeout - add_timer(&n2bz_timer); //reinit timer - } - n2_buzz(tone/2, ontime); - printk(KERN_DEBUG "Count = %d\tOntime = %d\n", bz_repeatcnt, ontime); - return; -} - -//================================================================================================== - -static int n2bz_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long param) -{ - switch (cmd) { - case N2BZ_BEEP: - n2_buzz(tone/2, ontime); - break; - - case N2BZ_BEEP_STOP: - del_timer(&n2bz_timer); - break; - - case N2BZ_BEEPS: - if (param == 0) - bz_repeatcnt = 0xffffffff; - else - bz_repeatcnt = param; - n2bz_handler(0); - break; - - case N2BZ_TONESET: - if (param >= 250 && param <= 2000) - tone = param; - break; - - case N2BZ_ONTIME: - if (param > 4 && param < 201) - ontime = param; - break; - - case N2BZ_SILENTTIME: - if (param > ontime) //enforce a reasonable duty cycle - offtime = param; - else - offtime = ontime; - break; - - case N2BZ_REPEATCNT: - if (param == 0) - bz_repeatcnt = 0xffffffff; - else - bz_repeatcnt = param; - break; - - case N2BZ_COMBINED: - bz_repeatcnt = (param & 0xF0000000) >> 28; //repeat 1 - 16 - ontime = (param & 0x0FF00000) >> 20; //ontime 1 - 256 jiffies - offtime = (param & 0x000FFF00) >> 8; //offtime 1 - 4095 jiffies - tone = (param & 0x000000FF) << 4; //tone (1 - 255) * 16 - break; - - default: - break; - } - return NOERR; -} - -static struct file_operations n2bz_fops = { - .owner = THIS_MODULE, - .ioctl = n2bz_ioctl, -}; - -//================================================================================================== - -static irqreturn_t n2pb_handler (int irq, void *dev_id, struct pt_regs *regs) -{ - void *ret; - - wake_up(&n2pb_waitq); - remove_proc_entry(PWR_OFF_STR, NULL); //no parent - n2_buzz(N2_BEEP_PITCH_MED, N2_BEEP_DUR_MED); - ret = create_proc_entry(PWR_OFF_STR, 0, NULL); - printk(KERN_DEBUG "cpe ret = %p\n", ret); - -// WARNING: This is RUDE...it unconditionally pulls the power plug. -// Your data will be at risk...since this is just a test system -// I am leaving it enabled...eventually userland needs to get the -// message, do an orderly shutdown and use an ioctl or something in -// /proc/powerdowm to actually have us pull the plug. - - *IXP4XX_GPIO_GPOER &= ~GPIO_PO_BM; // enable the pwr cntl gpio - *IXP4XX_GPIO_GPOUTR |= GPIO_PO_BM; // do the deed - - return IRQ_HANDLED; -} - -//================================================================================================== -// -//static void do_rb_timeout(unsigned long data) -//{ -// int i; -// -// for (i = 0; i < rb_presses; i++) -// n2_buzz(N2_BEEP_PITCH_MED,N2_BEEP_DUR_SHORT); -// return; -//} -// -//================================================================================================== -// does nothing -- waiting for userland to define -// This thing is sorta braindead...edge triggered IRQs aren't available in the drivers yet...so -// we hang in a loop until the button is no longer pressed - -struct testr { - int ctl; - long param; -}; - -static irqreturn_t n2rb_handler (int irq, void *dev_id, struct pt_regs *regs) -{ - - static struct testr test[] = { - N2LM_ALL_OFF,0, - N2LM_ON,0, - N2LM_OFF,0, - N2LM_ON,1, - N2LM_ALL_OFF,1, - N2LM_ON,2, - N2LM_OFF,2, - N2LM_ON,3, - N2LM_OFF,3, - N2LM_BLINK,0, - N2LM_OFF,0, - N2LM_BLINK,1, - N2LM_OFF,1, - N2LM_BLINK,2, - N2LM_OFF,2, - N2LM_BLINK,3, - N2LM_OFF,3, - N2LM_ALL_OFF,0, - N2LM_ALT,1, - N2LM_OFF,1, - N2LM_ALL_ON,0 - }; - - printk("Reset Entry IRQ =%d Presses = %d Jiffies = %08lx\tIO = %x\tIOW = %x\n", irq, rb_presses, jiffies, (int)_IO('M',rb_presses), (int)_IOW('M',rb_presses,long)); - - wake_up(&n2rb_waitq); - while ((*IXP4XX_GPIO_GPINR & GPIO_RB_BM) == 0) - ; //wait for button release - - if (rb_presses > 20) - rb_presses = 0; - tone = (rb_presses * 50) + 200; - ontime = (rb_presses*10) + 100; - offtime = 500 - (rb_presses*20); - printk("Ontime = %d\tOfftime = %d\tTone = %d\n",ontime,offtime,tone); - rb_presses++; - - n2bz_ioctl(NULL,NULL, N2BZ_BEEPS, rb_presses); - n2lm_ioctl(NULL,NULL, test[rb_presses].ctl, test[rb_presses].param); -// if (rb_presses == 0) { -// init_jiffy = jiffies; -// init_timer (&n2rb_timer); -// n2rb_timer.function = do_rb_timeout; -// }; -// -// if (rb_presses == 8) -// rb_presses = 0; -// if (rb_presses & 1) -// n2lm_ledon(test[rb_presses]); -// else -// n2lm_ledoff(test[rb_presses]); -// -// n2rb_timer.expires = (jiffies + RB_DELAY); -// add_timer (&n2rb_timer); -// if (rb_presses < 5) { -// if (rb_presses > 0) -// n2lm_ledoff(rb_presses); -// n2lm_ledon(++rb_presses); -// n2lm_timer_start(rb_presses); -// }; - - printk(KERN_DEBUG "Reset Exit IRQ=%d Presses= %d Jiffies= %08lx\n", irq, rb_presses, jiffies); - return IRQ_HANDLED; - -} - -//================================================================================================== -// What to do here is majorly undetermined... - -static int n2rb_read (struct file *filp, char __user *buffer, size_t count, loff_t *ppos) -{ - printk(KERN_DEBUG "Reset Button Wait\n"); - interruptible_sleep_on(&n2rb_waitq); - return copy_to_user(buffer, "reset", 5) ? -EFAULT : 5; - -} - -//================================================================================================== -// What to do here is majorly undetermined... - -static int n2pb_read (struct file *filp, char __user *buffer, size_t count, loff_t *ppos) -{ - printk(KERN_DEBUG "Power Button Wait\n"); - interruptible_sleep_on(&n2pb_waitq); - return copy_to_user(buffer, "poweroff", 8) ? -EFAULT : 8; - -} - -//-------------------------------------------------------------------------------------------------- - -static struct file_operations n2rb_fops = { - .owner = THIS_MODULE, - .read = n2rb_read, -}; - -//-------------------------------------------------------------------------------------------------- - -static struct file_operations n2pb_fops = { - .owner = THIS_MODULE, - .read = n2pb_read, -}; - -//================================================================================================== - -static void n2iom_initarch(void) -{ - printk(KERN_DEBUG "setup_interrupts - jiffies=%ld init_jiffy=%ld\n", jiffies, init_jiffy); - - *IXP4XX_GPIO_GPISR = 0x20400000; // read the 2 irqs to clr - gpio_line_config(N2_RB_GPIO, IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); - gpio_line_isr_clear(N2_RB_GPIO); - gpio_line_config(N2_PB_GPIO, IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_HIGH); - gpio_line_isr_clear(N2_PB_GPIO); - - init_timer(&n2lm_rsg_timer); - init_timer(&n2lm_rsr_timer); - init_timer(&n2lm_d1_timer); - init_timer(&n2lm_d2_timer); -// init_timer(&n2rb_timer); -// init_timer(&n2pb_timer); - init_timer(&n2bz_timer); - n2lm_rsr_timer.function = n2lm_rsr_handler; - n2lm_rsg_timer.function = n2lm_rsg_handler; - n2lm_d2_timer.function = n2lm_d2_handler; - n2lm_d1_timer.function = n2lm_d1_handler; - n2bz_timer.function = n2bz_handler; - n2lm_rsr_timer.data = n2lm_rsg_timer.data = n2lm_d1_timer.data = n2lm_d2_timer.data = n2bz_timer.data = 0; - - *IXP4XX_GPIO_GPOER &= 0xfffffff0; //enable gpio 0-3 - *IXP4XX_GPIO_GPOUTR |= 0x00000003; //turn off the leds - *IXP4XX_GPIO_GPOUTR &= 0xfffffffc; - n2lm_ledon(LED_ALL); - n2_buzz(N2_BEEP_PITCH_MED, N2_BEEP_DUR_SHORT); - n2lm_ledoff(LED_ALL); -// Default the Ready/Status to Red during kernel boot, Turn Green at the end of sysvinit - n2lm_ledon(LED_RS_RED); - - return; -} - -//================================================================================================== - -static int __init n2iom_init(void) -{ - printk(KERN_INFO "OpenN2 Misc I/O Driver Version %s\n", VERSION); - - init_jiffy = jiffies; - printk(KERN_DEBUG "init_jiffy=%ld\n",init_jiffy); - n2iom_initarch(); - - if (register_chrdev(N2RB_MAJOR, "n2_rbm", &n2pb_fops) < NOERR) { - printk(KERN_DEBUG "Reset Button Major %d not available\n", N2RB_MAJOR); - return -EBUSY; - } - if (register_chrdev(N2PB_MAJOR, "n2_pbm", &n2rb_fops) < NOERR) { - printk(KERN_DEBUG "Power Button Major %d not available\n", N2PB_MAJOR); - return -EBUSY; - } - if (register_chrdev(N2LM_MAJOR, "n2_ledm", &n2lm_fops) < NOERR) { - printk(KERN_DEBUG "Led Manager Major %d not available\n", N2LM_MAJOR); - return -EBUSY; - } - if (register_chrdev(N2BZ_MAJOR, "n2_bzm", &n2bz_fops) < NOERR) { - printk(KERN_DEBUG "Buzzer Major %d not available\n", N2BZ_MAJOR); - return -EBUSY; - } - - if (request_irq(N2RB_IRQ, &n2rb_handler, SA_INTERRUPT, "n2_rb", NULL) < NOERR) { - printk(KERN_DEBUG "Reset Button IRQ %d not available\n", N2RB_IRQ); - return -EIO; - } - if (request_irq(N2PB_IRQ, &n2pb_handler, SA_INTERRUPT, "n2_pb", NULL) < NOERR) { - printk(KERN_DEBUG "Power Button IRQ %d not available\n", N2PB_IRQ); - return -EIO; - } - - enable_irq(N2PB_IRQ); - enable_irq(N2RB_IRQ); - return (NOERR); -} - -//================================================================================================== - -static void __exit n2iom_exit(void) -{ - remove_proc_entry(PWR_OFF_STR, NULL); - del_timer(&n2rb_timer); - free_irq(N2RB_IRQ,NULL); - unregister_chrdev(N2PB_MAJOR, "n2pb"); - del_timer(&n2pb_timer); - free_irq(N2PB_IRQ, NULL); - unregister_chrdev(N2RB_MAJOR, "n2rb" ); - del_timer(&n2lm_rsg_timer); - del_timer(&n2lm_rsr_timer); - del_timer(&n2lm_d1_timer); - del_timer(&n2lm_d2_timer); - unregister_chrdev(N2LM_MAJOR, "n2lm" ); -} - -module_init (n2iom_init); -module_exit (n2iom_exit); - -MODULE_AUTHOR("Karen Spearel <kas11@tampabay.rr.com>"); -MODULE_DESCRIPTION("OpenN2 Buttons/LEDs IO Driver"); -MODULE_LICENSE("GPL"); -static int debug = 7; -module_param(debug, int, 0644); -MODULE_PARM_DESC(debug, "Debugging enabled = 8"); - diff --git a/packages/linux/openslug-kernel-2.6.11/nslu2-part.c b/packages/linux/openslug-kernel-2.6.11/nslu2-part.c deleted file mode 100644 index 6fbf952e2a..0000000000 --- a/packages/linux/openslug-kernel-2.6.11/nslu2-part.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * nslu2-part.c - * - * Maintainers: http://www.nslu2-linux.org/ - * Initial port: Mark Rakes <mrakes AT mac.com> - * - * "Parse" the fixed partition table of the Linksys NSLU2 and - * produce a Linux partition array to match. - */ - -#include <linux/kernel.h> -#include <linux/slab.h> -#include <linux/init.h> -#include <linux/vmalloc.h> -#include <linux/mtd/mtd.h> -#include <linux/mtd/partitions.h> - -/* info we know about the NSLU2's flash setup: - * - * Num Partition offset size - * --- --------- ---------- ----------- - * 0 RedBoot 0x00000000 0x00040000 - * 1 System Configuration 0x00040000 0x00020000 - * 2 Kernel 0x00060000 0x00100000 - * 3 Ramdisk 0x00160000 0x006a0000 - */ - #define NSLU2_NUM_FLASH_PARTITIONS 4 - #define NSLU2_FLASH_PART0_NAME "RedBoot" - #define NSLU2_FLASH_PART0_OFFSET 0x00000000 - #define NSLU2_FLASH_PART0_SIZE 0x00040000 - #define NSLU2_FLASH_PART1_NAME "System Configuration" - #define NSLU2_FLASH_PART1_OFFSET (NSLU2_FLASH_PART0_OFFSET + NSLU2_FLASH_PART0_SIZE) - #define NSLU2_FLASH_PART1_SIZE 0x00020000 - #define NSLU2_FLASH_PART2_NAME "Kernel" - #define NSLU2_FLASH_PART2_OFFSET (NSLU2_FLASH_PART1_OFFSET + NSLU2_FLASH_PART1_SIZE) - #define NSLU2_FLASH_PART2_SIZE 0x00100000 - #define NSLU2_FLASH_PART3_NAME "Ramdisk" - #define NSLU2_FLASH_PART3_OFFSET (NSLU2_FLASH_PART2_OFFSET + NSLU2_FLASH_PART2_SIZE) - #define NSLU2_FLASH_PART3_SIZE 0x006a0000 - -static int parse_nslu2_partitions(struct mtd_info *master, - struct mtd_partition **pparts, - unsigned long flash_start) -{ - struct mtd_partition *parts; - int ret = 0, namelen = 0; - char *names; - - namelen = strlen(NSLU2_FLASH_PART0_NAME) + - strlen(NSLU2_FLASH_PART1_NAME) + - strlen(NSLU2_FLASH_PART2_NAME) + - strlen(NSLU2_FLASH_PART3_NAME) + - NSLU2_NUM_FLASH_PARTITIONS; /*4 strings + each terminator */ - - parts = kmalloc(sizeof(*parts)*NSLU2_NUM_FLASH_PARTITIONS + namelen, GFP_KERNEL); - if (!parts) { - ret = -ENOMEM; - goto out; - } - - memset(parts, 0, sizeof(*parts)*NSLU2_NUM_FLASH_PARTITIONS + namelen); - names = (char *)&parts[NSLU2_NUM_FLASH_PARTITIONS]; - - /* RedBoot partition */ - parts[0].size = NSLU2_FLASH_PART0_SIZE; - parts[0].offset = NSLU2_FLASH_PART0_OFFSET; - parts[0].name = NSLU2_FLASH_PART0_NAME; - parts[0].mask_flags = MTD_WRITEABLE; /* readonly */ - strcpy(names, NSLU2_FLASH_PART0_NAME); - names += strlen(names)+1; - /* System Configuration */ - parts[1].size = NSLU2_FLASH_PART1_SIZE; - parts[1].offset = NSLU2_FLASH_PART1_OFFSET; - parts[1].name = NSLU2_FLASH_PART1_NAME; - parts[1].mask_flags = MTD_WRITEABLE; /* readonly */ - strcpy(names, NSLU2_FLASH_PART1_NAME); - names += strlen(names)+1; - /* Kernel */ - parts[2].size = NSLU2_FLASH_PART2_SIZE; - parts[2].offset = NSLU2_FLASH_PART2_OFFSET; - parts[2].name = NSLU2_FLASH_PART2_NAME; - parts[2].mask_flags = MTD_WRITEABLE; /* readonly */ - strcpy(names, NSLU2_FLASH_PART2_NAME); - names += strlen(names)+1; - /* Ramdisk */ - parts[3].size = NSLU2_FLASH_PART3_SIZE; - parts[3].offset = NSLU2_FLASH_PART3_OFFSET; - parts[3].name = NSLU2_FLASH_PART3_NAME; - parts[3].mask_flags = MTD_WRITEABLE; /* readonly */ - strcpy(names, NSLU2_FLASH_PART3_NAME); - names += strlen(names)+1; - - ret = NSLU2_NUM_FLASH_PARTITIONS; - *pparts = parts; - out: - return ret; -} - -static struct mtd_part_parser nslu2_parser = { - .owner = THIS_MODULE, - .parse_fn = parse_nslu2_partitions, - .name = "NSLU2", -}; - -static int __init nslu2_parser_init(void) -{ - return register_mtd_parser(&nslu2_parser); -} - -static void __exit nslu2_parser_exit(void) -{ - deregister_mtd_parser(&nslu2_parser); -} - -module_init(nslu2_parser_init); -module_exit(nslu2_parser_exit); - -MODULE_LICENSE("GPL"); -MODULE_AUTHOR("Mark Rakes"); -MODULE_DESCRIPTION("Parsing code for NSLU2 flash tables"); diff --git a/packages/linux/openslug-kernel-2.6.11/nslu2-pci.c b/packages/linux/openslug-kernel-2.6.11/nslu2-pci.c deleted file mode 100644 index 7327c65a4f..0000000000 --- a/packages/linux/openslug-kernel-2.6.11/nslu2-pci.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * arch/arm/mach-ixp4xx/nslu2-pci.c - * - * NSLU2 board-level PCI initialization - * - * based on ixdp425-pci.c: - * Copyright (C) 2002 Intel Corporation. - * Copyright (C) 2003-2004 MontaVista Software, Inc. - * - * Maintainer: http://www.nslu2-linux.org/ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - */ -// GPIO 8 is used as the power input so is not free for use as a PCI IRQ -// However, all the common PCI setup code presumes the standard 4 PCI -// interrupts are available. So we compromise...we don't enable the -// IRQ on Pin 8 but we let - -#include <linux/config.h> -#include <linux/pci.h> -#include <linux/init.h> -#include <linux/delay.h> - -#include <asm/mach/pci.h> -#include <asm/irq.h> -#include <asm/hardware.h> -#include <asm/mach-types.h> - -void __init nslu2_pci_preinit(void) -{ - gpio_line_config(NSLU2_PCI_INTA_PIN, - IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); - gpio_line_config(NSLU2_PCI_INTB_PIN, - IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); - gpio_line_config(NSLU2_PCI_INTC_PIN, - IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); -// gpio_line_config(NSLU2_PCI_INTD_PIN, -// IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); - - gpio_line_isr_clear(NSLU2_PCI_INTA_PIN); - gpio_line_isr_clear(NSLU2_PCI_INTB_PIN); - gpio_line_isr_clear(NSLU2_PCI_INTC_PIN); -// gpio_line_isr_clear(NSLU2_PCI_INTD_PIN); - - ixp4xx_pci_preinit(); -} - -static int __init nslu2_map_irq(struct pci_dev *dev, u8 slot, u8 pin) -{ - static int pci_irq_table[NSLU2_PCI_IRQ_LINES] = { - IRQ_NSLU2_PCI_INTA, - IRQ_NSLU2_PCI_INTB, - IRQ_NSLU2_PCI_INTC, -// IRQ_NSLU2_PCI_INTD - }; - - int irq = -1; - - if (slot >= 1 && slot <= NSLU2_PCI_MAX_DEV && - pin >= 1 && pin <= NSLU2_PCI_IRQ_LINES) { - irq = pci_irq_table[(slot + pin - 2) % 3]; // ! % 4 kas11 - } - - return irq; -} - -struct hw_pci __initdata nslu2_pci = { - .nr_controllers = 1, - .preinit = nslu2_pci_preinit, - .swizzle = pci_std_swizzle, - .setup = ixp4xx_setup, - .scan = ixp4xx_scan_bus, - .map_irq = nslu2_map_irq, -}; - -int __init nslu2_pci_init(void) //monkey see, monkey do -{ - if (machine_is_nslu2()) - pci_common_init(&nslu2_pci); - return 0; -} - -subsys_initcall(nslu2_pci_init); - diff --git a/packages/linux/openslug-kernel-2.6.11/nslu2-setup.c b/packages/linux/openslug-kernel-2.6.11/nslu2-setup.c deleted file mode 100644 index 5c08affd5d..0000000000 --- a/packages/linux/openslug-kernel-2.6.11/nslu2-setup.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - * arch/arm/mach-ixp4xx/nslu2-setup.c - * - * NSLU2 board-setup - * - * based ixdp425-setup.c: - * Copyright (C) 2003-2004 MontaVista Software, Inc. - * - * Author: Mark Rakes <mrakes at mac.com> - * Maintainers: http://www.nslu2-linux.org/ - * - * Fixed missing init_time in MACHINE_START kas11 10/22/04 - * Changed to conform to new style __init ixdp425 kas11 10/22/04 - */ - -#include <linux/kernel.h> -#include <linux/init.h> -#include <linux/device.h> -#include <linux/serial.h> -#include <linux/tty.h> -#include <linux/serial_core.h> - -#include <asm/types.h> -#include <asm/setup.h> -#include <asm/memory.h> -#include <asm/hardware.h> -#include <asm/mach-types.h> -#include <asm/irq.h> -#include <asm/mach/arch.h> -#include <asm/mach/flash.h> - -#ifdef __ARMEB__ -#define REG_OFFSET 3 -#else -#define REG_OFFSET 0 -#endif - -/* - * NSLU2 uses only one serial port - */ -static struct uart_port nslu2_serial_ports[] = { - { - .membase = (char*)(IXP4XX_UART1_BASE_VIRT + REG_OFFSET), - .mapbase = (IXP4XX_UART1_BASE_PHYS), - .irq = IRQ_IXP4XX_UART1, - .flags = UPF_SKIP_TEST, - .iotype = UPIO_MEM, - .regshift = 2, - .uartclk = IXP4XX_UART_XTAL, - .line = 0, - .type = PORT_XSCALE, - .fifosize = 32 - } -#if 0 - , { - .membase = (char*)(IXP4XX_UART2_BASE_VIRT + REG_OFFSET), - .mapbase = (IXP4XX_UART2_BASE_PHYS), - .irq = IRQ_IXP4XX_UART2, - .flags = UPF_SKIP_TEST, - .iotype = UPIO_MEM, - .regshift = 2, - .uartclk = IXP4XX_UART_XTAL, - .line = 1, - .type = PORT_XSCALE, - .fifosize = 32 - } -#endif -}; - -void __init nslu2_map_io(void) -{ - early_serial_setup(&nslu2_serial_ports[0]); -#if 0 - early_serial_setup(&nslu2_serial_ports[1]); -#endif - ixp4xx_map_io(); -} - -static struct flash_platform_data nslu2_flash_data = { - .map_name = "cfi_probe", - .width = 2, -}; - -static struct resource nslu2_flash_resource = { - .start = NSLU2_FLASH_BASE, - .end = NSLU2_FLASH_BASE + NSLU2_FLASH_SIZE, - .flags = IORESOURCE_MEM, -}; - -static struct platform_device nslu2_flash = { - .name = "IXP4XX-Flash", - .id = 0, - .dev = { - .platform_data = &nslu2_flash_data, - }, - .num_resources = 1, - .resource = &nslu2_flash_resource, -}; - -static struct ixp4xx_i2c_pins nslu2_i2c_gpio_pins = { - .sda_pin = NSLU2_SDA_PIN, - .scl_pin = NSLU2_SCL_PIN, -}; - -static struct platform_device nslu2_i2c_controller = { - .name = "IXP4XX-I2C", - .id = 0, - .dev = { - .platform_data = &nslu2_i2c_gpio_pins, - }, - .num_resources = 0 -}; - -static struct platform_device *nslu2_devices[] __initdata = { - &nslu2_i2c_controller, - &nslu2_flash -}; - -static void __init nslu2_init(void) -{ - platform_add_devices(&nslu2_devices, ARRAY_SIZE(nslu2_devices)); -} - -MACHINE_START(NSLU2, "Linksys NSLU2") - MAINTAINER("www.nslu2-linux.org") - BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS, - IXP4XX_PERIPHERAL_BASE_VIRT) - MAPIO(nslu2_map_io) - INITIRQ(ixp4xx_init_irq) //FIXME: all irq are off here - .timer = &ixp4xx_timer, - // INITTIME(ixp4xx_init_time) //this was missing in 2.6.7 code ...soft reboot needed? - BOOT_PARAMS(0x0100) - INIT_MACHINE(nslu2_init) -MACHINE_END diff --git a/packages/linux/openslug-kernel-2.6.11/nslu2.h b/packages/linux/openslug-kernel-2.6.11/nslu2.h deleted file mode 100644 index bb79aaa007..0000000000 --- a/packages/linux/openslug-kernel-2.6.11/nslu2.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * include/asm-arm/arch-ixp4xx/nslu2.h - * - * NSLU2 platform specific definitions - * - * Author: Mark Rakes <mrakes AT mac.com> - * Maintainers: http://www.nslu2-linux.org - * - * based on ixdp425.h: - * Copyright 2004 (c) MontaVista, Software, Inc. - * - * This file is licensed under the terms of the GNU General Public - * License version 2. This program is licensed "as is" without any - * warranty of any kind, whether express or implied. - */ - -// GPIO 8 is used as the power input so is not free for use as a PCI IRQ -// kas11 11-2-04 - -#ifndef __ASM_ARCH_HARDWARE_H__ -#error "Do not include this directly, instead #include <asm/hardware.h>" -#endif - -#define NSLU2_FLASH_BASE IXP4XX_EXP_BUS_CS0_BASE_PHYS -#define NSLU2_FLASH_SIZE IXP4XX_EXP_BUS_CSX_REGION_SIZE - -#define NSLU2_SDA_PIN 7 -#define NSLU2_SCL_PIN 6 - -/* - * NSLU2 PCI IRQs - */ -#define NSLU2_PCI_MAX_DEV 3 -#define NSLU2_PCI_IRQ_LINES 3 - - -/* PCI controller GPIO to IRQ pin mappings */ -#define NSLU2_PCI_INTA_PIN 11 -#define NSLU2_PCI_INTB_PIN 10 -#define NSLU2_PCI_INTC_PIN 9 -//#define NSLU2_PCI_INTD_PIN 8 - - diff --git a/packages/linux/openslug-kernel-2.6.11/nslu2_2.6.11.patch b/packages/linux/openslug-kernel-2.6.11/nslu2_2.6.11.patch deleted file mode 100644 index bff8400396..0000000000 --- a/packages/linux/openslug-kernel-2.6.11/nslu2_2.6.11.patch +++ /dev/null @@ -1,159 +0,0 @@ -diff -urN linux-2.6.11.orig/arch/arm/boot/compressed/head.S linux-2.6.11/arch/arm/boot/compressed/head.S ---- linux-2.6.11.orig/arch/arm/boot/compressed/head.S 2005-03-01 21:38:25.000000000 -1000 -+++ linux-2.6.11/arch/arm/boot/compressed/head.S 2005-03-03 00:55:05.000000000 -1000 -@@ -79,6 +79,14 @@ - .endm - .macro writeb, rb - str \rb, [r3, #0] -+ .endm -+#elif defined(CONFIG_ARCH_NSLU2) -+ .macro loadsp, rb -+ mov \rb, #0xc8000000 -+ .endm -+ .macro writeb, rb -+ str \rb, [r3, #0] -+ .endm - #elif defined(CONFIG_ARCH_IXP2000) - .macro loadsp, rb - mov \rb, #0xc0000000 -diff -urN linux-2.6.11.orig/arch/arm/boot/compressed/head-xscale.S linux-2.6.11/arch/arm/boot/compressed/head-xscale.S ---- linux-2.6.11.orig/arch/arm/boot/compressed/head-xscale.S 2005-03-01 21:37:52.000000000 -1000 -+++ linux-2.6.11/arch/arm/boot/compressed/head-xscale.S 2005-03-02 01:41:31.000000000 -1000 -@@ -47,3 +47,8 @@ - orr r7, r7, #(MACH_TYPE_GTWX5715 & 0xff00) - #endif - -+#ifdef CONFIG_ARCH_NSLU2 -+ mov r7, #(MACH_TYPE_NSLU2 & 0xff) -+ orr r7, r7, #(MACH_TYPE_NSLU2 & 0xff00) -+#endif -+ -diff -urN linux-2.6.11.orig/arch/arm/mach-ixp4xx/Kconfig linux-2.6.11/arch/arm/mach-ixp4xx/Kconfig ---- linux-2.6.11.orig/arch/arm/mach-ixp4xx/Kconfig 2005-03-01 21:37:49.000000000 -1000 -+++ linux-2.6.11/arch/arm/mach-ixp4xx/Kconfig 2005-03-02 01:43:42.000000000 -1000 -@@ -43,6 +43,12 @@ - IXDP465 Development Platform (Also known as BMP). - For more information on this platform, see Documentation/arm/IXP4xx. - -+config ARCH_NSLU2 -+ bool "NSLU2" -+ help -+ Say 'Y' here if you want your kernel to support Linksys's -+ NSLU2 NAS device. For more information on this platform, -+ see http://www.nslu2-linux.org - - # - # IXCDP1100 is the exact same HW as IXDP425, but with a different machine -diff -urN linux-2.6.11.orig/arch/arm/mach-ixp4xx/Makefile linux-2.6.11/arch/arm/mach-ixp4xx/Makefile ---- linux-2.6.11.orig/arch/arm/mach-ixp4xx/Makefile 2005-03-01 21:37:49.000000000 -1000 -+++ linux-2.6.11/arch/arm/mach-ixp4xx/Makefile 2005-03-02 01:44:16.000000000 -1000 -@@ -9,4 +9,4 @@ - obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o - obj-$(CONFIG_ARCH_PRPMC1100) += prpmc1100-pci.o prpmc1100-setup.o - obj-$(CONFIG_MACH_GTWX5715) += gtwx5715-pci.o gtwx5715-setup.o -- -+obj-$(CONFIG_ARCH_NSLU2) += nslu2-pci.o nslu2-setup.o nslu2-part.o nslu2-io.o -diff -urN linux-2.6.11.orig/arch/arm/tools/mach-types linux-2.6.11/arch/arm/tools/mach-types ---- linux-2.6.11.orig/arch/arm/tools/mach-types 2005-03-01 21:38:08.000000000 -1000 -+++ linux-2.6.11/arch/arm/tools/mach-types 2005-03-02 01:44:50.000000000 -1000 -@@ -604,7 +604,7 @@ - roverp7 MACH_ROVERP7 ROVERP7 594 - pr818s MACH_PR818S PR818S 595 - trxpro MACH_TRXPRO TRXPRO 596 --nslu2 MACH_NSLU2 NSLU2 597 -+nslu2 ARCH_NSLU2 NSLU2 597 - e400 MACH_E400 E400 598 - trab MACH_TRAB TRAB 599 - cmc_pu2 MACH_CMC_PU2 CMC_PU2 600 -diff -urN linux-2.6.11.orig/drivers/i2c/chips/Kconfig linux-2.6.11/drivers/i2c/chips/Kconfig ---- linux-2.6.11.orig/drivers/i2c/chips/Kconfig 2005-03-01 21:38:10.000000000 -1000 -+++ linux-2.6.11/drivers/i2c/chips/Kconfig 2005-03-02 01:45:28.000000000 -1000 -@@ -370,5 +370,14 @@ - - This driver can also be built as a module. If so, the module - will be called isp1301_omap. -+config SENSORS_X1205 -+ tristate "Xicor X1205 RTC chip" -+ depends on I2C && EXPERIMENTAL -+ select I2C_SENSOR -+ help -+ If you say yes here you get support for the Xicor x1205 RTC chip. -+ -+ This driver can also be built as a module. If so, the module -+ will be called x1205-rtc - - endmenu -diff -urN linux-2.6.11.orig/drivers/i2c/chips/Makefile linux-2.6.11/drivers/i2c/chips/Makefile ---- linux-2.6.11.orig/drivers/i2c/chips/Makefile 2005-03-01 21:38:34.000000000 -1000 -+++ linux-2.6.11/drivers/i2c/chips/Makefile 2005-03-02 01:45:54.000000000 -1000 -@@ -35,6 +35,7 @@ - obj-$(CONFIG_SENSORS_VIA686A) += via686a.o - obj-$(CONFIG_SENSORS_W83L785TS) += w83l785ts.o - obj-$(CONFIG_ISP1301_OMAP) += isp1301_omap.o -+obj-$(CONFIG_SENSORS_X1205) += x1205-rtc.o - - ifeq ($(CONFIG_I2C_DEBUG_CHIP),y) - EXTRA_CFLAGS += -DDEBUG -diff -urN linux-2.6.11.orig/drivers/mtd/maps/ixp4xx.c linux-2.6.11/drivers/mtd/maps/ixp4xx.c ---- linux-2.6.11.orig/drivers/mtd/maps/ixp4xx.c 2005-03-01 21:37:30.000000000 -1000 -+++ linux-2.6.11/drivers/mtd/maps/ixp4xx.c 2005-03-02 01:46:40.000000000 -1000 -@@ -94,7 +94,11 @@ - struct resource *res; - }; - -+#ifdef CONFIG_ARCH_NSLU2 -+static const char *probes[] = { "cmdlinepart", "RedBoot", "NSLU2", NULL }; -+#else - static const char *probes[] = { "RedBoot", "cmdlinepart", NULL }; -+#endif - - static int ixp4xx_flash_remove(struct device *_dev) - { -diff -urN linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/hardware.h linux-2.6.11/include/asm-arm/arch-ixp4xx/hardware.h ---- linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/hardware.h 2005-03-01 21:37:51.000000000 -1000 -+++ linux-2.6.11/include/asm-arm/arch-ixp4xx/hardware.h 2005-03-02 17:34:46.000000000 -1000 -@@ -44,5 +44,6 @@ - #include "ixdp425.h" - #include "coyote.h" - #include "prpmc1100.h" -+#include "nslu2.h" - - #endif /* _ASM_ARCH_HARDWARE_H */ -diff -urN linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/irqs.h linux-2.6.11/include/asm-arm/arch-ixp4xx/irqs.h ---- linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/irqs.h 2005-03-01 21:38:12.000000000 -1000 -+++ linux-2.6.11/include/asm-arm/arch-ixp4xx/irqs.h 2005-03-02 01:49:27.000000000 -1000 -@@ -93,4 +93,11 @@ - #define IRQ_COYOTE_PCI_SLOT1 IRQ_IXP4XX_GPIO11 - #define IRQ_COYOTE_IDE IRQ_IXP4XX_GPIO5 - -+/* -+ * NSLU2 board IRQs -+ */ -+#define IRQ_NSLU2_PCI_INTA IRQ_IXP4XX_GPIO11 -+#define IRQ_NSLU2_PCI_INTB IRQ_IXP4XX_GPIO10 -+#define IRQ_NSLU2_PCI_INTC IRQ_IXP4XX_GPIO9 -+ - #endif -diff -urN linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h linux-2.6.11/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h ---- linux-2.6.11.orig/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h 2005-03-01 21:37:49.000000000 -1000 -+++ linux-2.6.11/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h 2005-03-03 02:26:29.231822000 -1000 -@@ -52,7 +52,7 @@ - * Expansion BUS Configuration registers - */ - #define IXP4XX_EXP_CFG_BASE_PHYS (0xC4000000) --#define IXP4XX_EXP_CFG_BASE_VIRT (0xFFBFD000) -+#define IXP4XX_EXP_CFG_BASE_VIRT (0xFFBFE000) - #define IXP4XX_EXP_CFG_REGION_SIZE (0x00001000) - - /* -diff -urN linux-2.6.11.orig/include/linux/i2c-id.h linux-2.6.11/include/linux/i2c-id.h ---- linux-2.6.11.orig/include/linux/i2c-id.h 2005-03-01 21:38:34.000000000 -1000 -+++ linux-2.6.11/include/linux/i2c-id.h 2005-03-02 01:50:14.000000000 -1000 -@@ -110,6 +110,7 @@ - #define I2C_DRIVERID_TDA7313 62 /* TDA7313 audio processor */ - #define I2C_DRIVERID_MAX6900 63 /* MAX6900 real-time clock */ - #define I2C_DRIVERID_SAA7114H 64 /* video decoder */ -+#define I2C_DRIVERID_X1205 0xF0 - - - #define I2C_DRIVERID_EXP0 0xF0 /* experimental use id's */ diff --git a/packages/linux/openslug-kernel-2.6.11/usbnet.patch b/packages/linux/openslug-kernel-2.6.11/usbnet.patch deleted file mode 100644 index 1b3cf3fcb8..0000000000 --- a/packages/linux/openslug-kernel-2.6.11/usbnet.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- linux-2.6.11/drivers/usb/net/usbnet.c_orig 2005-03-03 13:50:54.053237416 -0500 -+++ linux-2.6.11/drivers/usb/net/usbnet.c 2005-03-03 13:53:19.415139048 -0500 -@@ -2404,12 +2404,13 @@ - #endif - size = (sizeof (struct ethhdr) + dev->net->mtu); - -- if ((skb = alloc_skb (size, flags)) == NULL) { -+ if ((skb = alloc_skb (size + NET_IP_ALIGN, flags)) == NULL) { - devdbg (dev, "no rx skb"); - defer_kevent (dev, EVENT_RX_MEMORY); - usb_free_urb (urb); - return; - } -+ skb_reserve (skb, NET_IP_ALIGN); - - entry = (struct skb_data *) skb->cb; - entry->urb = urb; diff --git a/packages/linux/openslug-kernel-2.6.11/x1205-rtc.c b/packages/linux/openslug-kernel-2.6.11/x1205-rtc.c deleted file mode 100644 index 50fbc9e280..0000000000 --- a/packages/linux/openslug-kernel-2.6.11/x1205-rtc.c +++ /dev/null @@ -1,548 +0,0 @@ -/* - x1205 - an 12c driver for the Xicor X1205 RTC - Copyright 2004 Karen Spearel - - please send all reports to: - kas11 at tampabay dot rr dot com - - based on linux/drivers/acron/char/pcf8583.h - Copyright (C) 2000 Russell King - - 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. -*/ -/* - - * i2c_adapter is the structure used to identify a physical i2c bus along - * with the access algorithms necessary to access it. - -struct i2c_adapter { - struct module *owner; - unsigned int id; == is algo->id | hwdep.struct->id, for registered values see below - unsigned int class; - struct i2c_algorithm *algo; the algorithm to access the bus - void *algo_data; - - --- administration stuff. - int (*client_register)(struct i2c_client *); - int (*client_unregister)(struct i2c_client *); - - data fields that are valid for all devices - struct semaphore bus_lock; - struct semaphore clist_lock; - - int timeout; - int retries; - struct device dev; the adapter device - struct class_device class_dev; the class device - -#ifdef CONFIG_PROC_FS - No need to set this when you initialize the adapter - int inode; -#endif def CONFIG_PROC_FS - - int nr; - struct list_head clients; - struct list_head list; - char name[I2C_NAME_SIZE]; - struct completion dev_released; - struct completion class_dev_released; -}; -*/ - - -/*========== Driver for the X1205 on the Linksys NSLU2 ==================*/ - -#include <linux/init.h> -#include <linux/i2c.h> -#include <linux/slab.h> -#include <linux/string.h> -#include <linux/errno.h> -#include <linux/bcd.h> -#include <linux/rtc.h> -#include <linux/fs.h> -#include <linux/proc_fs.h> -#include <linux/miscdevice.h> -#include <linux/device.h> -#include <asm/uaccess.h> -#include <asm/system.h> -#include <linux/moduleparam.h> - -#define RTC_GETDATETIME 0 -#define RTC_SETTIME 1 -#define RTC_SETDATETIME 2 - -#define I2C_M_WR 0 // just for consistancy - -// offsets into read buf - add 2 for write buf -#define CCR_SEC 0 -#define CCR_MIN 1 -#define CCR_HOUR 2 -#define CCR_MDAY 3 -#define CCR_MONTH 4 -#define CCR_YEAR 5 -#define CCR_WDAY 6 -#define CCR_Y2K 7 - -#define X1205_I2C_BUS_ADDR 0x6f // hardwired into x1205 -#define X1205_ALM0_BASE 0x00 // Base address of the ALM0 -#define X1205_CCR_BASE 0x30 // Base address of the CCR -#define X1205_SR_ADDR 0x3f // Status Register -#define X1205_SR_WEL 0x02 // Write Enable Latch bit -#define X1205_SR_RWEL 0x04 // Register Write Enable Bit -#define X1205_MILBIT 0x80 // this bit set in ccr.hour for 24 hr mode -#define NOERR 0 -#define RTC_NODATE 0 -#define RTC_DATETOO 1 - -// comment out next line is your x1205 can't do page writes -//#define X1205PAGEWRITE 1 -#ifdef X1205PAGEWRITE -#define DRIVERNAME "Xicor x1205 RTC Driver v0.9.3.3" -#else -#define DRIVERNAME "Xicor x1205 RTC Dvr v0.9.3.3NPW" -#endif - -#define DEBUG KERN_DEBUG - - -static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm, u8 reg_base); -static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm, int datetoo, u8 reg_base); -static int x1205_attach(struct i2c_adapter *adapter); -static int x1205_detach(struct i2c_client *client); -static int x1205_validate_tm(struct rtc_time *tm); -static int x1205_command(struct i2c_client *client, unsigned int cmd, void *arg); -static int x1205_sync_rtc(void); -static int x1205_read(struct file *file, char *buf, size_t count, loff_t *ptr); -static int x1205_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg); -static int x1205_read_proc(char *buf, char **start, off_t off, int len, int *eof, void *data); - -static struct i2c_driver x1205_driver = { - .owner = THIS_MODULE, - .name = DRIVERNAME, - .id = I2C_DRIVERID_X1205, - .flags = I2C_DF_NOTIFY, - .attach_adapter = &x1205_attach, //we don't need to probe...x1205 is hardwired @ 0x6f - .detach_client = &x1205_detach, - .command = &x1205_command, //this prolly never gets called...used internally tho -}; - -static struct i2c_client x1205_i2c_client = { - .id = I2C_DRIVERID_X1205, - .flags = 0, - .addr = X1205_I2C_BUS_ADDR, // chip address - NOTE: 7bit - .adapter = NULL, // the adapter we sit on assigned in attach - .driver = &x1205_driver, // and our access routines - .usage_count = 0, // How many accesses currently to this client - .dev = {}, // the device structure - .list = {}, - .name = DRIVERNAME, - .released = {}, -}; - -static struct file_operations rtc_fops = { - owner: THIS_MODULE, - ioctl: x1205_ioctl, - read: x1205_read, -}; - -static struct miscdevice x1205_miscdev = { - .minor = RTC_MINOR, - .name = "rtc", - .fops = &rtc_fops, -}; -extern int (*set_rtc)(void); -static unsigned epoch = 1900; //coresponds to year 0 -static unsigned rtc_epoch = 2000; -static const unsigned char days_in_mo[] = -{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; - -//===================================CODE====================================== -// in the routines that deal directly with the x1205 hardware, we use -// rtc_time -- month 0-11, hour 0-23, yr = calendar year-epoch -// Epoch is inited as 2000. Time is set to UT -//============================================================================= -static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm, u8 reg_base) -{ - static unsigned char addr[2] = { 0,} ; - unsigned char buf[8]; - struct i2c_msg msgs[2] = { - { client->addr, I2C_M_WR, 2, addr }, //msg 1 = send base address - { client->addr, I2C_M_RD, 8, buf }, //msg 2 = read sequential data - }; - addr[1] = reg_base; - if ((i2c_transfer(client->adapter, msgs, 2)) == 2) { //did we read 2 messages? - printk(KERN_DEBUG "raw x1205 read data - sec-%02x min-%02x hr-%02x mday-%02x mon-%02x year-%02x wday-%02x y2k-%02x\n", - buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6], buf[7]); - tm->tm_sec = BCD2BIN(buf[CCR_SEC]); - tm->tm_min = BCD2BIN(buf[CCR_MIN]); - buf[CCR_HOUR] &= ~X1205_MILBIT; - tm->tm_hour = BCD2BIN(buf[CCR_HOUR]); //hr is 0-23 - tm->tm_mday = BCD2BIN(buf[CCR_MDAY]); - tm->tm_mon = BCD2BIN(buf[CCR_MONTH]); - rtc_epoch = BCD2BIN(buf[CCR_Y2K]) * 100; - tm->tm_year = BCD2BIN(buf[CCR_YEAR]) + rtc_epoch - epoch; - tm->tm_wday = buf[CCR_WDAY]; - printk(KERN_DEBUG "rtc_time output data - sec-%02d min-%02d hr-%02d mday-%02d mon-%02d year-%02d wday-%02d epoch-%d rtc_epoch-%d\n", - tm->tm_sec,tm->tm_min,tm->tm_hour,tm->tm_mday,tm->tm_mon,tm->tm_year,tm->tm_wday,epoch, rtc_epoch); - } else { - printk(KERN_DEBUG "i2c_transfer Read Error\n"); - return -EIO; - } - - return NOERR; -} -// x1205pagewrite allows writing a block of registers in msg3 even though the x1205 says -// nothing about this in its spec. -// it needs more testing as it is possible some x1205s are actually not-completely- -// functional x1226s and there is a reason for the multiple write to not be in the spec. -// anyhow, it is enabled for the time being...and we even push out luck by sending 10 bytes - -static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm, int datetoo, u8 reg_base) -{ - static unsigned char wel[3] = { 0, X1205_SR_ADDR, X1205_SR_WEL }; - static unsigned char rwel[3] = { 0, X1205_SR_ADDR, X1205_SR_WEL | X1205_SR_RWEL }; - static unsigned char diswe[3] = { 0, X1205_SR_ADDR, 0 }; - -#ifdef X1205PAGEWRITE - - static unsigned char buf[10] = { 0, X1205_CCR_BASE, }; - struct i2c_msg msgs[4] = { - { client->addr, I2C_M_WR, 3, wel }, //msg 1 = write WEL to to ccr sr - { client->addr, I2C_M_WR, 3, rwel }, //msg 2 = write RWEL to ccr sr - { client->addr, I2C_M_WR, 10, buf }, //msg 3 = write ccr base addr +seq data - { client->addr, I2C_M_WR, 3, diswe }, //msg 4 = 0 to ccr sr to disable writes - }; - - msgs[2].len = 5; // 5 bytes + addr to set time only - buf [1] = reg_base; - buf[CCR_SEC+2] = BIN2BCD(tm->tm_sec); - buf[CCR_MIN+2] = BIN2BCD(tm->tm_min); - buf[CCR_HOUR+2] = BIN2BCD(tm->tm_hour) | X1205_MILBIT; // set 24 hour format - if (datetoo == 1) { - buf[CCR_MDAY+2] = BIN2BCD(tm->tm_mday); - buf[CCR_MONTH+2] = BIN2BCD(tm->tm_mon); // input is 0-11 - buf[CCR_YEAR+2] = BIN2BCD((tm->tm_year + epoch - rtc_epoch)); // input is yrs since 1900 - buf[CCR_WDAY+2] = tm->tm_wday & 7; - buf[CCR_Y2K+2] = BIN2BCD((rtc_epoch/100)); - msgs[2].len += 5; //5 more bytes to set date - } - printk(KERN_DEBUG "rtc_time input - sec-%02d min-%02d hour-%02d mday-%02d mon-%02d year-%02d wday-%02d epoch-%d rtc_epoch-%d\n", - tm->tm_sec,tm->tm_min,tm->tm_hour,tm->tm_mday,tm->tm_mon,tm->tm_year,tm->tm_wday, epoch, rtc_epoch); - printk(KERN_DEBUG "BCD write data - sec-%02x min-%02x hour-%02x mday-%02x mon-%02x year-%02x wday-%02x y2k-%02x\n", - buf[2],buf[3],buf[4],buf[5],buf[6], buf[7], buf[8], buf[9]); - - if ((i2c_transfer(client->adapter, msgs, 4)) != 4) - return -EIO; - return NOERR; - -#else //do this if page writes aren't working - - int i,xfer; - static unsigned char data[3] = { 0,}; - static unsigned char buf[8]; - - buf[CCR_SEC] = BIN2BCD(tm->tm_sec); - buf[CCR_MIN] = BIN2BCD(tm->tm_min); - buf[CCR_HOUR] = BIN2BCD(tm->tm_hour) | X1205_MILBIT; // set 24 hour format - if (datetoo == 1) { - buf[CCR_MDAY] = BIN2BCD(tm->tm_mday); - buf[CCR_MONTH] = BIN2BCD(tm->tm_mon); // input is 0-11 - buf[CCR_YEAR] = BIN2BCD((tm->tm_year + epoch - rtc_epoch)); // input is yrs since 1900 - buf[CCR_WDAY] = tm->tm_wday & 7; - buf[CCR_Y2K] = BIN2BCD((rtc_epoch/100)); - } - printk(KERN_DEBUG "rtc_time input - sec-%02d min-%02d hour-%02d mday-%02d mon-%02d year-%02d wday-%02d epoch-%d rtc_epoch-%d\n", - tm->tm_sec,tm->tm_min,tm->tm_hour,tm->tm_mday,tm->tm_mon,tm->tm_year,tm->tm_wday, epoch, rtc_epoch); - - xfer = i2c_master_send(client, wel, 3); - printk(KERN_DEBUG "wen - %x\n", xfer); - if (xfer != 3) - return -EIO; - - xfer = i2c_master_send(client, rwel, 3); - printk(KERN_DEBUG "wenb - %x\n", xfer); - if (xfer != 3) - return -EIO; - - for (i = 0; i < 8; i++) { - data[1] = i + reg_base; - data[2] = buf[i]; - xfer = i2c_master_send(client, data, 3); - printk(KERN_DEBUG "xfer - %d addr - %02x data - %02x\n", xfer, data[1], data[2]); - if (xfer != 3) - return -EIO; - }; - - xfer = i2c_master_send(client, diswe, 3); - printk(KERN_DEBUG "wdis - %x\n", xfer); - if (xfer != 3) - return -EIO; - return NOERR; -#endif -} -//============================================================================= - -static int x1205_attach(struct i2c_adapter *adapter) -{ - struct rtc_time tm; - struct timespec tv; - int errno; - - x1205_i2c_client.adapter = adapter; - x1205_i2c_client.id++; - - if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) != NOERR) //test for functional driver - return -EIO; - - if ((errno = i2c_attach_client(&x1205_i2c_client)) != NOERR) - return errno; - - tv.tv_nsec = tm.tm_sec * 10000000; - tv.tv_sec = mktime(tm.tm_year+epoch, tm.tm_mon, tm.tm_mday, tm.tm_hour, - tm.tm_min, tm.tm_sec); - do_settimeofday(&tv); - set_rtc = x1205_sync_rtc; - - printk(KERN_DEBUG "%s attached on adapter %s\n",x1205_i2c_client.name, - x1205_i2c_client.adapter->name); //why is this name a null string? - - return NOERR; -} - -static int x1205_detach(struct i2c_client *client) -{ - int errno; - - if ((errno = i2c_detach_client(client)) != 0) { - printk(KERN_DEBUG "i2c_detach failed - errno = %d\n", errno); - return errno; - } - - return NOERR; -} - -// make sure the rtc_time values are in bounds -static int x1205_validate_tm(struct rtc_time *tm) -{ - tm->tm_year += 1900; - - if (tm->tm_year < 1970) - return -EINVAL; - - if ((tm->tm_mon > 11) || (tm->tm_mday == 0)) - return -EINVAL; - - if (tm->tm_mday > (days_in_mo[tm->tm_mon] + ( (tm->tm_mon == 1) && - ((!(tm->tm_year % 4) && (tm->tm_year % 100) ) || !(tm->tm_year % 400))))) - return -EINVAL; - - if ((tm->tm_year -= epoch) > 255) - return -EINVAL; - - if ((tm->tm_hour >= 24) || (tm->tm_min >= 60) || (tm->tm_sec >= 60)) - return -EINVAL; - return NOERR; -} - -static int x1205_command(struct i2c_client *client, unsigned int cmd, void *tm) -{ - int errno, dodate = RTC_DATETOO; - - if (client == NULL || tm == NULL) - return -EINVAL; - if (!capable(CAP_SYS_TIME)) - return -EACCES; - - printk(KERN_DEBUG "x1205_command %d\n", cmd); - - switch (cmd) { - case RTC_GETDATETIME: - return x1205_get_datetime(client, tm, X1205_CCR_BASE); - - case RTC_SETTIME: // note fall thru - dodate = RTC_NODATE; - case RTC_SETDATETIME: - if ((errno = x1205_validate_tm(tm)) < NOERR) - return errno; - return x1205_set_datetime(client, tm, dodate, X1205_CCR_BASE); - - default: - return -EINVAL; - } -} - -static int x1205_sync_rtc(void) -{ - struct rtc_time new_tm, old_tm; - unsigned long cur_secs = xtime.tv_sec; - - printk(KERN_DEBUG "x1205_sync_rtc entry\n"); - - if (x1205_command(&x1205_i2c_client, RTC_GETDATETIME, &old_tm)) - return 0; - -// xtime.tv_nsec = old_tm.tm_sec * 10000000; //FIXME: - new_tm.tm_sec = cur_secs % 60; - cur_secs /= 60; - new_tm.tm_min = cur_secs % 60; - cur_secs /= 60; - new_tm.tm_hour = cur_secs % 24; - - /* - * avoid writing when we're going to change the day - * of the month. We will retry in the next minute. - * This basically means that if the RTC must not drift - * by more than 1 minute in 11 minutes. - */ - if ((old_tm.tm_hour == 23 && old_tm.tm_min == 59) || - (new_tm.tm_hour == 23 && new_tm.tm_min == 59)) - return 1; - printk(KERN_DEBUG "x1205_sync_rtc exit\n"); - - return x1205_command(&x1205_i2c_client, RTC_SETTIME, &new_tm); -} - -static int x1205_read(struct file *file, char *buf, size_t count, loff_t *ptr) -{ - struct rtc_time tm; - - if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) < NOERR) - return -EIO; - return copy_to_user(buf, &tm, sizeof(tm)) ? -EFAULT : NOERR; -} - -//============================================================================== - -static int x1205_ioctl(struct inode *inode, struct file *file, unsigned int cmd, - unsigned long arg) -{ - struct rtc_time tm; - int errno; - - printk(KERN_DEBUG "ioctl = %x\n", cmd); - - switch (cmd) { - case RTC_RD_TIME: - if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) < NOERR) - return -EIO; - break; - - case RTC_SET_TIME: - if (!capable(CAP_SYS_TIME)) - return -EACCES; - - if (copy_from_user(&tm, (struct rtc_time *) arg, sizeof(struct rtc_time))) - return -EFAULT; - if ((errno = x1205_validate_tm(&tm)) < NOERR) - return errno; - return x1205_set_datetime(&x1205_i2c_client, &tm, RTC_DATETOO, X1205_CCR_BASE); - - case RTC_ALM_SET: //FIXME: set Control Regs - if (copy_from_user(&tm, (struct rtc_time *) arg, sizeof(struct rtc_time))) - return -EFAULT; - return x1205_set_datetime(&x1205_i2c_client, &tm, RTC_DATETOO, X1205_ALM0_BASE); - - case RTC_ALM_READ: - if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_ALM0_BASE)) < NOERR) - return -EIO; - break; - - case RTC_EPOCH_READ: - - return put_user (epoch, (unsigned long __user *)arg); - - case RTC_EPOCH_SET: - if (arg < 1900) - return -EINVAL; - - if (!capable(CAP_SYS_TIME)) - return -EACCES; - - epoch = arg; - return 0; - - default: - return -ENOTTY; - } - return copy_to_user((void __user *)arg, &tm, sizeof tm) ? -EFAULT : 0; - -} - -static int x1205_read_proc(char *buf, char **start, off_t off, int len, int *eof, void *data) -{ - struct rtc_time tm; - int slen, errno; - - if ((errno = x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) < NOERR) - return errno; - -// here we return the real year and the month as 1-12 since it is human-readable - slen = sprintf(buf, "rtc_time\t: %02d:%02d:%02d\nrtc_date\t: %04d-%02d-%02d\n", - tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_year + 1900, tm.tm_mon+1, tm.tm_mday); - printk(KERN_DEBUG "raw rtc_time\t: %02d:%02d:%02d\nraw rtc_date\t: %04d-%02d-%02d\n", - tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_year, tm.tm_mon, tm.tm_mday); - - if (slen <= off + len) - *eof = 1; - *start = buf + off; - slen -= off; - if (slen > len) - slen = len; - if ( slen < 0 ) - slen = 0; - - return slen; -} - -static int __init x1205_init(void) -{ - struct rtc_time tm; - int errno; - printk(KERN_INFO "LOADED %s\n", DRIVERNAME); - - if ((errno = i2c_add_driver(&x1205_driver)) != NOERR) { - dev_dbg(x1205_i2c_client.dev, "x1205_init failed - errno = %d\n", errno); - return (errno); - } - if ((errno = misc_register(&x1205_miscdev)) != NOERR) { - dev_dbg(x1205_i2c_client.dev, "Register Misc Driver failed - errno = %d\n", errno); - i2c_del_driver(&x1205_driver); - return errno; - } - if (create_proc_read_entry("driver/rtc", 0, NULL, x1205_read_proc, NULL) < NOERR) - return -ENOMEM; - if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) != NOERR) //test for functionality - return -EIO; - - return NOERR; -} - -static void __exit x1205_exit(void) -{ - remove_proc_entry("driver/rtc", NULL); - misc_deregister(&x1205_miscdev); - i2c_del_driver(&x1205_driver); - set_rtc = NULL; -} - -MODULE_AUTHOR("Karen Spearel <kas11@tampabay.rr.com>"); -MODULE_DESCRIPTION("Xicor X1205-RTC Driver"); -MODULE_LICENSE("GPL"); -static int debug = 7; -module_param(debug, bool, 0644); -MODULE_PARM_DESC(debug, "Debugging enabled = 1"); - -module_init(x1205_init); -module_exit(x1205_exit); diff --git a/packages/linux/openslug-kernel-2.6.7/arm-Makefile.patch b/packages/linux/openslug-kernel-2.6.7/arm-Makefile.patch deleted file mode 100644 index fa059f29cd..0000000000 --- a/packages/linux/openslug-kernel-2.6.7/arm-Makefile.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- linux-2.6.7/arch/arm/Makefile.orig 2004-06-15 22:19:13.000000000 -0700 -+++ linux-2.6.7/arch/arm/Makefile 2004-09-19 21:47:58.000000000 -0700 -@@ -55,8 +55,8 @@ - tune-$(CONFIG_CPU_V6) :=-mtune=strongarm - - # Need -Uarm for gcc < 3.x --CFLAGS +=-mapcs-32 $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float -Wa,-mno-fpu -Uarm --AFLAGS +=-mapcs-32 $(arch-y) $(tune-y) -msoft-float -Wa,-mno-fpu -+CFLAGS +=-mapcs-32 $(arch-y) $(tune-y) -msoft-float -Uarm -+AFLAGS +=-mapcs-32 $(arch-y) $(tune-y) -msoft-float - - #Default value - DATAADDR := . diff --git a/packages/linux/openslug-kernel-2.6.7/arm-timer.patch b/packages/linux/openslug-kernel-2.6.7/arm-timer.patch deleted file mode 100644 index b36df4fe7c..0000000000 --- a/packages/linux/openslug-kernel-2.6.7/arm-timer.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- linux-2.6.7/arch/arm/mach-ixp4xx/common.c.orig 2004-09-26 15:32:52.000000000 -0400 -+++ linux-2.6.7/arch/arm/mach-ixp4xx/common.c 2004-09-26 15:33:34.000000000 -0400 -@@ -223,13 +223,7 @@ static irqreturn_t ixp4xx_timer_interrup - /* Clear Pending Interrupt by writing '1' to it */ - *IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND; - -- /* -- * Catch up with the real idea of time -- */ -- do { -- do_timer(regs); -- last_jiffy_time += LATCH; -- } while((*IXP4XX_OSTS - last_jiffy_time) > LATCH); -+ do_timer(regs); - - return IRQ_HANDLED; - } diff --git a/packages/linux/openslug-kernel-2.6.7/defconfig b/packages/linux/openslug-kernel-2.6.7/defconfig deleted file mode 100644 index 1e6a933531..0000000000 --- a/packages/linux/openslug-kernel-2.6.7/defconfig +++ /dev/null @@ -1,1097 +0,0 @@ -# -# Automatically generated make config: don't edit -# -CONFIG_ARM=y -CONFIG_MMU=y -CONFIG_UID16=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y - -# -# Code maturity level options -# -CONFIG_EXPERIMENTAL=y -CONFIG_CLEAN_COMPILE=y -CONFIG_STANDALONE=y -CONFIG_BROKEN_ON_SMP=y - -# -# General setup -# -CONFIG_SWAP=y -CONFIG_SYSVIPC=y -# CONFIG_POSIX_MQUEUE is not set -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_SYSCTL=y -# CONFIG_AUDIT is not set -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_HOTPLUG=y -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y -CONFIG_EMBEDDED=y -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -CONFIG_FUTEX=y -CONFIG_EPOLL=y -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y - -# -# Loadable module support -# -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_OBSOLETE_MODPARM=y -# CONFIG_MODVERSIONS is not set -CONFIG_KMOD=y - -# -# System Type -# -# CONFIG_ARCH_ADIFCC is not set -# CONFIG_ARCH_CLPS7500 is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CO285 is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_CAMELOT is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_IOP3XX is not set -CONFIG_ARCH_IXP4XX=y -# CONFIG_ARCH_L7200 is not set -# CONFIG_ARCH_PXA is not set -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_VERSATILE_PB is not set -CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y - -# -# Intel IXP4xx Implementation Options -# - -# -# IXP4xx Platforms -# -# CONFIG_ARCH_AVILA is not set -# CONFIG_ARCH_ADI_COYOTE is not set -CONFIG_ARCH_IXDP425=y -CONFIG_ARCH_IXCDP1100=y -# CONFIG_ARCH_PRPMC1100 is not set -CONFIG_ARCH_IXDP4XX=y - -# -# IXP4xx Options -# -CONFIG_IXP4XX_INDIRECT_PCI=y -CONFIG_DMABOUNCE=y - -# -# Processor Type -# -CONFIG_CPU_32=y -CONFIG_CPU_XSCALE=y -CONFIG_CPU_32v5=y -CONFIG_CPU_ABRT_EV5T=y -CONFIG_CPU_TLB_V4WBI=y -CONFIG_CPU_MINICACHE=y - -# -# Processor Features -# -# CONFIG_ARM_THUMB is not set -CONFIG_CPU_BIG_ENDIAN=y -CONFIG_XSCALE_PMU=y - -# -# General setup -# -CONFIG_PCI=y -# CONFIG_ZBOOT_ROM is not set -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_PCI_LEGACY_PROC=y -# CONFIG_PCI_NAMES is not set - -# -# PCMCIA/CardBus support -# -# CONFIG_PCMCIA is not set - -# -# At least one math emulation must be selected -# -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set -# CONFIG_FPE_FASTFPE is not set -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set - -# -# Generic Driver Options -# -# CONFIG_FW_LOADER is not set -# CONFIG_DEBUG_DRIVER is not set -CONFIG_PM=y -# CONFIG_PREEMPT is not set -CONFIG_APM=y -# CONFIG_ARTHUR is not set -CONFIG_CMDLINE="root=/dev/ram0 initrd=0x01000000,10M mem=32M@0x00000000 console=ttyS0,115200n8" -CONFIG_ALIGNMENT_TRAP=y - -# -# Parallel port support -# -# CONFIG_PARPORT is not set - -# -# Memory Technology Devices (MTD) -# -CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -CONFIG_MTD_PARTITIONS=y -CONFIG_MTD_CONCAT=y -CONFIG_MTD_REDBOOT_PARTS=y -CONFIG_MTD_CMDLINE_PARTS=y -# CONFIG_MTD_AFS_PARTS is not set - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLOCK=y -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL 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_CFI_INTELEXT=y -# CONFIG_MTD_CFI_AMDSTD is not set -# CONFIG_MTD_CFI_STAA is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set -# CONFIG_MTD_OBSOLETE_CHIPS is not set - -# -# Mapping drivers for chip access -# -CONFIG_MTD_COMPLEX_MAPPINGS=y -# CONFIG_MTD_PHYSMAP is not set -# CONFIG_MTD_ARM_INTEGRATOR is not set -CONFIG_MTD_IXP4XX=y -# CONFIG_MTD_EDB7312 is not set -# CONFIG_MTD_PCI is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_PMC551 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLKMTD 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 - -# -# NAND Flash Device Drivers -# -# CONFIG_MTD_NAND is not set - -# -# Plug and Play support -# - -# -# Block devices -# -# 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_LOOP=y -# CONFIG_BLK_DEV_CRYPTOLOOP is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_CARMEL is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_SIZE=10240 -CONFIG_BLK_DEV_INITRD=y - -# -# Multi-device support (RAID and LVM) -# -# CONFIG_MD is not set - -# -# Networking support -# -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=m -CONFIG_PACKET_MMAP=y -CONFIG_NETLINK_DEV=m -CONFIG_UNIX=y -# CONFIG_NET_KEY is not set -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_ROUTE_FWMARK=y -CONFIG_IP_ROUTE_NAT=y -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_ROUTE_TOS=y -CONFIG_IP_ROUTE_VERBOSE=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -# CONFIG_IP_PNP_RARP is not set -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE=m -CONFIG_NET_IPGRE_BROADCAST=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y -# CONFIG_ARPD is not set -CONFIG_SYN_COOKIES=y -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set - -# -# IP: Virtual Server Configuration -# -CONFIG_IP_VS=m -CONFIG_IP_VS_DEBUG=y -CONFIG_IP_VS_TAB_BITS=12 - -# -# IPVS transport protocol load balancing support -# -# CONFIG_IP_VS_PROTO_TCP is not set -# CONFIG_IP_VS_PROTO_UDP is not set -# CONFIG_IP_VS_PROTO_ESP is not set -# CONFIG_IP_VS_PROTO_AH is not set - -# -# IPVS scheduler -# -CONFIG_IP_VS_RR=m -CONFIG_IP_VS_WRR=m -CONFIG_IP_VS_LC=m -CONFIG_IP_VS_WLC=m -CONFIG_IP_VS_LBLC=m -CONFIG_IP_VS_LBLCR=m -CONFIG_IP_VS_DH=m -CONFIG_IP_VS_SH=m -# CONFIG_IP_VS_SED is not set -# CONFIG_IP_VS_NQ is not set - -# -# IPVS application helper -# -# CONFIG_IPV6 is not set -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set -CONFIG_BRIDGE_NETFILTER=y - -# -# IP: Netfilter Configuration -# -# CONFIG_IP_NF_CONNTRACK is not set -# CONFIG_IP_NF_QUEUE is not set -# CONFIG_IP_NF_IPTABLES is not set -# CONFIG_IP_NF_ARPTABLES is not set -# CONFIG_IP_NF_COMPAT_IPCHAINS is not set -# CONFIG_IP_NF_COMPAT_IPFWADM is not set - -# -# Bridge: Netfilter Configuration -# -# CONFIG_BRIDGE_NF_EBTABLES is not set -CONFIG_XFRM=y -# CONFIG_XFRM_USER is not set - -# -# SCTP Configuration (EXPERIMENTAL) -# -# CONFIG_IP_SCTP is not set -# CONFIG_ATM is not set -CONFIG_BRIDGE=m -CONFIG_VLAN_8021Q=m -# CONFIG_DECNET is not set -CONFIG_LLC=m -# CONFIG_LLC2 is not set -CONFIG_IPX=m -# CONFIG_IPX_INTERN is not set -CONFIG_ATALK=m -CONFIG_DEV_APPLETALK=y -CONFIG_IPDDP=m -CONFIG_IPDDP_ENCAP=y -CONFIG_IPDDP_DECAP=y -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set -# CONFIG_NET_FASTROUTE is not set -# CONFIG_NET_HW_FLOWCONTROL is not set - -# -# QoS and/or fair queueing -# -CONFIG_NET_SCHED=y -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_HTB=m -# CONFIG_NET_SCH_HFSC is not set -CONFIG_NET_SCH_CSZ=m -CONFIG_NET_SCH_PRIO=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_DELAY is not set -CONFIG_NET_SCH_INGRESS=m -CONFIG_NET_QOS=y -CONFIG_NET_ESTIMATOR=y -CONFIG_NET_CLS=y -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_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m -CONFIG_NET_CLS_POLICE=y - -# -# Network testing -# -CONFIG_NET_PKTGEN=m -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -# CONFIG_HAMRADIO is not set -# CONFIG_IRDA is not set -# CONFIG_BT is not set -CONFIG_NETDEVICES=y -# CONFIG_DUMMY is not set -# CONFIG_BONDING is not set -# CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set -# CONFIG_ETHERTAP is not set - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set - -# -# Ethernet (10 or 100Mbit) -# -CONFIG_NET_ETHERNET=y -CONFIG_MII=y -# CONFIG_HAPPYMEAL is not set -# CONFIG_SUNGEM is not set -# CONFIG_NET_VENDOR_3COM is not set - -# -# Tulip family network device support -# -# 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 is not set -# 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 - -# -# Ethernet (1000 Mbit) -# -# 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_SK98LIN is not set -# CONFIG_TIGON3 is not set - -# -# Ethernet (10000 Mbit) -# -# CONFIG_IXGB is not set -# CONFIG_S2IO is not set - -# -# Token Ring devices -# -# CONFIG_TR is not set - -# -# Wireless LAN (non-hamradio) -# -CONFIG_NET_RADIO=y - -# -# Obsolete Wireless cards support (pre-802.11) -# -# CONFIG_STRIP is not set - -# -# Wireless 802.11b ISA/PCI cards support -# -# CONFIG_AIRO is not set -# CONFIG_HERMES is not set -# CONFIG_ATMEL is not set - -# -# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support -# -# CONFIG_PRISM54 is not set -CONFIG_NET_WIRELESS=y - -# -# Wan interfaces -# -# CONFIG_WAN is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set -# CONFIG_NET_FC is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set - -# -# ATA/ATAPI/MFM/RLL support -# -# CONFIG_IDE is not set - -# -# SCSI device support -# -CONFIG_SCSI=m -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=m -# 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 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 - -# -# SCSI Transport Attributes -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set - -# -# SCSI low-level drivers -# -# CONFIG_BLK_DEV_3W_XXXX_RAID 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_DPT_I2O is not set -# CONFIG_SCSI_ADVANSYS is not set -# CONFIG_SCSI_MEGARAID is not set -# CONFIG_SCSI_SATA is not set -# CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_DMX3191D is not set -# CONFIG_SCSI_EATA is not set -# CONFIG_SCSI_EATA_PIO is not set -# CONFIG_SCSI_FUTURE_DOMAIN is not set -# CONFIG_SCSI_GDTH is not set -# CONFIG_SCSI_IPS is not set -# CONFIG_SCSI_INIA100 is not set -# CONFIG_SCSI_SYM53C8XX_2 is not set -# CONFIG_SCSI_IPR is not set -# CONFIG_SCSI_QLOGIC_ISP is not set -# CONFIG_SCSI_QLOGIC_FC is not set -# CONFIG_SCSI_QLOGIC_1280 is not set -CONFIG_SCSI_QLA2XXX=m -# CONFIG_SCSI_QLA21XX is not set -# CONFIG_SCSI_QLA22XX is not set -# CONFIG_SCSI_QLA2300 is not set -# CONFIG_SCSI_QLA2322 is not set -# CONFIG_SCSI_QLA6312 is not set -# CONFIG_SCSI_QLA6322 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 - -# -# Fusion MPT device support -# -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# -# CONFIG_IEEE1394 is not set - -# -# I2O device support -# -# CONFIG_I2O is not set - -# -# ISDN subsystem -# -# CONFIG_ISDN is not set - -# -# Input device support -# -CONFIG_INPUT=m - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=m -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -# 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 I/O drivers -# -# CONFIG_GAMEPORT is not set -CONFIG_SOUND_GAMEPORT=y -# CONFIG_SERIO is not set -# CONFIG_SERIO_I8042 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_TOUCHSCREEN is not set -# CONFIG_INPUT_MISC 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_NR_UARTS=2 -# CONFIG_SERIAL_8250_EXTENDED is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 -# CONFIG_QIC02_TAPE is not set - -# -# IPMI -# -# CONFIG_IPMI_HANDLER is not set - -# -# Watchdog Cards -# -CONFIG_WATCHDOG=y -# CONFIG_WATCHDOG_NOWAYOUT is not set - -# -# Watchdog Device Drivers -# -# CONFIG_SOFT_WATCHDOG is not set -CONFIG_IXP4XX_WATCHDOG=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_NVRAM is not set -# CONFIG_RTC is not set -# CONFIG_GEN_RTC is not set -# CONFIG_DTLK is not set -# CONFIG_R3964 is not set -# CONFIG_APPLICOM is not set - -# -# Ftape, the floppy tape device driver -# -# CONFIG_FTAPE is not set -# CONFIG_AGP is not set -# CONFIG_DRM is not set -# CONFIG_RAW_DRIVER is not set - -# -# I2C support -# -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y - -# -# I2C Algorithms -# -CONFIG_I2C_ALGOBIT=y -# CONFIG_I2C_ALGOPCF 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_ISA is not set -CONFIG_I2C_IXP4XX=y -# CONFIG_I2C_NFORCE2 is not set -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_PROSAVAGE is not set -# CONFIG_I2C_SAVAGE4 is not set -# CONFIG_SCx200_ACB is not set -# CONFIG_I2C_SIS5595 is not set -# CONFIG_I2C_SIS630 is not set -# CONFIG_I2C_SIS96X is not set -# CONFIG_I2C_VIA is not set -# CONFIG_I2C_VIAPRO is not set -# CONFIG_I2C_VOODOO3 is not set - -# -# Hardware Sensors Chip support -# -CONFIG_I2C_SENSOR=y -# CONFIG_SENSORS_ADM1021 is not set -# CONFIG_SENSORS_ASB100 is not set -# CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_FSCHER is not set -# CONFIG_SENSORS_GL518SM is not set -# CONFIG_SENSORS_IT87 is not set -# CONFIG_SENSORS_LM75 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_LM90 is not set -# CONFIG_SENSORS_MAX1619 is not set -# CONFIG_SENSORS_VIA686A is not set -# CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83L785TS is not set -# CONFIG_SENSORS_W83627HF is not set - -# -# Other I2C Chip support -# -CONFIG_SENSORS_EEPROM=y -CONFIG_SENSORS_X1205=y -# CONFIG_SENSORS_PCF8574 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_RTC8564 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 - -# -# Multimedia devices -# -# CONFIG_VIDEO_DEV is not set - -# -# Digital Video Broadcasting Devices -# -# CONFIG_DVB is not set - -# -# File systems -# -CONFIG_EXT2_FS=y -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -# CONFIG_EXT2_FS_SECURITY is not set -CONFIG_EXT3_FS=m -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -# CONFIG_EXT3_FS_SECURITY is not set -CONFIG_JBD=m -# 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=y -# CONFIG_XFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_ROMFS_FS is not set -# CONFIG_QUOTA is not set -# CONFIG_AUTOFS_FS is not set -# CONFIG_AUTOFS4_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 is not set -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_SYSFS=y -# CONFIG_DEVFS_FS is not set -# CONFIG_DEVPTS_FS_XATTR is not set -CONFIG_TMPFS=y -# CONFIG_HUGETLB_PAGE is not set -CONFIG_RAMFS=y - -# -# 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_JFFS_FS is not set -CONFIG_JFFS2_FS=y -CONFIG_JFFS2_FS_DEBUG=1 -# CONFIG_JFFS2_FS_NAND is not set -# CONFIG_CRAMFS is not set -# 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=m -CONFIG_NFS_V3=y -# CONFIG_NFS_V4 is not set -# CONFIG_NFS_DIRECTIO is not set -# CONFIG_NFSD is not set -CONFIG_LOCKD=m -CONFIG_LOCKD_V4=y -# CONFIG_EXPORTFS is not set -CONFIG_SUNRPC=m -# CONFIG_RPCSEC_GSS_KRB5 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 -# 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 is not set -# CONFIG_NEC98_PARTITION is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_EFI_PARTITION is not set - -# -# Native Language Support -# -# CONFIG_NLS is not set - -# -# Profiling support -# -# CONFIG_PROFILING is not set - -# -# Graphics support -# -# CONFIG_FB is not set - -# -# Sound -# -# CONFIG_SOUND is not set - -# -# Misc devices -# - -# -# USB support -# -CONFIG_USB=m -# CONFIG_USB_DEBUG is not set - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -# CONFIG_USB_BANDWIDTH is not set -# CONFIG_USB_DYNAMIC_MINORS is not set - -# -# USB Host Controller Drivers -# -CONFIG_USB_EHCI_HCD=m -# CONFIG_USB_EHCI_SPLIT_ISO is not set -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -CONFIG_USB_OHCI_HCD=m -CONFIG_USB_UHCI_HCD=m -# CONFIG_USB_SL811HS is not set - -# -# USB Device Class drivers -# -# CONFIG_USB_BLUETOOTH_TTY is not set -# CONFIG_USB_ACM is not set -CONFIG_USB_PRINTER=m -CONFIG_USB_STORAGE=m -# 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_HP8200e is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set - -# -# USB Human Interface Devices (HID) -# -# 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_AIPTEK is not set -# CONFIG_USB_WACOM is not set -# CONFIG_USB_KBTAB is not set -# CONFIG_USB_POWERMATE is not set -# CONFIG_USB_MTOUCH is not set -# CONFIG_USB_EGALAX is not set -# CONFIG_USB_XPAD is not set -# CONFIG_USB_ATI_REMOTE is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set -# CONFIG_USB_HPUSBSCSI is not set - -# -# USB Multimedia devices -# -# CONFIG_USB_DABUSB is not set - -# -# Video4Linux support is needed for USB Multimedia device support -# - -# -# USB Network adaptors -# -# CONFIG_USB_CATC is not set -CONFIG_USB_KAWETH=m -CONFIG_USB_PEGASUS=m -# CONFIG_USB_RTL8150 is not set -CONFIG_USB_USBNET=m - -# -# USB Host-to-Host Cables -# -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_GENESYS=y -CONFIG_USB_NET1080=y -CONFIG_USB_PL2301=y - -# -# Intelligent USB Devices/Gadgets -# -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_ZAURUS=y -CONFIG_USB_CDCETHER=y - -# -# USB Network Adapters -# -CONFIG_USB_AX8817X=y - -# -# USB port drivers -# - -# -# USB Serial Converter support -# -CONFIG_USB_SERIAL=m -CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_BELKIN=m -# CONFIG_USB_SERIAL_WHITEHEAT is not set -# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set -# CONFIG_USB_SERIAL_EMPEG is not set -# CONFIG_USB_SERIAL_FTDI_SIO is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set -# CONFIG_USB_SERIAL_EDGEPORT is not set -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -# CONFIG_USB_SERIAL_MCT_U232 is not set -# CONFIG_USB_SERIAL_PL2303 is not set -# CONFIG_USB_SERIAL_SAFE is not set -# CONFIG_USB_SERIAL_CYBERJACK is not set -# CONFIG_USB_SERIAL_XIRCOM is not set -# CONFIG_USB_SERIAL_OMNINET is not set - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_TIGL 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_LED is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_PHIDGETSERVO is not set -# CONFIG_USB_TEST is not set - -# -# USB Gadget Support -# -# CONFIG_USB_GADGET is not set - -# -# Kernel hacking -# -CONFIG_FRAME_POINTER=y -# CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_INFO is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SLAB is not set -CONFIG_MAGIC_SYSRQ=y -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_WAITQ is not set -CONFIG_DEBUG_BUGVERBOSE=y -CONFIG_DEBUG_ERRORS=y -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set - -# -# Security options -# -# CONFIG_SECURITY is not set - -# -# Cryptographic options -# -# CONFIG_CRYPTO is not set - -# -# Library routines -# -CONFIG_CRC32=y -# CONFIG_LIBCRC32C is not set -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y diff --git a/packages/linux/openslug-kernel-2.6.7/ipx4xx-pci.patch b/packages/linux/openslug-kernel-2.6.7/ipx4xx-pci.patch deleted file mode 100644 index 31be5fb874..0000000000 --- a/packages/linux/openslug-kernel-2.6.7/ipx4xx-pci.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- linux-2.6.7/arch/arm/mach-ixp4xx/common-pci.c.orig 2004-09-25 04:06:48.000000000 -0400 -+++ linux-2.6.7/arch/arm/mach-ixp4xx/common-pci.c 2004-09-25 04:07:31.000000000 -0400 -@@ -540,4 +540,6 @@ - EXPORT_SYMBOL(pci_set_dma_mask); - EXPORT_SYMBOL(pci_dac_set_dma_mask); - EXPORT_SYMBOL(pci_set_consistent_dma_mask); -+EXPORT_SYMBOL(ixp4xx_pci_read); -+EXPORT_SYMBOL(ixp4xx_pci_write); - diff --git a/packages/linux/openslug-kernel-2.6.7/x1205-rtc.patch b/packages/linux/openslug-kernel-2.6.7/x1205-rtc.patch deleted file mode 100644 index 72c2bf91b9..0000000000 --- a/packages/linux/openslug-kernel-2.6.7/x1205-rtc.patch +++ /dev/null @@ -1,142 +0,0 @@ ---- drivers/i2c/chips/Kconfig.orig 2004-06-16 01:19:35.000000000 -0400 -+++ drivers/i2c/chips/Kconfig 2004-09-22 18:09:48.454794342 -0400 -@@ -240,6 +240,16 @@ - This driver can also be built as a module. If so, the module - will be called pcf8591. - -+config SENSORS_X1205 -+ tristate "Xicor X1205 RTC chip" -+ depends on I2C && EXPERIMENTAL -+ select I2C_SENSOR -+ help -+ If you say yes here you get support for the Xicor x1205 RTC chip. -+ -+ This driver can also be built as a module. If so, the module -+ will be called x1205-rtc -+ - config SENSORS_RTC8564 - tristate "Epson 8564 RTC chip" - depends on I2C && EXPERIMENTA ---- drivers/i2c/chips/Makefile.old 2004-06-16 01:20:26.000000000 -0400 -+++ drivers/i2c/chips/Makefile 2004-09-22 16:48:06.435580334 -0400 -@@ -25,6 +25,7 @@ - obj-$(CONFIG_SENSORS_RTC8564) += rtc8564.o - obj-$(CONFIG_SENSORS_VIA686A) += via686a.o - obj-$(CONFIG_SENSORS_W83L785TS) += w83l785ts.o -+obj-$(CONFIG_SENSORS_X1205) += x1205-rtc.o - - ifeq ($(CONFIG_I2C_DEBUG_CHIP),y) - EXTRA_CFLAGS += -DDEBUG - ---- arch/arm/mach-ixp4xx/ixp425-time.c.old 1969-12-31 19:00:00.000000000 -0500 -+++ arch/arm/mach-ixp4xx/ixp425-time.c 2004-09-22 23:30:54.165988077 -0400 -@@ -0,0 +1,87 @@ -+/* -+ * arch/arm/mach-ixp425/ixp425-time.c -+ * -+ * Timer tick for IXP425 based sytems. We use OS timer1 on the CPU. -+ * -+ * Author: Peter Barry -+ * Copyright: (C) 2001 Intel Corporation. -+ * -+ * Maintainer: Deepak Saxena <dsaxena@mvista.com> -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+ -+ -+#include <linux/config.h> -+#include <linux/module.h> -+#include <linux/sched.h> -+#include <linux/kernel.h> -+#include <linux/interrupt.h> -+#include <linux/time.h> -+#include <linux/init.h> -+#include <linux/smp.h> -+ -+#include <asm/uaccess.h> -+#include <asm/io.h> -+#include <asm/irq.h> -+ -+#include <linux/timex.h> -+#include <asm/hardware.h> -+ -+ -+extern int setup_arm_irq(int, struct irqaction *); -+ -+/* IRQs are disabled before entering here from do_gettimeofday() */ -+static unsigned long ixp425_gettimeoffset(void) -+{ -+ u32 elapsed, usec, curr, reload; -+ -+ /* -+ * We need elapsed timer ticks since last interrupt -+ * -+ * Read the CCNT value. The returned value is -+ * between -LATCH and 0, 0 corresponding to a full jiffy -+ */ -+ -+ reload = *IXP425_OSRT1 & ~IXP425_OST_RELOAD_MASK; -+ curr = *IXP425_OST1; -+ -+ /* Corner case when rolling over as int disabled ?? */ -+ elapsed = reload - curr; -+ -+ /* Now convert them to usec */ -+ usec = (unsigned long)(elapsed * tick) / LATCH; -+ -+ return usec; -+} -+ -+static void ixp425_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) -+{ -+ /* Clear Pending Interrupt by writing '1' to it */ -+ *IXP425_OSST = IXP425_OSST_TIMER_1_PEND; -+ -+ do_timer(regs); -+} -+ -+extern unsigned long (*gettimeoffset)(void); -+ -+static struct irqaction timer_irq = { -+ name: "IXP425 Timer 1", -+}; -+ -+void __init setup_timer(void) -+{ -+ gettimeoffset = ixp425_gettimeoffset; -+ timer_irq.handler = ixp425_timer_interrupt; -+ -+ /* Clear Pending Interrupt by writing '1' to it */ -+ *IXP425_OSST = IXP425_OSST_TIMER_1_PEND; -+ -+ /* Setup the Timer counter value */ -+ *IXP425_OSRT1 = (LATCH & ~IXP425_OST_RELOAD_MASK) | IXP425_OST_ENABLE; -+ -+ /* Connect the interrupt handler and enable the interrupt */ -+ setup_arm_irq(IRQ_IXP425_TIMER1, &ixp4xx_timer_irq); -+} ---- include/linux/i2c-id.h 2004-06-16 01:18:57.000000000 -0400 -+++ include/linux/i2c-id.h.new 2004-09-23 00:56:30.772429217 -0400 -@@ -101,7 +101,7 @@ - #define I2C_DRIVERID_UDA1342 53 /* UDA1342 audio codec */ - #define I2C_DRIVERID_ADV7170 54 /* video encoder */ - #define I2C_DRIVERID_RADEON 55 /* I2C bus on Radeon boards */ -- -+#define I2C_DRIVERID_X1205 0xF0 /* Xicor X1205 RTC */ - - #define I2C_DRIVERID_EXP0 0xF0 /* experimental use id's */ - #define I2C_DRIVERID_EXP1 0xF1 ---- archold/arm/kernel/time.c 2004-06-16 01:19:43.000000000 -0400 -+++ arch/arm/kernel/time.c 2004-10-14 12:28:51.434231567 -0400 -@@ -58,7 +58,7 @@ static int dummy_set_rtc(void) - * hook for setting the RTC's idea of the current time. - */ - int (*set_rtc)(void) = dummy_set_rtc; -- -+EXPORT_SYMBOL(set_rtc); - static unsigned long dummy_gettimeoffset(void) - { - return 0; diff --git a/packages/linux/openslug-kernel-2.6.9/alignment.patch b/packages/linux/openslug-kernel-2.6.9/alignment.patch deleted file mode 100644 index 19abca18f5..0000000000 --- a/packages/linux/openslug-kernel-2.6.9/alignment.patch +++ /dev/null @@ -1,85 +0,0 @@ ---- linux-2.6.10/arch/arm/mm/alignment.c.broken 2005-02-11 20:57:58.353668651 +0100 -+++ linux-2.6.10/arch/arm/mm/alignment.c 2005-02-11 20:58:02.141660877 +0100 -@@ -130,6 +130,18 @@ - #define TYPE_LDST 2 - #define TYPE_DONE 3 - -+#ifdef __ARMEB__ -+#define BE 1 -+#define FIRST_BYTE_16 "mov %1, %1, ror #8\n" -+#define FIRST_BYTE_32 "mov %1, %1, ror #24\n" -+#define NEXT_BYTE "ror #24" -+#else -+#define BE 0 -+#define FIRST_BYTE_16 -+#define FIRST_BYTE_32 -+#define NEXT_BYTE "lsr #8" -+#endif -+ - #define __get8_unaligned_check(ins,val,addr,err) \ - __asm__( \ - "1: "ins" %1, [%2], #1\n" \ -@@ -149,9 +161,10 @@ - #define __get16_unaligned_check(ins,val,addr) \ - do { \ - unsigned int err = 0, v, a = addr; \ -- __get8_unaligned_check(ins,val,a,err); \ - __get8_unaligned_check(ins,v,a,err); \ -- val |= v << 8; \ -+ val = v << ((BE) ? 8 : 0); \ -+ __get8_unaligned_check(ins,v,a,err); \ -+ val |= v << ((BE) ? 0 : 8); \ - if (err) \ - goto fault; \ - } while (0) -@@ -165,13 +178,14 @@ - #define __get32_unaligned_check(ins,val,addr) \ - do { \ - unsigned int err = 0, v, a = addr; \ -- __get8_unaligned_check(ins,val,a,err); \ - __get8_unaligned_check(ins,v,a,err); \ -- val |= v << 8; \ -+ val = v << ((BE) ? 24 : 0); \ -+ __get8_unaligned_check(ins,v,a,err); \ -+ val |= v << ((BE) ? 16 : 8); \ - __get8_unaligned_check(ins,v,a,err); \ -- val |= v << 16; \ -+ val |= v << ((BE) ? 8 : 16); \ - __get8_unaligned_check(ins,v,a,err); \ -- val |= v << 24; \ -+ val |= v << ((BE) ? 0 : 24); \ - if (err) \ - goto fault; \ - } while (0) -@@ -185,9 +199,9 @@ - #define __put16_unaligned_check(ins,val,addr) \ - do { \ - unsigned int err = 0, v = val, a = addr; \ -- __asm__( \ -+ __asm__( FIRST_BYTE_16 \ - "1: "ins" %1, [%2], #1\n" \ -- " mov %1, %1, lsr #8\n" \ -+ " mov %1, %1, "NEXT_BYTE"\n" \ - "2: "ins" %1, [%2]\n" \ - "3:\n" \ - " .section .fixup,\"ax\"\n" \ -@@ -215,13 +229,13 @@ - #define __put32_unaligned_check(ins,val,addr) \ - do { \ - unsigned int err = 0, v = val, a = addr; \ -- __asm__( \ -+ __asm__( FIRST_BYTE_32 \ - "1: "ins" %1, [%2], #1\n" \ -- " mov %1, %1, lsr #8\n" \ -+ " mov %1, %1, "NEXT_BYTE"\n" \ - "2: "ins" %1, [%2], #1\n" \ -- " mov %1, %1, lsr #8\n" \ -+ " mov %1, %1, "NEXT_BYTE"\n" \ - "3: "ins" %1, [%2], #1\n" \ -- " mov %1, %1, lsr #8\n" \ -+ " mov %1, %1, "NEXT_BYTE"\n" \ - "4: "ins" %1, [%2]\n" \ - "5:\n" \ - " .section .fixup,\"ax\"\n" \ - - diff --git a/packages/linux/openslug-kernel-2.6.9/defconfig b/packages/linux/openslug-kernel-2.6.9/defconfig deleted file mode 100644 index 87c5009449..0000000000 --- a/packages/linux/openslug-kernel-2.6.9/defconfig +++ /dev/null @@ -1,1132 +0,0 @@ -# -# Automatically generated make config: don't edit -# -CONFIG_ARM=y -CONFIG_MMU=y -CONFIG_UID16=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y - -# -# Code maturity level options -# -CONFIG_EXPERIMENTAL=y -CONFIG_CLEAN_COMPILE=y -CONFIG_STANDALONE=y -CONFIG_BROKEN_ON_SMP=y - -# -# General setup -# -CONFIG_SWAP=y -CONFIG_SYSVIPC=y -# CONFIG_POSIX_MQUEUE is not set -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_SYSCTL=y -# CONFIG_AUDIT is not set -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_HOTPLUG=y -CONFIG_IKCONFIG=m -CONFIG_IKCONFIG_PROC=m -CONFIG_EMBEDDED=y -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -CONFIG_FUTEX=y -CONFIG_EPOLL=y -CONFIG_IOSCHED_NOOP=n -CONFIG_IOSCHED_AS=n -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=n -CONFIG_CC_OPTIMIZE_FOR_SIZE=y - -# -# Loadable module support -# -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_OBSOLETE_MODPARM=y -# CONFIG_MODVERSIONS is not set -CONFIG_KMOD=y - -# -# System Type -# -# CONFIG_ARCH_ADIFCC is not set -# CONFIG_ARCH_CLPS7500 is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CO285 is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_CAMELOT is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_IOP3XX is not set -CONFIG_ARCH_IXP4XX=y -# CONFIG_ARCH_L7200 is not set -# CONFIG_ARCH_PXA is not set -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_VERSATILE_PB is not set -CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y - -# -# Intel IXP4xx Implementation Options -# - -# -# IXP4xx Platforms -# -# CONFIG_ARCH_AVILA is not set -# CONFIG_ARCH_ADI_COYOTE is not set -#CONFIG_ARCH_IXDP425=y -#CONFIG_ARCH_IXCDP1100=y -# CONFIG_ARCH_PRPMC1100 is not set -#CONFIG_ARCH_IXDP4XX=y -CONFIG_ARCH_NSLU2=y - -# -# IXP4xx Options -# -CONFIG_IXP4XX_INDIRECT_PCI=y -CONFIG_DMABOUNCE=y - -# -# Processor Type -# -CONFIG_CPU_32=y -CONFIG_CPU_XSCALE=y -CONFIG_CPU_32v5=y -CONFIG_CPU_ABRT_EV5T=y -CONFIG_CPU_TLB_V4WBI=y -CONFIG_CPU_MINICACHE=y - -# -# Processor Features -# -# CONFIG_ARM_THUMB is not set -CONFIG_CPU_BIG_ENDIAN=y -CONFIG_XSCALE_PMU=y - -# -# General setup -# -CONFIG_PCI=y -# CONFIG_ZBOOT_ROM is not set -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_PCI_LEGACY_PROC=y -# CONFIG_PCI_NAMES is not set - -# -# PCMCIA/CardBus support -# -# CONFIG_PCMCIA is not set - -# -# At least one math emulation must be selected -# -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set -# CONFIG_FPE_FASTFPE is not set -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set - -# -# Generic Driver Options -# -# CONFIG_FW_LOADER is not set -# CONFIG_DEBUG_DRIVER is not set -CONFIG_PM=y -# CONFIG_PREEMPT is not set -CONFIG_APM=y -# CONFIG_ARTHUR is not set -CONFIG_CMDLINE="root=/dev/ram0 initrd=0x01000000,10M mem=32M@0x00000000 console=ttyS0,115200n8" -CONFIG_ALIGNMENT_TRAP=y - -# -# Parallel port support -# -# CONFIG_PARPORT is not set - -# -# Memory Technology Devices (MTD) -# -CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -CONFIG_MTD_PARTITIONS=y -CONFIG_MTD_CONCAT=y -CONFIG_MTD_REDBOOT_PARTS=y -CONFIG_MTD_CMDLINE_PARTS=y -# CONFIG_MTD_AFS_PARTS is not set - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLOCK=y -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL 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_CFI_INTELEXT=y -# CONFIG_MTD_CFI_AMDSTD is not set -# CONFIG_MTD_CFI_STAA is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set -# CONFIG_MTD_OBSOLETE_CHIPS is not set - -# -# Mapping drivers for chip access -# -CONFIG_MTD_COMPLEX_MAPPINGS=y -# CONFIG_MTD_PHYSMAP is not set -# CONFIG_MTD_ARM_INTEGRATOR is not set -CONFIG_MTD_IXP4XX=y -# CONFIG_MTD_EDB7312 is not set -# CONFIG_MTD_PCI is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_PMC551 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLKMTD 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 - -# -# NAND Flash Device Drivers -# -# CONFIG_MTD_NAND is not set - -# -# Plug and Play support -# - -# -# Block devices -# -# 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_LOOP=m -# CONFIG_BLK_DEV_CRYPTOLOOP is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_CARMEL is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_SIZE=10240 -CONFIG_BLK_DEV_INITRD=y - -# -# Multi-device support (RAID and LVM) -# -CONFIG_MD=y -CONFIG_BLK_DEV_MD=m -# CONFIG_MD_LINEAR is not set -CONFIG_MD_RAID0=m -CONFIG_MD_RAID1=m -CONFIG_MD_RAID5=m -# CONFIG_MD_MULTIPATH is not set -# CONFIG_BLK_DEV_LVM - -# -# Networking support -# -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=m -CONFIG_PACKET_MMAP=y -CONFIG_NETLINK_DEV=m -CONFIG_UNIX=y -# CONFIG_NET_KEY is not set -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -# CONFIG_IP_MULTIPLE_TABLES is not set -# CONFIG_IP_ROUTE_FWMARK is not set -CONFIG_IP_ROUTE_NAT=y -# CONFIG_IP_ROUTE_MULTIPATH is not set -CONFIG_IP_ROUTE_TOS=y -# CONFIG_IP_ROUTE_VERBOSE is not set -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -# CONFIG_IP_PNP_RARP is not set -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE=m -CONFIG_NET_IPGRE_BROADCAST=y -# CONFIG_IP_MROUTE is not set -# CONFIG_IP_PIMSM_V1 is not set -# CONFIG_IP_PIMSM_V2 is not set -# CONFIG_ARPD is not set -CONFIG_SYN_COOKIES=y -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set - -# -# IP: Virtual Server Configuration -# -CONFIG_IP_VS=m -CONFIG_IP_VS_DEBUG=y -CONFIG_IP_VS_TAB_BITS=12 - -# -# IPVS transport protocol load balancing support -# -# CONFIG_IP_VS_PROTO_TCP is not set -# CONFIG_IP_VS_PROTO_UDP is not set -# CONFIG_IP_VS_PROTO_ESP is not set -# CONFIG_IP_VS_PROTO_AH is not set - -# -# IPVS scheduler -# -CONFIG_IP_VS_RR=m -CONFIG_IP_VS_WRR=m -CONFIG_IP_VS_LC=m -CONFIG_IP_VS_WLC=m -CONFIG_IP_VS_LBLC=m -CONFIG_IP_VS_LBLCR=m -CONFIG_IP_VS_DH=m -CONFIG_IP_VS_SH=m -# CONFIG_IP_VS_SED is not set -# CONFIG_IP_VS_NQ is not set - -# -# IPVS application helper -# -# CONFIG_IPV6 is not set -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set -CONFIG_BRIDGE_NETFILTER=y - -# -# IP: Netfilter Configuration -# -# CONFIG_IP_NF_CONNTRACK is not set -# CONFIG_IP_NF_QUEUE is not set -# CONFIG_IP_NF_IPTABLES is not set -# CONFIG_IP_NF_ARPTABLES is not set -# CONFIG_IP_NF_COMPAT_IPCHAINS is not set -# CONFIG_IP_NF_COMPAT_IPFWADM is not set - -# -# Bridge: Netfilter Configuration -# -# CONFIG_BRIDGE_NF_EBTABLES is not set -# CONFIG_XFRM is not set -# CONFIG_XFRM_USER is not set - -# -# SCTP Configuration (EXPERIMENTAL) -# -# CONFIG_IP_SCTP is not set -# CONFIG_ATM is not set -CONFIG_BRIDGE=m -CONFIG_VLAN_8021Q=m -# CONFIG_DECNET is not set -CONFIG_LLC=m -# CONFIG_LLC2 is not set -CONFIG_IPX=m -# CONFIG_IPX_INTERN is not set -CONFIG_ATALK=m -CONFIG_DEV_APPLETALK=y -CONFIG_IPDDP=m -CONFIG_IPDDP_ENCAP=y -CONFIG_IPDDP_DECAP=y -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set -# CONFIG_NET_FASTROUTE is not set -# CONFIG_NET_HW_FLOWCONTROL is not set - -# -# QoS and/or fair queueing -# -CONFIG_NET_SCHED=y -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_HTB=m -# CONFIG_NET_SCH_HFSC is not set -CONFIG_NET_SCH_CSZ=m -CONFIG_NET_SCH_PRIO=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_DELAY is not set -CONFIG_NET_SCH_INGRESS=m -CONFIG_NET_QOS=y -CONFIG_NET_ESTIMATOR=y -CONFIG_NET_CLS=y -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_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m -CONFIG_NET_CLS_POLICE=y - -# -# Network testing -# -CONFIG_NET_PKTGEN=m -CONFIG_NETPOLL=y -CONFIG_NETPOLL_RX=y -CONFIG_NETPOLL_TRAP=y -CONFIG_NET_POLL_CONTROLLER=y -# 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_HIDP=m -CONFIG_BT_HCIUSB=m -CONFIG_BT_HCIUSB_SCO=y -CONFIG_NETDEVICES=y -# CONFIG_DUMMY is not set -# CONFIG_BONDING is not set -# CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set -# CONFIG_ETHERTAP is not set - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set - -# -# Ethernet (10 or 100Mbit) -# -CONFIG_NET_ETHERNET=y -CONFIG_MII=y -# CONFIG_HAPPYMEAL is not set -# CONFIG_SUNGEM is not set -# CONFIG_NET_VENDOR_3COM is not set - -# -# Tulip family network device support -# -# 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 is not set -# 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 - -# -# Ethernet (1000 Mbit) -# -# 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_SK98LIN is not set -# CONFIG_TIGON3 is not set - -# -# Ethernet (10000 Mbit) -# -# CONFIG_IXGB is not set -# CONFIG_S2IO is not set - -# -# Token Ring devices -# -# CONFIG_TR is not set - -# -# Wireless LAN (non-hamradio) -# -CONFIG_NET_RADIO=y - -# -# Obsolete Wireless cards support (pre-802.11) -# -# CONFIG_STRIP is not set - -# -# Wireless 802.11b ISA/PCI cards support -# -# CONFIG_AIRO is not set -# CONFIG_HERMES is not set -# CONFIG_ATMEL is not set - -# -# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support -# -# CONFIG_PRISM54 is not set -CONFIG_NET_WIRELESS=y - -# -# Wan interfaces -# -# CONFIG_WAN is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -CONFIG_PPP=m -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -# CONFIG_SLIP is not set -# CONFIG_NET_FC is not set -# CONFIG_SHAPER is not set -CONFIG_NETCONSOLE=m - -# -# ATA/ATAPI/MFM/RLL support -# -# CONFIG_IDE is not set - -# -# SCSI device support -# -CONFIG_SCSI=y -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 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 - -# -# SCSI Transport Attributes -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set - -# -# SCSI low-level drivers -# -# CONFIG_BLK_DEV_3W_XXXX_RAID 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_DPT_I2O is not set -# CONFIG_SCSI_ADVANSYS is not set -# CONFIG_SCSI_MEGARAID is not set -# CONFIG_SCSI_SATA is not set -# CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_DMX3191D is not set -# CONFIG_SCSI_EATA is not set -# CONFIG_SCSI_EATA_PIO is not set -# CONFIG_SCSI_FUTURE_DOMAIN is not set -# CONFIG_SCSI_GDTH is not set -# CONFIG_SCSI_IPS is not set -# CONFIG_SCSI_INIA100 is not set -# CONFIG_SCSI_SYM53C8XX_2 is not set -# CONFIG_SCSI_IPR is not set -# CONFIG_SCSI_QLOGIC_ISP is not set -# CONFIG_SCSI_QLOGIC_FC is not set -# CONFIG_SCSI_QLOGIC_1280 is not set -# CONFIG_SCSI_QLA2XXX is not set -# CONFIG_SCSI_QLA21XX is not set -# CONFIG_SCSI_QLA22XX is not set -# CONFIG_SCSI_QLA2300 is not set -# CONFIG_SCSI_QLA2322 is not set -# CONFIG_SCSI_QLA6312 is not set -# CONFIG_SCSI_QLA6322 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 - -# -# Fusion MPT device support -# -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# -# CONFIG_IEEE1394 is not set - -# -# I2O device support -# -# CONFIG_I2O is not set - -# -# ISDN subsystem -# -# CONFIG_ISDN is not set - -# -# Input device support -# -CONFIG_INPUT=m - -# -# 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 I/O drivers -# -# CONFIG_GAMEPORT is not set -# CONFIG_SOUND_GAMEPORT is not set -# CONFIG_SERIO is not set -# CONFIG_SERIO_I8042 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_TOUCHSCREEN is not set -# CONFIG_INPUT_MISC 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_NR_UARTS=2 -# CONFIG_SERIAL_8250_EXTENDED is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 -# CONFIG_QIC02_TAPE is not set - -# -# IPMI -# -# CONFIG_IPMI_HANDLER is not set - -# -# Watchdog Cards -# -CONFIG_WATCHDOG=y -# CONFIG_WATCHDOG_NOWAYOUT is not set - -# -# Watchdog Device Drivers -# -# CONFIG_SOFT_WATCHDOG is not set -CONFIG_IXP4XX_WATCHDOG=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_NVRAM is not set -# CONFIG_RTC is not set -# CONFIG_GEN_RTC is not set -# CONFIG_DTLK is not set -# CONFIG_R3964 is not set -# CONFIG_APPLICOM is not set - -# -# Ftape, the floppy tape device driver -# -# CONFIG_FTAPE is not set -# CONFIG_AGP is not set -# CONFIG_DRM is not set -# CONFIG_RAW_DRIVER is not set - -# -# I2C support -# -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y - -# -# I2C Algorithms -# -CONFIG_I2C_ALGOBIT=y -# CONFIG_I2C_ALGOPCF 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_ISA is not set -CONFIG_I2C_IXP4XX=y -# CONFIG_I2C_NFORCE2 is not set -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_PROSAVAGE is not set -# CONFIG_I2C_SAVAGE4 is not set -# CONFIG_SCx200_ACB is not set -# CONFIG_I2C_SIS5595 is not set -# CONFIG_I2C_SIS630 is not set -# CONFIG_I2C_SIS96X is not set -# CONFIG_I2C_VIA is not set -# CONFIG_I2C_VIAPRO is not set -# CONFIG_I2C_VOODOO3 is not set - -# -# Hardware Sensors Chip support -# -CONFIG_I2C_SENSOR=y -# CONFIG_SENSORS_ADM1021 is not set -# CONFIG_SENSORS_ASB100 is not set -# CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_FSCHER is not set -# CONFIG_SENSORS_GL518SM is not set -# CONFIG_SENSORS_IT87 is not set -# CONFIG_SENSORS_LM75 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_LM90 is not set -# CONFIG_SENSORS_MAX1619 is not set -# CONFIG_SENSORS_VIA686A is not set -# CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83L785TS is not set -# CONFIG_SENSORS_W83627HF is not set - -# -# Other I2C Chip support -# -CONFIG_SENSORS_EEPROM=y -CONFIG_SENSORS_X1205=y -# CONFIG_SENSORS_PCF8574 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_RTC8564 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 - -# -# Multimedia devices -# -# CONFIG_VIDEO_DEV is not set - -# -# Digital Video Broadcasting Devices -# -# CONFIG_DVB is not set - -# -# File systems -# -CONFIG_EXT2_FS=y -# CONFIG_EXT2_FS_XATTR is not set -# CONFIG_EXT2_FS_POSIX_ACL is not set -# CONFIG_EXT2_FS_SECURITY is not set -CONFIG_EXT3_FS=y -# CONFIG_EXT3_FS_XATTR is not set -# CONFIG_EXT3_FS_POSIX_ACL is not set -# CONFIG_EXT3_FS_SECURITY is not set -CONFIG_JBD=y -# CONFIG_JBD_DEBUG is not set -# CONFIG_FS_MBCACHE is not set -# 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_MINIX_FS is not set -# CONFIG_ROMFS_FS is not set -# CONFIG_QUOTA is not set -# CONFIG_AUTOFS_FS is not set -# CONFIG_AUTOFS4_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 is not set -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_SYSFS=y -# CONFIG_DEVFS_FS is not set -# CONFIG_DEVPTS_FS_XATTR is not set -CONFIG_TMPFS=y -# CONFIG_HUGETLB_PAGE is not set -CONFIG_RAMFS=y - -# -# 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_JFFS_FS is not set -CONFIG_JFFS2_FS=y -CONFIG_JFFS2_FS_DEBUG=0 -# CONFIG_JFFS2_FS_NAND is not set -# CONFIG_CRAMFS is not set -# 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=m -CONFIG_NFS_V3=y -# CONFIG_NFS_V4 is not set -# CONFIG_NFS_DIRECTIO is not set -CONFIG_NFSD=m -CONFIG_LOCKD=m -CONFIG_LOCKD_V4=y -# CONFIG_EXPORTFS is not set -CONFIG_SUNRPC=m -# CONFIG_RPCSEC_GSS_KRB5 is not set -CONFIG_SMB_FS=m -# CONFIG_CIFS 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 is not set -# CONFIG_NEC98_PARTITION is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_EFI_PARTITION is not set - -# -# Native Language Support -# -# CONFIG_NLS is not set - -# -# Profiling support -# -# CONFIG_PROFILING is not set - -# -# Graphics support -# -# CONFIG_FB is not set - -# -# Sound -# -# CONFIG_SOUND is not set - -# -# Misc devices -# - -# -# USB support -# -CONFIG_USB=y -# CONFIG_USB_DEBUG is not set - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -# CONFIG_USB_BANDWIDTH is not set -# CONFIG_USB_DYNAMIC_MINORS is not set - -# -# USB Host Controller Drivers -# -CONFIG_USB_EHCI_HCD=m -# CONFIG_USB_EHCI_SPLIT_ISO is not set -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -CONFIG_USB_OHCI_HCD=y -CONFIG_USB_UHCI_HCD=m -# CONFIG_USB_SL811HS is not set - -# -# USB Device Class drivers -# -# CONFIG_USB_BLUETOOTH_TTY is not set -# CONFIG_USB_ACM is not set -CONFIG_USB_PRINTER=m -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_HP8200e is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set - -# -# USB Human Interface Devices (HID) -# -# CONFIG_USB_HID is not set -# CONFIG_USB_HIDINPUT is not set -# CONFIG_HID_FF is not set -# CONFIG_HID_PID is not set -# CONFIG_LOGITECH_FF is not set -# CONFIG_THRUSTMASTER_FF is not set -# CONFIG_USB_HIDDEV is not set -# CONFIG_USB_AIPTEK is not set -# CONFIG_USB_WACOM is not set -# CONFIG_USB_KBTAB is not set -# CONFIG_USB_POWERMATE is not set -# CONFIG_USB_MTOUCH is not set -# CONFIG_USB_EGALAX is not set -# CONFIG_USB_XPAD is not set -# CONFIG_USB_ATI_REMOTE is not set - -# -# USB HID Boot Protocol drivers -# -# CONFIG_USB_KBD is not set -# CONFIG_USB_MOUSE is not set -# CONFIG_USB_AIPTEK is not set -# CONFIG_USB_WACOM is not set -# CONFIG_USB_KBTAB is not set -# CONFIG_USB_POWERMATE is not set -# CONFIG_USB_MTOUCH is not set -# CONFIG_USB_EGALAX is not set -# CONFIG_USB_XPAD is not set -# CONFIG_USB_ATI_REMOTE is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set -# CONFIG_USB_HPUSBSCSI is not set - -# -# USB Multimedia devices -# -# CONFIG_USB_DABUSB is not set - -# -# Video4Linux support is needed for USB Multimedia device support -# - -# -# USB Network adaptors -# -# CONFIG_USB_CATC is not set -CONFIG_USB_KAWETH=m -CONFIG_USB_PEGASUS=m -# CONFIG_USB_RTL8150 is not set -CONFIG_USB_USBNET=m - -# -# USB Host-to-Host Cables -# -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_GENESYS=y -CONFIG_USB_NET1080=y -CONFIG_USB_PL2301=y - -# -# Intelligent USB Devices/Gadgets -# -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_ZAURUS=y -CONFIG_USB_CDCETHER=y - -# -# USB Network Adapters -# -CONFIG_USB_AX8817X=y - -# -# USB port drivers -# - -# -# USB Serial Converter support -# -CONFIG_USB_SERIAL=m -CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_BELKIN=m -# CONFIG_USB_SERIAL_WHITEHEAT is not set -# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set -# CONFIG_USB_SERIAL_EMPEG is not set -CONFIG_USB_SERIAL_FTDI_SIO=m -CONFIG_USB_SERIAL_VISOR=m -CONFIG_USB_SERIAL_IPAQ=m -# CONFIG_USB_SERIAL_IR is not set -# CONFIG_USB_SERIAL_EDGEPORT is not set -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -# CONFIG_USB_SERIAL_MCT_U232 is not set -CONFIG_USB_SERIAL_PL2303=m -# CONFIG_USB_SERIAL_SAFE is not set -# CONFIG_USB_SERIAL_CYBERJACK is not set -# CONFIG_USB_SERIAL_XIRCOM is not set -# CONFIG_USB_SERIAL_OMNINET is not set - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_TIGL 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_LED is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_PHIDGETSERVO is not set -# CONFIG_USB_TEST is not set - -# -# USB Gadget Support -# -# CONFIG_USB_GADGET is not set - -# -# Kernel hacking -# -CONFIG_FRAME_POINTER=y -# CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_INFO is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SLAB is not set -CONFIG_MAGIC_SYSRQ=y -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_WAITQ is not set -CONFIG_DEBUG_BUGVERBOSE=y -CONFIG_DEBUG_ERRORS=y -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set - -# -# Security options -# -# CONFIG_SECURITY is not set - -# -# Cryptographic options -# -# CONFIG_CRYPTO is not set - -# -# Library routines -# -CONFIG_CRC32=y -# CONFIG_LIBCRC32C is not set -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y diff --git a/packages/linux/openslug-kernel-2.6.9/double_cpdo.patch b/packages/linux/openslug-kernel-2.6.9/double_cpdo.patch deleted file mode 100644 index 4069358db8..0000000000 --- a/packages/linux/openslug-kernel-2.6.9/double_cpdo.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- linux-2.6.9-rc3-ds1.commit/arch/arm/nwfpe/double_cpdo.c 2004-08-14 07:36:11.000000000 +0200 -+++ linux-2.6.9-rc3-ds1.snap/arch/arm/nwfpe/double_cpdo.c 2004-10-10 20:29:15.514512796 +0200 -@@ -75,7 +75,11 @@ - union float64_components u; - - u.f64 = rFm; -+#ifdef __ARMEB__ -+ u.i[0] ^= 0x80000000; -+#else - u.i[1] ^= 0x80000000; -+#endif - - return u.f64; - } -@@ -85,7 +89,11 @@ - union float64_components u; - - u.f64 = rFm; -+#ifdef __ARMEB__ -+ u.i[0] &= 0x7fffffff; -+#else - u.i[1] &= 0x7fffffff; -+#endif - - return u.f64; - } - diff --git a/packages/linux/openslug-kernel-2.6.9/nslu2-io.c b/packages/linux/openslug-kernel-2.6.9/nslu2-io.c deleted file mode 100644 index cd5ed36c15..0000000000 --- a/packages/linux/openslug-kernel-2.6.9/nslu2-io.c +++ /dev/null @@ -1,750 +0,0 @@ -//============================================================================= -// -// n2-io.c version 0.1.7 -// Author: Karen Spearel <kas11 at tampabay.rr.com> -// please report problems/bugs directly to the address above -// -// Boilerplate to be added "real soon now"...it is and has always been GPL'ed per -// MODULE_LICENSE but is offered without warrantee of any sort..use at your own risk -// -// NOTE: THIS IS INCOMPLETE. INCLUDED ONLY TO KEEP FROM BREAKING THE BUILD, -// IT BEEPS AND SENDS A MESSAGE TO /proc/poweroff. EVENTUALLY IT -// WILL TALK TO THE n2_pbd DAEMON. EVENTUALLY THE LED DRIVER -// WILL TALK TO SOME USERLAND APP BUT ***NOT*** SET_LEDS. -// -//============================================================================= -// GPIO Function State -// 0 Red LED Status -// 1 Green LED Ready = 1 -// 2 Disk 2 LED On = 0 -// 3 Disk 1 LED On = 0 -// 4 Buzzer -// 5 Power Button Pressed = 1 -// 8 Power Down Output = 1 powers down N2 -// 12 Reset Pressed = 0 -//============================================================================= -// this driver is N2 specific and is purposely designed to do the minimum -// necessary to provide the necessary services given the limited memory resources -// of the N2. As OpenN2 develops, addition features will be added as -// suggested by the community. -// -//============================================================================= - -#include <linux/config.h> -#include <linux/version.h> -#include <linux/module.h> -#include <linux/utsname.h> -#include <linux/kernel.h> -#include <linux/major.h> -#include <linux/string.h> -#include <linux/proc_fs.h> -#include <linux/slab.h> -#include <linux/init.h> -#include <linux/errno.h> -#include <linux/fs.h> -#include <linux/miscdevice.h> -#include <linux/device.h> -#include <linux/interrupt.h> -#include <linux/moduleparam.h> -#include <linux/timer.h> - -#include <asm/system.h> -#include <asm/uaccess.h> -#include <asm/hardware.h> -#include <asm-arm/irq.h> -#include <asm-arm/delay.h> -#include <asm-arm/signal.h> - - -#define VERSION "0.1.7" - -#define N2RB_MAJOR 60 -#define N2PB_MAJOR 61 -#define N2BZ_MAJOR 62 -#define N2LM_MAJOR 126 - -#define N2PB_IRQ 22 //gpio5 -#define N2RB_IRQ 29 //gpio12 - -#define N2_BEEP_DUR_LONG 2000 -#define N2_BEEP_DUR_MED 400 -#define N2_BEEP_DUR_SHORT 100 -#define N2_BEEP_PITCH_HIGH 250 -#define N2_BEEP_PITCH_MED 500 -#define N2_BEEP_PITCH_LOW 1000 -#define N2_LONG_DELAY 30000 - -#define N2_BZ_GPIO 4 -#define N2_PB_GPIO 5 -#define N2_PO_GPIO 8 //power off -#define N2_RB_GPIO 12 - -#define GPIO_BZ_BM 0x0010 //b0000 0000 0001 0000 -#define GPIO_PB_BM 0x0020 //b0000 0000 0010 0000 -#define GPIO_PO_BM 0x0100 //b0000 0001 0000 0000 -#define GPIO_RB_BM 0x1000 //b0001 0000 0000 0000 - -#define NOERR 0 - -#define RB_DELAY 50 -#define PB_DELAY 20 - -#define PWR_OFF_STR "poweroff" - - -// ioctls -- 'M" is used for sound cards...we don't got one so it seems safe - -#define N2BZ_BEEP_STOP _IO('M',0) //stop multi-beep at end of audible -#define N2BZ_BEEP _IO('M',1) //one beep at current defaults -#define N2BZ_BEEPS _IOW('M',3,long) //param beeps at current defaults -#define N2BZ_TONESET _IOW('M',4,long) //set tone: range is high=250 to low=2000 -#define N2BZ_ONTIME _IOW('M',5,long) //ontime for multi-beeps in jiffies -#define N2BZ_SILENTTIME _IOW('M',6,long) //offtime for multi-beeps in jiffies -#define N2BZ_REPEATCNT _IOW('M',7,long) //number of repeats for multi-beeps 0 = forever -#define N2BZ_COMBINED _IOW('M',8,long) //combine all params in a long - -#define N2LM_OFF _IOW('M',32,long) -#define N2LM_ON _IOW('M',33,long) -#define N2LM_BLINK _IOW('M',34,long) -#define N2LM_ALT _IOW('M',35,long) -#define N2LM_ALL_ON _IO('M',36) -#define N2LM_ALL_OFF _IO('M',37) - -#define PHYS_LEDS 4 -#define BLINK_DELAY 25 - -// OR Masks to turn these LEDs ON - -#define RS_RED_ON 0x00000001 //0b0000 0000 0000 0010 -#define RS_GRN_ON 0x00000002 //0b0000 0000 0000 0001 -#define RS_YEL_ON 0x00000003 //0b0000 0000 0000 0011 - -// AND Masks to turn these LEDs OFF - -#define RS_RED_OFF 0xfffffffe //0b1111 1111 1111 1101 -#define RS_GRN_OFF 0xfffffffd //0b1111 1111 1111 1110 -#define RS_YEL_OFF 0xfffffffc //0b1111 1111 1111 1100 - -// AND Masks to turn these LEDs ON - -#define DISK1_ON 0xfffffff7 //0b1111 1111 1111 0111 -#define DISK2_ON 0xfffffffb //0b1111 1111 1111 1011 - -// Or Masks to turn these LEDs OFF - -#define DISK1_OFF 0x00000008 //0b0000 0000 0000 1000 -#define DISK2_OFF 0x00000004 //0b0000 0000 0000 0100 - -// EOR masks for toggling LEDs on/off - -#define RS_RG_ALT 0x00000003 //eor mask to toggle rs rg bits -#define RS_GRN_TGL 0x00000002 -#define RS_RED_TGL 0x00000001 -#define DISK1_TGL 0x00000008 -#define DISK2_TGL 0x00000004 - -// The LED names for switches - -#define LED_RS_RED 0 -#define LED_RS_GRN 1 -#define LED_DISK1 2 -#define LED_DISK2 3 -#define LED_ALL 4 - -static unsigned long init_jiffy = 0; //jiffies at init time -static unsigned long rb_presses = 0; //number of reset button presses -static unsigned long ontime = 50; -static unsigned long offtime = 450; -static unsigned long bz_repeatcnt = 10; -static unsigned long tone = 1000; - -DECLARE_WAIT_QUEUE_HEAD(n2rb_waitq); -DECLARE_WAIT_QUEUE_HEAD(n2pb_waitq); - -static struct timer_list n2lm_rsg_timer; //rs green -static struct timer_list n2lm_rsr_timer; //rs red -static struct timer_list n2lm_d1_timer; //drive 1 -static struct timer_list n2lm_d2_timer; //drive 2 -static struct timer_list n2rb_timer; -static struct timer_list n2pb_timer; -static struct timer_list n2bz_timer; //beeper - -//================================================================================================== -// -// Blinking is handled entirely by the 4 timer handlers. On timeout, the bit in the -// GPIO output register is xor'd with a mask corresponding to the selected led which simply -// flips that bit. No record of what any of the other leds is doing is needed. -// -//================================================================================================== -// this blinks rs green or green/yellow if rs red is on -static void n2lm_rsg_handler(unsigned long data) -{ - *IXP4XX_GPIO_GPOUTR ^= RS_GRN_TGL; //flip the led - n2lm_rsg_timer.expires = jiffies + BLINK_DELAY; //next timeout - add_timer(&n2lm_rsg_timer); //reinit timer - return; -} - -// this blinks or alternates rs red green... inited wit green on/red off -static void n2lm_rsr_handler(unsigned long data) -{ - *IXP4XX_GPIO_GPOUTR ^= n2lm_rsr_timer.data; - n2lm_rsr_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_rsr_timer); - return; -} -// blinks disk 1 -static void n2lm_d1_handler(unsigned long data) -{ - *IXP4XX_GPIO_GPOUTR ^= DISK1_TGL; - n2lm_d1_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_d1_timer); - return; -} -// blinks disk 2 -static void n2lm_d2_handler(unsigned long data) -{ - *IXP4XX_GPIO_GPOUTR ^= DISK2_TGL; - n2lm_d2_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_d2_timer); - return; -} - -//================================================================================================== - -static void n2lm_timer_start(unsigned long led) -{ - - printk(KERN_DEBUG "timer: %ld\n",led); - - switch(led) { - case LED_RS_RED: - n2lm_rsr_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_rsr_timer); - break; - - case LED_RS_GRN: - n2lm_rsg_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_rsg_timer); - break; - - case LED_DISK1: - n2lm_d1_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_d1_timer); - break; - - case LED_DISK2: - n2lm_d2_timer.expires = jiffies + BLINK_DELAY; - add_timer(&n2lm_d2_timer); - break; - - default: - break; - } - return; -} - -//================================================================================================== - -static void n2lm_timer_stop(unsigned long led) -{ - switch (led) { - case LED_RS_RED: - del_timer(&n2lm_rsr_timer); - break; - case LED_RS_GRN: - del_timer(&n2lm_rsg_timer); - break; - case LED_DISK1: - del_timer(&n2lm_d1_timer); - break; - case LED_DISK2: - del_timer(&n2lm_d2_timer); - break; - default: - break; - } - return; -} - -//-------------------------------------------------------------------------------------------------- - -static void n2lm_timer_stop_all(void) -{ - del_timer(&n2lm_rsg_timer); - del_timer(&n2lm_rsr_timer); - del_timer(&n2lm_d1_timer); - del_timer(&n2lm_d2_timer); - return; -} -//-------------------------------------------------------------------------------------------------- - -static void n2lm_ledon(unsigned long led) -{ - - printk(KERN_DEBUG "ledon: %ld\n", led); - - switch (led) { - case LED_RS_RED: - *IXP4XX_GPIO_GPOUTR |= RS_RED_ON; //1 - return; - case LED_RS_GRN: - *IXP4XX_GPIO_GPOUTR |= RS_GRN_ON; //2 - return; - case LED_DISK1: - *IXP4XX_GPIO_GPOUTR &= DISK1_ON; //0xfffffffb - return; - case LED_DISK2: - *IXP4XX_GPIO_GPOUTR &= DISK2_ON; //0xfffffff7 - return; - case LED_ALL: //all green - *IXP4XX_GPIO_GPOUTR |= RS_GRN_ON; - *IXP4XX_GPIO_GPOUTR &= (DISK1_ON & DISK2_ON); - return; - } -} - -//-------------------------------------------------------------------------------------------------- - -static void n2lm_ledoff(unsigned long led) -{ - - switch (led) { - case LED_RS_RED: - *IXP4XX_GPIO_GPOUTR &= RS_RED_OFF; //0xffffffffe - return; - case LED_RS_GRN: - *IXP4XX_GPIO_GPOUTR &= RS_GRN_OFF; //0xfffffffd - return; - case LED_DISK1: - *IXP4XX_GPIO_GPOUTR |= DISK1_OFF; //0x00000004 - return; - case LED_DISK2: - *IXP4XX_GPIO_GPOUTR |= DISK2_OFF; //0x00000008 - return; - case LED_ALL: - *IXP4XX_GPIO_GPOUTR &= (RS_GRN_OFF & RS_RED_OFF); - *IXP4XX_GPIO_GPOUTR |= (DISK1_OFF | DISK2_OFF); - } -} - -//================================================================================================== - -static int n2lm_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long led) -{ - - printk(KERN_DEBUG "cmd=%d, led=%ld\n", cmd, led); - - if (led < 0 || led >= PHYS_LEDS) - return -EINVAL; - - switch (cmd ) { - case N2LM_ON: - n2lm_timer_stop(led); - n2lm_ledon(led); - break; - - case N2LM_OFF: - n2lm_timer_stop(led); - n2lm_ledoff(led); - break; - - case N2LM_BLINK: - n2lm_ledon(led); - if (led == LED_RS_RED) - n2lm_rsr_timer.data = RS_RED_TGL; - if (led == LED_RS_GRN) - n2lm_rsr_timer.data = RS_GRN_TGL; - n2lm_timer_start(led); - break; - - case N2LM_ALT: - if (led == LED_RS_RED) - { - n2lm_ledon(LED_RS_GRN); - n2lm_ledoff(LED_RS_RED); - n2lm_rsr_timer.data = RS_RG_ALT; - n2lm_timer_start(LED_RS_RED); - break; - } else - return -EINVAL; - - case N2LM_ALL_ON: - n2lm_timer_stop_all(); - n2lm_ledon(LED_ALL); - break; - - case N2LM_ALL_OFF: - n2lm_timer_stop_all(); - n2lm_ledoff(LED_ALL); - break; - - default: - return -EINVAL; - } - - return NOERR; -} - -static struct file_operations n2lm_fops = { - .owner = THIS_MODULE, - .ioctl = n2lm_ioctl, -}; -//================================================================================================== -// We can't do anything fancy here since the system tick rate is far below that required to -// generate a desirable tone. Therefore we haven't much choice but to use a busy loop until -// I get up to speed on the timers. The saving grace is that for the normal uses, nothing -// important should be haprepening. -//================================================================================================== - -static void n2_buzz(int tone_delay, int duration) -{ - int i; - - *IXP4XX_GPIO_GPOER &= ~GPIO_BZ_BM; - - for (i = 1; i < duration; i++) { - *IXP4XX_GPIO_GPOUTR &= ~GPIO_BZ_BM; - udelay(tone_delay); - *IXP4XX_GPIO_GPOUTR |= GPIO_BZ_BM; - udelay(tone_delay); - } - *IXP4XX_GPIO_GPOER |= GPIO_BZ_BM; - - return; -} -//================================================================================================= - -// this handles the buzzer duty cycle -static void n2bz_handler(unsigned long data) -{ - if (--bz_repeatcnt > 0) { //if just one beep left to do - n2bz_timer.expires = jiffies + ontime + offtime; //next timeout - add_timer(&n2bz_timer); //reinit timer - } - n2_buzz(tone/2, ontime); - printk(KERN_DEBUG "Count = %d\tOntime = %d\n", bz_repeatcnt, ontime); - return; -} - -//================================================================================================== - -static int n2bz_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long param) -{ - switch (cmd) { - case N2BZ_BEEP: - n2_buzz(tone/2, ontime); - break; - - case N2BZ_BEEP_STOP: - del_timer(&n2bz_timer); - break; - - case N2BZ_BEEPS: - if (param == 0) - bz_repeatcnt = 0xffffffff; - else - bz_repeatcnt = param; - n2bz_handler(0); - break; - - case N2BZ_TONESET: - if (param >= 250 && param <= 2000) - tone = param; - break; - - case N2BZ_ONTIME: - if (param > 4 && param < 201) - ontime = param; - break; - - case N2BZ_SILENTTIME: - if (param > ontime) //enforce a reasonable duty cycle - offtime = param; - else - offtime = ontime; - break; - - case N2BZ_REPEATCNT: - if (param == 0) - bz_repeatcnt = 0xffffffff; - else - bz_repeatcnt = param; - break; - - case N2BZ_COMBINED: - bz_repeatcnt = (param & 0xF0000000) >> 28; //repeat 1 - 16 - ontime = (param & 0x0FF00000) >> 20; //ontime 1 - 256 jiffies - offtime = (param & 0x000FFF00) >> 8; //offtime 1 - 4095 jiffies - tone = (param & 0x000000FF) << 4; //tone (1 - 255) * 16 - break; - - default: - break; - } - return NOERR; -} - -static struct file_operations n2bz_fops = { - .owner = THIS_MODULE, - .ioctl = n2bz_ioctl, -}; - -//================================================================================================== - -static irqreturn_t n2pb_handler (int irq, void *dev_id, struct pt_regs *regs) -{ - void *ret; - - wake_up(&n2pb_waitq); - remove_proc_entry(PWR_OFF_STR, NULL); //no parent - n2_buzz(N2_BEEP_PITCH_MED, N2_BEEP_DUR_MED); - ret = create_proc_entry(PWR_OFF_STR, 0, NULL); - printk(KERN_DEBUG "cpe ret = %p\n", ret); - -// WARNING: This is RUDE...it unconditionally pulls the power plug. -// Your data will be at risk...since this is just a test system -// I am leaving it enabled...eventually userland needs to get the -// message, do an orderly shutdown and use an ioctl or something in -// /proc/powerdowm to actually have us pull the plug. - - *IXP4XX_GPIO_GPOER &= ~GPIO_PO_BM; // enable the pwr cntl gpio - *IXP4XX_GPIO_GPOUTR |= GPIO_PO_BM; // do the deed - - return IRQ_HANDLED; -} - -//================================================================================================== -// -//static void do_rb_timeout(unsigned long data) -//{ -// int i; -// -// for (i = 0; i < rb_presses; i++) -// n2_buzz(N2_BEEP_PITCH_MED,N2_BEEP_DUR_SHORT); -// return; -//} -// -//================================================================================================== -// does nothing -- waiting for userland to define -// This thing is sorta braindead...edge triggered IRQs aren't available in the drivers yet...so -// we hang in a loop until the button is no longer pressed - -struct testr { - int ctl; - long param; -}; - -static irqreturn_t n2rb_handler (int irq, void *dev_id, struct pt_regs *regs) -{ - - static struct testr test[] = { - N2LM_ALL_OFF,0, - N2LM_ON,0, - N2LM_OFF,0, - N2LM_ON,1, - N2LM_ALL_OFF,1, - N2LM_ON,2, - N2LM_OFF,2, - N2LM_ON,3, - N2LM_OFF,3, - N2LM_BLINK,0, - N2LM_OFF,0, - N2LM_BLINK,1, - N2LM_OFF,1, - N2LM_BLINK,2, - N2LM_OFF,2, - N2LM_BLINK,3, - N2LM_OFF,3, - N2LM_ALL_OFF,0, - N2LM_ALT,1, - N2LM_OFF,1, - N2LM_ALL_ON,0 - }; - - printk("Reset Entry IRQ =%d Presses = %d Jiffies = %08lx\tIO = %x\tIOW = %x\n", irq, rb_presses, jiffies, (int)_IO('M',rb_presses), (int)_IOW('M',rb_presses,long)); - - wake_up(&n2rb_waitq); - while ((*IXP4XX_GPIO_GPINR & GPIO_RB_BM) == 0) - ; //wait for button release - - if (rb_presses > 20) - rb_presses = 0; - tone = (rb_presses * 50) + 200; - ontime = (rb_presses*10) + 100; - offtime = 500 - (rb_presses*20); - printk("Ontime = %d\tOfftime = %d\tTone = %d\n",ontime,offtime,tone); - rb_presses++; - - n2bz_ioctl(NULL,NULL, N2BZ_BEEPS, rb_presses); - n2lm_ioctl(NULL,NULL, test[rb_presses].ctl, test[rb_presses].param); -// if (rb_presses == 0) { -// init_jiffy = jiffies; -// init_timer (&n2rb_timer); -// n2rb_timer.function = do_rb_timeout; -// }; -// -// if (rb_presses == 8) -// rb_presses = 0; -// if (rb_presses & 1) -// n2lm_ledon(test[rb_presses]); -// else -// n2lm_ledoff(test[rb_presses]); -// -// n2rb_timer.expires = (jiffies + RB_DELAY); -// add_timer (&n2rb_timer); -// if (rb_presses < 5) { -// if (rb_presses > 0) -// n2lm_ledoff(rb_presses); -// n2lm_ledon(++rb_presses); -// n2lm_timer_start(rb_presses); -// }; - - printk(KERN_DEBUG "Reset Exit IRQ=%d Presses= %d Jiffies= %08lx\n", irq, rb_presses, jiffies); - return IRQ_HANDLED; - -} - -//================================================================================================== -// What to do here is majorly undetermined... - -static int n2rb_read (struct file *filp, char __user *buffer, size_t count, loff_t *ppos) -{ - printk(KERN_DEBUG "Reset Button Wait\n"); - interruptible_sleep_on(&n2rb_waitq); - return copy_to_user(buffer, "reset", 5) ? -EFAULT : 5; - -} - -//================================================================================================== -// What to do here is majorly undetermined... - -static int n2pb_read (struct file *filp, char __user *buffer, size_t count, loff_t *ppos) -{ - printk(KERN_DEBUG "Power Button Wait\n"); - interruptible_sleep_on(&n2pb_waitq); - return copy_to_user(buffer, "poweroff", 8) ? -EFAULT : 8; - -} - -//-------------------------------------------------------------------------------------------------- - -static struct file_operations n2rb_fops = { - .owner = THIS_MODULE, - .read = n2rb_read, -}; - -//-------------------------------------------------------------------------------------------------- - -static struct file_operations n2pb_fops = { - .owner = THIS_MODULE, - .read = n2pb_read, -}; - -//================================================================================================== - -static void n2iom_initarch(void) -{ - printk(KERN_DEBUG "setup_interrupts - jiffies=%ld init_jiffy=%ld\n", jiffies, init_jiffy); - - *IXP4XX_GPIO_GPISR = 0x20400000; // read the 2 irqs to clr - gpio_line_config(N2_RB_GPIO, IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); - gpio_line_isr_clear(N2_RB_GPIO); - gpio_line_config(N2_PB_GPIO, IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_HIGH); - gpio_line_isr_clear(N2_PB_GPIO); - - init_timer(&n2lm_rsg_timer); - init_timer(&n2lm_rsr_timer); - init_timer(&n2lm_d1_timer); - init_timer(&n2lm_d2_timer); -// init_timer(&n2rb_timer); -// init_timer(&n2pb_timer); - init_timer(&n2bz_timer); - n2lm_rsr_timer.function = n2lm_rsr_handler; - n2lm_rsg_timer.function = n2lm_rsg_handler; - n2lm_d2_timer.function = n2lm_d2_handler; - n2lm_d1_timer.function = n2lm_d1_handler; - n2bz_timer.function = n2bz_handler; - n2lm_rsr_timer.data = n2lm_rsg_timer.data = n2lm_d1_timer.data = n2lm_d2_timer.data = n2bz_timer.data = 0; - - *IXP4XX_GPIO_GPOER &= 0xfffffff0; //enable gpio 0-3 - *IXP4XX_GPIO_GPOUTR |= 0x00000003; //turn off the leds - *IXP4XX_GPIO_GPOUTR &= 0xfffffffc; - n2lm_ledon(LED_ALL); - n2_buzz(N2_BEEP_PITCH_MED, N2_BEEP_DUR_SHORT); - n2lm_ledoff(LED_ALL); -// Default the Ready/Status to Red during kernel boot, Turn Green at the end of sysvinit - n2lm_ledon(LED_RS_RED); - - return; -} - -//================================================================================================== - -static int __init n2iom_init(void) -{ - printk(KERN_INFO "OpenN2 Misc I/O Driver Version %s\n", VERSION); - - init_jiffy = jiffies; - printk(KERN_DEBUG "init_jiffy=%ld\n",init_jiffy); - n2iom_initarch(); - - if (register_chrdev(N2RB_MAJOR, "n2_rbm", &n2pb_fops) < NOERR) { - printk(KERN_DEBUG "Reset Button Major %d not available\n", N2RB_MAJOR); - return -EBUSY; - } - if (register_chrdev(N2PB_MAJOR, "n2_pbm", &n2rb_fops) < NOERR) { - printk(KERN_DEBUG "Power Button Major %d not available\n", N2PB_MAJOR); - return -EBUSY; - } - if (register_chrdev(N2LM_MAJOR, "n2_ledm", &n2lm_fops) < NOERR) { - printk(KERN_DEBUG "Led Manager Major %d not available\n", N2LM_MAJOR); - return -EBUSY; - } - if (register_chrdev(N2BZ_MAJOR, "n2_bzm", &n2bz_fops) < NOERR) { - printk(KERN_DEBUG "Buzzer Major %d not available\n", N2BZ_MAJOR); - return -EBUSY; - } - - if (request_irq(N2RB_IRQ, &n2rb_handler, SA_INTERRUPT, "n2_rb", NULL) < NOERR) { - printk(KERN_DEBUG "Reset Button IRQ %d not available\n", N2RB_IRQ); - return -EIO; - } - if (request_irq(N2PB_IRQ, &n2pb_handler, SA_INTERRUPT, "n2_pb", NULL) < NOERR) { - printk(KERN_DEBUG "Power Button IRQ %d not available\n", N2PB_IRQ); - return -EIO; - } - - enable_irq(N2PB_IRQ); - enable_irq(N2RB_IRQ); - return (NOERR); -} - -//================================================================================================== - -static void __exit n2iom_exit(void) -{ - remove_proc_entry(PWR_OFF_STR, NULL); - del_timer(&n2rb_timer); - free_irq(N2RB_IRQ,NULL); - unregister_chrdev(N2PB_MAJOR, "n2pb"); - del_timer(&n2pb_timer); - free_irq(N2PB_IRQ, NULL); - unregister_chrdev(N2RB_MAJOR, "n2rb" ); - del_timer(&n2lm_rsg_timer); - del_timer(&n2lm_rsr_timer); - del_timer(&n2lm_d1_timer); - del_timer(&n2lm_d2_timer); - unregister_chrdev(N2LM_MAJOR, "n2lm" ); -} - -module_init (n2iom_init); -module_exit (n2iom_exit); - -MODULE_AUTHOR("Karen Spearel <kas11@tampabay.rr.com>"); -MODULE_DESCRIPTION("OpenN2 Buttons/LEDs IO Driver"); -MODULE_LICENSE("GPL"); -static int debug = 7; -module_param(debug, int, 0644); -MODULE_PARM_DESC(debug, "Debugging enabled = 8"); - diff --git a/packages/linux/openslug-kernel-2.6.9/nslu2-part.c b/packages/linux/openslug-kernel-2.6.9/nslu2-part.c deleted file mode 100644 index 6fbf952e2a..0000000000 --- a/packages/linux/openslug-kernel-2.6.9/nslu2-part.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * nslu2-part.c - * - * Maintainers: http://www.nslu2-linux.org/ - * Initial port: Mark Rakes <mrakes AT mac.com> - * - * "Parse" the fixed partition table of the Linksys NSLU2 and - * produce a Linux partition array to match. - */ - -#include <linux/kernel.h> -#include <linux/slab.h> -#include <linux/init.h> -#include <linux/vmalloc.h> -#include <linux/mtd/mtd.h> -#include <linux/mtd/partitions.h> - -/* info we know about the NSLU2's flash setup: - * - * Num Partition offset size - * --- --------- ---------- ----------- - * 0 RedBoot 0x00000000 0x00040000 - * 1 System Configuration 0x00040000 0x00020000 - * 2 Kernel 0x00060000 0x00100000 - * 3 Ramdisk 0x00160000 0x006a0000 - */ - #define NSLU2_NUM_FLASH_PARTITIONS 4 - #define NSLU2_FLASH_PART0_NAME "RedBoot" - #define NSLU2_FLASH_PART0_OFFSET 0x00000000 - #define NSLU2_FLASH_PART0_SIZE 0x00040000 - #define NSLU2_FLASH_PART1_NAME "System Configuration" - #define NSLU2_FLASH_PART1_OFFSET (NSLU2_FLASH_PART0_OFFSET + NSLU2_FLASH_PART0_SIZE) - #define NSLU2_FLASH_PART1_SIZE 0x00020000 - #define NSLU2_FLASH_PART2_NAME "Kernel" - #define NSLU2_FLASH_PART2_OFFSET (NSLU2_FLASH_PART1_OFFSET + NSLU2_FLASH_PART1_SIZE) - #define NSLU2_FLASH_PART2_SIZE 0x00100000 - #define NSLU2_FLASH_PART3_NAME "Ramdisk" - #define NSLU2_FLASH_PART3_OFFSET (NSLU2_FLASH_PART2_OFFSET + NSLU2_FLASH_PART2_SIZE) - #define NSLU2_FLASH_PART3_SIZE 0x006a0000 - -static int parse_nslu2_partitions(struct mtd_info *master, - struct mtd_partition **pparts, - unsigned long flash_start) -{ - struct mtd_partition *parts; - int ret = 0, namelen = 0; - char *names; - - namelen = strlen(NSLU2_FLASH_PART0_NAME) + - strlen(NSLU2_FLASH_PART1_NAME) + - strlen(NSLU2_FLASH_PART2_NAME) + - strlen(NSLU2_FLASH_PART3_NAME) + - NSLU2_NUM_FLASH_PARTITIONS; /*4 strings + each terminator */ - - parts = kmalloc(sizeof(*parts)*NSLU2_NUM_FLASH_PARTITIONS + namelen, GFP_KERNEL); - if (!parts) { - ret = -ENOMEM; - goto out; - } - - memset(parts, 0, sizeof(*parts)*NSLU2_NUM_FLASH_PARTITIONS + namelen); - names = (char *)&parts[NSLU2_NUM_FLASH_PARTITIONS]; - - /* RedBoot partition */ - parts[0].size = NSLU2_FLASH_PART0_SIZE; - parts[0].offset = NSLU2_FLASH_PART0_OFFSET; - parts[0].name = NSLU2_FLASH_PART0_NAME; - parts[0].mask_flags = MTD_WRITEABLE; /* readonly */ - strcpy(names, NSLU2_FLASH_PART0_NAME); - names += strlen(names)+1; - /* System Configuration */ - parts[1].size = NSLU2_FLASH_PART1_SIZE; - parts[1].offset = NSLU2_FLASH_PART1_OFFSET; - parts[1].name = NSLU2_FLASH_PART1_NAME; - parts[1].mask_flags = MTD_WRITEABLE; /* readonly */ - strcpy(names, NSLU2_FLASH_PART1_NAME); - names += strlen(names)+1; - /* Kernel */ - parts[2].size = NSLU2_FLASH_PART2_SIZE; - parts[2].offset = NSLU2_FLASH_PART2_OFFSET; - parts[2].name = NSLU2_FLASH_PART2_NAME; - parts[2].mask_flags = MTD_WRITEABLE; /* readonly */ - strcpy(names, NSLU2_FLASH_PART2_NAME); - names += strlen(names)+1; - /* Ramdisk */ - parts[3].size = NSLU2_FLASH_PART3_SIZE; - parts[3].offset = NSLU2_FLASH_PART3_OFFSET; - parts[3].name = NSLU2_FLASH_PART3_NAME; - parts[3].mask_flags = MTD_WRITEABLE; /* readonly */ - strcpy(names, NSLU2_FLASH_PART3_NAME); - names += strlen(names)+1; - - ret = NSLU2_NUM_FLASH_PARTITIONS; - *pparts = parts; - out: - return ret; -} - -static struct mtd_part_parser nslu2_parser = { - .owner = THIS_MODULE, - .parse_fn = parse_nslu2_partitions, - .name = "NSLU2", -}; - -static int __init nslu2_parser_init(void) -{ - return register_mtd_parser(&nslu2_parser); -} - -static void __exit nslu2_parser_exit(void) -{ - deregister_mtd_parser(&nslu2_parser); -} - -module_init(nslu2_parser_init); -module_exit(nslu2_parser_exit); - -MODULE_LICENSE("GPL"); -MODULE_AUTHOR("Mark Rakes"); -MODULE_DESCRIPTION("Parsing code for NSLU2 flash tables"); diff --git a/packages/linux/openslug-kernel-2.6.9/nslu2-pci.c b/packages/linux/openslug-kernel-2.6.9/nslu2-pci.c deleted file mode 100644 index 7327c65a4f..0000000000 --- a/packages/linux/openslug-kernel-2.6.9/nslu2-pci.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * arch/arm/mach-ixp4xx/nslu2-pci.c - * - * NSLU2 board-level PCI initialization - * - * based on ixdp425-pci.c: - * Copyright (C) 2002 Intel Corporation. - * Copyright (C) 2003-2004 MontaVista Software, Inc. - * - * Maintainer: http://www.nslu2-linux.org/ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - */ -// GPIO 8 is used as the power input so is not free for use as a PCI IRQ -// However, all the common PCI setup code presumes the standard 4 PCI -// interrupts are available. So we compromise...we don't enable the -// IRQ on Pin 8 but we let - -#include <linux/config.h> -#include <linux/pci.h> -#include <linux/init.h> -#include <linux/delay.h> - -#include <asm/mach/pci.h> -#include <asm/irq.h> -#include <asm/hardware.h> -#include <asm/mach-types.h> - -void __init nslu2_pci_preinit(void) -{ - gpio_line_config(NSLU2_PCI_INTA_PIN, - IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); - gpio_line_config(NSLU2_PCI_INTB_PIN, - IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); - gpio_line_config(NSLU2_PCI_INTC_PIN, - IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); -// gpio_line_config(NSLU2_PCI_INTD_PIN, -// IXP4XX_GPIO_IN | IXP4XX_GPIO_ACTIVE_LOW); - - gpio_line_isr_clear(NSLU2_PCI_INTA_PIN); - gpio_line_isr_clear(NSLU2_PCI_INTB_PIN); - gpio_line_isr_clear(NSLU2_PCI_INTC_PIN); -// gpio_line_isr_clear(NSLU2_PCI_INTD_PIN); - - ixp4xx_pci_preinit(); -} - -static int __init nslu2_map_irq(struct pci_dev *dev, u8 slot, u8 pin) -{ - static int pci_irq_table[NSLU2_PCI_IRQ_LINES] = { - IRQ_NSLU2_PCI_INTA, - IRQ_NSLU2_PCI_INTB, - IRQ_NSLU2_PCI_INTC, -// IRQ_NSLU2_PCI_INTD - }; - - int irq = -1; - - if (slot >= 1 && slot <= NSLU2_PCI_MAX_DEV && - pin >= 1 && pin <= NSLU2_PCI_IRQ_LINES) { - irq = pci_irq_table[(slot + pin - 2) % 3]; // ! % 4 kas11 - } - - return irq; -} - -struct hw_pci __initdata nslu2_pci = { - .nr_controllers = 1, - .preinit = nslu2_pci_preinit, - .swizzle = pci_std_swizzle, - .setup = ixp4xx_setup, - .scan = ixp4xx_scan_bus, - .map_irq = nslu2_map_irq, -}; - -int __init nslu2_pci_init(void) //monkey see, monkey do -{ - if (machine_is_nslu2()) - pci_common_init(&nslu2_pci); - return 0; -} - -subsys_initcall(nslu2_pci_init); - diff --git a/packages/linux/openslug-kernel-2.6.9/nslu2-setup.c b/packages/linux/openslug-kernel-2.6.9/nslu2-setup.c deleted file mode 100644 index 5698ea9813..0000000000 --- a/packages/linux/openslug-kernel-2.6.9/nslu2-setup.c +++ /dev/null @@ -1,132 +0,0 @@ -/* - * arch/arm/mach-ixp4xx/nslu2-setup.c - * - * NSLU2 board-setup - * - * based ixdp425-setup.c: - * Copyright (C) 2003-2004 MontaVista Software, Inc. - * - * Author: Mark Rakes <mrakes at mac.com> - * Maintainers: http://www.nslu2-linux.org/ - * - * Fixed missing init_time in MACHINE_START kas11 10/22/04 - * Changed to conform to new style __init ixdp425 kas11 10/22/04 - */ - -#include <linux/init.h> -#include <linux/device.h> -#include <linux/serial.h> -#include <linux/tty.h> -#include <linux/serial_core.h> - -#include <asm/types.h> -#include <asm/setup.h> -#include <asm/memory.h> -#include <asm/hardware.h> -#include <asm/mach-types.h> -#include <asm/irq.h> -#include <asm/mach/arch.h> -#include <asm/mach/flash.h> - -#ifdef __ARMEB__ -#define REG_OFFSET 3 -#else -#define REG_OFFSET 0 -#endif - -/* - * NSLU2 uses only one serial port - */ -static struct uart_port nslu2_serial_ports[] = { - { - .membase = (char*)(IXP4XX_UART1_BASE_VIRT + REG_OFFSET), - .mapbase = (IXP4XX_UART1_BASE_PHYS), - .irq = IRQ_IXP4XX_UART1, - .flags = UPF_SKIP_TEST, - .iotype = UPIO_MEM, - .regshift = 2, - .uartclk = IXP4XX_UART_XTAL, - .line = 0, - .type = PORT_XSCALE, - .fifosize = 32 - } -#if 0 - , { - .membase = (char*)(IXP4XX_UART2_BASE_VIRT + REG_OFFSET), - .mapbase = (IXP4XX_UART2_BASE_PHYS), - .irq = IRQ_IXP4XX_UART2, - .flags = UPF_SKIP_TEST, - .iotype = UPIO_MEM, - .regshift = 2, - .uartclk = IXP4XX_UART_XTAL, - .line = 1, - .type = PORT_XSCALE, - .fifosize = 32 - } -#endif -}; - -void __init nslu2_map_io(void) -{ - early_serial_setup(&nslu2_serial_ports[0]); -#if 0 - early_serial_setup(&nslu2_serial_ports[1]); -#endif - ixp4xx_map_io(); -} - -static struct flash_platform_data nslu2_flash_data = { - .map_name = "cfi_probe", - .width = 2, -}; - -static struct resource nslu2_flash_resource = { - .start = NSLU2_FLASH_BASE, - .end = NSLU2_FLASH_BASE + NSLU2_FLASH_SIZE, - .flags = IORESOURCE_MEM, -}; - -static struct platform_device nslu2_flash = { - .name = "IXP4XX-Flash", - .id = 0, - .dev = { - .platform_data = &nslu2_flash_data, - }, - .num_resources = 1, - .resource = &nslu2_flash_resource, -}; - -static struct ixp4xx_i2c_pins nslu2_i2c_gpio_pins = { - .sda_pin = NSLU2_SDA_PIN, - .scl_pin = NSLU2_SCL_PIN, -}; - -static struct platform_device nslu2_i2c_controller = { - .name = "IXP4XX-I2C", - .id = 0, - .dev = { - .platform_data = &nslu2_i2c_gpio_pins, - }, - .num_resources = 0 -}; - -static struct platform_device *nslu2_devices[] __initdata = { - &nslu2_i2c_controller, - &nslu2_flash -}; - -static void __init nslu2_init(void) -{ - platform_add_devices(&nslu2_devices, ARRAY_SIZE(nslu2_devices)); -} - -MACHINE_START(NSLU2, "Linksys NSLU2") - MAINTAINER("www.nslu2-linux.org") - BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS, - IXP4XX_PERIPHERAL_BASE_VIRT) - MAPIO(nslu2_map_io) - INITIRQ(ixp4xx_init_irq) //FIXME: all irq are off here - INITTIME(ixp4xx_init_time) //this was missing in 2.6.7 code ...soft reboot needed? - BOOT_PARAMS(0x0100) - INIT_MACHINE(nslu2_init) -MACHINE_END diff --git a/packages/linux/openslug-kernel-2.6.9/nslu2.h b/packages/linux/openslug-kernel-2.6.9/nslu2.h deleted file mode 100644 index bb79aaa007..0000000000 --- a/packages/linux/openslug-kernel-2.6.9/nslu2.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * include/asm-arm/arch-ixp4xx/nslu2.h - * - * NSLU2 platform specific definitions - * - * Author: Mark Rakes <mrakes AT mac.com> - * Maintainers: http://www.nslu2-linux.org - * - * based on ixdp425.h: - * Copyright 2004 (c) MontaVista, Software, Inc. - * - * This file is licensed under the terms of the GNU General Public - * License version 2. This program is licensed "as is" without any - * warranty of any kind, whether express or implied. - */ - -// GPIO 8 is used as the power input so is not free for use as a PCI IRQ -// kas11 11-2-04 - -#ifndef __ASM_ARCH_HARDWARE_H__ -#error "Do not include this directly, instead #include <asm/hardware.h>" -#endif - -#define NSLU2_FLASH_BASE IXP4XX_EXP_BUS_CS0_BASE_PHYS -#define NSLU2_FLASH_SIZE IXP4XX_EXP_BUS_CSX_REGION_SIZE - -#define NSLU2_SDA_PIN 7 -#define NSLU2_SCL_PIN 6 - -/* - * NSLU2 PCI IRQs - */ -#define NSLU2_PCI_MAX_DEV 3 -#define NSLU2_PCI_IRQ_LINES 3 - - -/* PCI controller GPIO to IRQ pin mappings */ -#define NSLU2_PCI_INTA_PIN 11 -#define NSLU2_PCI_INTB_PIN 10 -#define NSLU2_PCI_INTC_PIN 9 -//#define NSLU2_PCI_INTD_PIN 8 - - diff --git a/packages/linux/openslug-kernel-2.6.9/nslu2_2.6.9.patch b/packages/linux/openslug-kernel-2.6.9/nslu2_2.6.9.patch deleted file mode 100644 index 9f569baabf..0000000000 --- a/packages/linux/openslug-kernel-2.6.9/nslu2_2.6.9.patch +++ /dev/null @@ -1,312 +0,0 @@ -diff -purN linux-2.6.9/arch/arm/mach-ixp4xx/Kconfig linux-2.6.9-new/arch/arm/mach-ixp4xx/Kconfig ---- linux-2.6.9/arch/arm/mach-ixp4xx/Kconfig 2004-06-15 22:19:01.000000000 -0700 -+++ linux-2.6.9-new/arch/arm/mach-ixp4xx/Kconfig 2004-09-14 03:59:28.000000000 -0700 -@@ -29,6 +29,13 @@ config ARCH_IXDP425 - IXDP425 Development Platform (Also known as Richfield). - For more information on this platform, see Documentation/arm/IXP4xx. - -+config ARCH_NSLU2 -+ bool "NSLU2" -+ help -+ Say 'Y' here if you want your kernel to support Linksys's -+ NSLU2 NAS device. For more information on this platform, -+ see http://www.nslu2-linux.org -+ - # - # IXCDP1100 is the exact same HW as IXDP425, but with a different machine - # number from the bootloader due to marketing monkeys, so we just enable it ---- linux-2.6.9.orig/arch/arm/mach-ixp4xx/Makefile 2004-06-16 01:18:59.000000000 -0400 -+++ linux-2.6.9/arch/arm/mach-ixp4xx/Makefile 2004-09-24 01:35:22.051627330 -0400 -@@ -4,7 +4,6 @@ - - obj-y += common.o common-pci.o - --obj-$(CONFIG_ARCH_IXDP4XX) += ixdp425-pci.o ixdp425-setup.o - obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o - obj-$(CONFIG_ARCH_PRPMC1100) += prpmc1100-pci.o prpmc1100-setup.o -- -+obj-$(CONFIG_ARCH_NSLU2) += nslu2-pci.o nslu2-setup.o nslu2-part.o nslu2-io.o -diff -purN linux-2.6.9/drivers/mtd/maps/ixp4xx.c linux-2.6.9-new/drivers/mtd/maps/ixp4xx.c ---- linux-2.6.9/drivers/mtd/maps/ixp4xx.c 2004-06-15 22:18:38.000000000 -0700 -+++ linux-2.6.9-new/drivers/mtd/maps/ixp4xx.c 2004-09-14 03:59:28.000000000 -0700 -@@ -82,7 +82,11 @@ struct ixp4xx_flash_info { - struct resource *res; - }; - -+#ifdef CONFIG_ARCH_NSLU2 -+static const char *probes[] = { "cmdlinepart", "RedBoot", "NSLU2", NULL }; -+#else - static const char *probes[] = { "RedBoot", "cmdlinepart", NULL }; -+#endif - - static int - ixp4xx_flash_remove(struct device *_dev) -diff -purN linux-2.6.9/include/asm-arm/arch-ixp4xx/hardware.h linux-2.6.9-new/include/asm-arm/arch-ixp4xx/hardware.h ---- linux-2.6.9/include/asm-arm/arch-ixp4xx/hardware.h 2004-06-15 22:19:02.000000000 -0700 -+++ linux-2.6.9-new/include/asm-arm/arch-ixp4xx/hardware.h 2004-09-14 03:59:28.000000000 -0700 -@@ -37,5 +37,6 @@ - #include "ixdp425.h" - #include "coyote.h" - #include "prpmc1100.h" -+#include "nslu2.h" - - #endif /* _ASM_ARCH_HARDWARE_H */ -diff -purN linux-2.6.9/include/asm-arm/arch-ixp4xx/irqs.h linux-2.6.9-new/include/asm-arm/arch-ixp4xx/irqs.h ---- linux-2.6.9/include/asm-arm/arch-ixp4xx/irqs.h 2004-06-15 22:19:37.000000000 -0700 -+++ linux-2.6.9-new/include/asm-arm/arch-ixp4xx/irqs.h 2004-09-14 03:59:28.000000000 -0700 -@@ -75,4 +75,12 @@ - #define IRQ_COYOTE_PCI_SLOT1 IRQ_IXP4XX_GPIO11 - #define IRQ_COYOTE_IDE IRQ_IXP4XX_GPIO5 - -+/* -+ * NSLU2 board IRQs -+ */ -+#define IRQ_NSLU2_PCI_INTA IRQ_IXP4XX_GPIO11 -+#define IRQ_NSLU2_PCI_INTB IRQ_IXP4XX_GPIO10 -+#define IRQ_NSLU2_PCI_INTC IRQ_IXP4XX_GPIO9 -+ -+ - #endif -diff -Nru linux-2.6.9/arch/arm/mach-ixp4xx/common-pci.c linux-2.6.9/arch/arm/mach-ixp4xx/common-pci.c ---- linux-2.6.9/arch/arm/mach-ixp4xx/common-pci.c 2004-10-08 13:59:23 -07:00 -+++ linux-2.6.9/arch/arm/mach-ixp4xx/common-pci.c 2004-10-08 13:59:23 -07:00 -@@ -239,9 +239,10 @@ - return 0xffffffff; - } - --static int read_config(u8 bus_num, u16 devfn, int where, int size, u32 *value) -+static int ixp4xx_pci_read_config(struct pci_bus *bus, u16 devfn, int where, int size, u32 *value) - { - u32 n, byte_enables, addr, data; -+ u8 bus_num = bus->number; - - pr_debug("read_config from %d size %d dev %d:%d:%d\n", where, size, - bus_num, PCI_SLOT(devfn), PCI_FUNC(devfn)); -@@ -261,9 +262,10 @@ - return PCIBIOS_SUCCESSFUL; - } - --static int write_config(u8 bus_num, u16 devfn, int where, int size, u32 value) -+static int ixp4xx_pci_write_config(struct pci_bus *bus, u16 devfn, int where, int size, u32 value) - { - u32 n, byte_enables, addr, data; -+ u8 bus_num = bus->number; - - pr_debug("write_config_byte %#x to %d size %d dev %d:%d:%d\n", value, where, - size, bus_num, PCI_SLOT(devfn), PCI_FUNC(devfn)); -@@ -281,30 +283,10 @@ - return PCIBIOS_SUCCESSFUL; - } - --/* -- * Generalized PCI config access functions. -- */ --static int ixp4xx_read_config(struct pci_bus *bus, unsigned int devfn, -- int where, int size, u32 *value) --{ -- if (bus->number && !PCI_SLOT(devfn)) -- return local_read_config(where, size, value); -- return read_config(bus->number, devfn, where, size, value); --} -- --static int ixp4xx_write_config(struct pci_bus *bus, unsigned int devfn, -- int where, int size, u32 value) --{ -- if (bus->number && !PCI_SLOT(devfn)) -- return local_write_config(where, size, value); -- return write_config(bus->number, devfn, where, size, value); --} -- - struct pci_ops ixp4xx_ops = { -- .read = ixp4xx_read_config, -- .write = ixp4xx_write_config, -+ .read = ixp4xx_pci_read_config, -+ .write = ixp4xx_pci_write_config, - }; -- - - /* - * PCI abort handler -diff -Nru linux-2.6.9/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h linux-2.6.9/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h ---- linux-2.6.9/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h 2004-10-08 13:59:23 -07:00 -+++ linux-2.6.9/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h 2004-10-08 13:59:23 -07:00 -@@ -55,7 +55,7 @@ - * PCI Config registers - */ - #define IXP4XX_PCI_CFG_BASE_PHYS (0xC0000000) --#define IXP4XX_PCI_CFG_BASE_VIRT (0xFFBFD000) -+#define IXP4XX_PCI_CFG_BASE_VIRT (0xFFBFE000) - #define IXP4XX_PCI_CFG_REGION_SIZE (0x00001000) - - /* ---- linux-2.6.9/drivers/i2c/chips/Kconfig.orig 2004-06-16 01:19:35.000000000 -0400 -+++ linux-2.6.9/drivers/i2c/chips/Kconfig 2004-09-22 18:09:48.454794342 -0400 -@@ -240,6 +240,16 @@ - This driver can also be built as a module. If so, the module - will be called pcf8591. - -+config SENSORS_X1205 -+ tristate "Xicor X1205 RTC chip" -+ depends on I2C && EXPERIMENTAL -+ select I2C_SENSOR -+ help -+ If you say yes here you get support for the Xicor x1205 RTC chip. -+ -+ This driver can also be built as a module. If so, the module -+ will be called x1205-rtc -+ - config SENSORS_RTC8564 - tristate "Epson 8564 RTC chip" - depends on I2C && EXPERIMENTA ---- linux-2.6.9/drivers/i2c/chips/Makefile.old 2004-06-16 01:20:26.000000000 -0400 -+++ linux-2.6.9/drivers/i2c/chips/Makefile 2004-09-22 16:48:06.435580334 -0400 -@@ -25,6 +25,7 @@ - obj-$(CONFIG_SENSORS_RTC8564) += rtc8564.o - obj-$(CONFIG_SENSORS_VIA686A) += via686a.o - obj-$(CONFIG_SENSORS_W83L785TS) += w83l785ts.o -+obj-$(CONFIG_SENSORS_X1205) += x1205-rtc.o - obj-$(CONFIG_ISP1301_OMAP) += isp1301_omap.o - - ifeq ($(CONFIG_I2C_DEBUG_CHIP),y) - ---- linux-2.6.9/arch/arm/mach-ixp4xx/common.c.orig 2004-10-18 17:54:25.000000000 -0400 -+++ linux-2.6.9/arch/arm/mach-ixp4xx/common.c 2004-10-21 14:22:40.766271419 -0400 -@@ -227,10 +227,10 @@ - /* - * Catch up with the real idea of time - */ -- do { -+ while((*IXP4XX_OSTS - last_jiffy_time) > LATCH) { - timer_tick(regs); - last_jiffy_time += LATCH; -- } while((*IXP4XX_OSTS - last_jiffy_time) > LATCH); -+ }; - - return IRQ_HANDLED; - } ---- linux-2.6.9/include/linux/i2c-id.h.orig 2004-10-18 17:53:10.000000000 -0400 -+++ linux-2.6.9/include/linux/i2c-id.h 2004-10-21 14:14:17.115262597 -0400 -@@ -109,7 +109,7 @@ - #define I2C_DRIVERID_OVCAMCHIP 61 /* OmniVision CMOS image sens. */ - #define I2C_DRIVERID_TDA7313 62 /* TDA7313 audio processor */ - #define I2C_DRIVERID_MAX6900 63 /* MAX6900 real-time clock */ -- -+#define I2C_DRIVERID_X1205 0xF0 - - #define I2C_DRIVERID_EXP0 0xF0 /* experimental use id's */ - #define I2C_DRIVERID_EXP1 0xF1 -diff -Nru a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S ---- a/arch/arm/kernel/entry-header.S 2004-10-08 13:59:23 -07:00 -+++ b/arch/arm/kernel/entry-header.S 2004-10-08 13:59:23 -07:00 -@@ -4,8 +4,9 @@ - #include <asm/assembler.h> - #include <asm/constants.h> - #include <asm/errno.h> - #include <asm/hardware.h> - #include <asm/arch/irqs.h> -+#include <asm/arch/entry-macro.S> - - #ifndef MODE_SVC - #define MODE_SVC 0x13 -diff -Nru a/include/asm-arm/arch-ixp4xx/entry-macro.S b/include/asm-arm/arch-ixp4xx/entry-macro.S ---- /dev/null Wed Dec 31 16:00:00 1969 -+++ b/include/asm-arm/arch-ixp4xx/entry-macro.S Thu Sep 16 13:15:46 2004 -@@ -0,0 +1,25 @@ -+/* -+ * include/asm-arm/arch-ixp4xx/entry-macro.S -+ * -+ * Low-level IRQ helper macros for IXP4xx-based platforms -+ * -+ * This file is licensed under the terms of the GNU General Public -+ * License version 2. This program is licensed "as is" without any -+ * warranty of any kind, whether express or implied. -+ */ -+ -+ .macro disable_fiq -+ .endm -+ -+ .macro get_irqnr_and_base, irqnr, irqstat, base, tmp -+ -+ ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP_OFFSET) -+ ldr \irqstat, [\irqstat] @ get interrupts -+ cmp \irqstat, #0 -+ beq 1001f -+ clz \irqnr, \irqstat -+ mov \base, #31 -+ subs \irqnr, \base, \irqnr -+ -+1001: -+ .endm - -diff -purN linux-2.6.9.orig/arch/arm/boot/compressed/head.S linux-2.6.9/arch/arm/boot/compressed/head.S ---- linux-2.6.9.orig/arch/arm/boot/compressed/head.S 2004-10-18 17:55:07.000000000 -0400 -+++ linux-2.6.9/arch/arm/boot/compressed/head.S 2004-10-31 03:05:25.011878371 -0500 -@@ -79,6 +79,7 @@ - .endm - .macro writeb, rb - str \rb, [r3, #0] -+ .endm - #elif defined(CONFIG_ARCH_IXP2000) - .macro loadsp, rb - mov \rb, #0xc0000000 -diff -purN linux-2.6.9.orig/arch/arm/boot/compressed/head-xscale.S linux-2.6.9/arch/arm/boot/compressed/head-xscale.S ---- linux-2.6.9.orig/arch/arm/boot/compressed/head-xscale.S 2004-10-18 17:53:45.000000000 -0400 -+++ linux-2.6.9/arch/arm/boot/compressed/head-xscale.S 2004-10-31 03:05:25.013878040 -0500 -@@ -56,3 +56,7 @@ __XScale_start: - mov r7, #MACH_TYPE_COTULLA_IDP - #endif - -+#ifdef CONFIG_ARCH_NSLU2 -+ mov r7, #(MACH_TYPE_NSLU2 & 0xff) -+ orr r7, r7, #(MACH_TYPE_NSLU2 & 0xff00) -+#endif ---- linux-2.6.9.orig/arch/arm/tools/mach-types 2004-10-18 17:54:08.000000000 -0400 -+++ linux-2.6.9/arch/arm/tools/mach-types 2004-10-31 03:05:25.006879199 -0500 -@@ -6,7 +6,7 @@ - # To add an entry into this database, please see Documentation/arm/README, - # or contact rmk@arm.linux.org.uk - # --# Last update: Thu Sep 30 15:23:21 2004 -+# Last update: Mon Oct 25 04:14:24 2004 - # - # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number - # -@@ -595,8 +595,8 @@ pxa_dnp2110 MACH_PXA_DNP2110 PXA_DNP211 - xaeniax MACH_XAENIAX XAENIAX 585 - somn4250 MACH_SOMN4250 SOMN4250 586 - pleb2 MACH_PLEB2 PLEB2 587 --cwl MACH_CWL CWL 588 --gd MACH_GD GD 589 -+cornwallis MACH_CORNWALLIS CORNWALLIS 588 -+gurney_drv MACH_GURNEY_DRV GURNEY_DRV 589 - chaffee MACH_CHAFFEE CHAFFEE 590 - rms101 MACH_RMS101 RMS101 591 - rx3715 MACH_RX3715 RX3715 592 -@@ -604,7 +604,7 @@ swift MACH_SWIFT SWIFT 593 - roverp7 MACH_ROVERP7 ROVERP7 594 - pr818s MACH_PR818S PR818S 595 - trxpro MACH_TRXPRO TRXPRO 596 --nslu2 MACH_NSLU2 NSLU2 597 -+nslu2 ARCH_NSLU2 NSLU2 597 - e400 MACH_E400 E400 598 - trab MACH_TRAB TRAB 599 - cmc_pu2 MACH_CMC_PU2 CMC_PU2 600 -@@ -615,3 +615,18 @@ ixdpg425 MACH_IXDPG425 IXDPG425 604 - tomtomgo MACH_TOMTOMGO TOMTOMGO 605 - versatile_ab MACH_VERSATILE_AB VERSATILE_AB 606 - edb9307 MACH_EDB9307 EDB9307 607 -+sg565 MACH_SG565 SG565 608 -+lpd79524 MACH_LPD79524 LPD79524 609 -+lpd79525 MACH_LPD79525 LPD79525 610 -+rms100 MACH_RMS100 RMS100 611 -+kb9200 MACH_KB9200 KB9200 612 -+sx1 MACH_SX1 SX1 613 -+hms39c7092 MACH_HMS39C7092 HMS39C7092 614 -+armadillo MACH_ARMADILLO ARMADILLO 615 -+ipcu MACH_IPCU IPCU 616 -+loox720 MACH_LOOX720 LOOX720 617 -+ixdp465 MACH_IXDP465 IXDP465 618 -+ixdp2351 MACH_IXDP2351 IXDP2351 619 -+adsvix MACH_ADSVIX ADSVIX 620 -+dm270 MACH_DM270 DM270 621 -+ diff --git a/packages/linux/openslug-kernel-2.6.9/usbnet.patch b/packages/linux/openslug-kernel-2.6.9/usbnet.patch deleted file mode 100644 index a89c392f47..0000000000 --- a/packages/linux/openslug-kernel-2.6.9/usbnet.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- linux-2.6.9/drivers/usb/net/usbnet_orig.c 2005-02-11 19:14:59.455525200 -0500 -+++ linux-2.6.9/drivers/usb/net/usbnet.c 2005-02-11 19:17:29.751676712 -0500 -@@ -2374,12 +2374,13 @@ - #endif - size = (sizeof (struct ethhdr) + dev->net->mtu); - -- if ((skb = alloc_skb (size, flags)) == 0) { -+ if ((skb = alloc_skb (size + NET_IP_ALIGN, flags)) == NULL) { - devdbg (dev, "no rx skb"); - defer_kevent (dev, EVENT_RX_MEMORY); - usb_free_urb (urb); - return; - } -+ skb_reserve (skb, NET_IP_ALIGN); - - entry = (struct skb_data *) skb->cb; - entry->urb = urb; diff --git a/packages/linux/openslug-kernel-2.6.9/x1205-rtc.c b/packages/linux/openslug-kernel-2.6.9/x1205-rtc.c deleted file mode 100644 index 50fbc9e280..0000000000 --- a/packages/linux/openslug-kernel-2.6.9/x1205-rtc.c +++ /dev/null @@ -1,548 +0,0 @@ -/* - x1205 - an 12c driver for the Xicor X1205 RTC - Copyright 2004 Karen Spearel - - please send all reports to: - kas11 at tampabay dot rr dot com - - based on linux/drivers/acron/char/pcf8583.h - Copyright (C) 2000 Russell King - - 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. -*/ -/* - - * i2c_adapter is the structure used to identify a physical i2c bus along - * with the access algorithms necessary to access it. - -struct i2c_adapter { - struct module *owner; - unsigned int id; == is algo->id | hwdep.struct->id, for registered values see below - unsigned int class; - struct i2c_algorithm *algo; the algorithm to access the bus - void *algo_data; - - --- administration stuff. - int (*client_register)(struct i2c_client *); - int (*client_unregister)(struct i2c_client *); - - data fields that are valid for all devices - struct semaphore bus_lock; - struct semaphore clist_lock; - - int timeout; - int retries; - struct device dev; the adapter device - struct class_device class_dev; the class device - -#ifdef CONFIG_PROC_FS - No need to set this when you initialize the adapter - int inode; -#endif def CONFIG_PROC_FS - - int nr; - struct list_head clients; - struct list_head list; - char name[I2C_NAME_SIZE]; - struct completion dev_released; - struct completion class_dev_released; -}; -*/ - - -/*========== Driver for the X1205 on the Linksys NSLU2 ==================*/ - -#include <linux/init.h> -#include <linux/i2c.h> -#include <linux/slab.h> -#include <linux/string.h> -#include <linux/errno.h> -#include <linux/bcd.h> -#include <linux/rtc.h> -#include <linux/fs.h> -#include <linux/proc_fs.h> -#include <linux/miscdevice.h> -#include <linux/device.h> -#include <asm/uaccess.h> -#include <asm/system.h> -#include <linux/moduleparam.h> - -#define RTC_GETDATETIME 0 -#define RTC_SETTIME 1 -#define RTC_SETDATETIME 2 - -#define I2C_M_WR 0 // just for consistancy - -// offsets into read buf - add 2 for write buf -#define CCR_SEC 0 -#define CCR_MIN 1 -#define CCR_HOUR 2 -#define CCR_MDAY 3 -#define CCR_MONTH 4 -#define CCR_YEAR 5 -#define CCR_WDAY 6 -#define CCR_Y2K 7 - -#define X1205_I2C_BUS_ADDR 0x6f // hardwired into x1205 -#define X1205_ALM0_BASE 0x00 // Base address of the ALM0 -#define X1205_CCR_BASE 0x30 // Base address of the CCR -#define X1205_SR_ADDR 0x3f // Status Register -#define X1205_SR_WEL 0x02 // Write Enable Latch bit -#define X1205_SR_RWEL 0x04 // Register Write Enable Bit -#define X1205_MILBIT 0x80 // this bit set in ccr.hour for 24 hr mode -#define NOERR 0 -#define RTC_NODATE 0 -#define RTC_DATETOO 1 - -// comment out next line is your x1205 can't do page writes -//#define X1205PAGEWRITE 1 -#ifdef X1205PAGEWRITE -#define DRIVERNAME "Xicor x1205 RTC Driver v0.9.3.3" -#else -#define DRIVERNAME "Xicor x1205 RTC Dvr v0.9.3.3NPW" -#endif - -#define DEBUG KERN_DEBUG - - -static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm, u8 reg_base); -static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm, int datetoo, u8 reg_base); -static int x1205_attach(struct i2c_adapter *adapter); -static int x1205_detach(struct i2c_client *client); -static int x1205_validate_tm(struct rtc_time *tm); -static int x1205_command(struct i2c_client *client, unsigned int cmd, void *arg); -static int x1205_sync_rtc(void); -static int x1205_read(struct file *file, char *buf, size_t count, loff_t *ptr); -static int x1205_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg); -static int x1205_read_proc(char *buf, char **start, off_t off, int len, int *eof, void *data); - -static struct i2c_driver x1205_driver = { - .owner = THIS_MODULE, - .name = DRIVERNAME, - .id = I2C_DRIVERID_X1205, - .flags = I2C_DF_NOTIFY, - .attach_adapter = &x1205_attach, //we don't need to probe...x1205 is hardwired @ 0x6f - .detach_client = &x1205_detach, - .command = &x1205_command, //this prolly never gets called...used internally tho -}; - -static struct i2c_client x1205_i2c_client = { - .id = I2C_DRIVERID_X1205, - .flags = 0, - .addr = X1205_I2C_BUS_ADDR, // chip address - NOTE: 7bit - .adapter = NULL, // the adapter we sit on assigned in attach - .driver = &x1205_driver, // and our access routines - .usage_count = 0, // How many accesses currently to this client - .dev = {}, // the device structure - .list = {}, - .name = DRIVERNAME, - .released = {}, -}; - -static struct file_operations rtc_fops = { - owner: THIS_MODULE, - ioctl: x1205_ioctl, - read: x1205_read, -}; - -static struct miscdevice x1205_miscdev = { - .minor = RTC_MINOR, - .name = "rtc", - .fops = &rtc_fops, -}; -extern int (*set_rtc)(void); -static unsigned epoch = 1900; //coresponds to year 0 -static unsigned rtc_epoch = 2000; -static const unsigned char days_in_mo[] = -{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; - -//===================================CODE====================================== -// in the routines that deal directly with the x1205 hardware, we use -// rtc_time -- month 0-11, hour 0-23, yr = calendar year-epoch -// Epoch is inited as 2000. Time is set to UT -//============================================================================= -static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm, u8 reg_base) -{ - static unsigned char addr[2] = { 0,} ; - unsigned char buf[8]; - struct i2c_msg msgs[2] = { - { client->addr, I2C_M_WR, 2, addr }, //msg 1 = send base address - { client->addr, I2C_M_RD, 8, buf }, //msg 2 = read sequential data - }; - addr[1] = reg_base; - if ((i2c_transfer(client->adapter, msgs, 2)) == 2) { //did we read 2 messages? - printk(KERN_DEBUG "raw x1205 read data - sec-%02x min-%02x hr-%02x mday-%02x mon-%02x year-%02x wday-%02x y2k-%02x\n", - buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6], buf[7]); - tm->tm_sec = BCD2BIN(buf[CCR_SEC]); - tm->tm_min = BCD2BIN(buf[CCR_MIN]); - buf[CCR_HOUR] &= ~X1205_MILBIT; - tm->tm_hour = BCD2BIN(buf[CCR_HOUR]); //hr is 0-23 - tm->tm_mday = BCD2BIN(buf[CCR_MDAY]); - tm->tm_mon = BCD2BIN(buf[CCR_MONTH]); - rtc_epoch = BCD2BIN(buf[CCR_Y2K]) * 100; - tm->tm_year = BCD2BIN(buf[CCR_YEAR]) + rtc_epoch - epoch; - tm->tm_wday = buf[CCR_WDAY]; - printk(KERN_DEBUG "rtc_time output data - sec-%02d min-%02d hr-%02d mday-%02d mon-%02d year-%02d wday-%02d epoch-%d rtc_epoch-%d\n", - tm->tm_sec,tm->tm_min,tm->tm_hour,tm->tm_mday,tm->tm_mon,tm->tm_year,tm->tm_wday,epoch, rtc_epoch); - } else { - printk(KERN_DEBUG "i2c_transfer Read Error\n"); - return -EIO; - } - - return NOERR; -} -// x1205pagewrite allows writing a block of registers in msg3 even though the x1205 says -// nothing about this in its spec. -// it needs more testing as it is possible some x1205s are actually not-completely- -// functional x1226s and there is a reason for the multiple write to not be in the spec. -// anyhow, it is enabled for the time being...and we even push out luck by sending 10 bytes - -static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm, int datetoo, u8 reg_base) -{ - static unsigned char wel[3] = { 0, X1205_SR_ADDR, X1205_SR_WEL }; - static unsigned char rwel[3] = { 0, X1205_SR_ADDR, X1205_SR_WEL | X1205_SR_RWEL }; - static unsigned char diswe[3] = { 0, X1205_SR_ADDR, 0 }; - -#ifdef X1205PAGEWRITE - - static unsigned char buf[10] = { 0, X1205_CCR_BASE, }; - struct i2c_msg msgs[4] = { - { client->addr, I2C_M_WR, 3, wel }, //msg 1 = write WEL to to ccr sr - { client->addr, I2C_M_WR, 3, rwel }, //msg 2 = write RWEL to ccr sr - { client->addr, I2C_M_WR, 10, buf }, //msg 3 = write ccr base addr +seq data - { client->addr, I2C_M_WR, 3, diswe }, //msg 4 = 0 to ccr sr to disable writes - }; - - msgs[2].len = 5; // 5 bytes + addr to set time only - buf [1] = reg_base; - buf[CCR_SEC+2] = BIN2BCD(tm->tm_sec); - buf[CCR_MIN+2] = BIN2BCD(tm->tm_min); - buf[CCR_HOUR+2] = BIN2BCD(tm->tm_hour) | X1205_MILBIT; // set 24 hour format - if (datetoo == 1) { - buf[CCR_MDAY+2] = BIN2BCD(tm->tm_mday); - buf[CCR_MONTH+2] = BIN2BCD(tm->tm_mon); // input is 0-11 - buf[CCR_YEAR+2] = BIN2BCD((tm->tm_year + epoch - rtc_epoch)); // input is yrs since 1900 - buf[CCR_WDAY+2] = tm->tm_wday & 7; - buf[CCR_Y2K+2] = BIN2BCD((rtc_epoch/100)); - msgs[2].len += 5; //5 more bytes to set date - } - printk(KERN_DEBUG "rtc_time input - sec-%02d min-%02d hour-%02d mday-%02d mon-%02d year-%02d wday-%02d epoch-%d rtc_epoch-%d\n", - tm->tm_sec,tm->tm_min,tm->tm_hour,tm->tm_mday,tm->tm_mon,tm->tm_year,tm->tm_wday, epoch, rtc_epoch); - printk(KERN_DEBUG "BCD write data - sec-%02x min-%02x hour-%02x mday-%02x mon-%02x year-%02x wday-%02x y2k-%02x\n", - buf[2],buf[3],buf[4],buf[5],buf[6], buf[7], buf[8], buf[9]); - - if ((i2c_transfer(client->adapter, msgs, 4)) != 4) - return -EIO; - return NOERR; - -#else //do this if page writes aren't working - - int i,xfer; - static unsigned char data[3] = { 0,}; - static unsigned char buf[8]; - - buf[CCR_SEC] = BIN2BCD(tm->tm_sec); - buf[CCR_MIN] = BIN2BCD(tm->tm_min); - buf[CCR_HOUR] = BIN2BCD(tm->tm_hour) | X1205_MILBIT; // set 24 hour format - if (datetoo == 1) { - buf[CCR_MDAY] = BIN2BCD(tm->tm_mday); - buf[CCR_MONTH] = BIN2BCD(tm->tm_mon); // input is 0-11 - buf[CCR_YEAR] = BIN2BCD((tm->tm_year + epoch - rtc_epoch)); // input is yrs since 1900 - buf[CCR_WDAY] = tm->tm_wday & 7; - buf[CCR_Y2K] = BIN2BCD((rtc_epoch/100)); - } - printk(KERN_DEBUG "rtc_time input - sec-%02d min-%02d hour-%02d mday-%02d mon-%02d year-%02d wday-%02d epoch-%d rtc_epoch-%d\n", - tm->tm_sec,tm->tm_min,tm->tm_hour,tm->tm_mday,tm->tm_mon,tm->tm_year,tm->tm_wday, epoch, rtc_epoch); - - xfer = i2c_master_send(client, wel, 3); - printk(KERN_DEBUG "wen - %x\n", xfer); - if (xfer != 3) - return -EIO; - - xfer = i2c_master_send(client, rwel, 3); - printk(KERN_DEBUG "wenb - %x\n", xfer); - if (xfer != 3) - return -EIO; - - for (i = 0; i < 8; i++) { - data[1] = i + reg_base; - data[2] = buf[i]; - xfer = i2c_master_send(client, data, 3); - printk(KERN_DEBUG "xfer - %d addr - %02x data - %02x\n", xfer, data[1], data[2]); - if (xfer != 3) - return -EIO; - }; - - xfer = i2c_master_send(client, diswe, 3); - printk(KERN_DEBUG "wdis - %x\n", xfer); - if (xfer != 3) - return -EIO; - return NOERR; -#endif -} -//============================================================================= - -static int x1205_attach(struct i2c_adapter *adapter) -{ - struct rtc_time tm; - struct timespec tv; - int errno; - - x1205_i2c_client.adapter = adapter; - x1205_i2c_client.id++; - - if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) != NOERR) //test for functional driver - return -EIO; - - if ((errno = i2c_attach_client(&x1205_i2c_client)) != NOERR) - return errno; - - tv.tv_nsec = tm.tm_sec * 10000000; - tv.tv_sec = mktime(tm.tm_year+epoch, tm.tm_mon, tm.tm_mday, tm.tm_hour, - tm.tm_min, tm.tm_sec); - do_settimeofday(&tv); - set_rtc = x1205_sync_rtc; - - printk(KERN_DEBUG "%s attached on adapter %s\n",x1205_i2c_client.name, - x1205_i2c_client.adapter->name); //why is this name a null string? - - return NOERR; -} - -static int x1205_detach(struct i2c_client *client) -{ - int errno; - - if ((errno = i2c_detach_client(client)) != 0) { - printk(KERN_DEBUG "i2c_detach failed - errno = %d\n", errno); - return errno; - } - - return NOERR; -} - -// make sure the rtc_time values are in bounds -static int x1205_validate_tm(struct rtc_time *tm) -{ - tm->tm_year += 1900; - - if (tm->tm_year < 1970) - return -EINVAL; - - if ((tm->tm_mon > 11) || (tm->tm_mday == 0)) - return -EINVAL; - - if (tm->tm_mday > (days_in_mo[tm->tm_mon] + ( (tm->tm_mon == 1) && - ((!(tm->tm_year % 4) && (tm->tm_year % 100) ) || !(tm->tm_year % 400))))) - return -EINVAL; - - if ((tm->tm_year -= epoch) > 255) - return -EINVAL; - - if ((tm->tm_hour >= 24) || (tm->tm_min >= 60) || (tm->tm_sec >= 60)) - return -EINVAL; - return NOERR; -} - -static int x1205_command(struct i2c_client *client, unsigned int cmd, void *tm) -{ - int errno, dodate = RTC_DATETOO; - - if (client == NULL || tm == NULL) - return -EINVAL; - if (!capable(CAP_SYS_TIME)) - return -EACCES; - - printk(KERN_DEBUG "x1205_command %d\n", cmd); - - switch (cmd) { - case RTC_GETDATETIME: - return x1205_get_datetime(client, tm, X1205_CCR_BASE); - - case RTC_SETTIME: // note fall thru - dodate = RTC_NODATE; - case RTC_SETDATETIME: - if ((errno = x1205_validate_tm(tm)) < NOERR) - return errno; - return x1205_set_datetime(client, tm, dodate, X1205_CCR_BASE); - - default: - return -EINVAL; - } -} - -static int x1205_sync_rtc(void) -{ - struct rtc_time new_tm, old_tm; - unsigned long cur_secs = xtime.tv_sec; - - printk(KERN_DEBUG "x1205_sync_rtc entry\n"); - - if (x1205_command(&x1205_i2c_client, RTC_GETDATETIME, &old_tm)) - return 0; - -// xtime.tv_nsec = old_tm.tm_sec * 10000000; //FIXME: - new_tm.tm_sec = cur_secs % 60; - cur_secs /= 60; - new_tm.tm_min = cur_secs % 60; - cur_secs /= 60; - new_tm.tm_hour = cur_secs % 24; - - /* - * avoid writing when we're going to change the day - * of the month. We will retry in the next minute. - * This basically means that if the RTC must not drift - * by more than 1 minute in 11 minutes. - */ - if ((old_tm.tm_hour == 23 && old_tm.tm_min == 59) || - (new_tm.tm_hour == 23 && new_tm.tm_min == 59)) - return 1; - printk(KERN_DEBUG "x1205_sync_rtc exit\n"); - - return x1205_command(&x1205_i2c_client, RTC_SETTIME, &new_tm); -} - -static int x1205_read(struct file *file, char *buf, size_t count, loff_t *ptr) -{ - struct rtc_time tm; - - if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) < NOERR) - return -EIO; - return copy_to_user(buf, &tm, sizeof(tm)) ? -EFAULT : NOERR; -} - -//============================================================================== - -static int x1205_ioctl(struct inode *inode, struct file *file, unsigned int cmd, - unsigned long arg) -{ - struct rtc_time tm; - int errno; - - printk(KERN_DEBUG "ioctl = %x\n", cmd); - - switch (cmd) { - case RTC_RD_TIME: - if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) < NOERR) - return -EIO; - break; - - case RTC_SET_TIME: - if (!capable(CAP_SYS_TIME)) - return -EACCES; - - if (copy_from_user(&tm, (struct rtc_time *) arg, sizeof(struct rtc_time))) - return -EFAULT; - if ((errno = x1205_validate_tm(&tm)) < NOERR) - return errno; - return x1205_set_datetime(&x1205_i2c_client, &tm, RTC_DATETOO, X1205_CCR_BASE); - - case RTC_ALM_SET: //FIXME: set Control Regs - if (copy_from_user(&tm, (struct rtc_time *) arg, sizeof(struct rtc_time))) - return -EFAULT; - return x1205_set_datetime(&x1205_i2c_client, &tm, RTC_DATETOO, X1205_ALM0_BASE); - - case RTC_ALM_READ: - if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_ALM0_BASE)) < NOERR) - return -EIO; - break; - - case RTC_EPOCH_READ: - - return put_user (epoch, (unsigned long __user *)arg); - - case RTC_EPOCH_SET: - if (arg < 1900) - return -EINVAL; - - if (!capable(CAP_SYS_TIME)) - return -EACCES; - - epoch = arg; - return 0; - - default: - return -ENOTTY; - } - return copy_to_user((void __user *)arg, &tm, sizeof tm) ? -EFAULT : 0; - -} - -static int x1205_read_proc(char *buf, char **start, off_t off, int len, int *eof, void *data) -{ - struct rtc_time tm; - int slen, errno; - - if ((errno = x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) < NOERR) - return errno; - -// here we return the real year and the month as 1-12 since it is human-readable - slen = sprintf(buf, "rtc_time\t: %02d:%02d:%02d\nrtc_date\t: %04d-%02d-%02d\n", - tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_year + 1900, tm.tm_mon+1, tm.tm_mday); - printk(KERN_DEBUG "raw rtc_time\t: %02d:%02d:%02d\nraw rtc_date\t: %04d-%02d-%02d\n", - tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_year, tm.tm_mon, tm.tm_mday); - - if (slen <= off + len) - *eof = 1; - *start = buf + off; - slen -= off; - if (slen > len) - slen = len; - if ( slen < 0 ) - slen = 0; - - return slen; -} - -static int __init x1205_init(void) -{ - struct rtc_time tm; - int errno; - printk(KERN_INFO "LOADED %s\n", DRIVERNAME); - - if ((errno = i2c_add_driver(&x1205_driver)) != NOERR) { - dev_dbg(x1205_i2c_client.dev, "x1205_init failed - errno = %d\n", errno); - return (errno); - } - if ((errno = misc_register(&x1205_miscdev)) != NOERR) { - dev_dbg(x1205_i2c_client.dev, "Register Misc Driver failed - errno = %d\n", errno); - i2c_del_driver(&x1205_driver); - return errno; - } - if (create_proc_read_entry("driver/rtc", 0, NULL, x1205_read_proc, NULL) < NOERR) - return -ENOMEM; - if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) != NOERR) //test for functionality - return -EIO; - - return NOERR; -} - -static void __exit x1205_exit(void) -{ - remove_proc_entry("driver/rtc", NULL); - misc_deregister(&x1205_miscdev); - i2c_del_driver(&x1205_driver); - set_rtc = NULL; -} - -MODULE_AUTHOR("Karen Spearel <kas11@tampabay.rr.com>"); -MODULE_DESCRIPTION("Xicor X1205-RTC Driver"); -MODULE_LICENSE("GPL"); -static int debug = 7; -module_param(debug, bool, 0644); -MODULE_PARM_DESC(debug, "Debugging enabled = 1"); - -module_init(x1205_init); -module_exit(x1205_exit); diff --git a/packages/linux/openslug-kernel_2.6.11.2.bb b/packages/linux/openslug-kernel_2.6.11.2.bb deleted file mode 100644 index 8e2555d014..0000000000 --- a/packages/linux/openslug-kernel_2.6.11.2.bb +++ /dev/null @@ -1,64 +0,0 @@ -SECTION = "kernel" -DESCRIPTION = "Linux kernel for the Linksys NSLU2 device" -LICENSE = "GPL" -MAINTAINER = "Chris Larson <kergoth@handhelds.org>" -PR = "r15" - -KERNEL_SUFFIX = "openslug" - -SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.2.tar.bz2 \ - file://nslu2_2.6.11.patch;patch=1 \ - file://usbnet.patch;patch=1 \ - file://ixp4xx_copy_from.patch;patch=1 \ - file://anonymiser.patch;patch=1 \ - file://xscale-reset.patch;patch=1 \ - file://mtd-shutdown.patch;patch=1 \ - file://defconfig \ - file://x1205-rtc.c \ - file://nslu2-io.c \ - file://nslu2-setup.c \ - file://nslu2-pci.c \ - file://nslu2-part.c \ - file://nslu2.h" -S = "${WORKDIR}/linux-2.6.11.2" - -COMPATIBLE_HOST = 'arm.*-linux' - -inherit kernel - -ARCH = "arm" -KERNEL_IMAGETYPE = "zImage" -CMDLINE_CONSOLE ?= "ttyS0,115200n8" -CMDLINE_ROOT ?= "root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc reboot=s" -#CMDLINE_ROOT ?= "root=/dev/ram0 rw rootfstype=ext2,jffs2 initrd=0x01000000,10M init=/linuxrc mem=32M@0x00000000" -CMDLINE = "${CMDLINE_ROOT} ${CMDLINE_CONSOLE}" - -do_configure_prepend() { - install -m 0644 ${WORKDIR}/defconfig ${S}/.config - install -m 0644 ${WORKDIR}/x1205-rtc.c ${S}/drivers/i2c/chips/x1205-rtc.c - install -m 0644 ${WORKDIR}/nslu2-io.c ${S}/arch/arm/mach-ixp4xx/nslu2-io.c - install -m 0644 ${WORKDIR}/nslu2-setup.c ${S}/arch/arm/mach-ixp4xx/nslu2-setup.c - install -m 0644 ${WORKDIR}/nslu2-pci.c ${S}/arch/arm/mach-ixp4xx/nslu2-pci.c - install -m 0644 ${WORKDIR}/nslu2-part.c ${S}/arch/arm/mach-ixp4xx/nslu2-part.c - install -m 0644 ${WORKDIR}/nslu2.h ${S}/include/asm-arm/arch-ixp4xx/nslu2.h - echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config - rm -rf ${S}/include/asm-arm/arch ${S}/include/asm-arm/proc \ - ${S}/include/asm-arm/.proc ${S}/include/asm-arm/.arch -} - -do_deploy() { - install -d ${DEPLOY_DIR}/images - install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${KERNEL_SUFFIX} -} - -do_deploy[dirs] = "${S}" - -addtask deploy before do_build after do_compile - -python () { - # Don't build openslug kernel unless we're targeting an nslu2 - mach = bb.data.getVar("MACHINE", d, 1) - dist = bb.data.getVar("DISTRO", d, 1) - if mach != 'nslu2' or dist != 'openslug': - raise bb.parse.SkipPackage("OpenSlug only builds for the Linksys NSLU2") -} diff --git a/packages/linux/openslug-kernel_2.6.11.bb b/packages/linux/openslug-kernel_2.6.11.bb deleted file mode 100644 index 2b12023fd5..0000000000 --- a/packages/linux/openslug-kernel_2.6.11.bb +++ /dev/null @@ -1,61 +0,0 @@ -SECTION = "kernel" -DESCRIPTION = "Linux kernel for the Linksys NSLU2 device" -LICENSE = "GPL" -MAINTAINER = "Chris Larson <kergoth@handhelds.org>" -PR = "r7" - -KERNEL_SUFFIX = "openslug" - -SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.2.tar.bz2 \ - file://nslu2_2.6.11.patch;patch=1 \ - file://usbnet.patch;patch=1 \ - file://ixp4xx_copy_from.patch;patch=1 \ - file://defconfig \ - file://x1205-rtc.c \ - file://nslu2-io.c \ - file://nslu2-setup.c \ - file://nslu2-pci.c \ - file://nslu2-part.c \ - file://nslu2.h" -S = "${WORKDIR}/linux-2.6.11.2" - -COMPATIBLE_HOST = 'arm.*-linux' - -inherit kernel - -ARCH = "arm" -KERNEL_IMAGETYPE = "zImage" -CMDLINE_CONSOLE ?= "ttyS0,115200n8" -#CMDLINE_ROOT ?= "root=/dev/mtdblock4 rootfstype=jffs2 mem=32M@0x00000000" -CMDLINE_ROOT ?= "root=/dev/ram0 rw rootfstype=ext2,jffs2 initrd=0x01000000,10M init=/linuxrc mem=32M@0x00000000" -CMDLINE = "${CMDLINE_ROOT} ${CMDLINE_CONSOLE}" - -do_configure_prepend() { - install -m 0644 ${WORKDIR}/defconfig ${S}/.config - install -m 0644 ${WORKDIR}/x1205-rtc.c ${S}/drivers/i2c/chips/x1205-rtc.c - install -m 0644 ${WORKDIR}/nslu2-io.c ${S}/arch/arm/mach-ixp4xx/nslu2-io.c - install -m 0644 ${WORKDIR}/nslu2-setup.c ${S}/arch/arm/mach-ixp4xx/nslu2-setup.c - install -m 0644 ${WORKDIR}/nslu2-pci.c ${S}/arch/arm/mach-ixp4xx/nslu2-pci.c - install -m 0644 ${WORKDIR}/nslu2-part.c ${S}/arch/arm/mach-ixp4xx/nslu2-part.c - install -m 0644 ${WORKDIR}/nslu2.h ${S}/include/asm-arm/arch-ixp4xx/nslu2.h - echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config - rm -rf ${S}/include/asm-arm/arch ${S}/include/asm-arm/proc \ - ${S}/include/asm-arm/.proc ${S}/include/asm-arm/.arch -} - -do_deploy() { - install -d ${DEPLOY_DIR}/images - install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${KERNEL_SUFFIX} -} - -do_deploy[dirs] = "${S}" - -addtask deploy before do_build after do_compile - -python () { - # Don't build openslug kernel unless we're targeting an nslu2 - mach = bb.data.getVar("MACHINE", d, 1) - dist = bb.data.getVar("DISTRO", d, 1) - if mach != 'nslu2' or dist != 'openslug': - raise bb.parse.SkipPackage("OpenSlug only builds for the Linksys NSLU2") -} diff --git a/packages/linux/openslug-kernel_2.6.7.bb b/packages/linux/openslug-kernel_2.6.7.bb deleted file mode 100644 index e40d8c03bc..0000000000 --- a/packages/linux/openslug-kernel_2.6.7.bb +++ /dev/null @@ -1,43 +0,0 @@ -SECTION = "kernel" -DESCRIPTION = "Linux kernel for the Linksys NSLU2 device" -LICENSE = "GPL" -MAINTAINER = "Chris Larson <kergoth@handhelds.org>" -PR = "r1" - -KERNEL_SUFFIX = "openslug" - -SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.7.tar.bz2 \ - file://arm-Makefile.patch;patch=1 \ - file://ipx4xx-pci.patch;patch=1 \ - file://arm-timer.patch;patch=1 \ - file://x1205-rtc.patch;patch=1;pnum=0 \ - cvs://anonymous@cvs.sourceforge.net/cvsroot/nslu;module=anyu2/source;method=pserver \ - file://defconfig" -S = "${WORKDIR}/linux-2.6.7" - -COMPATIBLE_HOST = 'arm.*-linux' - -inherit kernel - -ARCH = "arm" -KERNEL_IMAGETYPE = "zImage" -CMDLINE_CONSOLE ?= "ttyS0,115200n8" -CMDLINE_ROOT = "root=/dev/ram0 initrd=0x01000000,10M mem=32M@0x00000000" -CMDLINE = "${CMDLINE_ROOT} ${CMDLINE_CONSOLE}" - -do_configure_prepend() { - install -m 0644 ${WORKDIR}/defconfig ${S}/.config - install -m 0644 ${WORKDIR}/source/x1205-rtc.c ${S}/drivers/i2c/chips/x1205-rtc.c - echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config - rm -rf ${S}/include/asm-arm/arch ${S}/include/asm-arm/proc \ - ${S}/include/asm-arm/.proc ${S}/include/asm-arm/.arch -} - -do_deploy() { - install -d ${DEPLOY_DIR}/images - install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${KERNEL_SUFFIX} -} - -do_deploy[dirs] = "${S}" - -addtask deploy before do_build after do_compile diff --git a/packages/linux/openslug-kernel_2.6.9.bb b/packages/linux/openslug-kernel_2.6.9.bb deleted file mode 100644 index 5397a8fbcc..0000000000 --- a/packages/linux/openslug-kernel_2.6.9.bb +++ /dev/null @@ -1,63 +0,0 @@ -SECTION = "kernel" -DESCRIPTION = "Linux kernel for the Linksys NSLU2 device" -LICENSE = "GPL" -MAINTAINER = "Chris Larson <kergoth@handhelds.org>" -PR = "r11" - -KERNEL_SUFFIX = "openslug" - -SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.9.tar.bz2 \ - file://nslu2_2.6.9.patch;patch=1 \ - file://double_cpdo.patch;patch=1 \ - file://alignment.patch;patch=1 \ - file://usbnet.patch;patch=1 \ - file://defconfig \ - file://x1205-rtc.c \ - file://nslu2-io.c \ - file://nslu2-setup.c \ - file://nslu2-pci.c \ - file://nslu2-part.c \ - file://nslu2.h" -S = "${WORKDIR}/linux-2.6.9" - -COMPATIBLE_HOST = 'arm.*-linux' - -inherit kernel - -ARCH = "arm" -KERNEL_IMAGETYPE = "zImage" -CMDLINE_CONSOLE ?= "ttyS0,115200n8" -#CMDLINE_ROOT = "root=/dev/slug rootfstype=ext2,jffs2 initrd=0x01000000,10M mem=32M@0x00000000" -#CMDLINE_ROOT = "root=/dev/mtdblock4 rootfstype=jffs2 mem=32M@0x00000000" -CMDLINE_ROOT = "root=/dev/ram0 rw rootfstype=ext2,jffs2 initrd=0x01000000,10M init=/linuxrc mem=32M@0x00000000" -CMDLINE = "${CMDLINE_ROOT} ${CMDLINE_CONSOLE}" - -do_configure_prepend() { - install -m 0644 ${WORKDIR}/defconfig ${S}/.config - install -m 0644 ${WORKDIR}/x1205-rtc.c ${S}/drivers/i2c/chips/x1205-rtc.c - install -m 0644 ${WORKDIR}/nslu2-io.c ${S}/arch/arm/mach-ixp4xx/nslu2-io.c - install -m 0644 ${WORKDIR}/nslu2-setup.c ${S}/arch/arm/mach-ixp4xx/nslu2-setup.c - install -m 0644 ${WORKDIR}/nslu2-pci.c ${S}/arch/arm/mach-ixp4xx/nslu2-pci.c - install -m 0644 ${WORKDIR}/nslu2-part.c ${S}/arch/arm/mach-ixp4xx/nslu2-part.c - install -m 0644 ${WORKDIR}/nslu2.h ${S}/include/asm-arm/arch-ixp4xx/nslu2.h - echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config - rm -rf ${S}/include/asm-arm/arch ${S}/include/asm-arm/proc \ - ${S}/include/asm-arm/.proc ${S}/include/asm-arm/.arch -} - -do_deploy() { - install -d ${DEPLOY_DIR}/images - install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${KERNEL_SUFFIX} -} - -do_deploy[dirs] = "${S}" - -addtask deploy before do_build after do_compile - -python () { - # Don't build openslug kernel unless we're targeting an nslu2 - mach = bb.data.getVar("MACHINE", d, 1) - dist = bb.data.getVar("DISTRO", d, 1) - if mach != 'nslu2' or dist != 'openslug': - raise bb.parse.SkipPackage("OpenSlug only builds for the Linksys NSLU2") -} diff --git a/packages/lirc/files/lircd.init b/packages/lirc/files/lircd.init index e549b7ede9..862575b924 100755 --- a/packages/lirc/files/lircd.init +++ b/packages/lirc/files/lircd.init @@ -6,28 +6,28 @@ # -test -f /usr/sbin/lircd || exit 0 +test -f /usr/ssbin/lircd || exit 0 case "$1" in start) echo -n "Starting lirc daemon: lircd" - start-stop-daemon --start --quiet --exec /usr/bin/lircd -- --device=/dev/lirc + start-stop-daemon --start --quiet --exec /usr/sbin/lircd -- --device=/dev/lirc echo "." ;; stop) echo -n "Stopping lirc daemon: lircd" - start-stop-daemon --stop --quiet --exec /usr/bin/lircd + start-stop-daemon --stop --quiet --exec /usr/sbin/lircd echo "." ;; reload|force-reload) - start-stop-daemon --stop --quiet --signal 1 --exec /usr/bin/lircd + start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircd ;; restart) echo -n "Stopping lirc daemon: lircd" - start-stop-daemon --stop --quiet --exec /usr/bin/lircd + start-stop-daemon --stop --quiet --exec /usr/sbin/lircd sleep 1 echo -n "Starting lirc daemon: lircd" - start-stop-daemon --start --quiet --exec /usr/bin/lircd -- --device=/dev/lirc + start-stop-daemon --start --quiet --exec /usr/sbin/lircd -- --device=/dev/lirc echo "." ;; *) diff --git a/packages/lirc/files/lircmd.init b/packages/lirc/files/lircmd.init index 16296f41d9..1a96207dbb 100755 --- a/packages/lirc/files/lircmd.init +++ b/packages/lirc/files/lircmd.init @@ -6,28 +6,28 @@ # -test -f /usr/bin/lircmd || exit 0 +test -f /usr/sbin/lircmd || exit 0 case "$1" in start) echo -n "Starting lirc daemon: lircmd" - start-stop-daemon --start --quiet --exec /usr/bin/lircmd + start-stop-daemon --start --quiet --exec /usr/sbin/lircmd echo "." ;; stop) echo -n "Stopping lirc daemon: lircmd" - start-stop-daemon --stop --quiet --exec /usr/bin/lircmd + start-stop-daemon --stop --quiet --exec /usr/sbin/lircmd echo "." ;; reload|force-reload) - start-stop-daemon --stop --quiet --signal 1 --exec /usr/bin/lircmd + start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircmd ;; restart) echo -n "Stopping lirc daemon: lircmd" - start-stop-daemon --stop --quiet --exec /usr/bin/lircmd + start-stop-daemon --stop --quiet --exec /usr/sbin/lircmd sleep 1 echo -n "Starting lirc daemon: lircmd" - start-stop-daemon --start --quiet --exec /usr/bin/lircmd + start-stop-daemon --start --quiet --exec /usr/sbin/lircmd echo "." ;; *) diff --git a/packages/lirc/lirc_0.6.6+cvs20040918.bb b/packages/lirc/lirc_0.6.6+cvs20040918.bb index e4e9fad461..1bebdff849 100644 --- a/packages/lirc/lirc_0.6.6+cvs20040918.bb +++ b/packages/lirc/lirc_0.6.6+cvs20040918.bb @@ -5,7 +5,7 @@ MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>" LICENSE = "GPL" RDEPENDS = "kernel lirc-modules-${PV}" DEPENDS = "virtual/kernel" -PR = "r7" +PR = "r8" S = "${WORKDIR}/lirc" SRC_URI = "cvs://anonymous@cvs.sourceforge.net/cvsroot/lirc;module=lirc;date=20040918;method=pserver \ diff --git a/packages/lirc/lirc_0.6.6.bb b/packages/lirc/lirc_0.6.6.bb index 0088c50b61..7b304837cd 100644 --- a/packages/lirc/lirc_0.6.6.bb +++ b/packages/lirc/lirc_0.6.6.bb @@ -4,7 +4,7 @@ PRIORITY = "optional" MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>" LICENSE = "GPL" DEPENDS = "virtual/kernel" -PR = "r5" +PR = "r6" SRC_URI = "${SOURCEFORGE_MIRROR}/lirc/lirc-${PV}.tar.gz" S = "${WORKDIR}/lirc-${PV}" diff --git a/packages/lirc/lirc_0.7.0.bb b/packages/lirc/lirc_0.7.0.bb index b7b832422e..4d4f69f922 100644 --- a/packages/lirc/lirc_0.7.0.bb +++ b/packages/lirc/lirc_0.7.0.bb @@ -4,7 +4,7 @@ PRIORITY = "optional" MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>" LICENSE = "GPL" DEPENDS = "virtual/kernel" -PR = "r5" +PR = "r6" SRC_URI = "${SOURCEFORGE_MIRROR}/lirc/lirc-${PV}.tar.gz \ file://split-hauppauge.patch;patch=1 \ diff --git a/packages/lirc/lirc_0.7.1.bb b/packages/lirc/lirc_0.7.1.bb index c865002116..5b04f86e79 100644 --- a/packages/lirc/lirc_0.7.1.bb +++ b/packages/lirc/lirc_0.7.1.bb @@ -3,8 +3,8 @@ SECTION = "console/network" PRIORITY = "optional" MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>" LICENSE = "GPL" -DEPENDS = "virtual/kernel" -PR = "r2" +DEPENDS = "virtual/kernel libx11 libxau libsm ice" +PR = "r4" SRC_URI = "${SOURCEFORGE_MIRROR}/lirc/lirc-${PV}.tar.gz \ file://lircd.init file://lircmd.init" @@ -33,3 +33,6 @@ do_install_append() { cp -pPR ${S}/remotes ${D}${datadir}/lirc/ } +PACKAGES =+ "lirc-x" + +FILES_lirc-x = "${bindir}/irxevent ${bindir}/xmode2" diff --git a/packages/live555/.mtn2git_empty b/packages/live555/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/live555/.mtn2git_empty diff --git a/packages/live555/files/.mtn2git_empty b/packages/live555/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/live555/files/.mtn2git_empty diff --git a/packages/live555/files/config.linux-cross b/packages/live555/files/config.linux-cross new file mode 100644 index 0000000000..d1277da8d1 --- /dev/null +++ b/packages/live555/files/config.linux-cross @@ -0,0 +1,17 @@ +COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_STRSTREAM=1 -D_LARGEFILE_SOURCE=1 +C = c +C_COMPILER = $(CC) +C_FLAGS = $(COMPILE_OPTS) +CPP = cpp +CPLUSPLUS_COMPILER = $(CXX) +CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 +OBJ = o +LINK = $(CXX) -o +LINK_OPTS = -L. +CONSOLE_LINK_OPTS = $(LINK_OPTS) +LIBRARY_LINK = $(LD) -o +LIBRARY_LINK_OPTS = $(LINK_OPTS) -r -Bstatic +LIB_SUFFIX = a +LIBS_FOR_CONSOLE_APPLICATION = +LIBS_FOR_GUI_APPLICATION = +EXE = diff --git a/packages/live555/live555_20051005.bb b/packages/live555/live555_20051005.bb new file mode 100644 index 0000000000..2eaf54e448 --- /dev/null +++ b/packages/live555/live555_20051005.bb @@ -0,0 +1,24 @@ +# live555 OE build file +# Copyright (C) 2005, Koninklijke Philips Electronics NV. All Rights Reserved +# Released under the MIT license (see packages/COPYING) + +DESCRIPTION = "LIVE555 Streaming Media libraries" +HOMEPAGE = "http://live.com/" +LICENSE = "LGPL" +SECTION = "devel" +MAINTAINER = "Eddy Pronk <epronk@muftor.com>" + +SRC_URI = "http://live.com/liveMedia/public/live.2005.10.05.tar.gz \ + file://config.linux-cross" + +S = "${WORKDIR}/live" + +do_configure() { + cp ${WORKDIR}/config.linux-cross . + ./genMakefiles linux-cross +} + +do_compile() { + make +} + diff --git a/packages/logrotate-script/logrotate-script_cvs.bb b/packages/logrotate-script/logrotate-script_cvs.bb index a9dd380596..da05f25a7d 100644 --- a/packages/logrotate-script/logrotate-script_cvs.bb +++ b/packages/logrotate-script/logrotate-script_cvs.bb @@ -5,7 +5,7 @@ PRIORITY = "optional" MAINTAINER = "Bruno Randolf <bruno.randolf@4g-systems.biz>" LICENSE = "GPL" -SRC_URI = "svn://meshcube.org/svn/scripts;module=logrotate" +SRC_URI = "http://meshcube.org/download/logrotate_${CVSDATE}.tgz" S = "${WORKDIR}/${PN}" do_install() { diff --git a/packages/masqmail/.mtn2git_empty b/packages/masqmail/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/masqmail/.mtn2git_empty diff --git a/packages/masqmail/files/.mtn2git_empty b/packages/masqmail/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/masqmail/files/.mtn2git_empty diff --git a/packages/masqmail/files/configure-ac-glib-2-0.patch b/packages/masqmail/files/configure-ac-glib-2-0.patch new file mode 100644 index 0000000000..c5e607f52d --- /dev/null +++ b/packages/masqmail/files/configure-ac-glib-2-0.patch @@ -0,0 +1,11 @@ +--- masqmail-0.2.20/configure.ac.orig 2005-11-11 16:36:05.894559778 -0800 ++++ masqmail-0.2.20/configure.ac 2005-11-11 16:36:19.935443315 -0800 +@@ -20,7 +20,7 @@ AC_STDC_HEADERS + dnl AC_ARG_PROGRAM + AC_PROG_RANLIB + +-AM_PATH_GLIB ++AM_PATH_GLIB_2_0 + + dnl resolver support (default is use it) + AC_ARG_ENABLE(resolver, diff --git a/packages/masqmail/masqmail_0.2.20.bb b/packages/masqmail/masqmail_0.2.20.bb new file mode 100644 index 0000000000..c5f29a7f2e --- /dev/null +++ b/packages/masqmail/masqmail_0.2.20.bb @@ -0,0 +1,31 @@ +# MasqMail from http://innominate.org/kurth/masqmail/ +DESCRIPTION = "MasqMail is a mail server designed for hosts that do not have a permanent internet connection eg. a home network or a single host at home. It has special support for connections to different ISPs. It replaces sendmail or other MTAs such as qmail or exim." +HOMEPAGE = "http://innominate.org/kurth/masqmail/" +MAINTAINER = "John Bowler <jbowler@acm.org>" +SECTION = "console/network" +PRIORITY = "optional" +LICENSE = "GPL" +PR = "r0" + +DEPENDS = "glib-2.0" + +SRC_URI = "http://innominate.org/kurth/masqmail/download/masqmail-${PV}.tar.gz" +SRC_URI += "file://configure-ac-glib-2-0.patch;patch=1" + +EXTRA_OECONF += "--disable-glibtest" +EXTRA_OECONF += "--disable-resolver" +EXTRA_OECONF += "--disable-debug" + +# These are the standard Debian values for ownership of the programs, +# this stuff fakes out the install script chown operations then replicates +# them by setting the ipkg owner/group to the desired values - everything +# ends up owned by the nominated user. +MAIL_USER ?= "mail" +MAIL_GROUP ?= "mail" + +EXTRA_OECONF += "--with-user=$(id -u)" +EXTRA_OECONF += "--with-group=$(id -g)" + +IPKGBUILDCMD = "ipkg-build -o ${MAIL_USER} -g ${MAIL_GROUP}" + +inherit autotools diff --git a/packages/matchbox-applet-cards/.mtn2git_empty b/packages/matchbox-applet-cards/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/matchbox-applet-cards/.mtn2git_empty diff --git a/packages/matchbox-applet-cards/files/.mtn2git_empty b/packages/matchbox-applet-cards/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/matchbox-applet-cards/files/.mtn2git_empty diff --git a/packages/matchbox-applet-cards/files/cards.png b/packages/matchbox-applet-cards/files/cards.png Binary files differnew file mode 100644 index 0000000000..241adcafb9 --- /dev/null +++ b/packages/matchbox-applet-cards/files/cards.png diff --git a/packages/matchbox-applet-cards/files/cf_mount.png b/packages/matchbox-applet-cards/files/cf_mount.png Binary files differnew file mode 100644 index 0000000000..4b4b02e3ef --- /dev/null +++ b/packages/matchbox-applet-cards/files/cf_mount.png diff --git a/packages/matchbox-applet-cards/files/cf_unmount.png b/packages/matchbox-applet-cards/files/cf_unmount.png Binary files differnew file mode 100644 index 0000000000..f0137b5fe5 --- /dev/null +++ b/packages/matchbox-applet-cards/files/cf_unmount.png diff --git a/packages/matchbox-applet-cards/files/gpe-applet-cards b/packages/matchbox-applet-cards/files/gpe-applet-cards new file mode 100644 index 0000000000..c263567682 --- /dev/null +++ b/packages/matchbox-applet-cards/files/gpe-applet-cards @@ -0,0 +1,3 @@ +#!/bin/sh + +`gpe-su -c /usr/bin/mb-applet-cards` diff --git a/packages/matchbox-applet-cards/files/oz-gpe.patch b/packages/matchbox-applet-cards/files/oz-gpe.patch new file mode 100644 index 0000000000..8f3f16bd67 --- /dev/null +++ b/packages/matchbox-applet-cards/files/oz-gpe.patch @@ -0,0 +1,466 @@ +--- mb-applet-cards-1.0.2/mb-applet-cards.desktop.ori 2005-11-10 21:17:56.000000000 +0100 ++++ mb-applet-cards-1.0.2/mb-applet-cards.desktop 2005-11-10 21:18:11.000000000 +0100 +@@ -1,7 +1,7 @@ + [Desktop Entry] + Name=CF/SD Monitor + Comment=Panel based CF/SD Monitor +-Exec=mb-applet-cards ++Exec=gpe-applet-cards + Type=PanelApp + Icon=cards.png + Categories=Panel;Utility;MB +--- mb-applet-cards-1.0.2/mb-applet-cards.c.ori 2005-09-13 22:18:53.000000000 +0200 ++++ mb-applet-cards-1.0.2/mb-applet-cards.c 2005-11-15 10:33:13.000000000 +0100 +@@ -47,6 +47,8 @@ + #define POPUP_PTR_SZ 10 + + #define IMG_PREFIX "/usr/share/pixmaps" ++#define SD_MOUNT_PATH "/media/card" ++#define CARD_CONTROL "/sbin/cardctl" + + static char *ImgLookup[64] = { + "cards." IMG_EXT, +@@ -71,8 +73,8 @@ + + GtkWidget *cards_window; + GtkWidget *cards; +-GtkWidget *button; +-GtkWidget *button1; ++GtkWidget *button_cf; ++GtkWidget *button_sd; + GtkWidget *boxV; + GtkWidget *box_cf; + GtkWidget *box_sd; +@@ -123,15 +125,15 @@ + int err; + gtk_widget_hide (cards_window); + if (old_cf_status == 1) { +- err = system("cardctl eject 0"); +- if (err != 0) { +- error_dialog("CF/PCMCIA card eject failed!"); +- } ++ err = system(CARD_CONTROL " eject 0"); ++ if (err != 0) { ++ error_dialog("CF/PCMCIA card eject failed!"); ++ } + } else { +- err = system("cardctl insert 0"); +- if (err != 0) { +- error_dialog("CF/PCMCIA card insert failed!"); +- } ++ err = system(CARD_CONTROL " insert 0"); ++ if (err != 0) { ++ error_dialog("CF/PCMCIA card insert failed!"); ++ } + } + } + +@@ -142,15 +144,15 @@ + GtkWidget *dialog; + gtk_widget_hide (cards_window); + if (old_sd_status == 1) { +- err = system("umount /mnt/card"); +- if (err != 0) { +- error_dialog("SD/MMC card unmount failed!"); +- } ++ err = system("umount " SD_MOUNT_PATH); ++ if (err != 0) { ++ error_dialog("SD/MMC card unmount failed!"); ++ } + } else { +- err = system("mount /mnt/card"); +- if (err != 0) { +- error_dialog("SD/MMC card mount failed!"); +- } ++ err = system("mount " SD_MOUNT_PATH); ++ if (err != 0) { ++ error_dialog("SD/MMC card mount failed!"); ++ } + } + } + +@@ -158,35 +160,35 @@ + { + boxV = gtk_vbox_new(FALSE, 0); + +- button = gtk_button_new (); ++ button_cf = gtk_button_new (); + +- g_signal_connect (G_OBJECT (button), "clicked", +- G_CALLBACK (callback_cf), (gpointer) "cool button"); ++ g_signal_connect (G_OBJECT (button_cf), "clicked", ++ G_CALLBACK (callback_cf), (gpointer) "button_cf"); + + box_cf = xpm_label_box (IMG_PREFIX "/cf_mount.png", "CF eject\nlala"); + + gtk_widget_show (box_cf); + +- gtk_container_add (GTK_CONTAINER (button), box_cf); ++ gtk_container_add (GTK_CONTAINER (button_cf), box_cf); + +- gtk_box_pack_start(GTK_BOX(boxV), button, FALSE, FALSE, 0); ++ gtk_box_pack_start(GTK_BOX(boxV), button_cf, FALSE, FALSE, 0); + +- gtk_widget_show (button); ++ gtk_widget_show (button_cf); + +- button1 = gtk_button_new (); ++ button_sd = gtk_button_new (); + +- g_signal_connect (G_OBJECT (button1), "clicked", +- G_CALLBACK (callback_sd), (gpointer) "cool button1"); ++ g_signal_connect (G_OBJECT (button_sd), "clicked", ++ G_CALLBACK (callback_sd), (gpointer) "button_sd"); + + box_sd = xpm_label_box (IMG_PREFIX "/sd_mount.png", "SD eject"); + + gtk_widget_show (box_sd); + +- gtk_container_add (GTK_CONTAINER (button1), box_sd); ++ gtk_container_add (GTK_CONTAINER (button_sd), box_sd); + +- gtk_box_pack_start(GTK_BOX(boxV), button1, FALSE, FALSE, 0); ++ gtk_box_pack_start(GTK_BOX(boxV), button_sd, FALSE, FALSE, 0); + +- gtk_widget_show (button1); ++ gtk_widget_show (button_sd); + + gtk_container_add (GTK_CONTAINER (cards_window), boxV); + +@@ -198,49 +200,51 @@ + int sd_found = 0; + FILE *inf; + char buf[256]; +- inf = fopen("/var/lib/pcmcia/stab", "r"); ++ //inf = fopen("/var/lib/pcmcia/stab", "r"); ++ inf = fopen("/var/run/stab", "r"); + fgets(buf, 256, inf); + fclose(inf); + if (strncmp(buf, "Socket 0: empty", 15 ) == 0) { +-// if (old_cf_status != 0) { +- gtk_widget_destroy(box_cf); +- box_cf = xpm_label_box (IMG_PREFIX "/cf_unmount.png", "empty"); +- gtk_widget_show (box_cf); +- gtk_container_add (GTK_CONTAINER (button), box_cf); +-// } +- old_cf_status = 0; ++// if (old_cf_status != 0) { ++ gtk_widget_destroy(box_cf); ++ box_cf = xpm_label_box (IMG_PREFIX "/cf_unmount.png", "empty"); ++ gtk_widget_show (box_cf); ++ gtk_container_add (GTK_CONTAINER (button_cf), box_cf); ++// } ++ old_cf_status = 0; + } else { +-// if (old_cf_status != 1) { +- gtk_widget_destroy(box_cf); +- box_cf = xpm_label_box (IMG_PREFIX "/cf_mount.png", &buf[10]); +- gtk_widget_show (box_cf); +- gtk_container_add (GTK_CONTAINER (button), box_cf); +-// } +- old_cf_status = 1; ++// if (old_cf_status != 1) { ++ gtk_widget_destroy(box_cf); ++ box_cf = xpm_label_box (IMG_PREFIX "/cf_mount.png", &buf[10]); ++ gtk_widget_show (box_cf); ++ gtk_container_add (GTK_CONTAINER (button_cf), box_cf); ++// } ++ old_cf_status = 1; + } + + inf = fopen("/etc/mtab", "r"); + while (!feof(inf)) { +- fgets(buf, 256, inf); +- if (strncmp(buf, "/dev/mmcd", 9) == 0) sd_found = 1; ++ fgets(buf, 256, inf); ++ //if (strncmp(buf, "/dev/mmcd", 9) == 0) sd_found = 1; ++ if (strncmp(buf, "/dev/mmc", 8) == 0) sd_found = 1; + } + fclose(inf); + if (sd_found == 0) { +-// if (old_sd_status != 0) { +- gtk_widget_destroy(box_sd); +- box_sd = xpm_label_box (IMG_PREFIX "/sd_unmount.png", "empty"); +- gtk_widget_show (box_sd); +- gtk_container_add (GTK_CONTAINER (button1), box_sd); +-// } +- old_sd_status = 0; ++// if (old_sd_status != 0) { ++ gtk_widget_destroy(box_sd); ++ box_sd = xpm_label_box (IMG_PREFIX "/sd_unmount.png", "empty"); ++ gtk_widget_show (box_sd); ++ gtk_container_add (GTK_CONTAINER (button_sd), box_sd); ++// } ++ old_sd_status = 0; + } else { +-// if (old_sd_status != 1) { +- gtk_widget_destroy(box_sd); +- box_sd = xpm_label_box (IMG_PREFIX "/sd_mount.png", "SD card"); +- gtk_widget_show (box_sd); +- gtk_container_add (GTK_CONTAINER (button1), box_sd); +-// } +- old_sd_status = 1; ++// if (old_sd_status != 1) { ++ gtk_widget_destroy(box_sd); ++ box_sd = xpm_label_box (IMG_PREFIX "/sd_mount.png", "SD card"); ++ gtk_widget_show (box_sd); ++ gtk_container_add (GTK_CONTAINER (button_sd), box_sd); ++// } ++ old_sd_status = 1; + } + } + +@@ -250,13 +254,13 @@ + paint_callback (MBTrayApp *app, Drawable drw ) + { + MBPixbufImage *img_backing = NULL; +- ++ + img_backing = mb_tray_app_get_background (app, pb); + + /* CurrentVolLevel */ +- mb_pixbuf_img_composite(pb, img_backing, +- ImgsScaled[0], +- 0, 0); ++ mb_pixbuf_img_composite(pb, img_backing, ++ ImgsScaled[0], ++ 0, 0); + + mb_pixbuf_img_render_to_drawable(pb, img_backing, drw, 0, 0); + +@@ -284,48 +288,46 @@ + for (i=0; i<1; i++) + { + if (Imgs[i] != NULL) mb_pixbuf_img_free(pb, Imgs[i]); +- icon_path = mb_dot_desktop_icon_get_full_path (ThemeName, +- 32, +- ImgLookup[i]); +- +- if (icon_path == NULL +- || !(Imgs[i] = mb_pixbuf_img_new_from_file(pb, icon_path))) +- { +- fprintf(stderr, "cards: failed to load icon\n" ); +- exit(1); +- } ++ icon_path = mb_dot_desktop_icon_get_full_path (ThemeName, ++ 32, ++ ImgLookup[i]); + ++ if (icon_path == NULL ++ || !(Imgs[i] = mb_pixbuf_img_new_from_file(pb, icon_path))) ++ { ++ fprintf(stderr, "cards: failed to load icon\n" ); ++ exit(1); ++ } + free(icon_path); + } + } + +-void ++void + theme_callback (MBTrayApp *app, char *theme_name) + { + if (!theme_name) return; + if (ThemeName) free(ThemeName); + ThemeName = strdup(theme_name); +- load_icons(); ++ load_icons(); + resize_callback (app, mb_tray_app_width(app), mb_tray_app_width(app) ); + } + ++/* + gboolean + popup_close (GtkWidget *w, GtkWidget *list_view) + { + gtk_widget_hide (cards_window); + PopupIsMapped = False; +- + } ++*/ + + static void + cards_clicked (GtkWidget *w, GdkEventButton *ev) + { + gdk_pointer_ungrab (ev->time); +- + gtk_widget_hide (cards_window); + } + +- + static void + button_callback (MBTrayApp *app, int cx, int cy, Bool is_released) + { +@@ -337,6 +339,7 @@ + if (PopupIsMapped) { + gtk_widget_hide (cards_window); + PopupIsMapped = False; ++ return; + } + + mb_tray_app_get_absolute_coords (app, &x, &y); +@@ -344,65 +347,58 @@ + gtk_widget_show_all (cards_window); + + gdk_window_get_geometry (cards_window->window, NULL, NULL, +- &win_w, &win_h, NULL); ++ &win_w, &win_h, NULL); + + if (mb_tray_app_tray_is_vertical (app)) + { +- if (x > (DisplayWidth(mb_tray_app_xdisplay(app), +- mb_tray_app_xscreen(app)) /2) ) +- x -= ( mb_tray_app_width(app) + win_w ); ++ if (x > (DisplayWidth(mb_tray_app_xdisplay(app), ++ mb_tray_app_xscreen(app)) /2) ) ++ x -= ( mb_tray_app_width(app) + win_w ); + else +- x += mb_tray_app_width(app); ++ x += mb_tray_app_width(app); + } + else + { + if (y < mb_tray_app_height(app)) +- { y = mb_tray_app_height(app); } ++ { y = mb_tray_app_height(app); } + else +- { +- y = DisplayHeight(mb_tray_app_xdisplay(app), +- mb_tray_app_xscreen(app)) +- - win_h - mb_tray_app_height(app) - 4; +- } +- +- x -= (mb_tray_app_width(app)/2); +- +- if ((x + win_w) > DisplayWidth(mb_tray_app_xdisplay(app), +- mb_tray_app_xscreen(app))) +- x = DisplayWidth(mb_tray_app_xdisplay(app), +- mb_tray_app_xscreen(app)) - win_w - 2; ++ { ++ y = DisplayHeight(mb_tray_app_xdisplay(app), ++ mb_tray_app_xscreen(app)) ++ - win_h - mb_tray_app_height(app) - 4; ++ } ++ ++ x -= (mb_tray_app_width(app)/2); ++ ++ if ((x + win_w) > DisplayWidth(mb_tray_app_xdisplay(app), ++ mb_tray_app_xscreen(app))) ++ x = DisplayWidth(mb_tray_app_xdisplay(app), ++ mb_tray_app_xscreen(app)) - win_w - 2; + } + +- + check_for_cards(); +- ++ + gtk_widget_set_uposition (GTK_WIDGET (cards_window), x, y); +- ++ + gdk_pointer_grab (cards_window->window, TRUE, GDK_BUTTON_PRESS_MASK, NULL, NULL, CurrentTime); + + PopupIsMapped = True; + } + +- ++/* + void + popup_vol_changed_cb (GtkAdjustment *adj, gpointer data) + { + int value; + MBTrayApp *app = (MBTrayApp *)data; +- + + mb_tray_app_repaint(app); + } ++*/ + + void + popup_init(MBTrayApp *app) + { +- GtkWidget *vbox; +- GtkWidget *hbox; +- GtkWidget *label; +- GtkWidget *button_mute, *button_ok; +- GtkAdjustment *adj; +- + cards_window = gtk_window_new (GTK_WINDOW_POPUP); + + g_signal_connect (G_OBJECT (cards_window), "button-press-event", G_CALLBACK (cards_clicked), NULL); +@@ -412,8 +408,6 @@ + gtk_widget_realize (cards_window); + } + +- +- + GdkFilterReturn + event_filter (GdkXEvent *xev, GdkEvent *gev, gpointer data) + { +@@ -430,7 +424,6 @@ + static gboolean + cards_timeout_cb (MBTrayApp *app) + { +- + mb_tray_app_repaint(app); + + return TRUE; +@@ -451,40 +444,39 @@ + #endif + + /* XXX check for err_str here */ +- + app = mb_tray_app_new_with_display ( "CF/SD Monitor", +- resize_callback, +- paint_callback, +- &argc, +- &argv, +- GDK_DISPLAY ()); +- +- if (!app) exit(0); +- +- pb = mb_pixbuf_new(mb_tray_app_xdisplay(app), +- mb_tray_app_xscreen(app)); +- ++ resize_callback, ++ paint_callback, ++ &argc, ++ &argv, ++ GDK_DISPLAY ()); ++ ++ if (!app) exit(0); ++ ++ pb = mb_pixbuf_new(mb_tray_app_xdisplay(app), ++ mb_tray_app_xscreen(app)); ++ + mb_tray_app_set_theme_change_callback (app, theme_callback ); + + mb_tray_app_set_button_callback (app, button_callback ); +- ++ + gtk_timeout_add (500, +- (GSourceFunc) cards_timeout_cb, +- app); +- ++ (GSourceFunc) cards_timeout_cb, ++ app); ++ + load_icons(); +- ++ + mb_tray_app_set_icon(app, pb, Imgs[0]); + + popup_init(app); + + mb_tray_app_main_init (app); +- ++ + gdk_window_add_filter (NULL, event_filter, (gpointer)app ); +- ++ + init_buttons(); +- ++ + gtk_main (); +- ++ + return 1; + } diff --git a/packages/matchbox-applet-cards/files/sd_mount.png b/packages/matchbox-applet-cards/files/sd_mount.png Binary files differnew file mode 100644 index 0000000000..c654aa3514 --- /dev/null +++ b/packages/matchbox-applet-cards/files/sd_mount.png diff --git a/packages/matchbox-applet-cards/files/sd_unmount.png b/packages/matchbox-applet-cards/files/sd_unmount.png Binary files differnew file mode 100644 index 0000000000..6d0e0c6054 --- /dev/null +++ b/packages/matchbox-applet-cards/files/sd_unmount.png diff --git a/packages/matchbox-applet-cards/matchbox-applet-cards_1.0.2.bb b/packages/matchbox-applet-cards/matchbox-applet-cards_1.0.2.bb new file mode 100644 index 0000000000..ca40ea572c --- /dev/null +++ b/packages/matchbox-applet-cards/matchbox-applet-cards_1.0.2.bb @@ -0,0 +1,28 @@ +DESCRIPTION = "Panel applet to eject cards (from PdaXrom project)" +LICENSE = "GPL" +DEPENDS = "matchbox-wm libmatchbox" +SECTION = "x11/wm" +PR = "r1" + +SRC_URI = "http://212.10.30.205/rc12/src/mb-applet-cards-${PV}.tar.bz2 \ + file://oz-gpe.patch;patch=1 \ + file://gpe-applet-cards \ + file://cf_mount.png \ + file://cf_unmount.png \ + file://sd_mount.png \ + file://sd_unmount.png \ + file://cards.png" +S = "${WORKDIR}/mb-applet-cards-${PV}" + +inherit autotools pkgconfig + +FILES_${PN} = "${bindir} ${datadir}/applications ${datadir}/pixmaps" + +do_install_append() { + install -m 0755 ${WORKDIR}/gpe-applet-cards ${D}${bindir}/gpe-applet-cards + install -m 0644 ${WORKDIR}/cf_mount.png ${D}${datadir}/pixmaps/cf_mount.png + install -m 0644 ${WORKDIR}/cf_unmount.png ${D}${datadir}/pixmaps/cf_unmount.png + install -m 0644 ${WORKDIR}/sd_mount.png ${D}${datadir}/pixmaps/sd_mount.png + install -m 0644 ${WORKDIR}/sd_unmount.png ${D}${datadir}/pixmaps/sd_unmount.png + install -m 0644 ${WORKDIR}/cards.png ${D}${datadir}/pixmaps/cards.png +} diff --git a/packages/matchbox-panel/matchbox-panel.inc b/packages/matchbox-panel/matchbox-panel.inc index 58f42ef7f5..7ae9342b42 100644 --- a/packages/matchbox-panel/matchbox-panel.inc +++ b/packages/matchbox-panel/matchbox-panel.inc @@ -14,7 +14,7 @@ EXTRA_OECONF_append_h2200 = " --enable-small-icons " EXTRA_OECONF_append_collie = " --enable-small-icons " EXTRA_OECONF_append_poodle = " --enable-small-icons " EXTRA_OECONF_append_mnci = " --enable-small-icons " -EXTRA_OECONF_append_integral = " --enable-small-icons " +EXTRA_OECONF_append_integral13 = " --enable-small-icons " FILES_${PN} = "${bindir} \ ${datadir}/applications \ diff --git a/packages/matchbox-panel/matchbox-panel_0.9.2.bb b/packages/matchbox-panel/matchbox-panel_0.9.2.bb index 2477cd8b2d..78d1b282d9 100644 --- a/packages/matchbox-panel/matchbox-panel_0.9.2.bb +++ b/packages/matchbox-panel/matchbox-panel_0.9.2.bb @@ -1,6 +1,6 @@ include matchbox-panel.inc -PR="r2" +PR="r3" SRC_URI = "http://projects.o-hand.com/matchbox/sources/${PN}/0.9/${PN}-${PV}.tar.gz" diff --git a/packages/meta/ucslugc-image.bb b/packages/meta/ludeos-image.bb index a939d41531..a939d41531 100644 --- a/packages/meta/ucslugc-image.bb +++ b/packages/meta/ludeos-image.bb diff --git a/packages/meta/ludeos-packages.bb b/packages/meta/ludeos-packages.bb new file mode 100644 index 0000000000..1f9a1865a2 --- /dev/null +++ b/packages/meta/ludeos-packages.bb @@ -0,0 +1 @@ +DEPENDS = openslug-packages diff --git a/packages/meta/meta-gpe.bb b/packages/meta/meta-gpe.bb index 8e09472c5b..ae0fe753d1 100644 --- a/packages/meta/meta-gpe.bb +++ b/packages/meta/meta-gpe.bb @@ -33,6 +33,7 @@ gpe-task-base = "\ gpe-autostarter \ libgtkstylus \ detect-stylus \ + suspend-desktop \ teleport \ xauth" @@ -106,8 +107,9 @@ DEPENDS += " ${gpe-task-games}" gpe-task-connectivity = "\ gpe-mini-browser \ - gaim \ - linphone-hh" +" +# gaim \ +# linphone-hh" RDEPENDS_gpe-task-connectivity := "${gpe-task-connectivity}" DEPENDS += " ${gpe-task-connectivity}" diff --git a/packages/meta/meta-opie.bb b/packages/meta/meta-opie.bb index 4e43f3fbc3..f82a69f367 100644 --- a/packages/meta/meta-opie.bb +++ b/packages/meta/meta-opie.bb @@ -1,7 +1,7 @@ DESCRIPTION = "Meta-package for Opie" SECTION = "opie/base" ALLOW_EMPTY = 1 -PR = "r31" +PR = "r32" PACKAGE_ARCH = "all" LICENSE = "MIT" @@ -23,7 +23,7 @@ PACKAGES = "task-opie-applets task-opie-apps task-opie-base \ # DEPENDS = "irda-utils ntp timezones ttf-dejavu \ - bluez-utils-nodbus wireless-tools usbutils \ + bluez-utils-nodbus wireless-tools \ opie-ttf-support libopieobex0 opie-examples-python \ opie-freetype opie-help-en opie-i18n opie-login \ opie-securityplugin-blueping opie-securityplugin-dummy \ diff --git a/packages/meta/openslug-image.bb b/packages/meta/openslug-image.bb deleted file mode 100644 index e97d57702b..0000000000 --- a/packages/meta/openslug-image.bb +++ /dev/null @@ -1,58 +0,0 @@ -# This describes a generic NSLU2 image, even though the bb file is -# called 'openslug-image.bb' the OpenSlug specific configuration is -# done in conf/distro/openslug.conf -# -PR = "r15" - -IMAGE_BASENAME = "openslug" - -IMAGE_LINGUAS = "" -# Setting USE_DEVFS prevents *any* entries being created initially -# in /dev -USE_DEVFS = "1" - -# diff, cpio and find are required for reflash and turnup ram. -# Removing these probably leaves the system bootable, but standard -# openslug and ucslugc stuff won't work, so only take these out in -# very non-standard turnkey ucslugc builds. -# -# udev is the default way of handling devices, there is no guarantee -# that the static device table is completely correct (it is just -# known to be sufficient for boot.) -OPENSLUG_SUPPORT ?= "diffutils cpio findutils udev" - -# NOTE: file system kernel modules are defined in openslug.conf -# (OPENSLUG_EXTRA_FILESYSTEMS, included in OPENSLUG_EXTRA_INSTALL) -# kernel-module-af-packet must be in the image for DHCP to work -OPENSLUG_KERNEL ?= "kernel-module-af-packet kernel-module-netconsole" - -# The things explicitly included in the following lists are the -# absolute minimum to have any chance of a bootable system. -DEPENDS = "virtual/kernel base-files base-passwd \ - busybox dropbear hotplug-ng initscripts-openslug netbase \ - sysvinit tinylogin portmap \ - virtual/ixp-eth openslug-init \ - module-init-tools modutils-initscripts \ - ipkg-collateral ipkg ipkg-link \ - ${OPENSLUG_SUPPORT} \ - ${OPENSLUG_EXTRA_DEPENDS}" - -IPKG_INSTALL = "base-files base-passwd \ - busybox dropbear hotplug-ng initscripts-openslug netbase \ - update-modules sysvinit tinylogin portmap \ - ${PREFERRED_PROVIDER_virtual/ixp-eth} openslug-init \ - module-init-tools modutils-initscripts \ - ipkg-collateral ipkg ipkg-link \ - ${OPENSLUG_SUPPORT} \ - ${OPENSLUG_KERNEL} \ - ${OPENSLUG_EXTRA_INSTALL}" - -inherit image_ipk - -python () { - # Don't build openslug images unless we're targeting an nslu2 - mach = bb.data.getVar("MACHINE", d, 1) - if mach != 'nslu2': - raise bb.parse.SkipPackage("OpenSlug only builds for the Linksys NSLU2") -} -LICENSE = MIT diff --git a/packages/meta/openslug-native-packages.bb b/packages/meta/openslug-native-packages.bb deleted file mode 100644 index 262db42a9f..0000000000 --- a/packages/meta/openslug-native-packages.bb +++ /dev/null @@ -1,17 +0,0 @@ -DESCRIPTION = "Packages that are to be compiled nativly for the OpenSlug firmware" -LICENSE = MIT -PR = "r3" - -INHIBIT_DEFAULT_DEPS = "1" -ALLOW_EMPTY = 1 -PACKAGES = "${PN}" - -OPENSLUG_NATIVE_PACKAGES = "\ - apache \ - " - -BROKEN_PACKAGES = "\ - " - -DEPENDS = '${OPENSLUG_NATIVE_PACKAGES} \ - package-index' diff --git a/packages/meta/openslug-native.bb b/packages/meta/openslug-native.bb deleted file mode 100644 index cef0bd6a49..0000000000 --- a/packages/meta/openslug-native.bb +++ /dev/null @@ -1,52 +0,0 @@ -DESCRIPTION = "Packages that are required for the OpenSlug native build environment" -LICENSE = MIT -PR = "r11" - -INHIBIT_DEFAULT_DEPS = "1" -ALLOW_EMPTY = 1 -PACKAGES = "${PN}" - -OPENSLUG_NATIVE = "\ - autoconf \ - automake \ - bash \ - binutils binutils-dev binutils-symlinks \ - bison \ - bzip2 \ - coreutils \ - cpp cpp-symlinks \ - cvs \ - file \ - flex \ - gawk \ - g++ g++-symlinks \ - gcc gcc-symlinks \ - glibc-extra-nss glibc-utils \ - gnu-config \ - gzip \ - libc6 libc6-dev \ - libg2c-dev \ - libgdbm3 \ - libperl5 \ - libreadline4 libreadline-dev \ - libstdc++-dev \ - libthread-db1 \ - libtool \ - lrzsz \ - m4 \ - make \ - monotone-5 \ - ncurses ncurses-dev ncurses-terminfo \ - patch \ - perl perl-modules \ - pkgconfig \ - python-core python-crypt python-io python-lang python-pickle python-shell python-textutils \ - quilt \ - sed \ - tar \ - util-linux \ - wget \ - " - -RDEPENDS = '${OPENSLUG_NATIVE}' - diff --git a/packages/meta/openslug-packages.bb b/packages/meta/openslug-packages.bb deleted file mode 100644 index 13d29a0961..0000000000 --- a/packages/meta/openslug-packages.bb +++ /dev/null @@ -1,150 +0,0 @@ -DESCRIPTION = "Packages that are compatible with the OpenSlug firmware" -LICENSE = MIT -PR = "r7" - -INHIBIT_DEFAULT_DEPS = "1" -ALLOW_EMPTY = 1 -PACKAGES = "${PN}" - -OPENSLUG_PACKAGES = "\ - alsa-lib \ - alsa-utils \ - atftp \ - autoconf \ - automake \ - aumix \ - bash \ - bind \ - binutils \ - bison \ - bluez-utils-nodbus \ - bogofilter \ - bridge-utils \ - bwmon \ - bzip2 \ - ccxstream \ - coreutils \ - cron \ - ctorrent \ - ctrlproxy \ - cvs\ - cyrus-imapd \ - db4 \ - diffstat \ - diffutils \ - dnsmasq \ - expat \ - file \ - findutils \ - flex \ - ftpd-topfield \ - gawk \ - gcc \ - gdb \ - glib-2.0 \ - gnu-config \ - gphoto2 \ - grep \ - gtk-doc \ - gzip \ - ifupdown \ - iperf \ - ipkg-utils \ - iptables \ - irssi \ - joe \ - jpeg \ - lcdproc \ - less \ - libdvb \ - libpam \ - libpng \ - libtool \ - libusb \ - libxml2 \ - lsof \ - m4 \ - mailx \ - make \ - man man-pages \ - mdadm \ - mgetty \ - miau \ - microcom \ - minicom \ - monotone-5 \ - mpd \ - mtd-utils \ - mt-daapd \ - mutt \ - mysql \ - nail \ - nano \ - ncftp \ - ncurses \ - netpbm \ - nfs-utils \ - ntp \ - obexftp openobex openobex-apps ircp \ - openldap \ - openntpd \ - openssh \ - openvpn \ - patch \ - pciutils \ - pcre \ - perl \ - pkgconfig \ - postfix \ - ppp \ - procps \ - psmisc \ - puppy \ - pwc \ - python \ - qc-usb-messenger \ - quilt \ - reiserfsprogs reiser4progs \ - rsync \ - samba \ - sane-backends \ - screen \ - sed \ - setpwc \ - ssmtp \ - strace \ - streamripper \ - sudo \ - sysfsutils \ - syslog-ng \ - tar \ - thttpd \ - tiff \ - timezones \ - unionfs-modules unionfs-utils \ - usbutils \ - util-linux \ - vim \ - vlan \ - vsftpd \ - wakelan \ - wireless-tools \ - wget \ - xinetd \ - yp-tools ypbind ypserv \ - zd1211 \ - zlib \ - " - -BROKEN_PACKAGES = "\ - groff \ - icecast \ - pvrusb2-mci \ - watchdog \ - zd1211 \ - " - -DEPENDS = 'openslug-image \ - ${OPENSLUG_PACKAGES} \ - openslug-native \ - package-index' diff --git a/packages/meta/slugos-image.bb b/packages/meta/slugos-image.bb new file mode 100644 index 0000000000..1595337981 --- /dev/null +++ b/packages/meta/slugos-image.bb @@ -0,0 +1,138 @@ +# This describes a generic NSLU2 image, even though the bb file is +# called 'slugos-image.bb' the distro specific configuration is +# done in conf/distro/${DISTRO}.conf (which should always include +# conf/distro/slugos.conf to get the standard settings). +# +LICENSE = "MIT" +PR = "r16" +PROVIDES += "${SLUGOS_IMAGENAME}-image" +#FIXME: backward compatibility with the master makefile +PROVIDES += "openslug-image" + +# SLUGOS_IMAGENAME defines the name of the image to be build, if it +# is not set this package will be skipped! +IMAGE_BASENAME = "${SLUGOS_IMAGENAME}" +IMAGE_FSTYPES = "jffs2" + +# Kernel suffix - 'nslu2be' or 'nslu2le' for a truely generic image, +# override in the DISTRO configuration if patches or defconfig are +# changed for the DISTRO! +N2K_SUFFIX ?= "nslu2${ARCH_BYTE_SEX}" + +#FIXME: this is historical, there should be a minimal slugos device table and +# this stuff shouldn't be in here at all (put it in slugos-image.bb!) +# Why have anything in the config file to control the image build - why not +# just select a different image .bb file (e.g. slugos-ramdisk-image.bb) to +# build with different options. +# IMAGE_SEX = "${@['big-endian', 'little-endian'][bb.data.getVar('ARCH_BYTE_SEX', d, 1) == 'le']}" +SLUGOS_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-slugos.txt')}" +EXTRA_IMAGECMD_jffs2 = "--pad --big-endian --eraseblock=0x20000 -D ${SLUGOS_DEVICE_TABLE}" + +# IMAGE_PREPROCESS_COMMAND is run before making the image. In SlugOS the +# kernel image is removed from the root file system to recover the space used - +# SlugOS is assumed to boot from a separate kernel image in flash (not in the +# root file system), if this is not the case the following must not be done! +IMAGE_PREPROCESS_COMMAND = "rm ${IMAGE_ROOTFS}/boot/zImage*;" + +# Building a full image. If required do a post-process command which builds +# the full image using slugimage. +# +#NOTE: you do not actually need the boot loader in normal use because it is +# *not* overwritten by a standard upslug upgrade, so you can make an image with +# just non-LinkSys software which can be flashed into the NSLU2. Because +# LinkSys have made "EraseAll" available, however, (this does overwrite RedBoot) +# it is a bad idea to produce flash images without a valid RedBoot - that allows +# an innocent user upgrade attempt to instantly brick the NSLU2. +NSLU2_SLUGIMAGE_ARGS ?= "" + +nslu2_pack_image() { + if test '${SLUGOS_FLASH_IMAGE}' = yes + then + install -d ${DEPLOY_DIR_IMAGE}/slug + install -m 0644 ${STAGING_LIBDIR}/nslu2-binaries/RedBoot \ + ${STAGING_LIBDIR}/nslu2-binaries/Trailer \ + ${STAGING_LIBDIR}/nslu2-binaries/SysConf \ + ${DEPLOY_DIR_IMAGE}/slug/ + install -m 0644 ${DEPLOY_DIR_IMAGE}/zImage-${N2K_SUFFIX} \ + ${DEPLOY_DIR_IMAGE}/slug/vmlinuz + install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \ + ${DEPLOY_DIR_IMAGE}/slug/flashdisk.jffs2 + cd ${DEPLOY_DIR_IMAGE}/slug + slugimage -p -b RedBoot -s SysConf -r Ramdisk:1,Flashdisk:flashdisk.jffs2 -t \ + Trailer -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.flashdisk.img \ + ${NSLU2_SLUGIMAGE_ARGS} + rm -rf ${DEPLOY_DIR_IMAGE}/slug + fi +} + +IMAGE_POSTPROCESS_COMMAND += "nslu2_pack_image;" + +SLUGOS_IMAGE_DEPENDS = "${@['', 'slugimage-native nslu2-linksys-firmware'][bb.data.getVar('SLUGOS_FLASH_IMAGE', d, 1) == 'yes']}" + +IMAGE_LINGUAS = "" +# Setting USE_DEVFS prevents *any* entries being created initially +# in /dev +USE_DEVFS = "1" + +# CONFIG: +# SLUGOS_IMAGE_DEPENDS: set above, do not change +# SLUGOS_EXTRA_RDEPENDS: set in conf, things to add to the image +# SLUGOS_EXTRA_DEPENDS: set in conf, things to build, not added +# to the image. +# SLUGOS_NATIVE_DEPENDS: set in conf, things to build, intended +# for native (run-on-host) tools +# +# SLUGOS_SUPPORT: set to here, see below, added to build and +# to the image. +# SLUGOS_KERNEL: set here, kernel modules added to the image +# +# Do not override the last two unless you really know what you +# are doing - there is more information below. + +# diff, cpio and find are required for reflash and turnup ram. +# Removing these probably leaves the system bootable, but standard +# openslug and ucslugc stuff won't work, so only take these out in +# very non-standard turnkey ucslugc builds. +# +# udev is the default way of handling devices, there is no guarantee +# that the static device table is completely correct (it is just +# known to be sufficient for boot.) +SLUGOS_SUPPORT ?= "diffutils cpio findutils udev" + +# kernel-module-af-packet must be in the image for DHCP to work +# kernel-module-netconsole is here because it is small and is +# highly useful on minimal systems (which really don't have anywhere +# other than the network to output error messages!) +SLUGOS_KERNEL ?= "kernel-module-af-packet kernel-module-netconsole" + +# The things explicitly included in the following lists are the +# absolute minimum to have any chance of a bootable system. +DEPENDS = "${SLUGOS_IMAGE_DEPENDS} \ + virtual/kernel base-files base-passwd \ + busybox dropbear hotplug-ng initscripts-openslug netbase \ + sysvinit tinylogin portmap \ + virtual/ixp-eth openslug-init \ + module-init-tools modutils-initscripts \ + ipkg-collateral ipkg ipkg-link \ + ${SLUGOS_SUPPORT} \ + ${SLUGOS_EXTRA_DEPENDS} \ + ${SLUGOS_NATIVE_DEPENDS}" + +IPKG_INSTALL = "base-files base-passwd \ + busybox dropbear hotplug-ng initscripts-openslug netbase \ + update-modules sysvinit tinylogin portmap \ + ${PREFERRED_PROVIDER_virtual/ixp-eth} openslug-init \ + module-init-tools modutils-initscripts \ + ipkg-collateral ipkg ipkg-link \ + ${SLUGOS_SUPPORT} \ + ${SLUGOS_KERNEL} \ + ${SLUGOS_EXTRA_RDEPENDS}" + +inherit image_ipk + +python () { + # Don't build slugos images unless the configuration is set up + # for an image build! + if bb.data.getVar("SLUGOS_IMAGENAME", d, 1) == '': + raise bb.parse.SkipPackage("absent or broken SlugOS configuration") +} diff --git a/packages/meta/slugos-native-packages.bb b/packages/meta/slugos-native-packages.bb new file mode 100644 index 0000000000..8b5641daf1 --- /dev/null +++ b/packages/meta/slugos-native-packages.bb @@ -0,0 +1,19 @@ +# Only list packages which will not build 'cross' in here. +DESCRIPTION = "Packages that are to be compiled natively for the SlugOS firmware" +LICENSE = "MIT" +PR = "r0" + +INHIBIT_DEFAULT_DEPS = "1" +EXCLUDE_FROM_WORLD = "1" +ALLOW_EMPTY = "1" +PACKAGES = "${PN}" + +SLUGOS_NATIVE_PACKAGES = "\ + apache \ + " + +SLUGOS_BROKEN_NATIVE_PACKAGES = "\ + " + +DEPENDS = '${SLUGOS_NATIVE_PACKAGES} \ + package-index' diff --git a/packages/meta/slugos-native.bb b/packages/meta/slugos-native.bb new file mode 100644 index 0000000000..85f0c551f5 --- /dev/null +++ b/packages/meta/slugos-native.bb @@ -0,0 +1,98 @@ +# SlugOS native build tools +# +# For the most part these are generic tools which should work for any +# SlugOS variant, however there is a dependency on the libc implementation +# +DESCRIPTION = "Packages that are required for the SlugOS native build environment" +LICENSE = "MIT" +PR = "r0" + +INHIBIT_DEFAULT_DEPS = "1" +EXCLUDE_FROM_WORLD = "1" +ALLOW_EMPTY = "1" +PACKAGES = "${PN}" +PROVIDES += "${SLUGOS_IMAGENAME}-native" + +# Run-time only (RDEPENDS) stuff - no package explicitly provides +# these targets. +SLUGOS_NATIVE_RT_prepend_linux = "\ + glibc-extra-nss glibc-utils \ + libc6 libc6-dev \ + " +SLUGOS_NATIVE_RT_prepend_linux-uclibc = "\ + uclibc-dev uclibc-utils \ + " +SLUGOS_NATIVE_RT = "\ + binutils-dev binutils-symlinks \ + cpp cpp-symlinks \ + g++ g++-symlinks \ + gcc-symlinks \ + libg2c-dev \ + libgdbm3 \ + libperl5 \ + libreadline4 libreadline-dev \ + libstdc++-dev \ + libthread-db1 \ + ncurses-dev ncurses-terminfo \ + perl-modules \ + python-core python-crypt python-io python-lang python-pickle python-shell python-textutils \ + " + +# Run-time and DEPENDS +SLUGOS_NATIVE_prepend_linux = "\ + " +SLUGOS_NATIVE_prepend_linux-uclibc = "\ + libiconv \ + uclibc \ + " +SLUGOS_NATIVE = "\ + autoconf \ + automake \ + bash \ + binutils \ + bison \ + bzip2 \ + coreutils \ + cvs \ + diffstat \ + file \ + flex \ + gawk \ + gcc \ + gnu-config \ + gzip \ + libtool \ + lrzsz \ + m4 \ + make \ + ncurses \ + patch \ + perl \ + pkgconfig \ + python-core \ + quilt \ + sed \ + tar \ + util-linux \ + wget \ + ${SLUGOS_NATIVE_THUMB_BROKEN} \ + " + +# If a tool won't build *on thumb libc* add it to the following list. +# Normally such a tool should be built with the ARM instruction set +# even on a thumb system (and this can be set in the tool's .bb file), +# however even this doesn't work for very large programs at present +# (only monotone!) +SLUGOS_NATIVE_THUMB_BROKEN = "\ + monotone-5 \ + " + +SLUGOS_NATIVE_THUMB_BROKEN_thumb = "" + +# These things are required but are not valid RDEPENDS +SLUGOS_NATIVE_DP = "\ + gdbm \ + " + +RDEPENDS = '${SLUGOS_NATIVE_RT} ${SLUGOS_NATIVE}' +DEPENDS = '${SLUGOS_NATIVE_DP} ${SLUGOS_NATIVE}' diff --git a/packages/meta/ucslugc-packages.bb b/packages/meta/slugos-packages.bb index b551155287..7ce33122cb 100644 --- a/packages/meta/ucslugc-packages.bb +++ b/packages/meta/slugos-packages.bb @@ -1,18 +1,23 @@ -# Meta package containing all the packages which build for UcSlugC +# Meta package containing all the packages which build for SlugOS # -# All packages in here must build with the ucslugc.conf distro, they -# do not necessarily work. -DESCRIPTION = "Packages that are compatible with the UcSlugC firmware" -LICENSE = MIT -PR = "r1" +# All packages in here must build with the slugos-???.conf distros, +# they do not necessarily work. +DESCRIPTION = "Packages that are compatible with the SlugOS firmware" +LICENSE = "MIT" +PR = "r2" +CONFLICTS = "db3" +PROVIDES += "${SLUGOS_IMAGENAME}-packages" +#FIXME: backward compatibility with the master makefile +PROVIDES += "openslug-packages" +EXCLUDE_FROM_WORLD = "1" INHIBIT_DEFAULT_DEPS = "1" ALLOW_EMPTY = 1 PACKAGES = "${PN}" # The list of packages to build for the ucslugc DISTRO. # KEEP IN ALPHABETICAL ORDER -UCSLUGC_PACKAGES = "\ +SLUGOS_PACKAGES = "\ alsa-lib \ alsa-utils \ atftp \ @@ -25,23 +30,26 @@ UCSLUGC_PACKAGES = "\ binutils \ bison \ bluez-utils-nodbus \ + bogofilter \ boost \ bridge-utils \ bwmon \ bzip2 \ ccxstream \ + cherokee \ coreutils \ cron \ ctorrent \ cvs \ - cvs\ - db4 \ - diffstat \ + cyrus-imapd \ + cyrus-sasl \ + db \ diffstat \ diffutils \ dnsmasq \ e2fsprogs \ expat \ + ez-ipupdate \ file \ findutils \ flac \ @@ -51,7 +59,6 @@ UCSLUGC_PACKAGES = "\ gcc \ gdb \ gdbm \ - glib-1.2 \ glib-2.0 \ gnu-config \ gphoto2 \ @@ -85,13 +92,15 @@ UCSLUGC_PACKAGES = "\ m4 \ mailx \ make \ + masqmail \ mdadm \ mgetty \ miau \ microcom \ + minicom \ mpd \ - mtd-utils \ mt-daapd \ + mtd-utils \ mutt \ nail \ nano \ @@ -115,7 +124,6 @@ UCSLUGC_PACKAGES = "\ puppy \ pwc \ python \ - python-core \ qc-usb-messenger \ quilt \ reiserfsprogs reiser4progs \ @@ -142,44 +150,17 @@ UCSLUGC_PACKAGES = "\ vsftpd \ wakelan \ wget \ - wget \ wireless-tools \ + zd1211 \ zlib \ " -# These packages only build on TARGET_OS=linux, but not TARGET_OS=linux-uclibc. -# KEEP IN ALPHABETICAL ORDER -UCSLUGC_BROKEN_PACKAGES = "\ - ctrlproxy \ +# Packages currently broken on all platforms +SLUGOS_BROKEN_PACKAGES = "\ + groff \ icecast \ - iperf \ - iputils \ - libxslt \ - man man-pages \ - php \ - psmisc \ pvrusb2-mci \ - screen \ - spca5xx \ - timezones \ watchdog \ - xinetd \ - xirssi \ - zd1211 \ - " - -# These packages are not in the build because they have a significant compilation -# time and probably aren't very useful on a ucslugc system -THUMB_OPTIONAL_PACKAGES = "\ - monotone-4 \ - mysql \ - " - -# These packages have problems with thumb or thumb-interwork compilation - they -# should really be fixed (if still in the build it is because there is a hacky -# work round.) The problem with monotone-5 is that it is simply too big. -THUMB_BROKEN_PACKAGES = "\ - monotone-5 \ " # These packages will never build because uclibc lacks (and always will lack) @@ -187,13 +168,46 @@ THUMB_BROKEN_PACKAGES = "\ # normal cause is that the package uses the "NIS" interfaces (once known as # YP - a trademark of BT which SUN used without license - the missing function # calls often still have 'yp' in the name). -UCSLUGC_UNSUPPORTABLE_PACKAGES = "\ +UCLIBC_UNSUPPORTABLE_PACKAGES = "\ libpam \ nfs-utils \ postfix \ yp-tools ypbind ypserv \ " +# Packages which build only with glibc or uclibc (some of these use internal +# glibc functions and so will probably never run on uclibc). +SLUGOS_PACKAGES_append_linux = "\ + ${UCLIBC_UNSUPPORTABLE_PACKAGES} \ + ctrlproxy \ + iperf \ + man man-pages \ + psmisc \ + screen \ + timezones \ + xinetd \ + " + +#BROKEN: +# dsniff + +SLUGOS_PACKAGES_append_linux-uclibc = "\ + " + +# These packages are not in the build because they have a significant compilation +# time, add them to SLUGOS_EXTRA_PACKAGES if required +SLUGOS_OPTIONAL_PACKAGES = "\ + mysql \ + " + +SLUGOS_EXTRA_PACKAGES ?= "" + # The package-index at the end causes regeneration of the Packages.gz and # other control files. -DEPENDS = "openslug-image ${UCSLUGC_PACKAGES} ucslugc-native package-index" +DEPENDS = "\ + slugos-image \ + slugos-native \ + ${SLUGOS_PACKAGES} \ + ${SLUGOS_EXTRA_PACKAGES} \ + package-index \ + " diff --git a/packages/meta/ucslugc-native.bb b/packages/meta/ucslugc-native.bb deleted file mode 100644 index 019ea7a5c3..0000000000 --- a/packages/meta/ucslugc-native.bb +++ /dev/null @@ -1,82 +0,0 @@ -DESCRIPTION = "Packages that are required for the UcSlugC native build environment" -LICENSE = MIT -PR = "r0" - -INHIBIT_DEFAULT_DEPS = "1" -ALLOW_EMPTY = 1 -PACKAGES = "${PN}" - -# Run-time only (RDEPENDS) stuff - no package explicitly provides -# these targets. -UCSLUGC_NATIVE_RT_prepend_linux = "\ - glibc-extra-nss glibc-utils \ - libc6 libc6-dev \ - " -UCSLUGC_NATIVE_RT_prepend_linux-uclibc = "\ - uclibc-dev uclibc-utils \ - " -UCSLUGC_NATIVE_RT = "\ - binutils-dev binutils-symlinks \ - cpp cpp-symlinks \ - g++ g++-symlinks \ - gcc-symlinks \ - libg2c-dev \ - libgdbm3 \ - libperl5 \ - libreadline4 libreadline-dev \ - libstdc++-dev \ - libthread-db1 \ - ncurses-dev ncurses-terminfo \ - perl-modules \ - python-crypt python-io python-lang python-pickle python-shell python-textutils \ - " - -# Run-time and DEPENDS -UCSLUGC_NATIVE_prepend_linux = "\ - " -UCSLUGC_NATIVE_prepend_linux-uclibc = "\ - libiconv \ - uclibc \ - " -UCSLUGC_NATIVE = "\ - autoconf \ - automake \ - bash \ - binutils \ - bison \ - bzip2 \ - coreutils \ - cvs \ - diffstat \ - flex \ - gawk \ - gcc \ - gnu-config \ - gzip \ - libtool \ - lrzsz \ - m4 \ - make \ - ncurses \ - patch \ - perl \ - pkgconfig \ - python-core \ - quilt \ - sed \ - tar \ - util-linux \ - wget \ - " - -UCSLUGC_NATIVE_THUMB_BROKEN = "\ - monotone-5 \ - " - -# These things are required but are not valid RDEPENDS -UCSLUGC_NATIVE_DP = "\ - gdbm \ - " - -RDEPENDS = '${UCSLUGC_NATIVE_RT} ${UCSLUGC_NATIVE}' -DEPENDS = '${UCSLUGC_NATIVE_DP} ${UCSLUGC_NATIVE}' diff --git a/packages/mozilla/firefox_1.0.7.bb b/packages/mozilla/firefox_1.0.7.bb new file mode 100644 index 0000000000..b3eeedcf64 --- /dev/null +++ b/packages/mozilla/firefox_1.0.7.bb @@ -0,0 +1,18 @@ +PR = "r0" +SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${PV}/source/firefox-${PV}-source.tar.bz2 \ + file://xptcstubs.patch;patch=1 \ + file://no-xmb.patch;patch=1 \ + file://firefox-cc-fix.patch;patch=1 \ + file://jsautocfg.h \ + file://extensions-hack.patch;patch=1" + +S = "${WORKDIR}/mozilla" + +inherit mozilla + +include firefox.inc + +do_compile_prepend() { + cp ${WORKDIR}/jsautocfg.h ${S}/js/src/ +} + diff --git a/packages/mozilla/minimo/mozconfig b/packages/mozilla/minimo/mozconfig index 5a84bcf87e..069ae35b3f 100644 --- a/packages/mozilla/minimo/mozconfig +++ b/packages/mozilla/minimo/mozconfig @@ -1,66 +1,12 @@ -# build minimo -MINIMO=1 -mk_add_options MINIMO=1 +mk_add_options MOZ_CO_PROJECT=minimo +ac_add_options --enable-application=minimo -# enable building the browser -ac_add_options --enable-application=browser # use GTK+-2 widget set with XFT font rendering - -MOZ_ENABLE_COREXFONTS=0 -mk_add_options MOZ_ENABLE_COREXFONTS=0 ac_add_options --enable-default-toolkit=gtk2 ac_add_options --enable-xft ac_add_options --disable-freetype2 -# disable XUL support to reduce codesize -ac_add_options --disable-xul - -# enable minimal profile support -ac_add_options --disable-profilesharing -ac_add_options --disable-profilelocking -ac_add_options --enable-single-profile - -# disable features and skip various build steps -ac_add_options --disable-extensions -ac_add_options --disable-accessibility -ac_add_options --disable-composer -ac_add_options --disable-extensions -ac_add_options --disable-installer -ac_add_options --disable-jsd -ac_add_options --disable-jsloader -ac_add_options --disable-ldap -ac_add_options --disable-mailnews -ac_add_options --disable-mathml -ac_add_options --disable-necko-disk-cache -ac_add_options --disable-postscript -ac_add_options --disable-view-source -ac_add_options --disable-xpfe-components -ac_add_options --disable-xpinstall -ac_add_options --disable-xprint -ac_add_options --enable-native-uconv -ac_add_options --enable-plaintext-editor-only -ac_add_options --disable-v1-string-abi -ac_add_options --disable-plugins - -# configure necko to allocate smaller network buffers -ac_add_options --enable-necko-small-buffers - -# disable debug logging and tests -ac_add_options --disable-dtd-debug -ac_add_options --disable-logging -ac_add_options --disable-tests - -# build crypto module (PSM + NSS) -ac_add_options --enable-crypto - -# build minimal set of protocol handlers -ac_add_options --enable-necko-protocols=http,file,res,jar - -# build minimal set of image decoders -ac_add_options --enable-image-decoders=png,gif,jpeg - -# code generation options (optimize for size) ac_add_options --enable-optimize=-Os ac_add_options --enable-strip ac_add_options --disable-debug diff --git a/packages/mozilla/minimo_cvs.bb b/packages/mozilla/minimo_cvs.bb index a44ccd8e25..31430d2c61 100644 --- a/packages/mozilla/minimo_cvs.bb +++ b/packages/mozilla/minimo_cvs.bb @@ -1,7 +1,6 @@ DESCRIPTION = "A minimal version of the Mozilla web browser" HOMEPAGE="http://www.mozilla.org/projects/minimo/" SRC_URI = "cvs://anonymous@cvs-mirror.mozilla.org/cvsroot;module=mozilla \ - file://xptcstubs.patch;patch=1 \ file://no-xmb.patch;patch=1 \ file://host_ldflags_fix.patch;patch=1 \ file://minimo.png file://minimo.desktop" @@ -16,8 +15,8 @@ LICENSE = "MPL/LGPL/GPL" inherit mozilla -EXTRA_OECONF += "--enable-application=suite --disable-native-uconv" -export MOZ_CO_PROJECT="suite" +EXTRA_OECONF += "--enable-application=minimo --disable-native-uconv" +export MOZ_CO_PROJECT="minimo" export MINIMO=1 export MOZ_OBJDIR="${WORKDIR}/build-${TARGET_SYS}" @@ -26,29 +25,26 @@ include mozilla-cvs.inc do_compile () { mozilla_do_compile - cd $MOZ_OBJDIR/embedding/minimo - oe_runmake } mozdir="${D}${libdir}/mozilla-minimo" do_install () { - cd ${S}/embedding/minimo/ - sh ./package.sh + cd $MOZ_OBJDIR/minimo/base + oe_runmake package cd ${S} mkdir -p ${mozdir} - cp -rL $MOZ_OBJDIR/dist/Embed/* ${mozdir}/ - rm -f ${mozdir}/TestGtkEmbed + cp -rL $MOZ_OBJDIR/dist/minimo/* ${mozdir}/ mkdir -p ${D}${datadir}/applications install -m 0644 ${WORKDIR}/minimo.desktop ${D}${datadir}/applications/minimo.desktop mkdir -p ${D}${datadir}/pixmaps install -m 0644 ${WORKDIR}/minimo.png ${D}${datadir}/pixmaps/minimo.png mkdir -p ${D}${bindir} - echo "#!/bin/sh" > ${D}${bindir}/minimo - cat >>${D}${bindir}/minimo << EOF + echo "#!/bin/sh" > ${D}${bindir}/Minimo + cat >>${D}${bindir}/Minimo << EOF cd ${libdir}/mozilla-minimo export LD_LIBRARY_PATH=${libdir}/mozilla-minimo -exec ./Minimo http://www.mozilla.org/projects/minimo/home.html +exec ./minimo EOF - chmod 755 ${D}${bindir}/minimo + chmod 755 ${D}${bindir}/Minimo } diff --git a/packages/mozilla/thunderbird_1.0.7.bb b/packages/mozilla/thunderbird_1.0.7.bb new file mode 100644 index 0000000000..52d68ef481 --- /dev/null +++ b/packages/mozilla/thunderbird_1.0.7.bb @@ -0,0 +1,63 @@ +SECTION = "x11/utils" +DEPENDS += "gnupg" +RRECOMMENDS += "gnupg" +PR = "r0" + +EMVER="0.92.0" +IPCVER="1.1.3" +SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/${PV}/source/thunderbird-${PV}-source.tar.bz2 \ + http://downloads.mozdev.org/enigmail/src/enigmail-${EMVER}.tar.gz \ +http://downloads.mozdev.org/enigmail/src/ipc-${IPCVER}.tar.gz \ + file://xptcstubs.patch;patch=1 \ + file://no-xmb.patch;patch=1 \ + file://extensions-hack.patch;patch=1 \ + file://mozilla-thunderbird.png file://mozilla-thunderbird.desktop" +S = "${WORKDIR}/mozilla" + +FILES_${PN} += "${libdir}/thunderbird-${PV} ${datadir}/idl" + +inherit mozilla + +export MOZ_THUNDERBIRD=1 + +do_configure() { + for x in ipc enigmail; do + if [ ! -e ${WORKDIR}/mozilla/extensions/$x ]; then + mv ${WORKDIR}/$x ${WORKDIR}/mozilla/extensions/ + cd ${WORKDIR}/mozilla/extensions/$x + makemake + fi + done + cd ${S} + mozilla_do_configure +} + +do_compile() { + mozilla_do_compile + oe_runmake -C ${WORKDIR}/mozilla/extensions/ipc + oe_runmake -C ${WORKDIR}/mozilla/extensions/enigmail +} + +do_install() { + mozilla_do_install + oe_runmake -C ${WORKDIR}/mozilla/extensions/ipc DESTDIR="${D}" install + oe_runmake -C ${WORKDIR}/mozilla/extensions/enigmail DESTDIR="${D}" install + install -d ${D}${datadir}/applications + install -d ${D}${datadir}/pixmaps + install -m 0644 ${WORKDIR}/mozilla-thunderbird.desktop ${D}${datadir}/applications/ + install -m 0644 ${WORKDIR}/mozilla-thunderbird.png ${D}${datadir}/pixmaps/ +} + +pkg_postinst_thunderbird() { + chmod -R a+w ${libdir}/thunderbird* +} + +# Simulate the silly csh makemake script +makemake() { + typeset m topdir + for m in $(find . -name Makefile.in); do + topdir=$(echo "$m" | sed -r 's:[^/]+:..:g') + sed -e "s:@srcdir@:.:g" -e "s:@top_srcdir@:${topdir}:g" \ + < ${m} > ${m%.in} || die "sed ${m} failed" + done +} diff --git a/packages/mplayer/mplayer-atty-1.1.5/alsa-configure.patch b/packages/mplayer/mplayer-atty-1.1.5/alsa-configure.patch new file mode 100644 index 0000000000..ad6d4504e1 --- /dev/null +++ b/packages/mplayer/mplayer-atty-1.1.5/alsa-configure.patch @@ -0,0 +1,37 @@ +--- mplayer-1.1.5/configure.orig 2005-11-08 15:07:52.000000000 +0000 ++++ mplayer-1.1.5/configure 2005-11-08 15:08:40.000000000 +0000 +@@ -4627,33 +4627,7 @@ + echocheck "ALSA audio" + if test "$_alsa" != no ; then + _alsa=no +- cat > $TMPC << EOF +-#include <sys/asoundlib.h> +-int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==5)); } +-EOF +- cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.5.x' +- +- cat > $TMPC << EOF +-#include <sys/asoundlib.h> +-int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); } +-EOF +- cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-sys' +- cat > $TMPC << EOF +-#include <alsa/asoundlib.h> +-int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); } +-EOF +- cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-alsa' +- +- cat > $TMPC << EOF +-#include <sys/asoundlib.h> +-int main(void) { return (!(SND_LIB_MAJOR==1 && SND_LIB_MINOR==0)); } +-EOF +- cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='1.0.x-sys' +- cat > $TMPC << EOF +-#include <alsa/asoundlib.h> +-int main(void) { return (!(SND_LIB_MAJOR==1 && SND_LIB_MINOR==0)); } +-EOF +- cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='1.0.x-alsa' ++ _alsaver='1.0.x-alsa' + fi + _def_alsa5='#undef HAVE_ALSA5' + _def_alsa9='#undef HAVE_ALSA9' diff --git a/packages/mplayer/mplayer-atty_1.1.5.bb b/packages/mplayer/mplayer-atty_1.1.5.bb index 1ee4a49936..eb8d8ad124 100644 --- a/packages/mplayer/mplayer-atty_1.1.5.bb +++ b/packages/mplayer/mplayer-atty_1.1.5.bb @@ -2,18 +2,19 @@ DESCRIPTION = "Open Source multimedia player." SECTION = "opie/multimedia" PRIORITY = "optional" HOMEPAGE = "http://atty.jp/?Zaurus%2Fmplayer" -DEPENDS = "virtual/libsdl freetype libmad libogg libvorbis zlib libpng jpeg" +DEPENDS = "virtual/libsdl freetype libmad libogg libvorbis zlib libpng jpeg alsa-lib" LICENSE = "GPL" RCONFLICTS = "mplayer" MAINTAINER = "Graeme Gregory <dp@xora.org.uk>" -PR = "r2" +PR = "r3" SRC_URI = "http://www.xora.org.uk/oe/mplayer-${PV}.tar.gz \ file://Makefile.patch;patch=1;pnum=0 \ file://sdl.patch;patch=1 \ file://Makefile-libs.patch;patch=1 \ file://libmpdemux-ogg-include.patch;patch=1 \ - file://libmpcodecs-ogg-include.patch;patch=1 " + file://libmpcodecs-ogg-include.patch;patch=1 \ + file://alsa-configure.patch;patch=1 " PARALLEL_MAKE = "" @@ -54,6 +55,7 @@ EXTRA_OECONF = " \ --enable-dynamic-plugins \ --enable-fbdev \ --enable-sdl \ + --enable-alsa \ --with-sdl-config=${STAGING_BINDIR}/sdl-config \ \ --enable-mad \ diff --git a/packages/msn-cap/.mtn2git_empty b/packages/msn-cap/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/msn-cap/.mtn2git_empty diff --git a/packages/msn-cap/files/.mtn2git_empty b/packages/msn-cap/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/msn-cap/files/.mtn2git_empty diff --git a/packages/msn-cap/files/Makefile b/packages/msn-cap/files/Makefile new file mode 100644 index 0000000000..0aad286d53 --- /dev/null +++ b/packages/msn-cap/files/Makefile @@ -0,0 +1,25 @@ +#CC = gcc +CFLAGS = -Wall -Os + +#VERSION = \"V0.10\" +#CFLAGS += -DVERSION=$(VERSION) + +# for use with LIRC, uncomment the following two lines +# CFLAGS += -DUSELIRC +# LDFLAGS += -llirc_client + +####################################################################### + +SRC = msn-cap.c +OBJ = msn-cap.o + +all: msn-cap + +msn-cap: $(OBJ) + $(CC) -s -o msn-cap $(OBJ) $(LDFLAGS) + +msn-cap.o: msn-cap.c + + +clean: + rm -f $(OBJ) msn-cap diff --git a/packages/msn-cap/files/genlist.c b/packages/msn-cap/files/genlist.c new file mode 100644 index 0000000000..3170f36107 --- /dev/null +++ b/packages/msn-cap/files/genlist.c @@ -0,0 +1,75 @@ +/* (Platform independant) IP lister (c)2000-1 Craig Cheetham + * Released under the GNU Licence. - Spread the source, not + * the binaries! (ahem fixed) + * + * E-Mail: craig_cheetham@yahoo.co.uk + * + */ +#include <stdio.h> +#include <string.h> +#include <netinet/in.h> + +union ipaddy +{ + unsigned char c_num[4]; + unsigned long l_num; +}; + +int parse(char *string, char *dest) +{ + int i = 0; + unsigned long num; + char *p = string, *n; + + strtok(p,"."); + + while(p && i<4) { + if((num = atol(p)) > 255) return 1; + dest[i++] = num; + p = strtok(0,"."); + } + + return 0; +} + +int main (int argc, char **argv) +{ + union ipaddy source, dest; + + if(argc < 3) { + printf("Platform independant IP lister, by Craig Cheetham (c)2000-1\n"); + printf("===========================================================\n\n"); + printf("Usage: %s <start ip> <end ip>\n\n", argv[0]); + printf("Examples:\n"); + printf("\t\t%s 205 206\t\t\t# Class A scan\n", argv[0]); + printf("\t\t%s 205.214 205.215\t\t# Class B scan\n", argv[0]); + printf("\t\t%s 205.214.14 205.214.56\t# Class C scan\n", argv[0]); + exit(0); + } + + source.l_num = dest.l_num = 0; + + if(parse(argv[1], source.c_num)) { + fprintf(stderr, "Error: Source IP is jarg.\n"); + return 0; + } + + if(parse(argv[2], dest.c_num)) { + fprintf(stderr, "Error: Dest IP is jarg.\n"); + return 0; + } + + while(htonl(source.l_num) < htonl(dest.l_num)) { + + if ((source.c_num[3]!=0) && (source.c_num[3]!=255)) + printf("%u.%u.%u.%u\n", + source.c_num[0], + source.c_num[1], + source.c_num[2], + source.c_num[3]); + + source.l_num = htonl(htonl(source.l_num)+1); + } + + return 0; +} diff --git a/packages/msn-cap/files/msn-cap.c b/packages/msn-cap/files/msn-cap.c new file mode 100644 index 0000000000..871859d6e1 --- /dev/null +++ b/packages/msn-cap/files/msn-cap.c @@ -0,0 +1,315 @@ +/* MSN CAPTURE is a software which capture packets of msn protocol and show to user in */ +/* a good format to see the important things in networks with hubs or switched (arpspoof). */ +/* This program use libpcap. */ +/* HOW TO USE: */ +/* YOU MUST BE ROOT !!!! */ +/* root@slack:/home/gabriel/pcap# gcc msn-cap.c -o msn-cap -lpcap */ +/* root@slack:/home/gabriel/pcap# msn-cap -n billgates@msn.com */ +/* ------------------------------------------------------------------------------------- */ +/* billgates@msn.com <10.6.6.6> talk to steve_ballmer@hotmail.com <10.6.6.24> and says: */ +/* how do you want destroy gpl??? */ +/* --------------------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------------------- */ +/* steve_ballmer@hotmail.com <10.6.6.24> talk to billgates@msn.com <10.6.6.6> and says: */ +/* a pact with devil is very good!!! */ +/* --------------------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------------------- */ +/* billgates@msn.com <10.6.6.6> talk to steve_ballmer@hotmail.com <10.6.6.24> and says: */ +/* but i already sold my soul to him... */ +/* --------------------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------------------- */ +/* steve_ballmer@hotmail.com <10.6.6.24> talk to billgates@msn.com <10.6.6.6> and says: */ +/* shit... */ +/* --------------------------------------------------------------------------------------- */ +/* */ +/* You need to get a few of packets to take some nicks, because this program works with lists and */ +/* take it when a packet of type "TypingUser" comes and it associates the nick with the IP to form */ +/* the structures. It is very fast!!!! In case appear a "Unknown User" in the place of original user*/ +/* , is question of time to get the real user. MUCH LITTLE TIME !!! */ +/* */ +/* Tested on Linux SlackWare 10.1 - 2.6.13 */ +/* */ +/* */ +/* */ +/* More about the use of program is below... */ +/* */ +/* Valew EccJr e a galera do SoftwareUpdateOnTheFuckers... */ +/* Created by Gabriel Menezes Nunes < dragao_branco > */ +/* UNESP -- IBILCE */ +/* */ + + + + + +#define __USE_BSD +#include <stdio.h> +#include <pcap.h> +#define __FAVOR_BSD +#include <netinet/tcp.h> +#include <netinet/ip.h> +#include <netinet/ip.h> +#include <netinet/udp.h> +#include <netinet/if_ether.h> +#include <unistd.h> + + + +struct user { + char ip[16]; + char nick[200]; + struct user *prox; +} *l; +char nick1[200], nick2[200], filename[200]; +int exclusive = 0, activate = 0; +FILE *fd; + +char *get_my_nick(struct user *l, char *ip); +void callfunc (u_char *args, const struct pcap_pkthdr *header, const u_char *packet); +void print_msg(char *msg, char *nick_src, char *nick_dst, char *ip_src, char *ip_dst); +void get_msg(u_char *payload, char *msg, int cont); +void get_nick(u_char *payload, char *nick); +struct user *insert(struct user *l, char *nick, char *ip); + +void callfunc (u_char *args, const struct pcap_pkthdr *header, const u_char *packet){ + struct ether_header *ethernet; + struct ip *ip; + struct tcphdr *tcp; + struct udphdr *udp; + int i = 0, k = 0, s1, len; + char ascii[1024], nick[200], ip_dst[16], ip_src[16], teste[200], nick_src[200], nick_dst[200], *asc; + char *payload, buffer[100], type[100], msg[200]; + ethernet = (struct ether_header*)(packet); + ip = (struct ip*)(packet + sizeof(struct ether_header)); + tcp = (struct tcphdr*)(packet + sizeof(struct ether_header) + sizeof(struct ip)); + payload = (char *)(packet + sizeof(struct ether_header) + sizeof(struct ip) + sizeof(struct tcphdr)); + len = (ntohs(ip->ip_len)) - 40; + asc = ascii; + while(--len >= 0 && k++ < 1022){ + s1 = *payload++; + if(s1 == '\r'){ + *asc++ = '\r'; + continue; + } + *(asc++) = (isgraph(s1) ? s1 : ' '); + } + *asc = '\0'; + if((strstr(ascii, "msmsgscontrol"))){ + get_nick(ascii, nick); + strcpy(ip_src, (char*)inet_ntoa(ip->ip_src)); + l = insert(l, nick, ip_src); + } + + if((strstr(ascii, "plain")) && strstr(ascii, "MSG")) { + + get_msg(ascii, msg, 5); + strcpy(ip_src, (char*)inet_ntoa(ip->ip_src)); + strcpy(ip_dst, (char*)inet_ntoa(ip->ip_dst)); + strncpy(nick_src, get_my_nick(l, ip_src), 199); + strncpy(nick_dst, get_my_nick(l, ip_dst), 199); + if(activate) + print_msg(msg, nick_src, nick_dst, ip_src, ip_dst); + if((!nick1[0]) && (!nick2[0])) + print_msg(msg, nick_src, nick_dst, ip_src, ip_dst); + if((nick1[0]) && (nick2[0])){ + if(!exclusive){ + if((!(strcmp(nick_src, nick1))) || (!(strcmp(nick_src, nick2))) || (!(strcmp(nick_dst, nick2))) || (!(strcmp(nick_dst, nick1)))) + print_msg(msg, nick_src, nick_dst, ip_src, ip_dst); + } + if(exclusive){ + if(((!(strcmp(nick_src, nick1))) && (!(strcmp(nick_dst, nick2)))) || ((!(strcmp(nick_src, nick2))) && (!(strcmp(nick_dst, nick1)))) ) + print_msg(msg, nick_src, nick_dst, ip_src, ip_dst); + } + } + if((nick1[0]) && (!nick2[0])){ + if((!(strcmp(nick_src, nick1))) || (!(strcmp(nick_dst, nick1)))) + print_msg(msg, nick_src, nick_dst, ip_src, ip_dst); + } + if((!nick1[0]) && (nick2[0])){ + if((!(strcmp(nick_src, nick2))) || (!(strcmp(nick_dst, nick2)))) + print_msg(msg, nick_src, nick_dst, ip_src, ip_dst); + } + } +} +main(int argc, char **argv){ + char *dev, errbuf[PCAP_ERRBUF_SIZE] , ip1[200], ip2[200], buffer[200], filter_app[200] = "(port 1863)"; + pcap_t *man; + struct bpf_program filter; + unsigned char packet[65535]; + bpf_u_int32 mask, net; + int control; + memset(nick1, '\0', sizeof(nick1)); + memset(nick2, '\0', sizeof(nick2)); + memset(ip1, '\0', sizeof(ip1)); + memset(ip2, '\0', sizeof(ip2)); + memset(filename, '\0', sizeof(filename)); + if(argc < 2){ + printf("---------------------------------------------------------------------------------------------\n"); + printf("\t\t\tMSN CAPTURE by < dragao_branco >\n\n"); + printf("You MUST be ROOT\n"); + printf("%s -a [0 or 1] -n [nick1] -m [nick2] -i [IP1] -y [IP2] -x [0 or 1] -f [filename]\n\n", argv[0]); + printf("-a --> ALL PACKETS!!!\n"); + printf("-x --> eXclusive\n"); + printf("-f --> filename to log the packets\n"); + printf("Choose 0 or 1 to activate or not the capture of ALL packets and the eXclusive mode\n"); + printf("You can choose one or two nicks to capture\n"); + printf("The same thing can be done with IPS\n"); + printf("Whether you choose the '-x' option, just the IPs or nicks (or both) will be capture\n"); + printf("Or you capture everything in your lan!!!\n"); + printf("Ex: %s -n smallville@hotmail.com\n", argv[0]); + printf("You will capture packets from/to this nick\n"); + printf("Ex: %s -n smallville@hotmail.com -m lex_luthor@msn.com\n", argv[0]); + printf("Will capture packets from/to this nicks\n"); + printf("Ex: %s -n smallville@hotmail.com -m lex_luthor@msn.com -x 1\n", argv[0]); + printf("Will capture packets ONLY between this nicks\n"); + printf("The same thing can be done with IPs\n"); + printf("---------------------------------------------------------------------------------------------\n"); + exit(-1); + } + while ((control = getopt(argc, argv, "n:m:i:y:x:a:f:")) != -1){ + switch(control){ + case 'n': strncpy(nick1, optarg, 199); + break; + case 'm': strncpy(nick2, optarg, 199); + break; + case 'i': strncpy(ip1, optarg, 199); + break; + case 'y': strncpy(ip2, optarg, 199); + break; + case 'x': exclusive = atoi(optarg); + break; + case 'a': activate = atoi(optarg); + break; + case 'f': strncpy(filename, optarg, 199); + fd = fopen(filename, "w"); + break; + } + } + if(activate){ + memset(nick1, '\0', sizeof(nick1)); + memset(nick2, '\0', sizeof(nick2)); + memset(ip1, '\0', sizeof(ip1)); + memset(ip2, '\0', sizeof(ip2)); + } + if(ip1[0] != '\0' && ip2[0] != '\0'){ + if(!exclusive) + sprintf(buffer, " and (host %s or host %s)", ip1, ip2); + else + sprintf(buffer, " and (host %s and host %s)", ip1, ip2); + strncat(filter_app, buffer, strlen(buffer)); + } + if(ip1[0] == '\0' && ip2[0] != '\0'){ + sprintf(buffer, " and host %s", ip2); + strncat(filter_app, buffer, strlen(buffer)); + } + if(ip1[0] != '\0' && ip2[0] == '\0'){ + sprintf(buffer, " and host %s", ip1); + strncat(filter_app, buffer, strlen(buffer)); + } + printf("Using the rule: %s\n", filter_app); + if(filename[0]) + printf("Save data in %s\n", filename); + dev = pcap_lookupdev(errbuf); + pcap_lookupnet(dev, &net, &mask, errbuf); + man = pcap_open_live(dev, BUFSIZ, 1, 0, errbuf); + pcap_compile(man, &filter, filter_app, 0, net); + pcap_setfilter(man, &filter); + pcap_loop(man, 1000000, callfunc, NULL); +} + + +void get_nick(u_char *payload, char *nick){ + int i, k = 0; + u_char *p = payload; + for(i = 0; i < 3; i++){ + while(*p != '\r') + p++; + p++;p++; + } + while(*p != ':') + p++; + p++;p++; + while(*p != '\r' && k++ < 199) + *nick++ = *p++; + *nick = '\0'; +} + +struct user *insert(struct user *l, char *nick, char *ip){ + struct user *q = l; + struct user *p = (struct user*)malloc(sizeof(struct user)); + if(!l){ + strncpy(p->nick, nick, 199); + strncpy(p->ip, ip, 15); + p->prox = NULL; + return p; + } + while(q){ + if(!(strcmp(q->ip, ip))){ + strncpy(q->nick, nick, 199); + break; + } + q = q->prox; + } + if(!q){ + strncpy(p->nick, nick, 199); + strncpy(p->ip, ip, 15); + p->prox = l; + return p; + } + return l; +} + +char *get_my_nick(struct user *l, char *ip){ + struct user *p = l; + while(p){ + if(!(strcmp(p->ip, ip)))//{ + return p->nick; + //} + p = p->prox; + } + return "Unknown User"; +} + +void get_msg(u_char *payload, char *msg, int cont){ + u_char *p = payload; + memset(msg, '\0', sizeof(msg)); + int i, j = 0; + for(i = 0; i < cont; i++){ + while(*p != '\r') + p++; + p++; p++; + } + if(cont == 2){ + strncpy(msg, p, 24); + msg[25] = '\0'; + } + if(cont == 5){ + while(*p && j++ < 1020) + *msg++ = *p++; + *msg = '\0'; + } +} +void print_msg(char *msg, char *nick_src, char *nick_dst, char *ip_src, char *ip_dst){ +if(!filename[0]){ + printf("-----------------------------------------------------------------------------------------------\n"); + + printf("%s <%s> talk to %s <%s> and says:\n", nick_src, ip_src, nick_dst, ip_dst); + + printf("%s\n", msg); + + printf("-----------------------------------------------------------------------------------------------\n"); +} +else { + fprintf(fd, "-----------------------------------------------------------------------------------------------\n"); + + fprintf(fd, "%s <%s> talk to %s <%s> and says:\n", nick_src, ip_src, nick_dst, ip_dst); + + fprintf(fd, "%s\n", msg); + + fprintf(fd, "-----------------------------------------------------------------------------------------------\n"); + fflush(fd); +} +} + + + diff --git a/packages/msn-cap/msn-cap.bb b/packages/msn-cap/msn-cap.bb new file mode 100644 index 0000000000..e59942f1b5 --- /dev/null +++ b/packages/msn-cap/msn-cap.bb @@ -0,0 +1,21 @@ +SECTION = "network/misc" +DESCRIPTION = "MSN Messenger sniffer" +MAINTAINER = "Bob Davies (tyggerbob@gmail.com)" + +SRC_URI = "http://packetstorm.linuxsecurity.com/sniffers/msn-cap.c \ + file://Makefile" + +DEFAULT_PREFERENCE="-1" + +LDFLAGS_prepend = "-L${STAGING_LIBDIR} -lpcap " + +S = "${WORKDIR}" +LICENSE = "GPL" +do_compile() { + oe_runmake all +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 msn-cap ${D}${bindir}/ +} diff --git a/packages/nonworking/libnet/files/compile-fix.patch b/packages/nonworking/libnet/files/compile-fix.patch deleted file mode 100644 index 24e30c84fe..0000000000 --- a/packages/nonworking/libnet/files/compile-fix.patch +++ /dev/null @@ -1,16 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- libnet/include/libnet.h.in~compile-fix -+++ libnet/include/libnet.h.in -@@ -114,7 +114,7 @@ - #include <stdarg.h> - - #define LIBNET_VERSION "@LIBNET_VERSION@" --#define @ENDIANESS@ 1 -+//#define @ENDIANESS@ 1 - - #include "./libnet/libnet-types.h" - #include "./libnet/libnet-macros.h" diff --git a/packages/nonworking/libnet/files/configure.patch b/packages/nonworking/libnet/files/configure.patch deleted file mode 100644 index 876c4292bd..0000000000 --- a/packages/nonworking/libnet/files/configure.patch +++ /dev/null @@ -1,61 +0,0 @@ - -# -# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher -# - ---- libnet/acinclude.m4~configure -+++ libnet/acinclude.m4 -@@ -184,7 +184,7 @@ - AC_CACHE_VAL(ac_cv_lbl_unaligned_fail, - [case "$target_cpu" in - -- alpha|hp*|mips|sparc) -+ alpha|hp*|mips|sparc|arm) - ac_cv_lbl_unaligned_fail=yes - ;; - -@@ -259,7 +259,8 @@ - dnl - - AC_DEFUN(AC_LIBNET_ENDIAN_CHECK, -- [AC_MSG_CHECKING(machine endianess) -+ [AC_CACHE_CHECK([machine_endianness], -+ ac_cv_libnet_endianess, [ - - cat > conftest.c << EOF - # include <stdio.h> -@@ -312,8 +313,7 @@ - fi - fi - rm -f conftest* core core.conftest -- -- AC_MSG_RESULT($ac_cv_libnet_endianess) -+ ]) - - if test $ac_cv_libnet_endianess = big ; then - AC_DEFINE(LIBNET_BIG_ENDIAN) -@@ -324,7 +324,7 @@ - ENDIANESS="LIBNET_LIL_ENDIAN" - LIBNET_CONFIG_DEFINES="$LIBNET_CONFIG_DEFINES -DLIBNET_LIL_ENDIAN" - fi -- ]) -+]) - - dnl - dnl Improved version of AC_CHECK_LIB ---- libnet/./configure.in~configure -+++ libnet/./configure.in -@@ -7,10 +7,11 @@ - dnl Process this file with autoconf to produce a configure script. - - --AC_INIT(src/libnet_build_ip.c) -+AC_INIT -+AC_CONFIG_SRCDIR([src/libnet_build_ip.c]) - LIBNET_VERSION=`cat VERSION` - AC_MSG_RESULT(beginning autoconfiguration process for libnet-$LIBNET_VERSION...) --AC_CANONICAL_SYSTEM -+AC_CANONICAL_TARGET([]) - - AM_INIT_AUTOMAKE(libnet, $LIBNET_VERSION) - AM_CONFIG_HEADER(include/config.h) diff --git a/packages/nonworking/libnet/libnet_1.1.2.1.bb b/packages/nonworking/libnet/libnet_1.1.2.1.bb deleted file mode 100644 index 58d13c9be1..0000000000 --- a/packages/nonworking/libnet/libnet_1.1.2.1.bb +++ /dev/null @@ -1,25 +0,0 @@ -#FIXME: Does not compile against linux-libc-headers 2.6 -BROKEN = "1" -DESCRIPTION = "A packet dissection and creation library" -SRC_URI = "http://www.packetfactory.net/libnet/dist/libnet.tar.gz \ - file://configure.patch;patch=1 \ - file://compile-fix.patch;patch=1" -S = "${WORKDIR}/libnet" - -inherit autotools - -CPPFLAGS_prepend = "-I${S}/libnet/include " - -do_configure() { - oe_runconf -} - -do_stage () { - install -m 0755 libnet-config ${STAGING_BINDIR}/ - oe_runmake -C src 'DESTDIR=${STAGING_DIR}/target' \ - 'libdir=/lib' install-libLIBRARIES - oe_runmake -C include 'DESTDIR=${STAGING_DIR}/target' \ - 'includedir=/include' install-includeHEADERS - oe_runmake -C include/libnet 'DESTDIR=${STAGING_DIR}/target' \ - 'includedir=/include' install-libnetincludeHEADERS -} diff --git a/packages/ntp/files/gcc4.patch b/packages/ntp/files/gcc4.patch new file mode 100644 index 0000000000..b7ae44a769 --- /dev/null +++ b/packages/ntp/files/gcc4.patch @@ -0,0 +1,52 @@ +Index: ntp-4.2.0/include/ntp_stdlib.h +=================================================================== +--- ntp-4.2.0.orig/include/ntp_stdlib.h 2003-07-17 11:27:16.000000000 +0100 ++++ ntp-4.2.0/include/ntp_stdlib.h 2005-11-26 18:39:14.000000000 +0000 +@@ -133,10 +133,6 @@ + extern u_char * cache_key; /* key pointer */ + extern u_int cache_keylen; /* key length */ + +-/* clocktypes.c */ +-struct clktype; +-extern struct clktype clktypes[]; +- + /* getopt.c */ + extern char * ntp_optarg; /* global argument pointer */ + extern int ntp_optind; /* global argv index */ +Index: ntp-4.2.0/include/ntpd.h +=================================================================== +--- ntp-4.2.0.orig/include/ntpd.h 2003-09-13 04:08:04.000000000 +0100 ++++ ntp-4.2.0/include/ntpd.h 2005-11-26 18:38:45.000000000 +0000 +@@ -226,8 +226,6 @@ + #endif + + /* ntp_control.c */ +-struct ctl_trap; +-extern struct ctl_trap ctl_trap[]; + extern int num_ctl_traps; + extern keyid_t ctl_auth_keyid; /* keyid used for authenticating write requests */ + +Index: ntp-4.2.0/include/ntp_refclock.h +=================================================================== +--- ntp-4.2.0.orig/include/ntp_refclock.h 2003-07-17 11:27:16.000000000 +0100 ++++ ntp-4.2.0/include/ntp_refclock.h 2005-11-26 18:40:23.000000000 +0000 +@@ -65,6 +65,7 @@ + const char *clocktype; /* long description */ + const char *abbrev; /* short description */ + }; ++extern struct clktype clktypes[]; + + /* + * Configuration flag values +Index: ntp-4.2.0/include/ntp_control.h +=================================================================== +--- ntp-4.2.0.orig/include/ntp_control.h 2003-08-14 08:31:47.000000000 +0100 ++++ ntp-4.2.0/include/ntp_control.h 2005-11-26 18:41:22.000000000 +0000 +@@ -266,6 +267,7 @@ + u_char tr_flags; /* trap flags */ + u_char tr_version; /* version number of trapper */ + }; ++extern struct ctl_trap ctl_trap[]; + + /* + * Flag bits diff --git a/packages/ntp/files/ipv6only-workaround.patch b/packages/ntp/files/ipv6only-workaround.patch new file mode 100644 index 0000000000..998d2bdad9 --- /dev/null +++ b/packages/ntp/files/ipv6only-workaround.patch @@ -0,0 +1,13 @@ +Patch taken from Debian: http://bugs.debian.org/249216 +------------------------------------------------------------------------ +--- ntp-4.2.0/ntpdate/ntpdate.c~ipv6only-workaround ++++ ntp-4.2.0/ntpdate/ntpdate.c +@@ -1698,8 +1698,6 @@ + if (res->ai_family == AF_INET6) + if (setsockopt(fd[nbsock], IPPROTO_IPV6, IPV6_V6ONLY, (void*) &optval, sizeof(optval)) < 0) { + netsyslog(LOG_ERR, "setsockopt() IPV6_V6ONLY failed: %m"); +- exit(1); +- /*NOTREACHED*/ + } + #endif + diff --git a/packages/ntp/ntp_4.2.0.bb b/packages/ntp/ntp_4.2.0.bb index 817c3c32f7..bf5bf9b4e2 100644 --- a/packages/ntp/ntp_4.2.0.bb +++ b/packages/ntp/ntp_4.2.0.bb @@ -6,10 +6,12 @@ HOMEPAGE = "http://ntp.isc.org/bin/view/Main/WebHome" SECTION = "console/network" PRIORITY = "optional" LICENSE = "ntp" -PR = "r4" +PR = "r7" SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/${P}.tar.gz \ file://ntpdc.Makefile.am.maybe-layout.patch;patch=1 \ + file://ipv6only-workaround.patch;patch=1 \ + file://gcc4.patch;patch=1 \ file://ntpd \ file://ntp.conf \ file://ntpdate" diff --git a/packages/nylon/nylon-scripts_cvs.bb b/packages/nylon/nylon-scripts_cvs.bb index efb0c47530..f791afd7a5 100644 --- a/packages/nylon/nylon-scripts_cvs.bb +++ b/packages/nylon/nylon-scripts_cvs.bb @@ -6,9 +6,9 @@ PRIORITY = "optional" MAINTAINER = "Bruno Randolf <bruno.randolf@4g-systems.biz>" LICENSE = "GPLv2" PV = "cvs${CVSDATE}" -PR = "r1" +PR = "r2" -SRC_URI = "svn://meshcube.org/svn/scripts;module=${PN};proto=http" +SRC_URI = "http://meshcube.org/download/${PN}_${CVSDATE}.tgz" S = "${WORKDIR}/${PN}" do_install() { @@ -20,8 +20,6 @@ if test "x$D" != "x"; then exit 1 else update-rc.d -s hostap defaults 14 - update-rc.d -s bridge defaults 15 - update-rc.d -s ipaliases defaults 16 update-rc.d -s firewall defaults 20 update-rc.d -s routing defaults 20 update-rc.d -s emergency-ip defaults 98 @@ -56,4 +54,4 @@ update-rc.d flash-backup remove update-rc.d dummydate remove } -CONFFILES_${PN} = "/etc/nylon/backup.list /etc/nylon/bridge.conf /etc/nylon/configip.conf /etc/nylon/hostap.conf /etc/nylon/interfaces.conf /etc/nylon/macfilter.list /etc/nylon/route.list" +CONFFILES_${PN} = "/etc/nylon/backup.list /etc/nylon/hostap.conf /etc/nylon/interfaces.conf /etc/nylon/route.list" diff --git a/packages/nylon/nylon-statistics.bb b/packages/nylon/nylon-statistics.bb index 90da9bf5b9..ba63d62671 100644 --- a/packages/nylon/nylon-statistics.bb +++ b/packages/nylon/nylon-statistics.bb @@ -7,7 +7,7 @@ LICENSE = "GPLv2" PV = "cvs${CVSDATE}" PR = "r1" -SRC_URI = "svn://meshcube.org/svn/application;module=${PN};proto=http" +SRC_URI = "http://meshcube.org/download/${PN}_${CVSDATE}.tgz" S = "${WORKDIR}/${PN}" do_install() { diff --git a/packages/nylon/yamonenv.bb b/packages/nylon/yamonenv.bb index db3aa6f001..6853bd56ed 100644 --- a/packages/nylon/yamonenv.bb +++ b/packages/nylon/yamonenv.bb @@ -5,7 +5,7 @@ MAINTAINER = "Michael Stickel <michael.stickel@4g-systems.biz>" LICENSE = "GPL" PV = "cvs${CVSDATE}" -SRC_URI = "svn://meshcube.org/svn/application;module=${PN};proto=http" +SRC_URI = "http://meshcube.org/download/${PN}_${CVSDATE}.tgz" S = "${WORKDIR}/${PN}" do_install() { diff --git a/packages/openldap/openldap-2.2.29/.mtn2git_empty b/packages/openldap/openldap-2.2.29/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/openldap/openldap-2.2.29/.mtn2git_empty diff --git a/packages/openldap/files/openldap-autoconf.patch b/packages/openldap/openldap-2.2.29/openldap-autoconf.patch index c173838492..c173838492 100644 --- a/packages/openldap/files/openldap-autoconf.patch +++ b/packages/openldap/openldap-2.2.29/openldap-autoconf.patch diff --git a/packages/openldap/files/ucgendat.patch b/packages/openldap/openldap-2.2.29/ucgendat.patch index 6f04844e0a..6f04844e0a 100644 --- a/packages/openldap/files/ucgendat.patch +++ b/packages/openldap/openldap-2.2.29/ucgendat.patch diff --git a/packages/openldap/openldap-2.3.11/.mtn2git_empty b/packages/openldap/openldap-2.3.11/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/openldap/openldap-2.3.11/.mtn2git_empty diff --git a/packages/openldap/openldap-2.3.11/openldap-m4-pthread.patch b/packages/openldap/openldap-2.3.11/openldap-m4-pthread.patch new file mode 100644 index 0000000000..b669b7254d --- /dev/null +++ b/packages/openldap/openldap-2.3.11/openldap-m4-pthread.patch @@ -0,0 +1,20 @@ +--- openldap-2.3.11/build/openldap.m4.orig 2005-11-11 00:11:18.604322590 -0800 ++++ openldap-2.3.11/build/openldap.m4 2005-11-11 00:26:21.621145856 -0800 +@@ -788,7 +788,7 @@ AC_DEFUN([OL_PTHREAD_TEST_FUNCTION],[[ + ]]) + + AC_DEFUN([OL_PTHREAD_TEST_PROGRAM], +-AC_LANG_SOURCE([OL_PTHREAD_TEST_INCLUDES ++[AC_LANG_SOURCE([[OL_PTHREAD_TEST_INCLUDES + + int main(argc, argv) + int argc; +@@ -796,7 +796,7 @@ int main(argc, argv) + { + OL_PTHREAD_TEST_FUNCTION + } +-])) ++]])]) + dnl -------------------------------------------------------------------- + AC_DEFUN([OL_PTHREAD_TRY], [# Pthread try link: $1 ($2) + if test "$ol_link_threads" = no ; then diff --git a/packages/openldap/openldap_2.2.24.bb b/packages/openldap/openldap_2.2.29.bb index a2fd912975..cbb968f673 100644 --- a/packages/openldap/openldap_2.2.24.bb +++ b/packages/openldap/openldap_2.2.29.bb @@ -12,18 +12,18 @@ PRIORITY = "optional" LICENSE = "OpenLDAP" SECTION = "libs" -PR = "r3" +PR = "r0" SRC_URI = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${P}.tgz" -SRC_URI += " file://openldap-autoconf.patch;patch=1" +SRC_URI += "file://openldap-autoconf.patch;patch=1" # The build tries to run a host executable, this fails. The patch # causes the executable and its data to be installed instead of # the output - ucgendat must be run after the ipkg install! -SRC_URI += " file://ucgendat.patch;patch=1" +SRC_URI += "file://ucgendat.patch;patch=1" # The original top.mk used INSTALL, not INSTALL_STRIP_PROGRAM when # installing .so and executables, this fails in cross compilation # environments -SRC_URI += " file://install-strip.patch;patch=1" +SRC_URI += "file://install-strip.patch;patch=1" inherit autotools @@ -34,36 +34,36 @@ inherit autotools # the two variables into the setting of the options below (please use # += because that means this can be done in *both* distro.conf and # local.conf! -OPENLDAP_OPTIONS ?= -OPENLDAP_DEPENDS ?= +OPENLDAP_OPTIONS ?= "" +OPENLDAP_DEPENDS ?= "" # CONFIG DEFINITIONS # The following is necessary because it cannot be determined for a # cross compile automagically. Select should yield fine on all OE # systems... -EXTRA_OECONF += " --with-yielding-select=yes" +EXTRA_OECONF += "--with-yielding-select=yes" # Shared libraries are nice... -EXTRA_OECONF += " --enable-dynamic" +EXTRA_OECONF += "--enable-dynamic" # # Disable TLS to remove the need for openssl/libcrypto -OPENLDAP_OPTION_tls ?= --without-tls +OPENLDAP_OPTION_tls ?= "--without-tls" # set the following to " openssl" to build tls support OPENLDAP_DEPENDS_tls ?= -EXTRA_OECONF += " ${OPENLDAP_OPTION_tls}" -DEPENDS += ${OPENLDAP_DEPENDS_tls} +EXTRA_OECONF += "${OPENLDAP_OPTION_tls}" +DEPENDS += "${OPENLDAP_DEPENDS_tls}" # SLAPD options # # UNIX crypt(3) passwd support: -EXTRA_OECONF += " --enable-crypt" +EXTRA_OECONF += "--enable-crypt" # # Enable dynamic module loading. If this is *disabled* the # dependency on libtool is removed (to disable set the following # to variables to "" in a .conf file). OPENLDAP_OPTION_modules += "lt_cv_dlopen_self=yes --enable-modules" -OPENLDAP_DEPENDS_modules += libtool +OPENLDAP_DEPENDS_modules += "libtool" EXTRA_OECONF += " ${OPENLDAP_OPTION_modules}" -DEPENDS += ${OPENLDAP_DEPENDS_modules} +DEPENDS += "${OPENLDAP_DEPENDS_modules}" # SLAPD BACKEND # @@ -73,7 +73,7 @@ DEPENDS += ${OPENLDAP_DEPENDS_modules} # is also disabled. If you try to change the backends but fail to # enable a single one the build will fail in an obvious way. # -EXTRA_OECONF += " --disable-bdb --disable-monitor" +EXTRA_OECONF += "--disable-bdb --disable-monitor" # # Backends="bdb dnssrv hdb ldap ldbm meta monitor null passwd perl shell sql" # @@ -88,39 +88,35 @@ md = "${libexecdir}/openldap" # the version 4 implementation or better. # To disable this set all three of the following variables to <empty> in # a .conf file (this will allow ldbm to be build with gdbm). -OPENLDAP_OPTION_bdb ?= --enable-bdb=mod -OPENLDAP_DEPENDS_bdb ?= db4 +OPENLDAP_OPTION_bdb ?= "--enable-bdb=mod" +OPENLDAP_DEPENDS_bdb ?= "db" OPENLDAP_PACKAGE_bdb ?= "${PN}-backend-bdb" FILES_${PN}-backend-bdb = "${md}/back_bdb.so ${md}/back_bdb.la ${md}/back_bdb-*.so.*" -EXTRA_OECONF += " ${OPENLDAP_OPTION_bdb}" -DEPENDS += ${OPENLDAP_DEPENDS_bdb} -PACKAGES += " ${OPENLDAP_PACKAGE_bdb}" -# For the moment the db4 headers are in a sub-directory to give compatibility -# with the identically named db3 headers in the standard staging directory, -# *prepend* the subdirectory: -TARGET_CPPFLAGS =+ "-I${STAGING_DIR}/${TARGET_SYS}/include/db4" +EXTRA_OECONF += "${OPENLDAP_OPTION_bdb}" +DEPENDS += "${OPENLDAP_DEPENDS_bdb}" +PACKAGES += "${OPENLDAP_PACKAGE_bdb}" # #--enable-dnssrv enable dnssrv backend no|yes|mod no # This has no dependencies. FILES_${PN}-backend-dnssrv = "${md}/back_dnssrv.so ${md}/back_dnssrv.la ${md}/back_dnssrv-*.so.*" -EXTRA_OECONF += " --enable-dnssrv=mod" -PACKAGES += " ${PN}-backend-dnssrv" +EXTRA_OECONF += "--enable-dnssrv=mod" +PACKAGES += "${PN}-backend-dnssrv" # #--enable-hdb enable Hierarchical DB backend no|yes|mod no # This forces ldbm to use Berkeley too, remove to use gdbm -OPENLDAP_OPTION_hdb ?= --enable-hdb=mod -OPENLDAP_DEPENDS_hdb ?= db4 +OPENLDAP_OPTION_hdb ?= "--enable-hdb=mod" +OPENLDAP_DEPENDS_hdb ?= "db" OPENLDAP_PACKAGE_hdb ?= "${PN}-backend-hdb" FILES_${PN}-backend-hdb = "${md}/back_hdb.so ${md}/back_hdb.la ${md}/back_hdb-*.so.*" -EXTRA_OECONF += " ${OPENLDAP_OPTION_hdb}" +EXTRA_OECONF += "${OPENLDAP_OPTION_hdb}" DEPENDS += ${OPENLDAP_DEPENDS_hdb} -PACKAGES += " ${OPENLDAP_PACKAGE_hdb}" +PACKAGES += "${OPENLDAP_PACKAGE_hdb}" # #--enable-ldap enable ldap backend no|yes|mod no # This has no dependencies -EXTRA_OECONF += " --enable-ldap=mod" +EXTRA_OECONF += "--enable-ldap=mod" FILES_${PN}-backend-ldap = "${md}/back_ldap.so ${md}/back_ldap.la ${md}/back_ldap-*.so.*" -PACKAGES += " ${PN}-backend-ldap" +PACKAGES += "${PN}-backend-ldap" # #--enable-ldbm enable ldbm backend no|yes|mod no # ldbm requires further specification of the underlying database API, because @@ -133,79 +129,79 @@ PACKAGES += " ${PN}-backend-ldap" #OPENLDAP_OPTION_ldbm = "--enable-ldbm=mod --with-ldbm-api=gdbm" #OPENLDAP_DEPENDS_ldbm = gdbm # And clear the bdb and hdb settings. -OPENLDAP_OPTION_ldbm ?= --enable-ldbm=mod -OPENLDAP_DEPENDS_ldbm ?= +OPENLDAP_OPTION_ldbm ?= "--enable-ldbm=mod" +OPENLDAP_DEPENDS_ldbm ?= "" OPENLDAP_PACKAGES_ldbm ?= "${PN}-backend-ldbm" FILES_${PN}-backend-ldbm = "${md}/back_ldbm.so ${md}/back_ldbm.la ${md}/back_ldbm-*.so.*" -EXTRA_OECONF += " ${OPENLDAP_OPTION_ldbm}" -DEPENDS += ${OPENLDAP_DEPENDS_ldbm} -PACKAGES += " ${PN}-backend-ldbm" +EXTRA_OECONF += "${OPENLDAP_OPTION_ldbm}" +DEPENDS += "${OPENLDAP_DEPENDS_ldbm}" +PACKAGES += "${PN}-backend-ldbm" # #--enable-meta enable metadirectory backend no|yes|mod no # No dependencies -EXTRA_OECONF += " --enable-meta=mod" +EXTRA_OECONF += "--enable-meta=mod" FILES_${PN}-backend-meta = "${md}/back_meta.so ${md}/back_meta.la ${md}/back_meta-*.so.*" -PACKAGES += " ${PN}-backend-meta" +PACKAGES += "${PN}-backend-meta" # #--enable-monitor enable monitor backend no|yes|mod yes -EXTRA_OECONF += " --enable-monitor=mod" +EXTRA_OECONF += "--enable-monitor=mod" FILES_${PN}-backend-monitor = "${md}/back_monitor.so ${md}/back_monitor.la ${md}/back_monitor-*.so.*" -PACKAGES += " ${PN}-backend-monitor" +PACKAGES += "${PN}-backend-monitor" # #--enable-null enable null backend no|yes|mod no -EXTRA_OECONF += " --enable-null=mod" +EXTRA_OECONF += "--enable-null=mod" FILES_${PN}-backend-null = "${md}/back_null.so ${md}/back_null.la ${md}/back_null-*.so.*" -PACKAGES += " ${PN}-backend-null" +PACKAGES += "${PN}-backend-null" # #--enable-passwd enable passwd backend no|yes|mod no EXTRA_OECONF += " --enable-passwd=mod" FILES_${PN}-backend-passwd = "${md}/back_passwd.so ${md}/back_passwd.la ${md}/back_passwd-*.so.*" -PACKAGES += " ${PN}-backend-passwd" +PACKAGES += "${PN}-backend-passwd" # #--enable-perl enable perl backend no|yes|mod no # This requires a loadable perl dynamic library, if enabled without # doing something appropriate (building perl?) the build will pick # up the build machine perl - not good. -OPENLDAP_OPTION_perl ?= --enable-perl=mod -OPENLDAP_DEPENDS_perl ?= perl +OPENLDAP_OPTION_perl ?= "--enable-perl=mod" +OPENLDAP_DEPENDS_perl ?= "perl" OPENLDAP_PACKAGES_perl ?= "${PN}-backend-perl" FILES_${PN}-backend-perl = "${md}/back_perl.so ${md}/back_perl.la ${md}/back_perl-*.so.*" -#EXTRA_OECONF += " ${OPENLDAP_OPTION_perl}" -#DEPENDS += ${OPENLDAP_DEPENDS_perl} -#PACKAGES += " ${PN}-backend-perl" +#EXTRA_OECONF += "${OPENLDAP_OPTION_perl}" +#DEPENDS += "${OPENLDAP_DEPENDS_perl}" +#PACKAGES += "${PN}-backend-perl" # #--enable-shell enable shell backend no|yes|mod no -EXTRA_OECONF += " --enable-shell=mod" +EXTRA_OECONF += "--enable-shell=mod" FILES_${PN}-backend-shell = "${md}/back_shell.so ${md}/back_shell.la ${md}/back_shell-*.so.*" -PACKAGES += " ${PN}-backend-shell" +PACKAGES += "${PN}-backend-shell" # #--enable-sql enable sql backend no|yes|mod no # sql requires some sql backend which provides sql.h, sqlite* provides # sqlite.h (which may be compatible but hasn't been tried.) -OPENLDAP_OPTION_sql ?= --enable-sql=mod -OPENLDAP_DEPENDS_sql ?= sql +OPENLDAP_OPTION_sql ?= "--enable-sql=mod" +OPENLDAP_DEPENDS_sql ?= "sql" OPENLDAP_PACKAGES_sql ?= "${PN}-backend-sql" FILES_${PN}-backend-sql = "${md}/back_sql.so ${md}/back_sql.la ${md}/back_sql-*.so.*" -#EXTRA_OECONF += " ${OPENLDAP_OPTION_sql}" -#DEPENDS += ${OPENLDAP_DEPENDS_sql} -#PACKAGES += " ${PN}-backend-sql" +#EXTRA_OECONF += "${OPENLDAP_OPTION_sql}" +#DEPENDS += "${OPENLDAP_DEPENDS_sql}" +#PACKAGES += "${PN}-backend-sql" # #--enable-dyngroup Dynamic Group overlay no|yes|mod no # This is a demo, Proxy Cache defines init_module which conflicts with the # same symbol in dyngroup -#EXTRA_OECONF += " --enable-dyngroup=mod" +#EXTRA_OECONF += "--enable-dyngroup=mod" #FILES_${PN}-overlay-dyngroup = "${md}/back_dyngroup.so ${md}/back_dyngroup.la ${md}/back_dyngroup-*.so.*" -#PACKAGES += " ${PN}-overlay-dyngroup" +#PACKAGES += "${PN}-overlay-dyngroup" # #--enable-proxycache Proxy Cache overlay no|yes|mod no -EXTRA_OECONF += " --enable-proxycache=mod" +EXTRA_OECONF += "--enable-proxycache=mod" FILES_${PN}-overlay-proxycache = "${md}/pcache.so ${md}/pcache.la ${md}/pcache-*.so.*" -PACKAGES += " ${PN}-overlay-proxycache" +PACKAGES += "${PN}-overlay-proxycache" # # LOCAL OPTION OVERRIDES # The distro/lcoal options must be added in *last* -EXTRA_OECONF += " ${OPENLDAP_OPTIONS}" -DEPENDS += ${OPENLDAP_DEPENDS} +EXTRA_OECONF += "${OPENLDAP_OPTIONS}" +DEPENDS += "${OPENLDAP_DEPENDS}" do_stage() { autotools_stage_includes @@ -227,7 +223,7 @@ LEAD_SONAME = "libldap-2.2.so.*" # The executables go in a separate package. This allows the # installation of the libraries with no daemon support. # Each module also has its own package - see above. -PACKAGES += " ${PN}-slapd ${PN}-slurpd ${PN}-bin" +PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin" # Package contents - shift most standard contents to -bin FILES_${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/openldap-data" diff --git a/packages/openldap/openldap_2.3.11.bb b/packages/openldap/openldap_2.3.11.bb new file mode 100644 index 0000000000..f15de41116 --- /dev/null +++ b/packages/openldap/openldap_2.3.11.bb @@ -0,0 +1,268 @@ +# OpenLDAP, a license free (see http://www.OpenLDAP.org/license.html) +# +DESCRIPTION = "OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol." +HOMEPAGE = "http://www.OpenLDAP.org/license.html" +MAINTAINER = "John Bowler <jbowler@acm.org>" +PRIORITY = "optional" +# The OpenLDAP Public License - see the HOMEPAGE - defines +# the license. www.openldap.org claims this is Open Source +# (see http://www.openldap.org), the license appears to be +# basically BSD. opensource.org does not record this license +# at present (so it is apparently not OSI certified). +LICENSE = "OpenLDAP" +SECTION = "libs" + +PR = "r1" + +LDAP_VER = "${@'.'.join(bb.data.getVar('PV',d,1).split('.')[0:2])}" + +SRC_URI = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${P}.tgz" +SRC_URI += "file://openldap-m4-pthread.patch;patch=1" +# The build tries to run a host executable, this fails. The patch +# causes the executable and its data to be installed instead of +# the output - ucgendat must be run after the ipkg install! +#SRC_URI += "file://ucgendat.patch;patch=1" +# The original top.mk used INSTALL, not INSTALL_STRIP_PROGRAM when +# installing .so and executables, this fails in cross compilation +# environments +SRC_URI += "file://install-strip.patch;patch=1" + +inherit autotools + +# OPTIONS +# The following two variables can be set in a distro or local.conf +# to switch features on. Each feature foo defines OPENLDAP_OPTION_foo +# and OPENLDAP_DEPENDS_foo in this file - to include feature foo add +# the two variables into the setting of the options below (please use +# += because that means this can be done in *both* distro.conf and +# local.conf! +OPENLDAP_OPTIONS ?= "" +OPENLDAP_DEPENDS ?= "" + +# CV SETTINGS +# Required to work round AC_FUNC_MEMCMP which gets the wrong answer +# when cross compiling (should be in site?) +EXTRA_OECONF += "ac_cv_func_memcmp_working=yes" + +# CONFIG DEFINITIONS +# The following is necessary because it cannot be determined for a +# cross compile automagically. Select should yield fine on all OE +# systems... +EXTRA_OECONF += "--with-yielding-select=yes" +# Shared libraries are nice... +EXTRA_OECONF += "--enable-dynamic" +# +# Disable TLS to remove the need for openssl/libcrypto +OPENLDAP_OPTION_tls ?= "--without-tls" +# set the following to "openssl" to build tls support +OPENLDAP_DEPENDS_tls ?= "" +EXTRA_OECONF += "${OPENLDAP_OPTION_tls}" +DEPENDS += "${OPENLDAP_DEPENDS_tls}" +# +# Disable Cyrus SASL, which may or may not be working at present... +OPENLDAP_OPTION_sasl ?= "--without-cyrus-sasl" +# set the following to "cyrus-sasl" to build SASL support +OPENLDAP_DEPENDS_sasl ?= "" +EXTRA_OECONF += "${OPENLDAP_OPTION_sasl}" +DEPENDS += "${OPENLDAP_DEPENDS_sasl}" + +# SLAPD options +# +# UNIX crypt(3) passwd support: +EXTRA_OECONF += "--enable-crypt" +# +# Enable dynamic module loading. If this is *disabled* the +# dependency on libtool is removed (to disable set the following +# to variables to "" in a .conf file). +OPENLDAP_OPTION_modules += "lt_cv_dlopen_self=yes --enable-modules" +OPENLDAP_DEPENDS_modules += "libtool" +EXTRA_OECONF += " ${OPENLDAP_OPTION_modules}" +DEPENDS += "${OPENLDAP_DEPENDS_modules}" + +# SLAPD BACKEND +# +# The backend must be set by the configuration. This controls the +# required database, the default database, bdb, is turned off but +# can be turned back on again and it *is* below! The monitor backend +# is also disabled. If you try to change the backends but fail to +# enable a single one the build will fail in an obvious way. +# +EXTRA_OECONF += "--disable-bdb --disable-monitor" +# +# Backends="bdb dnssrv hdb ldap ldbm meta monitor null passwd perl shell sql" +# +# Note that multiple backends can be built. The ldbm backend requires a +# build-time choice of database API. The bdb backend forces this to be +# DB4. To use the gdbm (or other) API the Berkely database module must +# be removed from the build. +md = "${libexecdir}/openldap" +# +#--enable-bdb enable Berkeley DB backend no|yes|mod yes +# The Berkely DB is the standard choice. This version of OpenLDAP requires +# the version 4 implementation or better. +# To disable this set all three of the following variables to <empty> in +# a .conf file (this will allow ldbm to be build with gdbm). +OPENLDAP_OPTION_bdb ?= "--enable-bdb=mod" +OPENLDAP_DEPENDS_bdb ?= "db" +OPENLDAP_PACKAGE_bdb ?= "${PN}-backend-bdb" +FILES_${PN}-backend-bdb = "${md}/back_bdb.so ${md}/back_bdb.la ${md}/back_bdb-*.so.*" +EXTRA_OECONF += "${OPENLDAP_OPTION_bdb}" +DEPENDS += "${OPENLDAP_DEPENDS_bdb}" +PACKAGES += "${OPENLDAP_PACKAGE_bdb}" +# +#--enable-dnssrv enable dnssrv backend no|yes|mod no +# This has no dependencies. +FILES_${PN}-backend-dnssrv = "${md}/back_dnssrv.so ${md}/back_dnssrv.la ${md}/back_dnssrv-*.so.*" +EXTRA_OECONF += "--enable-dnssrv=mod" +PACKAGES += "${PN}-backend-dnssrv" +# +#--enable-hdb enable Hierarchical DB backend no|yes|mod no +# This forces ldbm to use Berkeley too, remove to use gdbm +OPENLDAP_OPTION_hdb ?= "--enable-hdb=mod" +OPENLDAP_DEPENDS_hdb ?= "db" +OPENLDAP_PACKAGE_hdb ?= "${PN}-backend-hdb" +FILES_${PN}-backend-hdb = "${md}/back_hdb.so ${md}/back_hdb.la ${md}/back_hdb-*.so.*" +EXTRA_OECONF += "${OPENLDAP_OPTION_hdb}" +DEPENDS += ${OPENLDAP_DEPENDS_hdb} +PACKAGES += "${OPENLDAP_PACKAGE_hdb}" +# +#--enable-ldap enable ldap backend no|yes|mod no +# This has no dependencies +EXTRA_OECONF += "--enable-ldap=mod" +FILES_${PN}-backend-ldap = "${md}/back_ldap.so ${md}/back_ldap.la ${md}/back_ldap-*.so.*" +PACKAGES += "${PN}-backend-ldap" +# +#--enable-ldbm enable ldbm backend no|yes|mod no +# ldbm requires further specification of the underlying database API, because +# bdb is enabled above this must be set to berkeley, however the config +# defaults this correctly so --with-ldbm-api is *not* set. The build will +# fail if bdb is removed (above) but not database is built to provide the +# support for ldbm (because the 'DEPENDS_ldbm' is empty below.) +# +# So to use gdbm set: +#OPENLDAP_OPTION_ldbm = "--enable-ldbm=mod --with-ldbm-api=gdbm" +#OPENLDAP_DEPENDS_ldbm = gdbm +# And clear the bdb and hdb settings. +OPENLDAP_OPTION_ldbm ?= "--enable-ldbm=mod" +OPENLDAP_DEPENDS_ldbm ?= "" +OPENLDAP_PACKAGES_ldbm ?= "${PN}-backend-ldbm" +FILES_${PN}-backend-ldbm = "${md}/back_ldbm.so ${md}/back_ldbm.la ${md}/back_ldbm-*.so.*" +EXTRA_OECONF += "${OPENLDAP_OPTION_ldbm}" +DEPENDS += "${OPENLDAP_DEPENDS_ldbm}" +PACKAGES += "${PN}-backend-ldbm" +# +#--enable-meta enable metadirectory backend no|yes|mod no +# No dependencies +EXTRA_OECONF += "--enable-meta=mod" +FILES_${PN}-backend-meta = "${md}/back_meta.so ${md}/back_meta.la ${md}/back_meta-*.so.*" +PACKAGES += "${PN}-backend-meta" +# +#--enable-monitor enable monitor backend no|yes|mod yes +EXTRA_OECONF += "--enable-monitor=mod" +FILES_${PN}-backend-monitor = "${md}/back_monitor.so ${md}/back_monitor.la ${md}/back_monitor-*.so.*" +PACKAGES += "${PN}-backend-monitor" +# +#--enable-null enable null backend no|yes|mod no +EXTRA_OECONF += "--enable-null=mod" +FILES_${PN}-backend-null = "${md}/back_null.so ${md}/back_null.la ${md}/back_null-*.so.*" +PACKAGES += "${PN}-backend-null" +# +#--enable-passwd enable passwd backend no|yes|mod no +EXTRA_OECONF += " --enable-passwd=mod" +FILES_${PN}-backend-passwd = "${md}/back_passwd.so ${md}/back_passwd.la ${md}/back_passwd-*.so.*" +PACKAGES += "${PN}-backend-passwd" +# +#--enable-perl enable perl backend no|yes|mod no +# This requires a loadable perl dynamic library, if enabled without +# doing something appropriate (building perl?) the build will pick +# up the build machine perl - not good. +OPENLDAP_OPTION_perl ?= "--enable-perl=mod" +OPENLDAP_DEPENDS_perl ?= "perl" +OPENLDAP_PACKAGES_perl ?= "${PN}-backend-perl" +FILES_${PN}-backend-perl = "${md}/back_perl.so ${md}/back_perl.la ${md}/back_perl-*.so.*" +#EXTRA_OECONF += "${OPENLDAP_OPTION_perl}" +#DEPENDS += "${OPENLDAP_DEPENDS_perl}" +#PACKAGES += "${PN}-backend-perl" +# +#--enable-shell enable shell backend no|yes|mod no +EXTRA_OECONF += "--enable-shell=mod" +FILES_${PN}-backend-shell = "${md}/back_shell.so ${md}/back_shell.la ${md}/back_shell-*.so.*" +PACKAGES += "${PN}-backend-shell" +# +#--enable-sql enable sql backend no|yes|mod no +# sql requires some sql backend which provides sql.h, sqlite* provides +# sqlite.h (which may be compatible but hasn't been tried.) +OPENLDAP_OPTION_sql ?= "--enable-sql=mod" +OPENLDAP_DEPENDS_sql ?= "sql" +OPENLDAP_PACKAGES_sql ?= "${PN}-backend-sql" +FILES_${PN}-backend-sql = "${md}/back_sql.so ${md}/back_sql.la ${md}/back_sql-*.so.*" +#EXTRA_OECONF += "${OPENLDAP_OPTION_sql}" +#DEPENDS += "${OPENLDAP_DEPENDS_sql}" +#PACKAGES += "${PN}-backend-sql" +# +#--enable-dyngroup Dynamic Group overlay no|yes|mod no +# This is a demo, Proxy Cache defines init_module which conflicts with the +# same symbol in dyngroup +#EXTRA_OECONF += "--enable-dyngroup=mod" +#FILES_${PN}-overlay-dyngroup = "${md}/back_dyngroup.so ${md}/back_dyngroup.la ${md}/back_dyngroup-*.so.*" +#PACKAGES += "${PN}-overlay-dyngroup" +# +#--enable-proxycache Proxy Cache overlay no|yes|mod no +EXTRA_OECONF += "--enable-proxycache=mod" +FILES_${PN}-overlay-proxycache = "${md}/pcache.so ${md}/pcache.la ${md}/pcache-*.so.*" +PACKAGES += "${PN}-overlay-proxycache" +# +# LOCAL OPTION OVERRIDES +# The distro/lcoal options must be added in *last* +EXTRA_OECONF += "${OPENLDAP_OPTIONS}" +DEPENDS += "${OPENLDAP_DEPENDS}" + +#FIXME: this is a hack, at present an openldap build will pick up the header +# files from staging rather than the local ones (bad -I order), so remove +# the headers (from openldap-old.x) before compiling... +do_compile_prepend() { + ( cd ${STAGING_INCDIR} + rm -f ldap.h ldap_*.h + ) + ( cd ${STAGING_LIBDIR} + rm -f libldap* liblber* + ) +} + +do_stage() { + echo "staging libldap-${LDAP_VER}" >&2 + # + autotools_stage_includes + # Install the -${LDAP_VER} versions, but link foo.so to foo-x.y.so ONLY + # if they do not exist! + oe_libinstall -so -C libraries/libldap/.libs libldap-${LDAP_VER} ${STAGING_LIBDIR} + test -e ${STAGING_LIBDIR}/libldap.so || + ln -s $(basename ${STAGING_LIBDIR}/libldap-${LDAP_VER}.so.*.*.*) ${STAGING_LIBDIR}/libldap.so + oe_libinstall -so -C libraries/libldap_r/.libs libldap_r-${LDAP_VER} ${STAGING_LIBDIR} + test -e ${STAGING_LIBDIR}/libldap_r.so || + ln -s $(basename ${STAGING_LIBDIR}/libldap_r-${LDAP_VER}.so.*.*.*) ${STAGING_LIBDIR}/libldap_r.so + oe_libinstall -so -C libraries/liblber/.libs liblber-${LDAP_VER} ${STAGING_LIBDIR} + test -e ${STAGING_LIBDIR}/liblber.so || + ln -s $(basename ${STAGING_LIBDIR}/liblber-${LDAP_VER}.so.*.*.*) ${STAGING_LIBDIR}/liblber.so +} + +LEAD_SONAME = "libldap-${LDAP_VER}.so.*" + +# The executables go in a separate package. This allows the +# installation of the libraries with no daemon support. +# Each module also has its own package - see above. +PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin" + +# Package contents - shift most standard contents to -bin +FILES_${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/openldap-data" +FILES_${PN}-slapd = "${libexecdir}/slapd ${sbindir} ${localstatedir}/run \ + ${sysconfdir}/openldap/slapd.* ${sysconfdir}/openldap/schema \ + ${sysconfdir}/openldap/DB_CONFIG.example" +FILES_${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp ${localstatedir}/run" +FILES_${PN}-bin = "${bindir}" +FILES_${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libexecdir}/openldap/*.a" + +do_install_append() { + # This is duplicated in /etc/openldap and is for slapd + rm -f ${D}${localstatedir}/openldap-data/DB_CONFIG.example +} diff --git a/packages/openswan/openswan-2.2.0/gcc4-fixes.patch b/packages/openswan/openswan-2.2.0/gcc4-fixes.patch new file mode 100644 index 0000000000..0e5f6ebe47 --- /dev/null +++ b/packages/openswan/openswan-2.2.0/gcc4-fixes.patch @@ -0,0 +1,329 @@ +Index: openswan-2.2.0/linux/lib/libfreeswan/pfkey_v2_build.c +=================================================================== +--- openswan-2.2.0.orig/linux/lib/libfreeswan/pfkey_v2_build.c 2004-04-12 02:59:06.000000000 +0000 ++++ openswan-2.2.0/linux/lib/libfreeswan/pfkey_v2_build.c 2005-11-14 13:49:01.000000000 +0000 +@@ -173,9 +173,9 @@ + SENDERR(EINVAL); + } + +- if(!(*pfkey_ext = (struct sadb_ext*) +- pfkey_msg = (struct sadb_msg*) +- MALLOC(sizeof(struct sadb_msg)))) { ++ pfkey_msg = (struct sadb_msg*)MALLOC(sizeof(struct sadb_msg)); ++ *pfkey_ext = (struct sadb_ext*)pfkey_msg; ++ if(NULL == pfkey_msg) { + DEBUGGING(PF_KEY_DEBUG_BUILD, + "pfkey_msg_hdr_build: " + "memory allocation failed\n"); +@@ -297,9 +297,9 @@ + SENDERR(EINVAL); + } + +- if(!(*pfkey_ext = (struct sadb_ext*) +- pfkey_sa = (struct sadb_sa*) +- MALLOC(sizeof(struct sadb_sa)))) { ++ pfkey_sa = (struct sadb_sa*)MALLOC(sizeof(struct sadb_sa)); ++ *pfkey_ext = (struct sadb_ext*)pfkey_sa; ++ if (NULL == pfkey_sa) { + DEBUGGING(PF_KEY_DEBUG_BUILD, + "pfkey_sa_build: " + "memory allocation failed\n"); +@@ -374,9 +374,9 @@ + SENDERR(EINVAL); + } + +- if(!(*pfkey_ext = (struct sadb_ext*) +- pfkey_lifetime = (struct sadb_lifetime*) +- MALLOC(sizeof(struct sadb_lifetime)))) { ++ pfkey_lifetime = (struct sadb_lifetime*)MALLOC(sizeof(struct sadb_lifetime)); ++ *pfkey_ext = (struct sadb_ext*)pfkey_lifetime; ++ if (NULL == pfkey_lifetime) { + DEBUGGING(PF_KEY_DEBUG_BUILD, + "pfkey_lifetime_build: " + "memory allocation failed\n"); +@@ -563,10 +563,11 @@ + SENDERR(EINVAL); + } + +- if(!(*pfkey_ext = (struct sadb_ext*) +- pfkey_key = (struct sadb_key*) +- MALLOC(sizeof(struct sadb_key) + +- DIVUP(key_bits, 64) * IPSEC_PFKEYv2_ALIGN))) { ++ pfkey_key = (struct sadb_key*) ++ MALLOC(sizeof(struct sadb_key) + ++ DIVUP(key_bits, 64) * IPSEC_PFKEYv2_ALIGN); ++ *pfkey_ext = (struct sadb_ext*)pfkey_key; ++ if (NULL == pfkey_key) { + ERROR("pfkey_key_build: " + "memory allocation failed\n"); + SENDERR(ENOMEM); +@@ -643,10 +644,11 @@ + if((ident_type == SADB_IDENTTYPE_USERFQDN) ) { + } + #endif +- +- if(!(*pfkey_ext = (struct sadb_ext*) +- pfkey_ident = (struct sadb_ident*) +- MALLOC(ident_len * IPSEC_PFKEYv2_ALIGN))) { ++ ++ pfkey_ident = (struct sadb_ident*) ++ MALLOC(ident_len * IPSEC_PFKEYv2_ALIGN); ++ *pfkey_ext = (struct sadb_ext*)pfkey_ident; ++ if (NULL == pfkey_ident) { + ERROR("pfkey_ident_build: " + "memory allocation failed\n"); + SENDERR(ENOMEM); +@@ -696,10 +698,11 @@ + (*pfkey_ext)->sadb_ext_type); + SENDERR(EINVAL); /* don't process these yet */ + +- if(!(*pfkey_ext = (struct sadb_ext*) +- pfkey_sens = (struct sadb_sens*) +- MALLOC(sizeof(struct sadb_sens) + +- (sens_len + integ_len) * sizeof(uint64_t)))) { ++ pfkey_sens = (struct sadb_sens*) ++ MALLOC(sizeof(struct sadb_sens) + ++ (sens_len + integ_len) * sizeof(uint64_t)); ++ *pfkey_ext = (struct sadb_ext*)pfkey_sens; ++ if (NULL == pfkey_sens) { + ERROR("pfkey_sens_build: " + "memory allocation failed\n"); + SENDERR(ENOMEM); +@@ -753,10 +756,11 @@ + SENDERR(EINVAL); + } + +- if(!(*pfkey_ext = (struct sadb_ext*) +- pfkey_prop = (struct sadb_prop*) +- MALLOC(sizeof(struct sadb_prop) + +- comb_num * sizeof(struct sadb_comb)))) { ++ pfkey_prop = (struct sadb_prop*) ++ MALLOC(sizeof(struct sadb_prop) + ++ comb_num * sizeof(struct sadb_comb)); ++ *pfkey_ext = (struct sadb_ext*)pfkey_prop; ++ if (NULL == pfkey_prop) { + ERROR("pfkey_prop_build: " + "memory allocation failed\n"); + SENDERR(ENOMEM); +@@ -833,11 +837,11 @@ + SENDERR(EINVAL); + } + +- if(!(*pfkey_ext = (struct sadb_ext*) +- pfkey_supported = (struct sadb_supported*) +- MALLOC(sizeof(struct sadb_supported) + +- alg_num * +- sizeof(struct sadb_alg)))) { ++ pfkey_supported = (struct sadb_supported*) ++ MALLOC(sizeof(struct sadb_supported) + ++ alg_num * sizeof(struct sadb_alg)); ++ *pfkey_ext = (struct sadb_ext*)pfkey_supported; ++ if (NULL == pfkey_supported) { + DEBUGGING(PF_KEY_DEBUG_BUILD, + "pfkey_supported_build: " + "memory allocation failed\n"); +@@ -913,10 +917,11 @@ + ntohl(min)); + SENDERR(EEXIST); + } +- +- if(!(*pfkey_ext = (struct sadb_ext*) +- pfkey_spirange = (struct sadb_spirange*) +- MALLOC(sizeof(struct sadb_spirange)))) { ++ ++ pfkey_spirange = (struct sadb_spirange*) ++ MALLOC(sizeof(struct sadb_spirange)); ++ *pfkey_ext = (struct sadb_ext*)pfkey_spirange; ++ if (NULL == pfkey_spirange) { + DEBUGGING(PF_KEY_DEBUG_BUILD, + "pfkey_spirange_build: " + "memory allocation failed\n"); +@@ -958,9 +963,10 @@ + (*pfkey_ext)->sadb_ext_type); + SENDERR(EINVAL); /* don't process these yet */ + +- if(!(*pfkey_ext = (struct sadb_ext*) +- pfkey_x_kmprivate = (struct sadb_x_kmprivate*) +- MALLOC(sizeof(struct sadb_x_kmprivate)))) { ++ pfkey_x_kmprivate = (struct sadb_x_kmprivate*) ++ MALLOC(sizeof(struct sadb_x_kmprivate)); ++ *pfkey_ext = (struct sadb_ext*)pfkey_x_kmprivate; ++ if (NULL == pfkey_x_kmprivate) { + DEBUGGING(PF_KEY_DEBUG_BUILD, + "pfkey_x_kmprivate_build: " + "memory allocation failed\n"); +@@ -1009,8 +1015,10 @@ + SENDERR(EINVAL); + } + +- if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_satype = (struct sadb_x_satype*) +- MALLOC(sizeof(struct sadb_x_satype)))) { ++ pfkey_x_satype = (struct sadb_x_satype*) ++ MALLOC(sizeof(struct sadb_x_satype)); ++ *pfkey_ext = (struct sadb_ext*)pfkey_x_satype; ++ if (NULL == pfkey_x_satype) { + ERROR("pfkey_x_satype_build: " + "memory allocation failed\n"); + SENDERR(ENOMEM); +@@ -1064,8 +1072,10 @@ + "tunnel=%x netlink=%x xform=%x eroute=%x spi=%x radij=%x esp=%x ah=%x rcv=%x pfkey=%x ipcomp=%x verbose=%x?\n", + tunnel, netlink, xform, eroute, spi, radij, esp, ah, rcv, pfkey, ipcomp, verbose); + +- if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_debug = (struct sadb_x_debug*) +- MALLOC(sizeof(struct sadb_x_debug)))) { ++ pfkey_x_debug = (struct sadb_x_debug*) ++ MALLOC(sizeof(struct sadb_x_debug)); ++ *pfkey_ext = (struct sadb_ext*)pfkey_x_debug; ++ if (NULL == pfkey_x_debug) { + ERROR("pfkey_x_debug_build: " + "memory allocation failed\n"); + SENDERR(ENOMEM); +@@ -1122,8 +1132,10 @@ + "pfkey_x_nat_t_type_build: " + "type=%d\n", type); + +- if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_nat_t_type = (struct sadb_x_nat_t_type*) +- MALLOC(sizeof(struct sadb_x_nat_t_type)))) { ++ pfkey_x_nat_t_type = (struct sadb_x_nat_t_type*) ++ MALLOC(sizeof(struct sadb_x_nat_t_type)); ++ *pfkey_ext = (struct sadb_ext*)pfkey_x_nat_t_type; ++ if (NULL == pfkey_x_nat_t_type) { + DEBUGGING(PF_KEY_DEBUG_BUILD, + "pfkey_x_nat_t_type_build: " + "memory allocation failed\n"); +@@ -1174,8 +1186,10 @@ + "pfkey_x_nat_t_port_build: " + "ext=%d, port=%d\n", exttype, port); + +- if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_nat_t_port = (struct sadb_x_nat_t_port*) +- MALLOC(sizeof(struct sadb_x_nat_t_port)))) { ++ pfkey_x_nat_t_port = (struct sadb_x_nat_t_port*) ++ MALLOC(sizeof(struct sadb_x_nat_t_port)); ++ *pfkey_ext = (struct sadb_ext*)pfkey_x_nat_t_port; ++ if (NULL == pfkey_x_nat_t_port) { + DEBUGGING(PF_KEY_DEBUG_BUILD, + "pfkey_x_nat_t_port_build: " + "memory allocation failed\n"); +@@ -1328,7 +1342,12 @@ + memcpy(pfkey_ext, + extensions[ext], + (extensions[ext])->sadb_ext_len * IPSEC_PFKEYv2_ALIGN); +- ((char*)pfkey_ext) += (extensions[ext])->sadb_ext_len * IPSEC_PFKEYv2_ALIGN; ++ { ++ char *pfkey_ext_c = (char *)pfkey_ext; ++ ++ pfkey_ext_c += (extensions[ext])->sadb_ext_len * IPSEC_PFKEYv2_ALIGN; ++ pfkey_ext = (struct sadb_ext *)pfkey_ext_c; ++ } + /* Mark that we have seen this extension and remember the header location */ + extensions_seen |= ( 1 << ext ); + } +Index: openswan-2.2.0/programs/pluto/connections.c +=================================================================== +--- openswan-2.2.0.orig/programs/pluto/connections.c 2004-06-27 20:46:15.000000000 +0000 ++++ openswan-2.2.0/programs/pluto/connections.c 2005-11-14 14:01:09.000000000 +0000 +@@ -30,6 +30,7 @@ + + #include <openswan.h> + #include <openswan/ipsec_policy.h> ++#include "pfkeyv2.h" + #include "kameipsec.h" + + #include "constants.h" +Index: openswan-2.2.0/programs/pluto/ipsec_doi.c +=================================================================== +--- openswan-2.2.0.orig/programs/pluto/ipsec_doi.c 2004-09-02 01:24:23.000000000 +0000 ++++ openswan-2.2.0/programs/pluto/ipsec_doi.c 2005-11-14 14:03:17.000000000 +0000 +@@ -31,6 +31,7 @@ + + #include <openswan.h> + #include <openswan/ipsec_policy.h> ++#include "pfkeyv2.h" + + #include "constants.h" + #include "defs.h" +Index: openswan-2.2.0/programs/pluto/rcv_whack.c +=================================================================== +--- openswan-2.2.0.orig/programs/pluto/rcv_whack.c 2004-06-14 02:01:32.000000000 +0000 ++++ openswan-2.2.0/programs/pluto/rcv_whack.c 2005-11-14 14:04:08.000000000 +0000 +@@ -31,6 +31,7 @@ + #include <sys/queue.h> + + #include <openswan.h> ++#include "pfkeyv2.h" + + #include "constants.h" + #include "defs.h" +Index: openswan-2.2.0/programs/pluto/log.c +=================================================================== +--- openswan-2.2.0.orig/programs/pluto/log.c 2004-06-14 01:46:03.000000000 +0000 ++++ openswan-2.2.0/programs/pluto/log.c 2005-11-14 14:02:33.000000000 +0000 +@@ -30,6 +30,7 @@ + #include <sys/types.h> + + #include <openswan.h> ++#include "pfkeyv2.h" + + #include "constants.h" + #include "oswlog.h" +Index: openswan-2.2.0/programs/pluto/spdb.c +=================================================================== +--- openswan-2.2.0.orig/programs/pluto/spdb.c 2004-05-25 22:25:02.000000000 +0000 ++++ openswan-2.2.0/programs/pluto/spdb.c 2005-11-14 14:02:55.000000000 +0000 +@@ -24,6 +24,7 @@ + + #include <openswan.h> + #include <openswan/ipsec_policy.h> ++#include "pfkeyv2.h" + + #include "constants.h" + #include "oswlog.h" +Index: openswan-2.2.0/programs/pluto/db_ops.c +=================================================================== +--- openswan-2.2.0.orig/programs/pluto/db_ops.c 2004-06-04 01:59:33.000000000 +0000 ++++ openswan-2.2.0/programs/pluto/db_ops.c 2005-11-14 13:54:10.000000000 +0000 +@@ -181,7 +181,13 @@ + ctx->trans0 = ctx->prop.trans = new_trans; + /* update trans_cur (by offset) */ + offset = (char *)(new_trans) - (char *)(old_trans); +- (char *)(ctx->trans_cur) += offset; ++ ++ { ++ char *cctx = (char *)(ctx->trans_cur); ++ ++ cctx += offset; ++ ctx->trans_cur = (struct db_trans *)cctx; ++ } + /* update elem count */ + ctx->max_trans = max_trans; + PFREE_ST(old_trans, db_trans_st); +@@ -213,12 +219,25 @@ + + /* update attrs0 and attrs_cur (obviously) */ + offset = (char *)(new_attrs) - (char *)(old_attrs); +- (char *)ctx->attrs0 += offset; +- (char *)ctx->attrs_cur += offset; ++ { ++ char *actx = (char *)(ctx->attrs0); ++ ++ actx += offset; ++ ctx->attrs0 = (struct db_attr *)actx; ++ ++ actx = (char *)ctx->attrs_cur; ++ actx += offset; ++ ctx->attrs_cur = (struct db_attr *)actx; ++ } ++ + /* for each transform, rewrite attrs pointer by offsetting it */ +- for (t=ctx->prop.trans, ti=0; ti < ctx->prop.trans_cnt; t++, ti++) { +- (char *)(t->attrs) += offset; ++ for (t=ctx->prop.trans, ti=0; ti < ctx->prop.trans_cnt; t++, ti++) { ++ char *actx = (char *)(t->attrs); ++ ++ actx += offset; ++ t->attrs = (struct db_attr *)actx; + } ++ + /* update elem count */ + ctx->max_attrs = max_attrs; + PFREE_ST(old_attrs, db_attrs_st); diff --git a/packages/openswan/openswan_2.2.0.bb b/packages/openswan/openswan_2.2.0.bb index aca04b39c2..5246b0044a 100644 --- a/packages/openswan/openswan_2.2.0.bb +++ b/packages/openswan/openswan_2.2.0.bb @@ -7,10 +7,11 @@ MAINTAINER = "Bruno Randolf <bruno.randolf@4g-systems.biz>" DEPENDS = "gmp flex-native" RRECOMMENDS = "kernel-module-ipsec" RDEPENDS_nylon = "perl" -PR = "r3" +PR = "r4" SRC_URI = "http://www.openswan.org/download/openswan-${PV}.tar.gz \ file://openswan-2.2.0-gentoo.patch;patch=1 \ + file://gcc4-fixes.patch;patch=1 \ file://ld-library-path-breakage.patch;patch=1" S = "${WORKDIR}/openswan-${PV}" diff --git a/packages/opie-aboutapplet/opie-aboutapplet-1.2.1/.mtn2git_empty b/packages/opie-aboutapplet/opie-aboutapplet-1.2.1/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/opie-aboutapplet/opie-aboutapplet-1.2.1/.mtn2git_empty diff --git a/packages/opie-aboutapplet/opie-aboutapplet-1.2.1/add-hrw-to-authors.patch b/packages/opie-aboutapplet/opie-aboutapplet-1.2.1/add-hrw-to-authors.patch new file mode 100644 index 0000000000..93a251ccac --- /dev/null +++ b/packages/opie-aboutapplet/opie-aboutapplet-1.2.1/add-hrw-to-authors.patch @@ -0,0 +1,18 @@ +Backport from CVS + +Index: widget.ui +=================================================================== +RCS file: /cvs/opie/core/applets/aboutapplet/widget.ui,v +retrieving revision 1.6 +retrieving revision 1.7 +diff -u -u -r1.6 -r1.7 +--- aboutapplet/widget.ui 22 Apr 2005 13:01:47 -0000 1.6 ++++ aboutapplet/widget.ui 13 Nov 2005 14:40:31 -0000 1.7 +@@ -134,6 +134,7 @@ + <b>Holger 'Zecke' Freyther</b> (zecke@handhelds.org)<br/> + <b>Robert 'Sandman' Griebl</b> (sandman@handhelds.org)<br/> + <b>Alberto 'Skyhusker' Hierro</b> (skyhusker@handhelds.org)<br/> ++<b>Marcin 'Hrw' Juszkiewicz</b> (hrw@handhelds.org)<br/> + <b>Chris 'Kergoth' Larson</b> (kergoth@handhelds.org)<br/> + <b>Michael 'Mickey' Lauer</b> (mickeyl@handhelds.org)<br/> + <b>Lorn 'ljp' Potter</b> (ljp@handhelds.org)<br/> diff --git a/packages/opie-aboutapplet/opie-aboutapplet_1.2.1.bb b/packages/opie-aboutapplet/opie-aboutapplet_1.2.1.bb index 809db56b9f..95a085ab5e 100644 --- a/packages/opie-aboutapplet/opie-aboutapplet_1.2.1.bb +++ b/packages/opie-aboutapplet/opie-aboutapplet_1.2.1.bb @@ -1,5 +1,6 @@ include ${PN}.inc - - -SRC_URI = "${HANDHELDS_CVS};tag=${TAG};module=opie/core/applets/aboutapplet" +PR = "r1" + +SRC_URI = "${HANDHELDS_CVS};tag=${TAG};module=opie/core/applets/aboutapplet \ + file://add-hrw-to-authors.patch;patch=1" diff --git a/packages/opie-pcmciaapplet/opie-pcmciaapplet-1.2.1/.mtn2git_empty b/packages/opie-pcmciaapplet/opie-pcmciaapplet-1.2.1/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/opie-pcmciaapplet/opie-pcmciaapplet-1.2.1/.mtn2git_empty diff --git a/packages/opie-pcmciaapplet/opie-pcmciaapplet-1.2.1/activate-as-default.patch b/packages/opie-pcmciaapplet/opie-pcmciaapplet-1.2.1/activate-as-default.patch new file mode 100644 index 0000000000..4ec24ebaf8 --- /dev/null +++ b/packages/opie-pcmciaapplet/opie-pcmciaapplet-1.2.1/activate-as-default.patch @@ -0,0 +1,42 @@ +Backported from CVS + +Index: noncore/applets/pcmcia/configdialogbase.ui +=================================================================== +RCS file: /cvs/opie/noncore/applets/pcmcia/configdialogbase.ui,v +retrieving revision 1.6 +diff -u -u -r1.6 configdialogbase.ui +--- pcmcia/configdialogbase.ui 20 Jun 2005 12:46:33 -0000 1.6 ++++ pcmcia/configdialogbase.ui 15 Nov 2005 21:37:22 -0000 +@@ -288,13 +288,13 @@ + <item> + <property> + <name>text</name> +- <string>suspend</string> ++ <string>activate</string> + </property> + </item> + <item> + <property> + <name>text</name> +- <string>activate</string> ++ <string>suspend</string> + </property> + </item> + <item> +@@ -319,13 +319,13 @@ + <item> + <property> + <name>text</name> +- <string>suspend</string> ++ <string>activate</string> + </property> + </item> + <item> + <property> + <name>text</name> +- <string>activate</string> ++ <string>suspend</string> + </property> + </item> + <item> + diff --git a/packages/opie-pcmciaapplet/opie-pcmciaapplet_1.2.1.bb b/packages/opie-pcmciaapplet/opie-pcmciaapplet_1.2.1.bb index 15a76efde0..570155a275 100644 --- a/packages/opie-pcmciaapplet/opie-pcmciaapplet_1.2.1.bb +++ b/packages/opie-pcmciaapplet/opie-pcmciaapplet_1.2.1.bb @@ -1,6 +1,7 @@ include ${PN}.inc -PR = "r0" +PR = "r1" SRC_URI = "${HANDHELDS_CVS};tag=${TAG};module=opie/noncore/applets/pcmcia \ - ${HANDHELDS_CVS};tag=${TAG};module=opie/pics" + ${HANDHELDS_CVS};tag=${TAG};module=opie/pics \ + file://activate-as-default.patch;patch=1" diff --git a/packages/pcmcia-cs/files/gcc4_fixes.patch b/packages/pcmcia-cs/files/gcc4_fixes.patch new file mode 100644 index 0000000000..c68ba7a0f9 --- /dev/null +++ b/packages/pcmcia-cs/files/gcc4_fixes.patch @@ -0,0 +1,26 @@ +Index: pcmcia-cs-3.2.8/debug-tools/lspnp.c +=================================================================== +--- pcmcia-cs-3.2.8.orig/debug-tools/lspnp.c 2002-02-13 05:45:01.000000000 +0000 ++++ pcmcia-cs-3.2.8/debug-tools/lspnp.c 2005-11-11 23:43:33.000000000 +0000 +@@ -496,7 +496,7 @@ + dump_io_fixed(r); break; + } + } +- (u_char *)p += sz + 1; ++ p = (union pnp_resource *) ((u_char *)p + sz + 1); + } + return (u_char *)p; + } +Index: pcmcia-cs-3.2.8/debug-tools/setpnp.c +=================================================================== +--- pcmcia-cs-3.2.8.orig/debug-tools/setpnp.c 2001-10-10 02:58:12.000000000 +0000 ++++ pcmcia-cs-3.2.8/debug-tools/setpnp.c 2005-11-11 23:44:32.000000000 +0000 +@@ -163,7 +163,7 @@ + break; + } + } +- (u_char *)p += sz + 1; ++ p = (union pnp_resource *) ((u_char *)p + sz + 1); + } + return (u_char *)p; + } diff --git a/packages/pcmcia-cs/pcmcia-cs_3.2.8.bb b/packages/pcmcia-cs/pcmcia-cs_3.2.8.bb index fa685f8d5f..e0ebf70d93 100644 --- a/packages/pcmcia-cs/pcmcia-cs_3.2.8.bb +++ b/packages/pcmcia-cs/pcmcia-cs_3.2.8.bb @@ -3,7 +3,7 @@ SECTION = "base" PRIORITY = "required" LICENSE = "GPL" DEPENDS = "virtual/kernel" -PR = "r22" +PR = "r23" SRC_URI = "${SOURCEFORGE_MIRROR}/pcmcia-cs/pcmcia-cs-${PV}.tar.gz \ file://busybox.patch;patch=1 \ @@ -12,6 +12,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/pcmcia-cs/pcmcia-cs-${PV}.tar.gz \ file://automount.patch;patch=1 \ file://ratoc-cfu1u.patch;patch=1 \ file://no-hostap-cards.patch;patch=1 \ + file://gcc4_fixes.patch;patch=1 \ file://pcmcia \ file://ide.opts \ file://wireless.opts \ diff --git a/packages/pcre/pcre_4.4.bb b/packages/pcre/pcre_4.4.bb index 9f153847a4..612d76d835 100644 --- a/packages/pcre/pcre_4.4.bb +++ b/packages/pcre/pcre_4.4.bb @@ -5,7 +5,7 @@ provides a POSIX calling interface to PCRE; the regular expressions \ themselves still follow Perl syntax and semantics. The header file for \ the POSIX-style functions is called pcreposix.h." SECTION = "devel" -PR = "r1" +PR = "r2" LICENSE = "BSD" SRC_URI = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${PV}.tar.bz2" S = "${WORKDIR}/pcre-${PV}" @@ -27,18 +27,10 @@ do_compile () { } do_stage () { - # Force all -L(dir) output to be prepended with the staging libdir to stop libtool - # from trying to link to host libraries. - sed -i 's:-L\$:-L${STAGING_LIBDIR} -L\$:' ${S}/*libtool - oe_libinstall -a -so libpcre ${STAGING_LIBDIR} oe_libinstall -a -so libpcreposix ${STAGING_LIBDIR} install -m 0644 pcre.h ${STAGING_INCDIR}/ install -m 0644 pcreposix.h ${STAGING_INCDIR}/ - - # pcreposix linked originally to the libpcre in it's working directory. That messed - # the .la file up. I fix this manually here: - sed -i 's:${S}:${STAGING_LIBDIR}:' ${STAGING_LIBDIR}/libpcreposix.la } FILES_${PN} = "${libdir}/lib*.so*" diff --git a/packages/perl/perl-native_5.8.4.bb b/packages/perl/perl-native_5.8.4.bb index da30274627..a4065e999b 100644 --- a/packages/perl/perl-native_5.8.4.bb +++ b/packages/perl/perl-native_5.8.4.bb @@ -1,11 +1,12 @@ DESCRIPTION = "Perl is a popular scripting language." HOMEPAGE = "http://www.perl.org/" LICENSE = "Artistic|GPL" +PR = "r1" SECTION = "libs" inherit native -DEPENDS = "db3-native gdbm-native" +DEPENDS = "virtual/db-native gdbm-native" SRC_URI = "http://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz" S = "${WORKDIR}/perl-${PV}" diff --git a/packages/perl/perl-native_5.8.7.bb b/packages/perl/perl-native_5.8.7.bb index cc2b7fc5b1..4a28478b94 100644 --- a/packages/perl/perl-native_5.8.7.bb +++ b/packages/perl/perl-native_5.8.7.bb @@ -2,11 +2,12 @@ DESCRIPTION = "Perl is a popular scripting language." MAINTAINER="David Karlstrom <daka@thg.se>" HOMEPAGE = "http://www.perl.org/" LICENSE = "Artistic|GPL" +PR = "r1" SECTION = "libs" inherit native -DEPENDS = "db3-native gdbm-native" +DEPENDS = "virtual/db-native gdbm-native" SRC_URI = "http://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz" S = "${WORKDIR}/perl-${PV}" diff --git a/packages/perl/perl.inc b/packages/perl/perl.inc index 5ee5418fc4..505249cd9e 100644 --- a/packages/perl/perl.inc +++ b/packages/perl/perl.inc @@ -3,7 +3,7 @@ HOMEPAGE = "http://www.perl.org/" LICENSE = "Artistic|GPL" SECTION = "devel" PRIORITY = "optional" -DEPENDS = "db3 perl-native" +DEPENDS = "virtual/db perl-native" SRC_URI = "http://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz \ file://Makefile.patch;patch=1 \ diff --git a/packages/postfix/postfix-native_2.0.20.bb b/packages/postfix/postfix-native_2.0.20.bb index 99a1d9fbaf..bf00fd832d 100644 --- a/packages/postfix/postfix-native_2.0.20.bb +++ b/packages/postfix/postfix-native_2.0.20.bb @@ -2,7 +2,7 @@ SECTION = "console/network" include postfix_${PV}.bb inherit native FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/postfix-${PV}" -DEPENDS = "db3-native pcre-native" +DEPENDS = "virtual/db-native pcre-native" export DIRS = "src/util src/global src/postconf" do_stage () { diff --git a/packages/postfix/postfix_2.0.20.bb b/packages/postfix/postfix_2.0.20.bb index a676c3f809..4a11a002e3 100644 --- a/packages/postfix/postfix_2.0.20.bb +++ b/packages/postfix/postfix_2.0.20.bb @@ -1,7 +1,7 @@ SECTION = "console/network" -DEPENDS = "db3 pcre postfix-native" +DEPENDS = "virtual/db pcre postfix-native" LICENSE = "IPL" -PR = "r7" +PR = "r8" SRC_URI = "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \ file://${FILESDIR}/makedefs.patch;patch=1 \ @@ -18,7 +18,14 @@ inherit update-rc.d INITSCRIPT_NAME = "postfix" INITSCRIPT_PARAMS = "start 58 3 4 5 . stop 13 0 1 6 ." -export SYSLIBS = "-lpcre -ldb -lnsl -lresolv ${LDFLAGS}" +#FIXME: this is broken because the native build won't work on systems where +# native bdb does not require libpthread. ARM doesn't require libpthread +# because it uses an assembler mutex implementation. +LIBBDB_EXTRA = "-lpthread" +LIBBDB_EXTRA_arm = "" +LIBBDB_EXTRA_armeb = "" + +export SYSLIBS = "-lpcre -ldb ${LIBBDB_EXTRA} -lnsl -lresolv ${LDFLAGS}" export EXPORT = "AUXLIBS='-lpcre' CCARGS='-DHAS_PCRE ${CFLAGS}' OPT='' DEBUG='-g'" export CC_append = " -DHAS_PCRE ${CFLAGS}" export EXTRA_OEMAKE = "-e" diff --git a/packages/psmisc/psmisc_21.8.bb b/packages/psmisc/psmisc_21.8.bb new file mode 100644 index 0000000000..1a6a10e045 --- /dev/null +++ b/packages/psmisc/psmisc_21.8.bb @@ -0,0 +1,42 @@ +LICENSE = "GPL" +DESCRIPTION = "procfs tools" +SECTION = "base" +PRIORITY = "required" +MAINTAINER = "Greg Gilbert <greg@treke.net>" +DEPENDS = "ncurses" +PR = "r0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/psmisc/psmisc-${PV}.tar.gz" +S = "${WORKDIR}/psmisc-${PV}" + +inherit autotools gettext + +ALLOW_EMPTY = "1" + +PACKAGES = "${PN} fuser fuser-doc \ + killall killall-doc \ + pstree pstree-doc" + +FILES_${PN} = "" +RDEPENDS_${PN} = "fuser killall pstree" + +FILES_fuser = "${bindir}/fuser" +FILES_fuser-doc = "${mandir}/man1/fuser*" + +FILES_killall = "${bindir}/killall.${PN}" +FILES_killall-doc = "${mandir}/man1/killall*" + +FILES_pstree = "${bindir}/pstree" +FILES_pstree-doc = "${mandir}/man1/pstree*" + +do_install_append() { + mv ${D}${bindir}/killall ${D}${bindir}/killall.${PN} +} + +pkg_postinst_killall() { + update-alternatives --install ${bindir}/killall killall killall.${PN} 90 +} + +pkg_postrm_killall() { + update-alternatives --remove ${bindir}/killall killall.${PN} +} diff --git a/packages/qof/.mtn2git_empty b/packages/qof/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/qof/.mtn2git_empty diff --git a/packages/qof/files/.mtn2git_empty b/packages/qof/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/qof/files/.mtn2git_empty diff --git a/packages/qof/files/fix-includes.patch b/packages/qof/files/fix-includes.patch new file mode 100644 index 0000000000..427a88d0ee --- /dev/null +++ b/packages/qof/files/fix-includes.patch @@ -0,0 +1,16 @@ +--- /tmp/Makefile.am 2005-11-13 21:41:47.368686720 +0100 ++++ qof-0.6.0-pre1/qof/Makefile.am 2005-11-13 21:41:58.637973528 +0100 +@@ -86,13 +86,11 @@ + + if USE_LIBGDA + INCLUDES = \ +- -I$(includedir) \ + -DPREFIX=\""$(prefix)"\" \ + -DDATADIR=\""$(datadir)"\" + else + INCLUDES = \ + -I${top_srcdir}/lib/libsql \ +- -I$(includedir) \ + -DPREFIX=\""$(prefix)"\" \ + -DDATADIR=\""$(datadir)"\" + endif diff --git a/packages/qof/qof_0.6.0.bb b/packages/qof/qof_0.6.0.bb new file mode 100644 index 0000000000..4b382de653 --- /dev/null +++ b/packages/qof/qof_0.6.0.bb @@ -0,0 +1,20 @@ +LICENSE = "GPL" +HOMEPAGE = "http://qof.sourceforge.net/" + +DEPENDS = "glib-2.0 libtool zlib" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tar.gz \ + file://fix-includes.patch;patch=1" + + +FILES_${PN} += "/usr/share/xml" +PARALLEL_MAKE="" + +inherit autotools pkgconfig + + +do_stage() { +autotools_stage_all +} + + diff --git a/packages/qpf-fonts/qpf-dejavusans_1.15.bb b/packages/qpf-fonts/qpf-dejavusans_2.0.bb index 3428d98a89..3428d98a89 100644 --- a/packages/qpf-fonts/qpf-dejavusans_1.15.bb +++ b/packages/qpf-fonts/qpf-dejavusans_2.0.bb diff --git a/packages/qpf-fonts/qpf-dejavusanscondensed_1.15.bb b/packages/qpf-fonts/qpf-dejavusanscondensed_2.0.bb index 7494374023..7494374023 100644 --- a/packages/qpf-fonts/qpf-dejavusanscondensed_1.15.bb +++ b/packages/qpf-fonts/qpf-dejavusanscondensed_2.0.bb diff --git a/packages/qpf-fonts/qpf-dejavusansmono_1.15.bb b/packages/qpf-fonts/qpf-dejavusansmono_2.0.bb index 51c9e1b925..51c9e1b925 100644 --- a/packages/qpf-fonts/qpf-dejavusansmono_1.15.bb +++ b/packages/qpf-fonts/qpf-dejavusansmono_2.0.bb diff --git a/packages/qpf-fonts/qpf-dejavuserif_1.15.bb b/packages/qpf-fonts/qpf-dejavuserif_2.0.bb index 81009e8a8c..81009e8a8c 100644 --- a/packages/qpf-fonts/qpf-dejavuserif_1.15.bb +++ b/packages/qpf-fonts/qpf-dejavuserif_2.0.bb diff --git a/packages/qpf-fonts/qpf-dejavuserifcondensed_1.15.bb b/packages/qpf-fonts/qpf-dejavuserifcondensed_2.0.bb index db31216907..db31216907 100644 --- a/packages/qpf-fonts/qpf-dejavuserifcondensed_1.15.bb +++ b/packages/qpf-fonts/qpf-dejavuserifcondensed_2.0.bb diff --git a/packages/qpf-fonts/qpf-hunkysans_0.3.0.bb b/packages/qpf-fonts/qpf-hunkysans_0.3.0.bb index 6719be36e7..7fb5e58b2d 100644 --- a/packages/qpf-fonts/qpf-hunkysans_0.3.0.bb +++ b/packages/qpf-fonts/qpf-hunkysans_0.3.0.bb @@ -2,10 +2,10 @@ DESCRIPTION = "Hunky Sans font - QPF Edition" SECTION = "opie/fonts" PRIORITY = "optional" MAINTAINER = "Marcin Juszkiewicz <openembedded@hrw.one.pl>" -LICENSE = "Bitstream Vera" +LICENSE = "LGPL" HOMEPAGE = "http://www.yoper.com/ariszlo/hunky.html http://sourceforge.net/projects/hunkyfonts" PACKAGE_ARCH = "all" -PR = "r4" +PR = "r5" SRC_URI = "http://www.hrw.one.pl/_pliki/oe/files/${PN}-${PV}-r4.tar.bz2" diff --git a/packages/qpf-fonts/qpf-hunkyserif_0.3.0.bb b/packages/qpf-fonts/qpf-hunkyserif_0.3.0.bb index e8c1b43b9a..b316ce3a86 100644 --- a/packages/qpf-fonts/qpf-hunkyserif_0.3.0.bb +++ b/packages/qpf-fonts/qpf-hunkyserif_0.3.0.bb @@ -2,10 +2,10 @@ DESCRIPTION = "Hunky Serif font - QPF Edition" SECTION = "opie/fonts" PRIORITY = "optional" MAINTAINER = "Marcin Juszkiewicz <openembedded@hrw.one.pl>" -LICENSE = "Bitstream Vera" +LICENSE = "LGPL" HOMEPAGE = "http://www.yoper.com/ariszlo/hunky.html http://sourceforge.net/projects/hunkyfonts" PACKAGE_ARCH = "all" -PR = "r4" +PR = "r5" SRC_URI = "http://www.hrw.one.pl/_pliki/oe/files/${PN}-${PV}-r4.tar.bz2" diff --git a/packages/redfang/.mtn2git_empty b/packages/redfang/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/redfang/.mtn2git_empty diff --git a/packages/redfang/files/.mtn2git_empty b/packages/redfang/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/redfang/files/.mtn2git_empty diff --git a/packages/redfang/files/Makefile.patch b/packages/redfang/files/Makefile.patch new file mode 100644 index 0000000000..1810127cf3 --- /dev/null +++ b/packages/redfang/files/Makefile.patch @@ -0,0 +1,18 @@ +--- Makefile 2005-11-23 10:43:27.000000000 -0500 ++++ Makefile.new 2005-11-23 10:42:20.000000000 -0500 +@@ -3,12 +3,13 @@ + + DEPS=list.h + +-LIBS=-lbluetooth -lpthread ++#LIBS=-lbluetooth -lpthread ++LIBS=$(LDFLAGS) + + all: $(EXE) + + $(EXE): $(OBJ) $(DEPS) +- cc -o $(EXE) $(OBJ) $(LIBS) ++ $(CC) -o $(EXE) $(OBJ) $(LIBS) + + clean: + rm -f $(EXE) $(OBJ) *~ diff --git a/packages/redfang/redfang.bb b/packages/redfang/redfang.bb new file mode 100644 index 0000000000..ed1c4c270a --- /dev/null +++ b/packages/redfang/redfang.bb @@ -0,0 +1,22 @@ +SECTION = "unknown" +SRC_URI = "http://packetstormsecurity.org/wireless/redfang.2.5.tar.gz \ + file://Makefile.patch;patch=1;pnum=0" + +DEFAULT_PREFERENCE="-1" +PV="2.5" + +CFLAGS_prepend = "-I${STAGING_INCDIR}/bluetooth" + +LDFLAGS_prepend = "-L${STAGING_LIBDIR} -lbluetooth -lpthread " + +S = "${WORKDIR}/redfang-2.5" +LICENSE = "GPL" +do_compile() { + oe_runmake all +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${S}/fang ${D}${bindir} +} + diff --git a/packages/rpm/rpm_4.4.bb b/packages/rpm/rpm_4.4.bb index aebdf29d2a..ca60056c9c 100644 --- a/packages/rpm/rpm_4.4.bb +++ b/packages/rpm/rpm_4.4.bb @@ -3,8 +3,8 @@ HOMEPAGE = "http://rpm.org/" LICENSE = "LGPL GPL" MAINTAINER = "Chris Larson <kergoth@handhelds.org>" # NOTE: currently rpm doesn't support using an external popt, -# file, or db3. FIXME: patch it to support that. -# DEPENDS = "db3 popt file zlib" +# file, or virtual/db. FIXME: patch it to support that. +# DEPENDS = "virtual/db popt file zlib" DEPENDS = "zlib" PR = "r1" diff --git a/packages/sane-backends/sane-backends_1.0.15.bb b/packages/sane-backends/sane-backends_1.0.15.bb index 8d7cff5d39..653c3fe505 100644 --- a/packages/sane-backends/sane-backends_1.0.15.bb +++ b/packages/sane-backends/sane-backends_1.0.15.bb @@ -2,7 +2,7 @@ MAINTAINER = "Oyvind Repvik <nail@nslu2-linux.org>" DESCRIPTION = "Scanner drivers for SANE" PR = "r4" DEPENDS = "gphoto2 jpeg libusb" -LICENCE = "LGPL" +LICENSE = "LGPL" SRC_URI = "ftp://ftp.sane-project.org/pub/sane/sane-backends-${PV}/sane-backends-${PV}.tar.gz \ file://sane-plustek.patch;patch=1 \ diff --git a/packages/squashfs-tools/files/Makefile-2.2.patch b/packages/squashfs-tools/files/Makefile-2.2.patch new file mode 100644 index 0000000000..7a16129bbc --- /dev/null +++ b/packages/squashfs-tools/files/Makefile-2.2.patch @@ -0,0 +1,21 @@ +--- squashfs-tools/Makefile.orig 2005-10-26 18:15:43.641623000 +0100 ++++ squashfs-tools/Makefile 2005-10-26 18:21:29.747253250 +0100 +@@ -1,12 +1,17 @@ + INCLUDEDIR = . ++CFLAGS_R = -I$(INCLUDEDIR) -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE ++LIBS = -lz + + CFLAGS := -I$(INCLUDEDIR) -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -g + + mksquashfs: mksquashfs.o read_fs.o sort.o +- $(CC) mksquashfs.o read_fs.o sort.o -lz -o $@ ++ $(CC) $(LDFLAGS) mksquashfs.o read_fs.o sort.o -lz -o $@ + + mksquashfs.o: mksquashfs.c mksquashfs.h ++ $(CC) $(CFLAGS_R) $(CFLAGS) -c -o mksquashfs.o mksquashfs.c + + read_fs.o: read_fs.c read_fs.h ++ $(CC) $(CFLAGS_R) $(CFLAGS) -c -o read_fs.o read_fs.c + + sort.o: sort.c ++ $(CC) $(CFLAGS_R) $(CFLAGS) -c -o sort.o sort.c diff --git a/packages/squashfs-tools/squashfs-tools-native_2.2r2.bb b/packages/squashfs-tools/squashfs-tools-native_2.2r2.bb new file mode 100644 index 0000000000..c78f00c540 --- /dev/null +++ b/packages/squashfs-tools/squashfs-tools-native_2.2r2.bb @@ -0,0 +1,13 @@ +include squashfs-tools_${PV}.bb + +DEPENDS = "lzma-native" + +inherit native + +FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/squashfs-tools-${PV}', '${FILE_DIRNAME}/squashfs-tools', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}" +PACKAGES = "" + +do_stage () { + install -m 0755 mksquashfs ${STAGING_BINDIR}/ + install -m 0755 mksquashfs-lzma ${STAGING_BINDIR}/ +} diff --git a/packages/squashfs-tools/squashfs-tools_2.2r2.bb b/packages/squashfs-tools/squashfs-tools_2.2r2.bb new file mode 100644 index 0000000000..640433fcba --- /dev/null +++ b/packages/squashfs-tools/squashfs-tools_2.2r2.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "Squashfs is a highly compressed read-only filesystem for Linux." +MAINTAINER = "Chris Larson <kergoth@handhelds.org>" +DEPENDS = "lzma" +SECTION = "base" +LICENSE = "GPLv2" +PR = "r0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/squashfs/squashfs${@bb.data.getVar('PV',d,1).replace('r','-r')}.tar.gz \ + file://Makefile-2.2.patch;patch=1 \ + file://squashfs2.0-tools-lzma.patch;patch=1" +S = "${WORKDIR}/squashfs${@bb.data.getVar('PV',d,1).replace('r','-r')}/squashfs-tools" + +prefix = "" + +do_compile() { + oe_runmake mksquashfs mksquashfs-lzma +} + +do_install () { + install -d ${D}${sbindir} + install -m 0755 mksquashfs ${D}${sbindir}/ + install -m 0755 mksquashfs-lzma ${D}${sbindir}/ +} diff --git a/packages/ssmtp/ssmtp_2.61.bb b/packages/ssmtp/ssmtp_2.61.bb index 72cf7e63e4..acfa068cac 100644 --- a/packages/ssmtp/ssmtp_2.61.bb +++ b/packages/ssmtp/ssmtp_2.61.bb @@ -2,8 +2,7 @@ SECTION = "console/network" MAINTAINER = "Oyvind Repvik <nail@nslu2-linux.org>" DEPENDS = "openssl" DESCRIPTION = "Extremely simple MTA to get mail off the system to a mail hub." -LICENCE = "GPL" -LICENCE = "GPL" +LICENSE = "GPL" PR = "r5" SRC_URI = "${DEBIAN_MIRROR}/main/s/ssmtp/ssmtp_${PV}.orig.tar.gz \ diff --git a/packages/sudo/sudo_1.6.8p8.bb b/packages/sudo/sudo_1.6.8p12.bb index cc8ae4081c..f9d55411f8 100644 --- a/packages/sudo/sudo_1.6.8p8.bb +++ b/packages/sudo/sudo_1.6.8p12.bb @@ -5,4 +5,3 @@ SRC_URI = "http://ftp.sudo.ws/sudo/dist/sudo-${PV}.tar.gz \ file://noexec-link.patch;patch=1" include sudo.inc -PR = "r4" diff --git a/packages/suspend-desktop/.mtn2git_empty b/packages/suspend-desktop/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/suspend-desktop/.mtn2git_empty diff --git a/packages/suspend-desktop/suspend-desktop_1.0.bb b/packages/suspend-desktop/suspend-desktop_1.0.bb new file mode 100644 index 0000000000..4586b61978 --- /dev/null +++ b/packages/suspend-desktop/suspend-desktop_1.0.bb @@ -0,0 +1,26 @@ +PR = "r0" +SECTION = "gpe" +PRIORITY = "optional" +DESCRIPTION = "Suspend feature for the application launcher menu." +MAINTAINER = "Florian Boor <florian@kernelconcepts.de>" +LICENSE = "GPL" +DEPENDS = "gpe-conf" +RDEPENDS = "gpe-conf" +RRECOMMENDS = "apm" +PACKAGES = ${PN} + + +SRC_URI = "file://suspend.desktop \ + file://suspend.sh" + +FILES_${PN} = "${bindir} ${datadir}" + +do_compile() { +} + +do_install() { + install -d ${D}/${bindir} + install -d ${D}/${datadir}/applications + install -m644 ${WORKDIR}/suspend.desktop ${D}/${datadir}/applications/suspend.desktop + install -m755 ${WORKDIR}/suspend.sh ${D}/${bindir}/suspend.sh +} diff --git a/packages/suspend-desktop/suspend.desktop b/packages/suspend-desktop/suspend.desktop new file mode 100644 index 0000000000..21da51a66c --- /dev/null +++ b/packages/suspend-desktop/suspend.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Suspend +Comment=Suspend device +Exec=/usr/bin/suspend.sh +Terminal=0 +Type=Application +Icon=gpe-config-sleep.png +Categories=Utility;GPE;Action +StartupNotify=False diff --git a/packages/suspend-desktop/suspend.sh b/packages/suspend-desktop/suspend.sh new file mode 100644 index 0000000000..990bc09949 --- /dev/null +++ b/packages/suspend-desktop/suspend.sh @@ -0,0 +1,10 @@ +#!/bin/sh +if [ -x /usr/bin/apm ] +then + /usr/bin/apm --suspend +else + if [ -x /usr/bin/pm ] + then + /usr/bin/pm -pp + fi +fi diff --git a/packages/ttf-fonts/ttf-dejavu_1.15.bb b/packages/ttf-fonts/ttf-dejavu_2.0.bb index ca84ccbe8e..ca84ccbe8e 100644 --- a/packages/ttf-fonts/ttf-dejavu_1.15.bb +++ b/packages/ttf-fonts/ttf-dejavu_2.0.bb diff --git a/packages/ttf-fonts/ttf-gentium_1.01.bb b/packages/ttf-fonts/ttf-gentium_1.01.bb new file mode 100644 index 0000000000..82f39a0ca3 --- /dev/null +++ b/packages/ttf-fonts/ttf-gentium_1.01.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "Gentium fonts - TTF Version" +LICENSE = "Gentium" +HOMEPAGE = "http://scripts.sil.org/gentium" +PR = "r0" + +SRC_URI = "${DEBIAN_MIRROR}/non-free/t/ttf-gentium/ttf-gentium_${PV}.orig.tar.gz" + +include ttf.inc + +PACKAGES += "ttf-gentium-alt" + +FILES_ttf-gentium-alt = "${datadir}/fonts/truetype/GenAI*.ttf ${datadir}/fonts/truetype/GenAR*.ttf" +FILES_${PN} = "${datadir}/fonts/truetype/GenI*.ttf ${datadir}/fonts/truetype/GenR*.ttf" + +# +# LICENSE: +# +# This font is the property of SIL International. It is distributed as +# copyrighted freeware. You may use this software without any charge and may +# distribute it, as is, to others. Commercial distribution of this software is +# restricted without prior written permission. If you wish to distribute this +# software commercially, contact SIL for details on obtaining a license. You +# may not rent or lease the software, nor may you modify, adapt, translate, +# reverse engineer, decompile, or disassemble the software. You may not make +# derivative fonts from this software. THE SOFTWARE AND RELATED FILES ARE +# PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND. +# diff --git a/packages/ttf-fonts/ttf-hunkyfonts_0.3.0.bb b/packages/ttf-fonts/ttf-hunkyfonts_0.3.0.bb new file mode 100644 index 0000000000..1be97422ef --- /dev/null +++ b/packages/ttf-fonts/ttf-hunkyfonts_0.3.0.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "Hunky fonts - TTF Version" +MAINTAINER = "Marcin Juszkiewicz <openembedded@hrw.one.pl>" +LICENSE = "LGPL" +HOMEPAGE = "http://sourceforge.net/projects/hunkyfonts" +PR = "r0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/hunkyfonts/hunkyfonts-${PV}.tar.bz2" + +S = "${WORKDIR}/hunkyfonts-${PV}/TTF/" + +include ttf.inc + +PACKAGES = "ttf-hunky-sans ttf-hunky-serif" + +FILES_ttf-hunky-sans = "${datadir}/fonts/truetype/HunkySans*.ttf" +FILES_ttf-hunky-serif = "${datadir}/fonts/truetype/HunkySerif*.ttf" diff --git a/packages/ttf-fonts/ttf.inc b/packages/ttf-fonts/ttf.inc index 4cf5262280..38cc9b78c0 100644 --- a/packages/ttf-fonts/ttf.inc +++ b/packages/ttf-fonts/ttf.inc @@ -1,12 +1,11 @@ -SECTION = "x11/fonts" #maybe this should be "fonts/ttf"? +SECTION = "x11/fonts" PRIORITY = "optional" PACKAGE_ARCH = "all" -#DEPENDS = "fontconfig" -#RSUGGESTS = "libfontconfig-utils" +#DEPENDS = "fontconfig opie-ttf-support" +#RSUGGESTS = "libfontconfig-utils opie-ttf-support" # I dont want TTF fonts to depend on fontconfig on device -# as those fonts can be used not only in X11 enviroment -# for example I use them with OPIE +# as those fonts are used not only in X11 enviroment do_install() { install -d ${D}${datadir}/fonts/truetype/ diff --git a/packages/upslug/upslug2-native_11.bb b/packages/upslug/upslug2-native_11.bb new file mode 100644 index 0000000000..e9ece6a426 --- /dev/null +++ b/packages/upslug/upslug2-native_11.bb @@ -0,0 +1,2 @@ +include upslug2_${PV}.bb +inherit native diff --git a/packages/upslug/upslug2-native_3.bb b/packages/upslug/upslug2-native_3.bb deleted file mode 100644 index d0e010198d..0000000000 --- a/packages/upslug/upslug2-native_3.bb +++ /dev/null @@ -1,2 +0,0 @@ -include upslug2_3.bb -inherit native diff --git a/packages/upslug/upslug2-native_4.bb b/packages/upslug/upslug2-native_4.bb deleted file mode 100644 index 0227255d29..0000000000 --- a/packages/upslug/upslug2-native_4.bb +++ /dev/null @@ -1,2 +0,0 @@ -include upslug2_4.bb -inherit native diff --git a/packages/upslug/upslug2-native_5.bb b/packages/upslug/upslug2-native_5.bb deleted file mode 100644 index 75870a9950..0000000000 --- a/packages/upslug/upslug2-native_5.bb +++ /dev/null @@ -1,2 +0,0 @@ -include upslug2_5.bb -inherit native diff --git a/packages/upslug/upslug2_4.bb b/packages/upslug/upslug2_10.bb index de9c427303..de9c427303 100644 --- a/packages/upslug/upslug2_4.bb +++ b/packages/upslug/upslug2_10.bb diff --git a/packages/upslug/upslug2_5.bb b/packages/upslug/upslug2_11.bb index de9c427303..de9c427303 100644 --- a/packages/upslug/upslug2_5.bb +++ b/packages/upslug/upslug2_11.bb diff --git a/packages/upslug/upslug2_3.bb b/packages/upslug/upslug2_3.bb deleted file mode 100644 index 5fa7c29185..0000000000 --- a/packages/upslug/upslug2_3.bb +++ /dev/null @@ -1 +0,0 @@ -include upslug2-cvs.inc diff --git a/packages/watchdog/watchdog_5.2.bb b/packages/watchdog/watchdog_5.2.bb index 1bd7258b84..fc3509466a 100644 --- a/packages/watchdog/watchdog_5.2.bb +++ b/packages/watchdog/watchdog_5.2.bb @@ -1,7 +1,7 @@ DESCRIPTION = "Software watchdog" MAINTAINER = "Oyvind Repvik <nail@nslu2-linux.org>" PR = "r2" -LICENCE = "GPL" +LICENSE = "GPL" SRC_URI = "http://www.ibiblio.org/pub/Linux/system/daemons/watchdog/${PN}-${PV}.tar.gz" FILES = "${sysconfdir}/watchdog.conf ${sbindir}/watchdog" diff --git a/packages/wpa-supplicant/wpa-supplicant_0.3.6.bb b/packages/wpa-supplicant/wpa-supplicant_0.3.6.bb index f0572dfdbf..0a8fc1bc66 100644 --- a/packages/wpa-supplicant/wpa-supplicant_0.3.6.bb +++ b/packages/wpa-supplicant/wpa-supplicant_0.3.6.bb @@ -4,10 +4,11 @@ LICENSE = "GPL" MAINTAINER = "Holger Schurig" HOMEPAGE = "http://hostap.epitest.fi/wpa_supplicant/" DEPENDS = "openssl" -PR = "r2" +PR = "r3" SRC_URI = "http://hostap.epitest.fi/releases/wpa_supplicant-0.3.6.tar.gz \ file://defconfig \ + file://driver-hermes.patch;patch=1 \ file://wpa_supplicant.conf" S = "${WORKDIR}/wpa_supplicant-${PV}" diff --git a/packages/wpa-supplicant/wpa-supplicant_0.3.8.bb b/packages/wpa-supplicant/wpa-supplicant_0.3.8.bb index 82b4eb50ca..684d7da8eb 100644 --- a/packages/wpa-supplicant/wpa-supplicant_0.3.8.bb +++ b/packages/wpa-supplicant/wpa-supplicant_0.3.8.bb @@ -5,11 +5,12 @@ MAINTAINER = "Holger Schurig" HOMEPAGE = "http://hostap.epitest.fi/wpa_supplicant/" DEPENDS = "openssl" DEPENDS_mtx-1_append = "madwifi-modules" -PR = "r0" +PR = "r1" SRC_URI = "http://hostap.epitest.fi/releases/wpa_supplicant-${PV}.tar.gz \ file://madwifi-bsd-fix.diff;patch=1;pnum=0 \ file://defconfig \ + file://driver-hermes.patch;patch=1 \ file://wpa_supplicant.conf" S = "${WORKDIR}/wpa_supplicant-${PV}" diff --git a/packages/xserver/xserver-kdrive_20050207.bb b/packages/xserver/xserver-kdrive_20050207.bb index f6f38a8839..2980e7762f 100644 --- a/packages/xserver/xserver-kdrive_20050207.bb +++ b/packages/xserver/xserver-kdrive_20050207.bb @@ -20,7 +20,7 @@ DESCRIPTION_xserver-kdrive-epson = "X server from freedesktop.org, supporting Ep DESCRIPTION_xserver-kdrive-fake = "Fake X server" DESCRIPTION_xserver-kdrive-xephyr = "X server in an X window" -PR = "r8" +PR = "r10" FILES_xserver-kdrive-fbdev = "${bindir}/Xfbdev" FILES_xserver-kdrive-ati = "${bindir}/Xati" @@ -35,36 +35,29 @@ FILES_xserver-kdrive-xephyr = "${bindir}/Xephyr" SRC_URI = "cvs://anoncvs:anoncvs@pdx.freedesktop.org/cvs/xserver;module=xserver;date=${FIXEDCVSDATE} \ file://kmode.patch;patch=1 \ + file://disable-apm.patch;patch=1 \ file://fbdev-not-fix.patch;patch=1 " +SRC_URI_h3600 = "cvs://anoncvs:anoncvs@pdx.freedesktop.org/cvs/xserver;module=xserver;date=${FIXEDCVSDATE} \ + file://kmode.patch;patch=1 \ + file://faster-rotated.patch;patch=1 \ + file://fbdev-not-fix.patch;patch=1 " + + SRC_URI_append_mnci = " file://onlyfb.patch;patch=1 \ file://faster-rotated.patch;patch=1 \ - file://devfs.patch;patch=1 \ - file://disable-apm.patch;patch=1" + file://devfs.patch;patch=1" SRC_URI_append_collie = " file://faster-rotated.patch;patch=1" SRC_URI_append_poodle = " file://xserver-kdrive-poodle.patch;patch=1 \ file://faster-rotated.patch;patch=1" -SRC_URI_append_c7x0 = " file://disable-apm.patch;patch=1" -SRC_URI_append_ipaq-pxa270= " file://disable-apm.patch;patch=1" -SRC_URI_append_h3600 = " file://faster-rotated.patch;patch=1" -SRC_URI_append_h3900 = " file://disable-apm.patch;patch=1" -SRC_URI_append_h2200 = " file://disable-apm.patch;patch=1" -SRC_URI_append_spitz = " file://disable-apm.patch;patch=1 \ - file://faster-rotated.patch;patch=1" -SRC_URI_append_akita = " file://disable-apm.patch;patch=1 \ - file://faster-rotated.patch;patch=1" -SRC_URI_append_borzoi = " file://disable-apm.patch;patch=1 \ - file://faster-rotated.patch;patch=1" -SRC_URI_append_simpad = " file://disable-apm.patch;patch=1" +SRC_URI_append_spitz = " file://faster-rotated.patch;patch=1" +SRC_URI_append_akita = " file://faster-rotated.patch;patch=1" +SRC_URI_append_borzoi = " file://faster-rotated.patch;patch=1" -PACKAGE_ARCH_simpad = "simpad" +PACKAGE_ARCH_mnci = "mnci" PACKAGE_ARCH_collie = "collie" PACKAGE_ARCH_poodle = "poodle" -PACKAGE_ARCH_c7x0 = "c7x0" -PACKAGE_ARCH_ipaq-pxa270 = "ipaq-pxa270" PACKAGE_ARCH_h3600 = "h3600" -PACKAGE_ARCH_h3900 = "h3900" -PACKAGE_ARCH_h2200 = "h2200" PACKAGE_ARCH_spitz = "spitz" PACKAGE_ARCH_akita = "akita" PACKAGE_ARCH_borzoi = "borzoi" diff --git a/packages/zaurus-updater/borzoi/updater.sh b/packages/zaurus-updater/borzoi/updater.sh index 621c339b5d..0c18966fdb 100644 --- a/packages/zaurus-updater/borzoi/updater.sh +++ b/packages/zaurus-updater/borzoi/updater.sh @@ -1,5 +1,8 @@ #!/bin/sh +# +# Noodles' simpler update script. SL-C3000 only for the moment. +# DATAPATH=$1 TMPPATH=/tmp/update @@ -8,7 +11,7 @@ TMPHEAD=$TMPPATH/tmphead.bin WFLG_KERNEL=0 WFLG_INITRD=0 -WFLG_MVERSION=0 +WFLG_HDD=0 RO_MTD_LINE=`cat /proc/mtd | grep "root" | tail -n 1` if [ "$RO_MTD_LINE" = "" ]; then @@ -41,131 +44,124 @@ Cleanup(){ rm -f $VTMPNAME > /dev/null 2>&1 rm -f $MTMPNAME > /dev/null 2>&1 rm $CTRLPATH/* > /dev/null 2>&1 - rm $DATAPATH/* > /dev/null 2>&1 exit $1 } trap 'Cleanup 1' 1 15 trap '' 2 3 +get_dev_pcmcia() +{ +while read SOCKET CLASS DRIVER INSTANCE DEVS MAJOR MINOR; +do + echo $DEVS +done +} +get_dev_pcmcia_slot() +{ + grep "^$1" /var/lib/pcmcia/stab | get_dev_pcmcia +} +sleep 1 +IDE1=`get_dev_pcmcia_slot 1` +if [ "$IDE1" = "" ]; then + echo "Error!! There is no HDD. Now retrying..." + while [ "$IDE1" = "" ]; do + IDE1=`get_dev_pcmcia_slot 1` + done + echo "Found HDD!!" +fi + +#LINUXFMT=ext2 +LINUXFMT=ext3 +MKE2FSOPT= +if [ "$LINUXFMT" = "ext3" ]; then + MKE2FSOPT=-j +fi + ### Check model ### /sbin/writerominfo MODEL=`cat /proc/deviceinfo/product` -echo 'MODEL:'$MODEL -case "$MODEL" in - SL-C700) ;; - SL-C750) ;; - SL-C760) ;; - SL-C860) ;; - SL-C3100) ;; - SL-B500) ;; - SL-5600) ;; - *) +if [ "$MODEL" != "SL-C3000" ] && [ "$MODEL" != "SL-C3100" ] +then + echo 'MODEL:'$MODEL echo 'ERROR:Invalid model!' echo 'Please reset' while true do done - ;; -esac +fi + +### Check that we have a valid tar +for TARNAME in gnu-tar GNU-TAR +do + if [ -e $DATAPATH/$TARNAME ] + then + TARBIN=$DATAPATH/$TARNAME + fi +done + +if [ ! -e $TARBIN ]; then + echo 'Please place a valid copy of tar as "gnu-tar" on your card' + echo 'Please reset' + while true + do + done +fi mkdir -p $TMPPATH > /dev/null 2>&1 cd $DATAPATH/ -for TARGETFILE in zImage.bin zimage.bin ZIMAGE.BIN initrd.bin INITRD.BIN mversion.bin MVERSION.BIN +# +# First do the kernel. +# +for TARGETFILE in zImage.bin zimage.bin ZIMAGE.BIN do - if [ -e $TARGETFILE ] + if [ -e $TARGETFILE -a $WFLG_KERNEL = 0 ] then - rm -f $TMPPATH/*.bin > /dev/null 2>&1 + # Get the size of the kernel. DATASIZE=`wc -c $TARGETFILE` DATASIZE=`echo $DATASIZE | cut -d' ' -f1` - #echo $TARGETFILE':'$DATASIZE'bytes' - TARGETTYPE=Invalid - case "$TARGETFILE" in - zImage.bin) TARGETTYPE=Kernel;; - zimage.bin) TARGETTYPE=Kernel;; - ZIMAGE.BIN) TARGETTYPE=Kernel;; - initrd.bin) TARGETTYPE=RoFs;; - INITRD.BIN) TARGETTYPE=RoFs;; - mversion.bin) TARGETTYPE=MasterVer;; - MVERSION.BIN) TARGETTYPE=MasterVer;; - *) - continue - ;; - esac - - case "$TARGETTYPE" in - Kernel) - if [ $WFLG_KERNEL != 0 ] - then - continue - fi - WFLG_KERNEL=1 - echo 'kernel' - ISLOGICAL=1 - MODULEID=5 - MODULESIZE=0x13C000 - ADDR=`dc 0xE0000` - ISFORMATTED=1 - DATAPOS=0 - ONESIZE=524288 - HDTOP=`expr $DATASIZE - 16` - /sbin/bcut -a $HDTOP -s 16 -o $TMPHEAD $TARGETFILE - ;; - RoFs) - if [ $WFLG_INITRD != 0 ] - then - continue - fi - WFLG_INITRD=1 - echo 'RO file system' - ISLOGICAL=0 - MODULEID=6 - MODULESIZE=0x1900000 - ADDR=0 - ISFORMATTED=0 - TARGET_MTD=$RO_MTD - DATAPOS=16 - ONESIZE=1048576 - /sbin/bcut -s 16 -o $TMPHEAD $TARGETFILE - ;; - MasterVer) - if [ $WFLG_MVERSION != 0 ] - then - continue - fi - WFLG_MVERSION=1 - echo 'Master version' - MTMPNAME=$TMPPATH'/mtmp'`date '+%s'`'.tmp' - /sbin/nandlogical $LOGOCAL_MTD READ $MVRBLOCK 0x4000 $MTMPNAME > /dev/null 2>&1 - /sbin/verchg -m $MTMPNAME $TARGETFILE 0 0 > /dev/null 2>&1 - /sbin/nandlogical $LOGOCAL_MTD WRITE $MVRBLOCK 0x4000 $MTMPNAME > /dev/null 2>&1 - rm -f $MTMPNAME > /dev/null 2>&1 - echo 'Success!' - continue - ;; - *) - continue - ;; - esac + echo 'Updating kernel.' + echo $TARGETFILE':'$DATASIZE' bytes' + /sbin/nandlogical $LOGOCAL_MTD WRITE 0xe0000 $DATASIZE \ + $TARGETFILE > /dev/null 2>&1 + WFLG_KERNEL=1 - #format? - if [ $ISFORMATTED = 0 ] - then - echo -n 'Flash erasing...' - /sbin/eraseall $TARGET_MTD 2> /dev/null > /dev/null - #/sbin/eraseall $TARGET_MTD 2 - echo 'done' - ISFORMATTED=1 - fi + fi +done + +# +# Now do the initrd. +# +for TARGETFILE in initrd.bin INITRD.BIN +do + if [ -e $TARGETFILE -a $WFLG_INITRD = 0 ] + then + rm -f $TMPPATH/*.bin > /dev/null 2>&1 + DATASIZE=`wc -c $TARGETFILE` + DATASIZE=`echo $DATASIZE | cut -d' ' -f1` + + WFLG_INITRD=1 + echo 'RO file system' + MODULEID=6 + MODULESIZE=0x500000 + ADDR=0 + TARGET_MTD=$RO_MTD + DATAPOS=16 + ONESIZE=1048576 + /sbin/bcut -s 16 -o $TMPHEAD $TARGETFILE + + echo -n 'Flash erasing...' + /sbin/eraseall $TARGET_MTD 2> /dev/null > /dev/null + echo 'done' echo '' - echo '0% 100%' + echo '0% 100%' PROGSTEP=`expr $DATASIZE / $ONESIZE + 1` - PROGSTEP=`expr 25 / $PROGSTEP` + PROGSTEP=`expr 28 / $PROGSTEP` if [ $PROGSTEP = 0 ] then PROGSTEP=1 @@ -181,14 +177,7 @@ do /sbin/verchg -v $VTMPNAME $TMPHEAD $MODULEID $MODULESIZE > /dev/null 2>&1 /sbin/verchg -m $MTMPNAME $TMPHEAD $MODULEID $MODULESIZE > /dev/null 2>&1 - if [ "$MODEL" = "SL-C3100" ] && [ $TARGETTYPE = Kernel ]; then - echo $TARGETFILE':'$DATASIZE'bytes' - echo ' ' > /tmp/data - /sbin/nandlogical $LOGOCAL_MTD WRITE 0x60100 16 /tmp/data > /dev/null 2>&1 - /sbin/nandlogical $LOGOCAL_MTD WRITE 0xe0000 $DATASIZE $TARGETFILE > /dev/null 2>&1 - /sbin/nandlogical $LOGOCAL_MTD WRITE 0x21bff0 16 /tmp/data > /dev/null 2>&1 #loop - else while [ $DATAPOS -lt $DATASIZE ] do #data create @@ -200,21 +189,14 @@ do #handle data file #echo 'ADDR='$ADDR #echo 'SIZE='$TMPSIZE - #echo 'TMPDATA='$TMPDATA - if [ $ISLOGICAL = 0 ] - then - next_addr=`/sbin/nandcp -a $ADDR $TMPDATA $TARGET_MTD 2>/dev/null | fgrep "mtd address" | cut -d- -f2 | cut -d\( -f1` - if [ "$next_addr" = "" ]; then - echo "ERROR:flash write" - rm $TMPDATA > /dev/null 2>&1 - RESULT=3 - break; - fi - ADDR=$next_addr - else - /sbin/nandlogical $LOGOCAL_MTD WRITE $ADDR $DATASIZE $TMPDATA > /dev/null 2>&1 - ADDR=`expr $ADDR + $TMPSIZE` + next_addr=`/sbin/nandcp -a $ADDR $TMPDATA $TARGET_MTD 2>/dev/null | fgrep "mtd address" | cut -d- -f2 | cut -d\( -f1` + if [ "$next_addr" = "" ]; then + echo "ERROR:flash write" + rm $TMPDATA > /dev/null 2>&1 + RESULT=3 + break; fi + ADDR=$next_addr rm $TMPDATA > /dev/null 2>&1 @@ -227,11 +209,9 @@ do done done - fi - echo '' -#finish + #finish rm -f $TMPPATH/*.bin > /dev/null 2>&1 if [ $RESULT = 0 ] @@ -249,4 +229,55 @@ do fi done +## HDD image +for TARGETFILE in hdimage1.tgz HDIMAGE1.TGZ +do + if [ -e $TARGETFILE ]; then + if [ $WFLG_HDD != 0 ] + then + continue + fi + WFLG_HDD=1 + echo '' + echo 'HDD RO file system' + if [ ! -f /hdd1/NotAvailable ]; then + umount /hdd1 + fi + echo 'Now formatting...' + mke2fs $MKE2FSOPT /dev/${IDE1}1 2> /dev/null > /dev/null + e2fsck -p /dev/${IDE1}1 > /dev/null + if [ "$?" != "0" ]; then + echo "Error!" + exit "$?" + fi + + mount -t $LINUXFMT -o noatime /dev/${IDE1}1 /hdd1 + if [ "$?" != "0" ]; then + echo "Error!" + exit "$?" + fi + + cd /hdd1 + + #This can be useful for debugging + #/bin/sh -i + + + echo 'Now extracting...' + gzip -dc $DATAPATH/$TARGETFILE | $TARBIN xf - + if [ "$?" != "0" ]; then + echo "Error!" + exit "$?" + fi + + echo 'Success!' + + + # remount as RO + cd / + umount /hdd1 + mount -t $LINUXFMT -o ro,noatime /dev/${IDE1}1 /hdd1 + fi +done + exit 0 diff --git a/packages/zd1211/zd1211_20050822.bb b/packages/zd1211/zd1211_20050822.bb index 917706ee34..06c8876ed1 100644 --- a/packages/zd1211/zd1211_20050822.bb +++ b/packages/zd1211/zd1211_20050822.bb @@ -3,7 +3,7 @@ PRIORITY = "optional" SECTION = "kernel/modules" MAINTAINER = "dyoung <dyoung8888@yahoo.com>" LICENSE = "GPL" -PR = "r3" +PR = "r4" RDEPENDS = "wireless-tools" SRC_URI = "http://download.sourceforge.net/zd1211/sf_zd1211_${PV}_src.tar.gz \ @@ -24,6 +24,7 @@ do_compile () { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS CC LD CPP oe_runmake 'KSRC=${STAGING_KERNEL_DIR}' \ 'KDIR=${STAGING_KERNEL_DIR}' \ + 'KERNRELEASE=${KERNEL_VERSION}' \ 'CC="${KERNEL_CC}"' \ 'LD="${KERNEL_LD}"' } |