diff options
author | Rod Whitby <rod@whitby.id.au> | 2005-11-08 12:49:48 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2005-11-08 12:49:48 +0000 |
commit | 89aecb8bb608bf86eaf4bd812b3b9ce39a985968 (patch) | |
tree | ef79b5fd950a0996336f1de520fef846f3a990eb /packages | |
parent | 750e6ba2065a44f09667a66e49fd487264179d66 (diff) | |
parent | f20c6d9da02a584be54cc96f419bb3aa58d0e507 (diff) |
merge of aabbfb8517118db142fd2350142326ea9089f210
and c1e11e88425fea080d1af8514734c6caa36c4be5
Diffstat (limited to 'packages')
-rw-r--r-- | packages/linux/nas100d-kernel.inc | 242 | ||||
-rw-r--r-- | packages/linux/nas100d-kernel/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/linux/nas100d-kernel/2.6.14/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/linux/nas100d-kernel/2.6.14/10-ixp4xx-copy-from.patch | 73 | ||||
-rw-r--r-- | packages/linux/nas100d-kernel/2.6.14/10-ixp4xx-le.patch | 54 | ||||
-rw-r--r-- | packages/linux/nas100d-kernel/2.6.14/10-mtdpart-redboot-fis-byteswap.patch | 44 | ||||
-rw-r--r-- | packages/linux/nas100d-kernel/2.6.14/15-ixp4xx-writesb-l-w.patch | 31 | ||||
-rw-r--r-- | packages/linux/nas100d-kernel/2.6.14/18-ixp4xx-io-h-addr.patch | 287 | ||||
-rw-r--r-- | packages/linux/nas100d-kernel/2.6.14/28-spinlock-up.patch | 32 | ||||
-rw-r--r-- | packages/linux/nas100d-kernel/2.6.14/29-ipv4-route-c-spinlock.patch | 11 | ||||
-rw-r--r-- | packages/linux/nas100d-kernel/2.6.14/90-ixp4xx-pci-le.patch | 11 | ||||
-rw-r--r-- | packages/linux/nas100d-kernel/2.6.14/defconfig | 1552 | ||||
-rw-r--r-- | packages/linux/nas100d-kernel_2.6.14.bb | 38 | ||||
-rw-r--r-- | packages/meta/ludeos-image.bb | 1 | ||||
-rw-r--r-- | packages/meta/ludeos-packages.bb | 1 |
15 files changed, 2377 insertions, 0 deletions
diff --git a/packages/linux/nas100d-kernel.inc b/packages/linux/nas100d-kernel.inc new file mode 100644 index 0000000000..0c97f3c08a --- /dev/null +++ b/packages/linux/nas100d-kernel.inc @@ -0,0 +1,242 @@ +# 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" ] + for patch in pv[1:]: + name.append(patch) + pname = '-'.join(name) + 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) +} + +# 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_ROOT ?= "root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc" +# Add distro specific debug (or non-debug) options to this +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'" + +# 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() { + install -m 0644 ${WORKDIR}/defconfig ${S}/.config + if test '${ARCH_BYTE_SEX}' = le + 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 + rm -rf ${S}/include/asm-arm/arch ${S}/include/asm-arm/proc \ + ${S}/include/asm-arm/.proc ${S}/include/asm-arm/.arch +} + +# This function adds the required prefix to the image to deal with two +# problems: +# +# 1) The machine type set by RedBoot is wrong - the type for an ixdp425, not an NAS 100d +# e3a01c02 e3811055 +# 2) For LE kernels it is necessary to prefix change-to-le code to the kernel image: +# ee110f10 e3c00080 ee010f10 +# and to byte swap the (LE) image to match the BE flash layout +# +# The argument to the function is the destination directory +redboot_fixup_armeb() { + rm -f "$1".new + devio '<<arch/${ARCH}/boot/${KERNEL_IMAGETYPE}' >"$1".new \ + 'wb 0xe3a01c02,4' \ + 'wb 0xe3811055,4' \ + 'cp$' + mv "$1".new "$1" +} + +redboot_fixup_arm() { + rm -f "$1".new + devio '<<arch/${ARCH}/boot/${KERNEL_IMAGETYPE}' >"$1".new \ + 'wb 0xe3a01c02,4' \ + 'wb 0xe3811055,4' \ + 'wb 0xee110f10,4' \ + 'wb 0xe3c00080,4' \ + 'wb 0xee010f10,4' \ + 'xp $,4' || { + echo 'ERROR: arch/${ARCH}/boot/${KERNEL_IMAGETYPE}: failed to byteswap zImage' >&2 + return 1 + } + mv "$1".new "$1" +} + +do_install_append() { + redboot_fixup '${STAGING_KERNEL_DIR}/${KERNEL_IMAGETYPE}' +} + +do_deploy[dirs] = "${S}" +do_deploy() { + install -d ${DEPLOY_DIR}/images + redboot_fixup '${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/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/nas100d-kernel/2.6.14/defconfig b/packages/linux/nas100d-kernel/2.6.14/defconfig new file mode 100644 index 0000000000..564bffa17e --- /dev/null +++ b/packages/linux/nas100d-kernel/2.6.14/defconfig @@ -0,0 +1,1552 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.14-rc4 +# Fri Oct 21 16:13:58 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_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT 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_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 +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=1 + +# +# 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=y +# CONFIG_MACH_IXDPG425 is not set +# CONFIG_MACH_IXDP465 is not set +# CONFIG_MACH_NAS100D is not set +# 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=y +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 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_SPARSEMEM_STATIC is not set +# CONFIG_LEDS is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc x1205.hctosys=1 noirqdebug 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_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 is not set + +# +# 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 +# + +# +# 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_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 is not set +# 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=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 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 +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 +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=4 +CONFIG_BLK_DEV_RAM_SIZE=10240 +CONFIG_BLK_DEV_INITRD=y +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 + +# +# ATA/ATAPI/MFM/RLL support +# +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +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=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=y +# 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 +# CONFIG_SCSI_SAS_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_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_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=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 +# +# CONFIG_FUSION is not set +# CONFIG_FUSION_SPI is not set +# CONFIG_FUSION_FC is not set +# CONFIG_FUSION_SAS is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_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=m + +# +# ARCnet devices +# +# 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 +# +# 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_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 + +# +# 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_HOSTAP 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=m +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_RX is not set +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NET_POLL_CONTROLLER=y + +# +# 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=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 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=16 + +# +# 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=m +# 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_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 + +# +# 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=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_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 + +# +# Misc devices +# + +# +# Multimedia Capabilities Port drivers +# + +# +# Multimedia devices +# +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_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 +# +# 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_SUSPEND 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 is not set +# 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_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=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=m +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=m +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_ASFS_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_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 + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +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 +# + +# +# Library routines +# +CONFIG_CRC_CCITT=m +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +CONFIG_LIBCRC32C=m +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y 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..6526cfbc27 --- /dev/null +++ b/packages/linux/nas100d-kernel_2.6.14.bb @@ -0,0 +1,38 @@ +# 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-io.c \ +# arch/arm/mach-ixp4xx/nas100d-setup.c \ +# arch/arm/mach-ixp4xx/nas100d-pci.c \ +# arch/arm/mach-ixp4xx/nas100d-part.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://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/meta/ludeos-image.bb b/packages/meta/ludeos-image.bb new file mode 100644 index 0000000000..a939d41531 --- /dev/null +++ b/packages/meta/ludeos-image.bb @@ -0,0 +1 @@ +DEPENDS = openslug-image
\ No newline at end of file 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 |