aboutsummaryrefslogtreecommitdiffstats
path: root/packages/linux
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.ne>2008-07-14 06:51:13 +0000
committerFelix Domke <tmbinc@elitedvb.ne>2008-07-14 06:51:13 +0000
commitf63cb4ffaadf45c2af177ec66ab20d82781540fe (patch)
tree9795549e9d8c991b7f04139aca088e3feb49c1e7 /packages/linux
parentcd21ab24b9b40a4f5d45c9ee42f15b795e1fb862 (diff)
downloadopenembedded-f63cb4ffaadf45c2af177ec66ab20d82781540fe.tar.gz
add dm8000 support
Diffstat (limited to 'packages/linux')
-rw-r--r--packages/linux/linux-dm8000.bb78
-rw-r--r--packages/linux/linux-dm8000/.mtn2git_empty0
-rw-r--r--packages/linux/linux-dm8000/dm8000_defconfig1749
-rw-r--r--packages/linux/linux-dm8000/linux-2.6.12-7400AB-enable-llsc.patch14
-rw-r--r--packages/linux/linux-dm8000/linux-2.6.12-brcm-fix-minipci.patch11
-rw-r--r--packages/linux/linux-dm8000/linux-2.6.12-brcm-mtd-blkdevfs-fix.diff109
-rw-r--r--packages/linux/linux-dm8000/linux-2.6.12-dm8000-nand.patch249
-rw-r--r--packages/linux/linux-dm8000/linux-2.6.12-dream-misc.patch87
-rw-r--r--packages/linux/linux-dm8000/linux-2.6.12-dream-temp.patch141
-rw-r--r--packages/linux/linux-dm8000/linux-2.6.12-fixup-prom-args.patch65
-rw-r--r--packages/linux/linux-dm8000/linux-2.6.12-set-custom-extraversion.patch13
-rw-r--r--packages/linux/linux-dm8000/linuxmips-2.6.12-fix-fadvise.patch29
-rw-r--r--packages/linux/linux-dm8000/linuxmips-2.6.12-fix-futex.patch368
-rw-r--r--packages/linux/linux-dm8000/linuxmips-2.6.12-gcc4-compile-fix.patch91
-rw-r--r--packages/linux/linux-dm8000/linuxmips-2.6.12-gdb-fix.patch22
15 files changed, 3026 insertions, 0 deletions
diff --git a/packages/linux/linux-dm8000.bb b/packages/linux/linux-dm8000.bb
new file mode 100644
index 0000000000..17ef604dc0
--- /dev/null
+++ b/packages/linux/linux-dm8000.bb
@@ -0,0 +1,78 @@
+DESCRIPTION = "Linux kernel for Dreambox DM8000"
+LICENSE = "GPL"
+PN = "linux-dm8000"
+KV = "2.6.12"
+PV = "2.6.12"
+PR = "r2"
+
+# note, the rX in the filename is *NOT* the packet revision - it's the patch revision.
+SRC_URI += "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${KV}.tar.bz2 \
+ file://dm8000_defconfig \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-brcm-5.1.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-update_dvbapi-r1.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-multipid-r4.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-core-fix-several-locking-problems.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvbapi-pilot-rolloff-extension-r0.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-update-wireless.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-add-ioprio.patch.bz2;patch=1;pnum=1 \
+ file://linux-2.6.12-dream-misc.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-dm8000-nand.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-dream-temp.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-brcm-mtd-blkdevfs-fix.diff;patch=1;pnum=1 \
+ file://linux-2.6.12-set-custom-extraversion.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-fixup-prom-args.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-7400AB-enable-llsc.patch;patch=1;pnum=1 \
+ file://linuxmips-2.6.12-fix-fadvise.patch;patch=1;pnum=1 \
+ file://linuxmips-2.6.12-fix-futex.patch;patch=1;pnum=1 \
+ file://linuxmips-2.6.12-gcc4-compile-fix.patch;patch=1;pnum=1 \
+ file://linuxmips-2.6.12-gdb-fix.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-brcm-fix-minipci.patch;patch=1;pnum=1"
+
+S = "${WORKDIR}/stblinux-2.6.12"
+
+inherit kernel
+
+FILES_kernel-image = "/boot/vmlinux.gz /boot/autoexec.bat"
+
+export OS = "Linux"
+KERNEL_IMAGETYPE = "vmlinux"
+KERNEL_OUTPUT = "vmlinux"
+KERNEL_OBJECT_SUFFIX = "ko"
+
+do_munge() {
+ mv ${WORKDIR}/linux-2.6.12 ${WORKDIR}/stblinux-2.6.12
+ if [ -d ${S}/drivers/sound ]; then
+ rm -R ${S}/drivers/sound;
+ fi;
+}
+
+addtask munge before do_patch after do_unpack
+
+do_configure_prepend() {
+ oe_machinstall -m 0644 ${WORKDIR}/dm8000_defconfig ${S}/.config
+ oe_runmake oldconfig
+}
+
+do_install_append () {
+ install -d ${D}/boot
+ install -m 0755 vmlinux ${D}/boot/vmlinux
+ echo "/flash/bootlogo.elf" > ${D}/boot/autoexec.bat
+ gzip ${D}/boot/vmlinux
+ echo "/flash/vmlinux.gz" >> ${D}/boot/autoexec.bat
+}
+
+pkg_preinst_kernel-image () {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+}
+
+pkg_postinst_kernel-image () {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+}
+
+pkg_prerm_kernel-image () {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+}
+
+pkg_postrm_kernel-image () {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+}
diff --git a/packages/linux/linux-dm8000/.mtn2git_empty b/packages/linux/linux-dm8000/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-dm8000/.mtn2git_empty
diff --git a/packages/linux/linux-dm8000/dm8000_defconfig b/packages/linux/linux-dm8000/dm8000_defconfig
new file mode 100644
index 0000000000..f8ee5d34f1
--- /dev/null
+++ b/packages/linux/linux-dm8000/dm8000_defconfig
@@ -0,0 +1,1749 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.12-5.1-brcmstb-dm8000
+# Wed Jun 25 11:05:01 2008
+#
+CONFIG_MIPS=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 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=y
+# 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
+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=y
+CONFIG_OBSOLETE_MODPARM=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Machine selection
+#
+# CONFIG_MIPS_BCM3560A0 is not set
+# CONFIG_MIPS_BCM3560B0 is not set
+# CONFIG_MIPS_BCM3563 is not set
+# CONFIG_MIPS_BCM3563C0 is not set
+# CONFIG_MIPS_BCM7038B0 is not set
+# CONFIG_MIPS_BCM7038CX is not set
+# CONFIG_MIPS_BCM97398 is not set
+# CONFIG_MIPS_BCM7110 is not set
+# CONFIG_MIPS_BCM7111 is not set
+# CONFIG_MIPS_BCM7112 is not set
+# CONFIG_MIPS_BCM7115 is not set
+# CONFIG_MIPS_BCM7118AX is not set
+# CONFIG_MIPS_BCM7118A0_NAND is not set
+# CONFIG_MIPS_BCM7312 is not set
+# CONFIG_MIPS_BCM7315 is not set
+# CONFIG_MIPS_BCM7317 is not set
+# CONFIG_MIPS_BCM7318 is not set
+# CONFIG_MIPS_BCM7319 is not set
+# CONFIG_MIPS_BCM7320 is not set
+# CONFIG_MIPS_BCM7328 is not set
+# CONFIG_MIPS_BCM7329 is not set
+# CONFIG_MIPS_BCM97456 is not set
+# CONFIG_MIPS_BCM97456BX is not set
+# CONFIG_MIPS_BCM97456BX_NAND is not set
+# CONFIG_MIPS_BCM7400AX is not set
+CONFIG_MIPS_BCM7400BX=y
+# CONFIG_MIPS_BCM7400BX_NAND is not set
+# CONFIG_MIPS_BCM7400AX_NAND is not set
+# CONFIG_MIPS_BCM7405AX is not set
+# CONFIG_MIPS_BCM97455 is not set
+# CONFIG_MIPS_BCM7401AX is not set
+# CONFIG_MIPS_BCM7401BX is not set
+# CONFIG_MIPS_BCM7401BX_NAND is not set
+# CONFIG_MIPS_BCM97455B0 is not set
+# CONFIG_MIPS_BCM7401CX is not set
+# CONFIG_MIPS_BCM7401CX_NAND is not set
+# CONFIG_MIPS_BCM97455CX is not set
+# CONFIG_MIPS_BCM97455CX_NAND is not set
+# CONFIG_MIPS_BCM97458AX is not set
+# CONFIG_MIPS_BCM97458AX_NAND is not set
+# CONFIG_MIPS_BCM7402S is not set
+# CONFIG_MIPS_BCM7402B0S is not set
+# CONFIG_MIPS_BCM7402A0 is not set
+# CONFIG_MIPS_BCM7402CX is not set
+# CONFIG_MIPS_BCM7402CX_NAND is not set
+# CONFIG_MIPS_BCM7403AX is not set
+# CONFIG_MIPS_BCM7451AX_SMB is not set
+# CONFIG_MIPS_BCM7403AX_NAND is not set
+# CONFIG_MIPS_BCM7452AX is not set
+# CONFIG_MIPS_BCM7452AX_NAND is not set
+# CONFIG_MIPS_BCM7440AX is not set
+# CONFIG_MIPS_BCM7440BX is not set
+# CONFIG_MIPS_BCM7440BX_NAND is not set
+# CONFIG_MIPS_BCM93730 is not set
+# CONFIG_MIPS_MTX1 is not set
+# CONFIG_MIPS_BOSPORUS is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
+# CONFIG_MIPS_PB1550 is not set
+# CONFIG_MIPS_PB1200 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_DB1550 is not set
+# CONFIG_MIPS_DB1200 is not set
+# CONFIG_MIPS_MIRAGE is not set
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_MACH_DECSTATION is not set
+# CONFIG_MIPS_EV64120 is not set
+# CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_MIPS_ITE8172 is not set
+# CONFIG_MACH_JAZZ is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ATLAS is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
+# CONFIG_MOMENCO_JAGUAR_ATX is not set
+# CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
+# CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_MIPS_XXS1500 is not set
+# CONFIG_DDB5074 is not set
+# CONFIG_DDB5476 is not set
+# CONFIG_DDB5477 is not set
+# CONFIG_MACH_VR41XX is not set
+# CONFIG_PMC_YOSEMITE is not set
+# CONFIG_QEMU is not set
+# CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SWARM is not set
+# CONFIG_SIBYTE_SENTOSA is not set
+# CONFIG_SIBYTE_RHONE is not set
+# CONFIG_SIBYTE_CARMEL is not set
+# CONFIG_SIBYTE_PTSWARM is not set
+# CONFIG_SIBYTE_LITTLESUR is not set
+# CONFIG_SIBYTE_CRHINE is not set
+# CONFIG_SIBYTE_CRHONE is not set
+# CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_TOSHIBA_RBTX4927 is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_HAVE_DEC_LOCK=y
+CONFIG_DMA_NONCOHERENT=y
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_SYS_SUPPORTS_CPUFREQ=y
+CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
+CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
+CONFIG_IRQ_CPU=y
+CONFIG_MIPS_BRCM97XXX=y
+CONFIG_MIPS_BCM7400B0=y
+CONFIG_MIPS_BCM7400=y
+CONFIG_MIPS_BRCM=y
+# CONFIG_BRCM_7XXX_SERIAL is not set
+# CONFIG_LONG_LONG_SUPPORT is not set
+CONFIG_SERIAL=y
+CONFIG_MIPS_L1_CACHE_SHIFT=6
+
+#
+# Power management
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+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=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+CONFIG_CPU_FREQ_BRCM=y
+
+#
+# CPU selection
+#
+# CONFIG_CPU_MIPS32_R2 is not set
+CONFIG_CPU_MIPS32_R1=y
+# CONFIG_CPU_MIPS64_R1 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+# CONFIG_CPU_VR41XX is not set
+# CONFIG_CPU_R4300 is not set
+# CONFIG_CPU_R4X00 is not set
+# CONFIG_CPU_TX49XX is not set
+# CONFIG_CPU_R5000 is not set
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_RM9000 is not set
+# CONFIG_CPU_SB1 is not set
+CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
+CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
+
+#
+# Kernel type
+#
+CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
+# CONFIG_64BIT is not set
+CONFIG_PAGE_SIZE_4KB=y
+# CONFIG_PAGE_SIZE_8KB is not set
+# CONFIG_PAGE_SIZE_16KB is not set
+# CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_CPU_HAS_PREFETCH=y
+# CONFIG_64BIT_PHYS_ADDR is not set
+# CONFIG_CPU_ADVANCED is not set
+CONFIG_CPU_HAS_LLSC=y
+CONFIG_CPU_HAS_SYNC=y
+# CONFIG_SMP is not set
+# CONFIG_PREEMPT is not set
+
+#
+# Bus options (PCI, PCMCIA, EISA, ISA, TC)
+#
+CONFIG_HW_HAS_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_LEGACY_PROC=y
+# CONFIG_PCI_NAMES is not set
+CONFIG_MMU=y
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+CONFIG_TRAD_SIGNALS=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FW_LOADER=y
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLOCK_ROMBLOCK is not set
+# 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
+#
+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=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+CONFIG_MTD_CFI_GEOMETRY=y
+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_OTP is not set
+# CONFIG_MTD_CFI_INTELEXT is not set
+CONFIG_MTD_CFI_AMDSTD=y
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_BCM7XXX=y
+# CONFIG_MTD_MULTI_PHYSMAP 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_RAMTD 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=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+CONFIG_MTD_NAND_DM8000=y
+# CONFIG_MTD_NAND_NANDSIM is not set
+
+#
+# OneNAND Flash Device Drivers
+#
+# CONFIG_MTD_ONENAND is not set
+
+#
+# Broadcom NAND Flash Device Drivers
+#
+# CONFIG_MTD_BRCMNAND 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
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+# CONFIG_BLK_DEV_RAM is not set
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_LBD is not set
+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=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_ATA_OVER_ETH=m
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=y
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+CONFIG_BLK_DEV_IDE_SATA=y
+CONFIG_BLK_DEV_IDEDISK=y
+CONFIG_IDEDISK_MULTI_MODE=y
+CONFIG_BLK_DEV_IDECD=m
+# 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_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 is not set
+# 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_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+CONFIG_BLK_DEV_SVWKS=y
+# 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
+
+#
+# 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=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_CHR_DEV_SG=m
+
+#
+# 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
+
+#
+# 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_DMX3191D is not set
+# CONFIG_SCSI_FUTURE_DOMAIN 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=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_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=m
+
+#
+# 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=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_EMC=m
+
+#
+# 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
+
+#
+# Networking support
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# 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=y
+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=y
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=y
+# CONFIG_IP_TCPDIAG_IPV6 is not set
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+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
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+# CONFIG_IP_NF_CT_ACCT is not set
+CONFIG_IP_NF_CONNTRACK_MARK=y
+CONFIG_IP_NF_CT_PROTO_SCTP=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_AMANDA=m
+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 is not set
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_SCTP=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_CONNMARK=m
+CONFIG_IP_NF_MATCH_HASHLIMIT=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+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_CONNMARK=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_LIMIT=m
+CONFIG_IP6_NF_MATCH_MAC=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_MULTIPORT=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_MARK=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AHESP=m
+CONFIG_IP6_NF_MATCH_LENGTH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+# CONFIG_IP6_NF_MATCH_PHYSDEV is not set
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_IP6_NF_RAW=m
+
+#
+# Bridge: Netfilter Configuration
+#
+# CONFIG_BRIDGE_NF_EBTABLES is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+# CONFIG_SCTP_HMAC_SHA1 is not set
+CONFIG_SCTP_HMAC_MD5=y
+# CONFIG_ATM is not set
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+# 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=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=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_NETEM=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_NET_CLS_IND=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+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
+
+#
+# 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=m
+CONFIG_BT_HCIBFUSB=m
+# CONFIG_BT_HCIVHCI is not set
+CONFIG_NETDEVICES=y
+CONFIG_NETIF_DMA=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
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+CONFIG_BCMINTEMAC_7038=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 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
+# 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=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+# CONFIG_SLIP is not set
+# CONFIG_NET_FC is not set
+# CONFIG_SHAPER is not set
+CONFIG_NETCONSOLE=m
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# 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=m
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=m
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+CONFIG_INPUT_JOYSTICK=y
+# CONFIG_JOYSTICK_ANALOG is not set
+# CONFIG_JOYSTICK_A3D is not set
+# CONFIG_JOYSTICK_ADI is not set
+# CONFIG_JOYSTICK_COBRA is not set
+# CONFIG_JOYSTICK_GF2K is not set
+# CONFIG_JOYSTICK_GRIP is not set
+# CONFIG_JOYSTICK_GRIP_MP is not set
+# CONFIG_JOYSTICK_GUILLEMOT is not set
+# CONFIG_JOYSTICK_INTERACT is not set
+# CONFIG_JOYSTICK_SIDEWINDER is not set
+# CONFIG_JOYSTICK_TMDC is not set
+# CONFIG_JOYSTICK_IFORCE is not set
+# CONFIG_JOYSTICK_WARRIOR is not set
+# CONFIG_JOYSTICK_MAGELLAN is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_STINGER is not set
+# CONFIG_JOYSTICK_TWIDJOY is not set
+# CONFIG_JOYSTICK_JOYDUMP 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_INPUT_MISC=y
+# CONFIG_INPUT_PCSPKR is not set
+# CONFIG_INPUT_UINPUT is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_I8042 is not set
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW 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=0
+# 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 is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG 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_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 is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_I810 is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_ISA is not set
+# 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
+
+#
+# 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_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_SMSC47B397 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_SMSC47M1 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_DS1337 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# 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
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+CONFIG_DVB=y
+CONFIG_DVB_CORE=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+# CONFIG_DVB_AV7110 is not set
+# CONFIG_DVB_BUDGET is not set
+# CONFIG_DVB_BUDGET_CI is not set
+# CONFIG_DVB_BUDGET_AV is not set
+
+#
+# Supported USB Adapters
+#
+# CONFIG_DVB_TTUSB_BUDGET is not set
+# CONFIG_DVB_TTUSB_DEC is not set
+# CONFIG_DVB_DIBUSB is not set
+# CONFIG_DVB_CINERGYT2 is not set
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+# CONFIG_DVB_B2C2_FLEXCOP is not set
+# CONFIG_DVB_B2C2_SKYSTAR is not set
+
+#
+# Supported BT878 Adapters
+#
+
+#
+# Supported DVB Frontends
+#
+
+#
+# Customise DVB Frontends
+#
+
+#
+# DVB-S (satellite) frontends
+#
+CONFIG_DVB_STV0299=m
+# CONFIG_DVB_CX24110 is not set
+CONFIG_DVB_TDA8083=m
+# CONFIG_DVB_TDA80XX is not set
+CONFIG_DVB_MT312=m
+CONFIG_DVB_VES1X93=m
+
+#
+# DVB-T (terrestrial) frontends
+#
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+CONFIG_DVB_L64781=m
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+
+#
+# DVB-C (cable) frontends
+#
+# CONFIG_DVB_ATMEL_AT76C651 is not set
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+# CONFIG_DVB_STV0297 is not set
+
+#
+# ATSC (North American/Korean Terresterial DTV) frontends
+#
+# CONFIG_DVB_NXT2002 is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 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_SOFT_CURSOR=y
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON_OLD is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_SMIVGX is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_E1356 is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Logo configuration
+#
+# CONFIG_LOGO is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=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_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 MIPS devices
+#
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# 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=y
+
+#
+# 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 is not set
+# CONFIG_USB_EHCI_ROOT_HUB_TT 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
+CONFIG_USB_BRCM=y
+# CONFIG_USB_BRCM_PWR_CTL 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=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
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=y
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_USB_STORAGE_ISD200=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
+CONFIG_USB_HIDINPUT=y
+# CONFIG_HID_FF is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+CONFIG_USB_AIPTEK=m
+CONFIG_USB_WACOM=m
+CONFIG_USB_KBTAB=m
+CONFIG_USB_POWERMATE=m
+CONFIG_USB_MTOUCH=m
+CONFIG_USB_EGALAX=m
+CONFIG_USB_XPAD=m
+CONFIG_USB_ATI_REMOTE=m
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB Multimedia devices
+#
+CONFIG_USB_DABUSB=m
+
+#
+# Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_ZD1201 is not set
+CONFIG_USB_MON=m
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_AUERSWALD=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_PHIDGETKIT=m
+CONFIG_USB_PHIDGETSERVO=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_SISUSBVGA=m
+# 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
+
+#
+# InfiniBand support
+#
+# CONFIG_INFINIBAND is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=m
+# CONFIG_EXT2_FS_XATTR is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+CONFIG_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_JFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+
+#
+# XFS support
+#
+CONFIG_XFS_FS=m
+CONFIG_XFS_EXPORT=y
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+CONFIG_MINIX_FS=m
+# CONFIG_ROMFS_FS is not set
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+# 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="iso8859-1"
+CONFIG_NTFS_FS=m
+CONFIG_NTFS_DEBUG=y
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=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_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=y
+CONFIG_JFFS2_SUMMARY=y
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_SQUASHFS_VMALLOC 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=m
+CONFIG_UFS_FS_WRITE=y
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_DIRECTIO is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_TCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_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
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+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=y
+CONFIG_NLS_ISO8859_1=y
+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=y
+
+#
+# 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_CROSSCOMPILE=y
+CONFIG_CMDLINE="root=/dev/mtdblock3 rootfstype=jffs2 rw mem=128M console=null"
+
+#
+# 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=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_DES=y
+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
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-7400AB-enable-llsc.patch b/packages/linux/linux-dm8000/linux-2.6.12-7400AB-enable-llsc.patch
new file mode 100644
index 0000000000..cb0551296d
--- /dev/null
+++ b/packages/linux/linux-dm8000/linux-2.6.12-7400AB-enable-llsc.patch
@@ -0,0 +1,14 @@
+--- 2.6.12-5.1-org/arch/mips/Makefile 2008-03-19 16:22:29.000000000 +0100
++++ 2.6.12-5.1-patched/arch/mips/Makefile 2008-03-24 14:06:32.000000000 +0100
+@@ -876,10 +876,9 @@
+ core-$(CONFIG_MIPS_BCM7400A0) += arch/mips/brcmstb/common/
+ core-$(CONFIG_MIPS_BCM7400B0) += arch/mips/brcmstb/common/
+
+-ifdef CONFIG_SMP
+ cflags-$(CONFIG_MIPS_BCM7400A0) += -Iinclude/asm-mips/mach-brcmstb
+ cflags-$(CONFIG_MIPS_BCM7400B0) += -Iinclude/asm-mips/mach-brcmstb
+-endif
++
+ load-$(CONFIG_MIPS_BCM7400A0) := 0x80001000
+ load-$(CONFIG_MIPS_BCM7400B0) := 0x80001000
+
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-brcm-fix-minipci.patch b/packages/linux/linux-dm8000/linux-2.6.12-brcm-fix-minipci.patch
new file mode 100644
index 0000000000..eb6384fe48
--- /dev/null
+++ b/packages/linux/linux-dm8000/linux-2.6.12-brcm-fix-minipci.patch
@@ -0,0 +1,11 @@
+--- stblinux-2.6.12.org/include/asm-mips/brcmstb/brcm97400b0/boardmap.h 2008-07-03 23:48:25.000000000 +0200
++++ stblinux-2.6.12/include/asm-mips/brcmstb/brcm97400b0/boardmap.h 2008-07-03 21:23:22.000000000 +0200
+@@ -69,7 +69,7 @@
+
+ #define PCI_1394_PHYS_MEM_WIN0_BASE 0xd0000000
+
+-#define PCI_DEVICE_ID_EXT 0x0d
++#define PCI_DEVICE_ID_EXT 1 /* 0x0d */
+ #define PCI_DEVICE_ID_1394 0x0e
+ #define PCI_DEVICE_ID_MINI 0x04
+ #define PCI_DEVICE_ID_SATA 0 /* On 2ndary PCI bus */
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-brcm-mtd-blkdevfs-fix.diff b/packages/linux/linux-dm8000/linux-2.6.12-brcm-mtd-blkdevfs-fix.diff
new file mode 100644
index 0000000000..da5324e7ae
--- /dev/null
+++ b/packages/linux/linux-dm8000/linux-2.6.12-brcm-mtd-blkdevfs-fix.diff
@@ -0,0 +1,109 @@
+Index: stblinux-2.6.12/drivers/mtd/mtd_blkdevs.c
+===================================================================
+--- stblinux-2.6.12.orig/drivers/mtd/mtd_blkdevs.c 2007-07-26 00:55:00.000000000 +0200
++++ stblinux-2.6.12/drivers/mtd/mtd_blkdevs.c 2008-01-16 23:58:30.000000000 +0100
+@@ -21,6 +21,7 @@
+ #include <linux/init.h>
+ #include <asm/semaphore.h>
+ #include <asm/uaccess.h>
++#include <linux/devfs_fs_kernel.h>
+
+ static LIST_HEAD(blktrans_majors);
+
+@@ -302,6 +303,9 @@
+ snprintf(gd->disk_name, sizeof(gd->disk_name),
+ "%s%d", tr->name, new->devnum);
+
++ snprintf(gd->devfs_name, sizeof(gd->devfs_name),
++ "%s/%c", tr->name, (tr->part_bits?'a':'0') + new->devnum);
++
+ /* 2.5 has capacity in units of 512 bytes while still
+ having BLOCK_SIZE_BITS set to 10. Just to keep us amused. */
+ set_capacity(gd, (new->size * new->blksize) >> 9);
+@@ -418,6 +422,8 @@
+ return ret;
+ }
+
++ devfs_mk_dir(tr->name);
++
+ INIT_LIST_HEAD(&tr->devs);
+ list_add(&tr->list, &blktrans_majors);
+
+@@ -450,6 +456,7 @@
+ tr->remove_dev(dev);
+ }
+
++ devfs_remove(tr->name);
+ blk_cleanup_queue(tr->blkcore_priv->rq);
+ unregister_blkdev(tr->major, tr->name);
+
+Index: stblinux-2.6.12/drivers/mtd/mtdchar.c
+===================================================================
+--- stblinux-2.6.12.orig/drivers/mtd/mtdchar.c 2008-01-21 01:37:38.000000000 +0100
++++ stblinux-2.6.12/drivers/mtd/mtdchar.c 2008-01-21 01:37:40.000000000 +0100
+@@ -26,6 +26,8 @@
+
+ static struct class *mtd_class;
+
++#include <linux/devfs_fs_kernel.h>
++
+ static void mtd_notify_add(struct mtd_info* mtd)
+ {
+ if (!mtd)
+@@ -50,6 +52,12 @@
+ MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1),
+ NULL, "mtd%dro", mtd->index);
+ #endif
++
++ devfs_mk_cdev(MKDEV(MTD_CHAR_MAJOR, mtd->index*2),
++ S_IFCHR | S_IRUGO | S_IWUGO, "mtd/%d", mtd->index);
++
++ devfs_mk_cdev(MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1),
++ S_IFCHR | S_IRUGO, "mtd/%dro", mtd->index);
+ }
+
+ static void mtd_notify_remove(struct mtd_info* mtd)
+@@ -59,6 +67,9 @@
+
+ class_device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2));
+ class_device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1));
++
++ devfs_remove("mtd/%d", mtd->index);
++ devfs_remove("mtd/%dro", mtd->index);
+ }
+
+ static struct mtd_notifier notifier = {
+@@ -66,6 +77,17 @@
+ .remove = mtd_notify_remove,
+ };
+
++static inline void mtdchar_devfs_init(void)
++{
++ devfs_mk_dir("mtd");
++}
++
++static inline void mtdchar_devfs_exit(void)
++{
++ devfs_remove("mtd");
++}
++
++
+ /*
+ * We use file->private_data to store a pointer to the MTDdevice.
+ * Since alighment is at least 32 bits, we have 2 bits free for OTP
+@@ -807,6 +829,7 @@
+ return PTR_ERR(mtd_class);
+ }
+
++ mtdchar_devfs_init();
+ register_mtd_user(&notifier);
+ return 0;
+ }
+@@ -815,6 +838,7 @@
+ {
+ unregister_mtd_user(&notifier);
+ class_destroy(mtd_class);
++ mtdchar_devfs_exit();
+ unregister_chrdev(MTD_CHAR_MAJOR, "mtd");
+ }
+
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-dm8000-nand.patch b/packages/linux/linux-dm8000/linux-2.6.12-dm8000-nand.patch
new file mode 100644
index 0000000000..832479b62b
--- /dev/null
+++ b/packages/linux/linux-dm8000/linux-2.6.12-dm8000-nand.patch
@@ -0,0 +1,249 @@
+Index: stblinux-2.6.12/drivers/mtd/nand/Kconfig
+===================================================================
+--- stblinux-2.6.12.orig/drivers/mtd/nand/Kconfig 2006-10-10 20:27:00.000000000 +0200
++++ stblinux-2.6.12/drivers/mtd/nand/Kconfig 2007-04-25 02:36:25.000000000 +0200
+@@ -199,6 +199,10 @@
+ help
+ Enables access to the Smart Media card interface on the AT91RM9200.
+
++config MTD_NAND_DM8000
++ bool "DM8000 NAND support"
++ depends on MTD_NAND
++
+ config MTD_NAND_NANDSIM
+ tristate "Support for NAND Flash Simulator"
+ depends on m && MTD_NAND && MTD_PARTITIONS
+Index: stblinux-2.6.12/drivers/mtd/nand/Makefile
+===================================================================
+--- stblinux-2.6.12.orig/drivers/mtd/nand/Makefile 2006-10-10 20:27:00.000000000 +0200
++++ stblinux-2.6.12/drivers/mtd/nand/Makefile 2007-04-25 02:36:25.000000000 +0200
+@@ -16,6 +16,7 @@
+ obj-$(CONFIG_MTD_NAND_AU1550) += au1550nd.o
+ obj-$(CONFIG_MTD_NAND_PPCHAMELEONEVB) += ppchameleonevb.o
+ obj-$(CONFIG_MTD_NAND_S3C2410) += s3c2410.o
++obj-$(CONFIG_MTD_NAND_DM8000) += dm8000.o
+ obj-$(CONFIG_MTD_NAND_DISKONCHIP) += diskonchip.o
+ obj-$(CONFIG_MTD_NAND_H1900) += h1910.o
+ obj-$(CONFIG_MTD_NAND_RTC_FROM4) += rtc_from4.o
+Index: stblinux-2.6.12/drivers/mtd/nand/dm8000.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ stblinux-2.6.12/drivers/mtd/nand/dm8000.c 2007-04-25 16:09:12.000000000 +0200
+@@ -0,0 +1,217 @@
++/*
++ * drivers/mtd/nand/dm8000.c
++ *
++ * Copyright (C) 2000 Steven J. Hill (sjhill@realitydiluted.com)
++ *
++ * Modified for Dreambox DM8000 by Felix Domke <tmbinc@elitedvb.net>
++ *
++ *
++ * 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.
++ *
++ * Overview:
++ * This is a device driver for the NAND flash device found on the
++ * DM8000 board.
++ *
++ */
++
++#include <linux/slab.h>
++#include <linux/module.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/nand.h>
++#include <linux/mtd/partitions.h>
++#include <asm/io.h>
++
++static struct mtd_info *dm8000_mtd = NULL;
++/*
++ * Define partitions for flash device
++ */
++const static struct mtd_partition partition_info[] = {
++ {
++ .name = "complete",
++ .offset = 0,
++ .size = 256*1024*1024
++ },
++ {
++ .name = "loader",
++ .offset = 0,
++ .size = 1024*1024
++ },
++ {
++ .name = "boot partition",
++ .offset = 1024*1024,
++ .size = 3*1024*1024
++ },
++ {
++ .name = "root partition",
++ .offset = 4*1024*1024,
++ .size = 60*1024*1024
++ },
++ {
++ .name = "home partition",
++ .offset = 64*1024*1024,
++ .size = 64*1024*1024
++ },
++ {
++ .name = "unused partition",
++ .offset = 128*1024*1024,
++ .size = 120*1024*1024
++ },
++ {
++ .name = "preset partition",
++ .offset = 248*1024*1024,
++ .size = 8*1024*1024
++ }
++};
++#define NUM_PARTITIONS 7
++
++/*
++ * hardware specific access to control-lines
++ * our hardware logic handles the line according to the addresses.
++ */
++static void dm8000_hwcontrol(struct mtd_info *mtd, int cmd)
++{
++ struct nand_chip *this = mtd->priv;
++
++ switch(cmd){
++
++ case NAND_CTL_SETCLE: this->IO_ADDR_W = (void*)0xBF030000; break; // COMMAND
++ case NAND_CTL_CLRCLE: this->IO_ADDR_W = (void*)0xBF030004; break; // DATA
++
++ case NAND_CTL_SETALE: this->IO_ADDR_W = (void*)0xBF030002; break; // ADDRESS
++ case NAND_CTL_CLRALE: this->IO_ADDR_W = (void*)0xBF030004; break; // DATA
++
++ case NAND_CTL_SETNCE: break; // CE will automatically set on command
++ case NAND_CTL_CLRNCE: *(volatile unsigned char*)0xBF030003 = 0; break; // TERM
++ default:
++ BUG();
++ }
++}
++
++static void dm8000_nand_read_buf(struct mtd_info *mtd, u_char *buf, int len)
++{
++// struct nand_chip *this = mtd->priv;
++
++ *(volatile unsigned char*)0xBF030002;
++
++ while (len > 16)
++ {
++ *(long*)buf = *(volatile long*)(0xBF030004);
++ *(long*)(buf+4) = *(volatile long*)(0xBF030004);
++ *(long*)(buf+8) = *(volatile long*)(0xBF030004);
++ *(long*)(buf+12) = *(volatile long*)(0xBF030004);
++ buf += 16;
++ len -= 16;
++ }
++
++ while (len--)
++ *buf++ = *(volatile unsigned char*)(0xBF030004);
++}
++
++static int dm8000_dev_ready(struct mtd_info *mtd)
++{
++ *(volatile unsigned char*)0xBF030002;
++ return 1;
++}
++
++/*
++ * Main initialization routine
++ */
++int __init dm8000_init (void)
++{
++ struct nand_chip *this;
++ unsigned char probe[4];
++ int i, j;
++
++ /* Allocate memory for MTD device structure and private data */
++ dm8000_mtd = kmalloc (sizeof(struct mtd_info) + sizeof (struct nand_chip),
++ GFP_KERNEL);
++ if (!dm8000_mtd) {
++ printk ("Unable to allocate DM8000 NAND MTD device structure.\n");
++ return -ENOMEM;
++ }
++
++ /* Get pointer to private data */
++ this = (struct nand_chip *) (&dm8000_mtd[1]);
++
++ *(volatile unsigned char*)(0xBF030000) = 0x90;
++ *(volatile unsigned char*)(0xBF030002) = 0;
++ probe[0] = *(volatile unsigned char*)(0xBF030004);
++ probe[1] = *(volatile unsigned char*)(0xBF030004);
++ probe[2] = *(volatile unsigned char*)(0xBF030004);
++ probe[3] = *(volatile unsigned char*)(0xBF030004);
++ *(volatile unsigned char*)(0xBF030003) = 0; // term
++
++ j = jiffies;
++ for (i=0; i<1000*1000/4; ++i)
++ *(volatile unsigned long*)(0xBF030004);
++ printk("%ld kb/s\n", 1000 * HZ / (jiffies-j));
++
++ printk(" - NAND PROBE: %02x %02x %02x %02x\n",
++ probe[0], probe[1], probe[2], probe[3]);
++
++ /* Initialize structures */
++ memset((char *) dm8000_mtd, 0, sizeof(struct mtd_info));
++ memset((char *) this, 0, sizeof(struct nand_chip));
++
++ /* Link the private data with the MTD structure */
++ dm8000_mtd->priv = this;
++
++ /* Set address of NAND IO lines */
++ this->IO_ADDR_R = (void*)0xBF030004;
++ this->IO_ADDR_W = (void*)0xBF030004;
++
++ /* Set address of hardware control function */
++ this->hwcontrol = dm8000_hwcontrol;
++ this->read_buf = dm8000_nand_read_buf;
++ this->dev_ready = 0; // don't use dm8000_dev_ready
++ /* 15 us command delay time */
++ this->chip_delay = 15;
++ this->eccmode = NAND_ECC_SOFT;
++
++ /* Scan to find existence of the device */
++ if (nand_scan (dm8000_mtd, 1)) {
++ kfree (dm8000_mtd);
++ return -ENXIO;
++ }
++
++ /* Allocate memory for internal data buffer */
++ this->data_buf = kmalloc (sizeof(u_char) * (dm8000_mtd->oobblock + dm8000_mtd->oobsize), GFP_KERNEL);
++ if (!this->data_buf) {
++ printk ("Unable to allocate NAND data buffer for Dreambox.\n");
++ kfree (dm8000_mtd);
++ return -ENOMEM;
++ }
++
++ /* Register the partitions */
++ add_mtd_partitions(dm8000_mtd, partition_info, NUM_PARTITIONS);
++
++ /* Return happy */
++ return 0;
++}
++module_init(dm8000_init);
++
++/*
++ * Clean up routine
++ */
++#ifdef MODULE
++static void __exit dm8000_cleanup (void)
++{
++ struct nand_chip *this = (struct nand_chip *) &dm8000_mtd[1];
++
++ /* Unregister the device */
++ del_mtd_device (dm8000_mtd);
++
++ /* Free internal data buffer */
++ kfree (this->data_buf);
++
++ /* Free the MTD device structure */
++ kfree (dm8000_mtd);
++}
++module_exit(dm8000_cleanup);
++#endif
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Felix Domke <tmbinc@elitedvb.net>");
++MODULE_DESCRIPTION("Dream-Multimedia DM8000 NAND flash board glue");
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-dream-misc.patch b/packages/linux/linux-dm8000/linux-2.6.12-dream-misc.patch
new file mode 100644
index 0000000000..bf572daf01
--- /dev/null
+++ b/packages/linux/linux-dm8000/linux-2.6.12-dream-misc.patch
@@ -0,0 +1,87 @@
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/reset.c 2.6.12-5.0-patched/arch/mips/kernel/reset.c
+--- 2.6.12-5.0-org/arch/mips/kernel/reset.c 2007-07-26 00:51:08.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/reset.c 2007-12-11 12:34:52.000000000 +0100
+@@ -27,6 +27,7 @@
+ }
+
+ EXPORT_SYMBOL(machine_restart);
++EXPORT_SYMBOL(_machine_restart);
+
+ void machine_halt(void)
+ {
+@@ -34,6 +35,7 @@
+ }
+
+ EXPORT_SYMBOL(machine_halt);
++EXPORT_SYMBOL(_machine_halt);
+
+ void machine_power_off(void)
+ {
+@@ -41,3 +43,4 @@
+ }
+
+ EXPORT_SYMBOL(machine_power_off);
++EXPORT_SYMBOL(_machine_power_off);
+diff -Naur 2.6.12-5.0-org/drivers/video/Kconfig 2.6.12-5.0-patched/drivers/video/Kconfig
+--- 2.6.12-5.0-org/drivers/video/Kconfig 2007-07-26 00:54:49.000000000 +0200
++++ 2.6.12-5.0-patched/drivers/video/Kconfig 2007-12-11 12:34:52.000000000 +0100
+@@ -39,7 +39,7 @@
+ device-aware may cause unexpected results. If unsure, say N.
+
+ config FB_CFB_FILLRECT
+- tristate
++ tristate "FB_CFB_FILLRECT"
+ depends on FB
+ default n
+ ---help---
+@@ -48,7 +48,7 @@
+ (accelerated) version.
+
+ config FB_CFB_COPYAREA
+- tristate
++ tristate "FB_CFB_COPYAREA"
+ depends on FB
+ default n
+ ---help---
+@@ -57,7 +57,7 @@
+ version.
+
+ config FB_CFB_IMAGEBLIT
+- tristate
++ tristate "FB_CFB_IMAGEBLIT"
+ depends on FB
+ default n
+ ---help---
+@@ -66,7 +66,7 @@
+ (accelerated) version.
+
+ config FB_SOFT_CURSOR
+- tristate
++ tristate "FB_SOFT_CURSOR"
+ depends on FB
+ default n
+ ---help---
+diff -Naur 2.6.12-5.0-org/drivers/char/keyboard.c 2.6.12-5.0-patched/drivers/char/keyboard.c
+--- 2.6.12-5.0-org/drivers/char/keyboard.c 2007-07-26 00:53:29.000000000 +0200
++++ 2.6.12-5.0-patched/drivers/char/keyboard.c 2007-12-11 12:34:52.000000000 +0100
+@@ -1186,6 +1186,9 @@
+ for (i = KEY_RESERVED; i < BTN_MISC; i++)
+ if (test_bit(i, dev->keybit)) break;
+
++ if ( test_bit(EV_NO_CONSOLE, dev->evbit) )
++ return NULL;
++
+ if ((i == BTN_MISC) && !test_bit(EV_SND, dev->evbit))
+ return NULL;
+
+diff -Naur 2.6.12-5.0-org/include/linux/input.h 2.6.12-5.0-patched/include/linux/input.h
+--- 2.6.12-5.0-org/include/linux/input.h 2007-07-26 00:56:59.000000000 +0200
++++ 2.6.12-5.0-patched/include/linux/input.h 2007-12-11 12:34:52.000000000 +0100
+@@ -92,6 +92,7 @@
+ #define EV_FF 0x15
+ #define EV_PWR 0x16
+ #define EV_FF_STATUS 0x17
++#define EV_NO_CONSOLE 0x1e
+ #define EV_MAX 0x1f
+
+ /*
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-dream-temp.patch b/packages/linux/linux-dm8000/linux-2.6.12-dream-temp.patch
new file mode 100644
index 0000000000..615d135765
--- /dev/null
+++ b/packages/linux/linux-dm8000/linux-2.6.12-dream-temp.patch
@@ -0,0 +1,141 @@
+Index: stblinux-2.6.12/arch/mips/kernel/vmlinux.lds.S
+===================================================================
+--- stblinux-2.6.12.orig/arch/mips/kernel/vmlinux.lds.S 2008-01-16 23:52:20.000000000 +0100
++++ stblinux-2.6.12/arch/mips/kernel/vmlinux.lds.S 2008-01-16 23:52:22.000000000 +0100
+@@ -145,8 +145,8 @@
+ . = ALIGN(4096);
+ __initramfs_start = .;
+ .init.ramfs : { *(.init.ramfs) }
+- . = ALIGN(4096);
+ __initramfs_end = .;
++ . = ALIGN(4096);
+
+ __bss_start = .; /* BSS */
+ .sbss : {
+Index: stblinux-2.6.12/drivers/net/brcmint7038/bcmemac.c
+===================================================================
+--- stblinux-2.6.12.orig/drivers/net/brcmint7038/bcmemac.c 2008-01-16 23:52:20.000000000 +0100
++++ stblinux-2.6.12/drivers/net/brcmint7038/bcmemac.c 2008-01-16 23:52:13.000000000 +0100
+@@ -2978,99 +2978,10 @@
+
+ static void bcmemac_getMacAddr(struct net_device* dev)
+ {
+- uint8 flash_eaddr[ETH_ALEN];
+- void *virtAddr;
+- uint16 word;
+- int i;
+-
+-#if !defined( CONFIG_BRCM_PCI_SLAVE) && !defined( CONFIG_MTD_BRCMNAND )
+-#if 1
+- virtAddr = (void*)FLASH_MACADDR_ADDR;
+-#else
+- //virtAddr = (void*) 0xBDFFF824; /* BCM97110 in-flash Ethernet MAC address */
+- virtAddr = (void*) KSEG1ADDR(getPhysFlashBase() + FLASH_MACADDR_OFFSET);
+-#endif
+-
+- /* It is a common problem that the flash and/or Chip Select are
+- * not initialized properly, so leave this printk on
+- */
+- printk("%s: Reading MAC address from %08lX, FLASH_BASE=%08lx\n",
+- dev->name,(uint32) virtAddr, (unsigned long) 0xA0000000L|getPhysFlashBase());
+-
+- word=0;
+- word=readw(virtAddr);
+- flash_eaddr[0]=(uint8) (word & 0x00FF);
+- flash_eaddr[1]=(uint8) ((word & 0xFF00) >> 8);
+- word=readw(virtAddr+2);
+- flash_eaddr[2]=(uint8) (word & 0x00FF);
+- flash_eaddr[3]=(uint8) ((word & 0xFF00) >> 8);
+- word=readw(virtAddr+4);
+- flash_eaddr[4]=(uint8) (word & 0x00FF);
+- flash_eaddr[5]=(uint8) ((word & 0xFF00) >> 8);
+-
+- printk("%s: MAC address %02X:%02X:%02X:%02X:%02X:%02X fetched from addr %lX\n",
+- dev->name,
+- flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
+- flash_eaddr[3],flash_eaddr[4],flash_eaddr[5],
+- (uint32) virtAddr);
+-
+-#elif defined( CONFIG_MTD_BRCMNAND )
+-{
+- extern int gNumHwAddrs;
+- extern unsigned char* gHwAddrs[];
+-
+- if (gNumHwAddrs >= 1) {
+- for (i=0; i < 6; i++) {
+- flash_eaddr[i] = (uint8) gHwAddrs[0][i];
+- }
+-
+- printk("%s: MAC address %02X:%02X:%02X:%02X:%02X:%02X fetched from bootloader\n",
+- dev->name,
+- flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
+- flash_eaddr[3],flash_eaddr[4],flash_eaddr[5]
+- );
+- }
+- else {
+- printk(KERN_ERR "%s: No MAC addresses defined\n", __FUNCTION__);
+- }
+-}
++ /* we rip the address set by the bootloader */
++ unsigned long addr[2] = { be32_to_cpu(*(unsigned int*)0xB008005C), be32_to_cpu(*(unsigned int*)0xB0080058)};
+
+-#else
+-/* PCI slave cannot access the EBI bus,
+- * and for now, same for NAND flash, until CFE supports it
+- */
+-/* Use hard coded value if Flash not properly initialized */
+- //if ((*flash_eaddr & 0xff) == 0xff)
+- {
+-//#ifdef USE_HARDCODED_MACADDR
+- flash_eaddr[0] = 0x00;
+- flash_eaddr[1] = 0xc0;
+- flash_eaddr[2] = 0xa8;
+- flash_eaddr[3] = 0x74;
+- flash_eaddr[4] = 0x3b;
+- flash_eaddr[5] = 0x51;
+- printk("%s: Default MAC address %02X:%02X:%02X:%02X:%02X:%02X used\n",
+- dev->name,
+- flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
+- flash_eaddr[3],flash_eaddr[4],flash_eaddr[5]);
+-//#else
+-// printk("%s: Cannot read EMAC address from flash. Please run EVAL codes\n", CARDNAME);
+-// return -ENODEV;
+-//#endif
+- }
+-#endif
+-
+- /* fill in the MAC address */
+- for (i = 0; i < 6; i++) {
+- dev->dev_addr[i] = flash_eaddr[i];
+- }
+-
+- /* print the Ethenet address */
+- printk("%s: MAC Address: ", dev->name);
+- for (i = 0; i < 5; i++) {
+- printk("%2.2X:", dev->dev_addr[i]);
+- }
+- printk("%2.2X\n", dev->dev_addr[i]);
++ memcpy(dev->dev_addr, ((unsigned char*)addr)+2, 6);
+ }
+
+
+Index: stblinux-2.6.12/arch/mips/brcmstb/common/setup.c
+===================================================================
+--- stblinux-2.6.12.orig/arch/mips/brcmstb/common/setup.c 2008-01-16 23:53:24.000000000 +0100
++++ stblinux-2.6.12/arch/mips/brcmstb/common/setup.c 2008-01-16 23:54:06.000000000 +0100
+@@ -136,13 +136,13 @@
+
+ static void brcm_machine_halt(void)
+ {
+- printk("Broadcom eval board halted.\n");
++ printk("Halted.\n");
+ while (1);
+ }
+
+ static void brcm_machine_power_off(void)
+ {
+- printk("Broadcom eval board halted. Please turn off power.\n");
++ printk("Halted. Please turn off power.\n");
+ while (1);
+ }
+
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-fixup-prom-args.patch b/packages/linux/linux-dm8000/linux-2.6.12-fixup-prom-args.patch
new file mode 100644
index 0000000000..4020fc9e02
--- /dev/null
+++ b/packages/linux/linux-dm8000/linux-2.6.12-fixup-prom-args.patch
@@ -0,0 +1,65 @@
+Index: stblinux-2.6.12/arch/mips/brcmstb/common/prom.c
+===================================================================
+--- stblinux-2.6.12.orig/arch/mips/brcmstb/common/prom.c 2008-01-16 00:14:31.000000000 +0100
++++ stblinux-2.6.12/arch/mips/brcmstb/common/prom.c 2008-01-16 00:23:08.000000000 +0100
+@@ -216,6 +216,29 @@
+ }
+
+
++int prom_argc;
++int *_prom_argv, *_prom_envp;
++
++void __init prom_init_cmdline(void)
++{
++ char *cp;
++ int actr;
++
++ actr = 1; /* Always ignore argv[0] */
++
++ cp = &(arcs_cmdline[0]);
++ while(actr < prom_argc) {
++ strcpy(cp, _prom_argv[actr]);
++ cp += strlen(_prom_argv[actr]);
++ *cp++ = ' ';
++ actr++;
++ }
++ if (cp != &(arcs_cmdline[0])) {
++ /* get rid of trailing space */
++ --cp;
++ *cp = '\0';
++ }
++}
+
+ void __init prom_init(void)
+ {
+@@ -731,23 +754,14 @@
+ uart_puts("Default command line = \n");
+ uart_puts(CONFIG_CMDLINE);
+ uart_puts("\n");
+- p = &arcs_cmdline[0];
+- while (p != NULL && *p != '\0') {
+- if (!isspace(*p))
+- break;
+- p++;
+- }
+- if (p == NULL || *p == '\0') {
+- uart_puts("Defaulting to boot from HD\n");
+- /* Default is to boot from HD */
+- strcpy(arcs_cmdline,
+- "root=/dev/hda1" DEFAULT_KARGS);
+- }
+- else if (appendConsoleNeeded) {
+- /* Make sure that the boot params specify a console */
+- appendConsoleArg(arcs_cmdline);
+- }
+
++ prom_argc = fw_arg0;
++ _prom_argv = (int *) fw_arg1;
++ _prom_envp = (int *) fw_arg2;
++ printk("%d %p %p\n", prom_argc, _prom_argv, _prom_envp);
++ prom_init_cmdline();
++
++
+ #else /* No CONFIG_CMDLINE, and not Initrd */
+ /* Default is to boot from HD */
+ strcpy(arcs_cmdline,
diff --git a/packages/linux/linux-dm8000/linux-2.6.12-set-custom-extraversion.patch b/packages/linux/linux-dm8000/linux-2.6.12-set-custom-extraversion.patch
new file mode 100644
index 0000000000..2a6e14f1ef
--- /dev/null
+++ b/packages/linux/linux-dm8000/linux-2.6.12-set-custom-extraversion.patch
@@ -0,0 +1,13 @@
+Index: stblinux-2.6.12/Makefile
+===================================================================
+--- stblinux-2.6.12.orig/Makefile 2007-12-17 20:09:55.000000000 +0100
++++ stblinux-2.6.12/Makefile 2007-12-17 22:37:51.000000000 +0100
+@@ -2,7 +2,7 @@
+ PATCHLEVEL = 6
+ SUBLEVEL = 12
+ # STABLE_VERSION = .2
+-EXTRAVERSION =-5.1-brcmstb
++EXTRAVERSION =-5.1-brcmstb-dm8000
+ NAME=Woozy Numbat
+
+ # *DOCUMENTATION*
diff --git a/packages/linux/linux-dm8000/linuxmips-2.6.12-fix-fadvise.patch b/packages/linux/linux-dm8000/linuxmips-2.6.12-fix-fadvise.patch
new file mode 100644
index 0000000000..430f32c779
--- /dev/null
+++ b/packages/linux/linux-dm8000/linuxmips-2.6.12-fix-fadvise.patch
@@ -0,0 +1,29 @@
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/syscall.c 2.6.12-5.0-patched/arch/mips/kernel/syscall.c
+--- 2.6.12-5.0-org/arch/mips/kernel/syscall.c 2007-07-26 00:51:09.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/syscall.c 2007-12-11 12:34:52.000000000 +0100
+@@ -405,6 +405,13 @@
+ }
+ }
+
++asmlinkage long mips_fadvise64(int fd,
++ unsigned int low_off, unsigned int high_off,
++ unsigned int len, int advice, unsigned int dummy)
++{
++ return sys_fadvise64_64(fd, (((u64)high_off) << 32) | low_off, (u64)len, advice);
++}
++
+ /*
+ * No implemented yet ...
+ */
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/scall32-o32.S 2.6.12-5.0-patched/arch/mips/kernel/scall32-o32.S
+--- 2.6.12-5.0-org/arch/mips/kernel/scall32-o32.S 2007-07-26 00:51:08.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/scall32-o32.S 2007-12-11 12:34:52.000000000 +0100
+@@ -594,7 +594,7 @@
+ sys sys_remap_file_pages 5
+ sys sys_set_tid_address 1
+ sys sys_restart_syscall 0
+- sys sys_fadvise64_64 7
++ sys mips_fadvise64 7
+ sys sys_statfs64 3 /* 4255 */
+ sys sys_fstatfs64 2
+ sys sys_timer_create 3
diff --git a/packages/linux/linux-dm8000/linuxmips-2.6.12-fix-futex.patch b/packages/linux/linux-dm8000/linuxmips-2.6.12-fix-futex.patch
new file mode 100644
index 0000000000..cb0bfe2cce
--- /dev/null
+++ b/packages/linux/linux-dm8000/linuxmips-2.6.12-fix-futex.patch
@@ -0,0 +1,368 @@
+diff -Naur 2.6.12-5.0-org/include/asm-mips/futex.h 2.6.12-5.0-patched/include/asm-mips/futex.h
+--- 2.6.12-5.0-org/include/asm-mips/futex.h 1970-01-01 01:00:00.000000000 +0100
++++ 2.6.12-5.0-patched/include/asm-mips/futex.h 2007-12-11 12:34:52.000000000 +0100
+@@ -0,0 +1,134 @@
++#ifndef _ASM_FUTEX_H
++#define _ASM_FUTEX_H
++
++#ifdef __KERNEL__
++
++#include <linux/config.h>
++#include <linux/futex.h>
++#include <asm/errno.h>
++#include <asm/uaccess.h>
++#include <asm/war.h>
++
++#ifdef CONFIG_SMP
++#define __FUTEX_SMP_SYNC " sync \n"
++#else
++#define __FUTEX_SMP_SYNC
++#endif
++
++#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
++{ \
++ if (cpu_has_llsc && R10000_LLSC_WAR) { \
++ __asm__ __volatile__( \
++ " .set push \n" \
++ " .set noat \n" \
++ " .set mips3 \n" \
++ "1: ll %1, %4 # __futex_atomic_op \n" \
++ " .set mips0 \n" \
++ " " insn " \n" \
++ " .set mips3 \n" \
++ "2: sc $1, %2 \n" \
++ " beqzl $1, 1b \n" \
++ __FUTEX_SMP_SYNC \
++ "3: \n" \
++ " .set pop \n" \
++ " .set mips0 \n" \
++ " .section .fixup,\"ax\" \n" \
++ "4: li %0, %6 \n" \
++ " j 2b \n" \
++ " .previous \n" \
++ " .section __ex_table,\"a\" \n" \
++ " "__UA_ADDR "\t1b, 4b \n" \
++ " "__UA_ADDR "\t2b, 4b \n" \
++ " .previous \n" \
++ : "=r" (ret), "=&r" (oldval), "=R" (*uaddr) \
++ : "0" (0), "R" (*uaddr), "Jr" (oparg), "i" (-EFAULT) \
++ : "memory"); \
++ } else if (cpu_has_llsc) { \
++ __asm__ __volatile__( \
++ " .set push \n" \
++ " .set noat \n" \
++ " .set mips3 \n" \
++ "1: ll %1, %4 # __futex_atomic_op \n" \
++ " .set mips0 \n" \
++ " " insn " \n" \
++ " .set mips3 \n" \
++ "2: sc $1, %2 \n" \
++ " beqz $1, 1b \n" \
++ __FUTEX_SMP_SYNC \
++ "3: \n" \
++ " .set pop \n" \
++ " .set mips0 \n" \
++ " .section .fixup,\"ax\" \n" \
++ "4: li %0, %6 \n" \
++ " j 2b \n" \
++ " .previous \n" \
++ " .section __ex_table,\"a\" \n" \
++ " "__UA_ADDR "\t1b, 4b \n" \
++ " "__UA_ADDR "\t2b, 4b \n" \
++ " .previous \n" \
++ : "=r" (ret), "=&r" (oldval), "=R" (*uaddr) \
++ : "0" (0), "R" (*uaddr), "Jr" (oparg), "i" (-EFAULT) \
++ : "memory"); \
++ } else \
++ ret = -ENOSYS; \
++}
++
++static inline int
++futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
++{
++ int op = (encoded_op >> 28) & 7;
++ int cmp = (encoded_op >> 24) & 15;
++ int oparg = (encoded_op << 8) >> 20;
++ int cmparg = (encoded_op << 20) >> 20;
++ int oldval = 0, ret;
++ if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
++ oparg = 1 << oparg;
++
++ if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int)))
++ return -EFAULT;
++
++ inc_preempt_count();
++
++ switch (op) {
++ case FUTEX_OP_SET:
++ __futex_atomic_op("move $1, %z5", ret, oldval, uaddr, oparg);
++ break;
++
++ case FUTEX_OP_ADD:
++ __futex_atomic_op("addu $1, %1, %z5",
++ ret, oldval, uaddr, oparg);
++ break;
++ case FUTEX_OP_OR:
++ __futex_atomic_op("or $1, %1, %z5",
++ ret, oldval, uaddr, oparg);
++ break;
++ case FUTEX_OP_ANDN:
++ __futex_atomic_op("and $1, %1, %z5",
++ ret, oldval, uaddr, ~oparg);
++ break;
++ case FUTEX_OP_XOR:
++ __futex_atomic_op("xor $1, %1, %z5",
++ ret, oldval, uaddr, oparg);
++ break;
++ default:
++ ret = -ENOSYS;
++ }
++
++ dec_preempt_count();
++
++ if (!ret) {
++ switch (cmp) {
++ case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break;
++ case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break;
++ case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break;
++ case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break;
++ case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break;
++ case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break;
++ default: ret = -ENOSYS;
++ }
++ }
++ return ret;
++}
++
++#endif
++#endif
+diff -Naur 2.6.12-5.0-org/include/linux/futex.h 2.6.12-5.0-patched/include/linux/futex.h
+--- 2.6.12-5.0-org/include/linux/futex.h 2007-07-26 00:57:03.000000000 +0200
++++ 2.6.12-5.0-patched/include/linux/futex.h 2007-12-11 12:34:52.000000000 +0100
+@@ -4,14 +4,40 @@
+ /* Second argument to futex syscall */
+
+
+-#define FUTEX_WAIT (0)
+-#define FUTEX_WAKE (1)
+-#define FUTEX_FD (2)
+-#define FUTEX_REQUEUE (3)
+-#define FUTEX_CMP_REQUEUE (4)
++#define FUTEX_WAIT 0
++#define FUTEX_WAKE 1
++#define FUTEX_FD 2
++#define FUTEX_REQUEUE 3
++#define FUTEX_CMP_REQUEUE 4
++#define FUTEX_WAKE_OP 5
+
+ long do_futex(unsigned long uaddr, int op, int val,
+ unsigned long timeout, unsigned long uaddr2, int val2,
+ int val3);
+
++#define FUTEX_OP_SET 0 /* *(int *)UADDR2 = OPARG; */
++#define FUTEX_OP_ADD 1 /* *(int *)UADDR2 += OPARG; */
++#define FUTEX_OP_OR 2 /* *(int *)UADDR2 |= OPARG; */
++#define FUTEX_OP_ANDN 3 /* *(int *)UADDR2 &= ~OPARG; */
++#define FUTEX_OP_XOR 4 /* *(int *)UADDR2 ^= OPARG; */
++
++#define FUTEX_OP_OPARG_SHIFT 8 /* Use (1 << OPARG) instead of OPARG. */
++
++#define FUTEX_OP_CMP_EQ 0 /* if (oldval == CMPARG) wake */
++#define FUTEX_OP_CMP_NE 1 /* if (oldval != CMPARG) wake */
++#define FUTEX_OP_CMP_LT 2 /* if (oldval < CMPARG) wake */
++#define FUTEX_OP_CMP_LE 3 /* if (oldval <= CMPARG) wake */
++#define FUTEX_OP_CMP_GT 4 /* if (oldval > CMPARG) wake */
++#define FUTEX_OP_CMP_GE 5 /* if (oldval >= CMPARG) wake */
++
++/* FUTEX_WAKE_OP will perform atomically
++ int oldval = *(int *)UADDR2;
++ *(int *)UADDR2 = oldval OP OPARG;
++ if (oldval CMP CMPARG)
++ wake UADDR2; */
++
++#define FUTEX_OP(op, oparg, cmp, cmparg) \
++ (((op & 0xf) << 28) | ((cmp & 0xf) << 24) \
++ | ((oparg & 0xfff) << 12) | (cmparg & 0xfff))
++
+ #endif
+diff -Naur 2.6.12-5.0-org/kernel/futex.c 2.6.12-5.0-patched/kernel/futex.c
+--- 2.6.12-5.0-org/kernel/futex.c 2007-07-26 00:57:20.000000000 +0200
++++ 2.6.12-5.0-patched/kernel/futex.c 2007-12-11 12:34:52.000000000 +0100
+@@ -40,6 +40,7 @@
+ #include <linux/pagemap.h>
+ #include <linux/syscalls.h>
+ #include <linux/signal.h>
++#include <asm/futex.h>
+
+ #define FUTEX_HASHBITS (CONFIG_BASE_SMALL ? 4 : 8)
+
+@@ -201,22 +202,6 @@
+ * for a rare case, so we simply fetch the page.
+ */
+
+- /*
+- * Do a quick atomic lookup first - this is the fastpath.
+- */
+- spin_lock(&current->mm->page_table_lock);
+- page = follow_page(mm, uaddr, 0);
+- if (likely(page != NULL)) {
+- key->shared.pgoff =
+- page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT);
+- spin_unlock(&current->mm->page_table_lock);
+- return 0;
+- }
+- spin_unlock(&current->mm->page_table_lock);
+-
+- /*
+- * Do it the general way.
+- */
+ err = get_user_pages(current, mm, uaddr, 1, 0, 0, &page, NULL);
+ if (err >= 0) {
+ key->shared.pgoff =
+@@ -327,6 +312,123 @@
+ }
+
+ /*
++ * Wake up all waiters hashed on the physical page that is mapped
++ * to this virtual address:
++ */
++static int futex_wake_op(unsigned long uaddr1, unsigned long uaddr2, int nr_wake, int nr_wake2, int op)
++{
++ union futex_key key1, key2;
++ struct futex_hash_bucket *bh1, *bh2;
++ struct list_head *head;
++ struct futex_q *this, *next;
++ int ret, op_ret, attempt = 0;
++
++retryfull:
++ down_read(&current->mm->mmap_sem);
++
++ ret = get_futex_key(uaddr1, &key1);
++ if (unlikely(ret != 0))
++ goto out;
++ ret = get_futex_key(uaddr2, &key2);
++ if (unlikely(ret != 0))
++ goto out;
++
++ bh1 = hash_futex(&key1);
++ bh2 = hash_futex(&key2);
++
++retry:
++ if (bh1 < bh2)
++ spin_lock(&bh1->lock);
++ spin_lock(&bh2->lock);
++ if (bh1 > bh2)
++ spin_lock(&bh1->lock);
++
++ op_ret = futex_atomic_op_inuser(op, (int __user *)uaddr2);
++ if (unlikely(op_ret < 0)) {
++ int dummy;
++
++ spin_unlock(&bh1->lock);
++ if (bh1 != bh2)
++ spin_unlock(&bh2->lock);
++
++ if (unlikely(op_ret != -EFAULT)) {
++ ret = op_ret;
++ goto out;
++ }
++
++ /* futex_atomic_op_inuser needs to both read and write
++ * *(int __user *)uaddr2, but we can't modify it
++ * non-atomically. Therefore, if get_user below is not
++ * enough, we need to handle the fault ourselves, while
++ * still holding the mmap_sem. */
++ if (attempt++) {
++ struct vm_area_struct * vma;
++ struct mm_struct *mm = current->mm;
++
++ ret = -EFAULT;
++ if (attempt >= 2 ||
++ !(vma = find_vma(mm, uaddr2)) ||
++ vma->vm_start > uaddr2 ||
++ !(vma->vm_flags & VM_WRITE))
++ goto out;
++
++ switch (handle_mm_fault(mm, vma, uaddr2, 1)) {
++ case VM_FAULT_MINOR:
++ current->min_flt++;
++ break;
++ case VM_FAULT_MAJOR:
++ current->maj_flt++;
++ break;
++ default:
++ goto out;
++ }
++ goto retry;
++ }
++
++ /* If we would have faulted, release mmap_sem,
++ * fault it in and start all over again. */
++ up_read(&current->mm->mmap_sem);
++
++ ret = get_user(dummy, (int __user *)uaddr2);
++ if (ret)
++ return ret;
++
++ goto retryfull;
++ }
++
++ head = &bh1->chain;
++
++ list_for_each_entry_safe(this, next, head, list) {
++ if (match_futex (&this->key, &key1)) {
++ wake_futex(this);
++ if (++ret >= nr_wake)
++ break;
++ }
++ }
++
++ if (op_ret > 0) {
++ head = &bh2->chain;
++
++ op_ret = 0;
++ list_for_each_entry_safe(this, next, head, list) {
++ if (match_futex (&this->key, &key2)) {
++ wake_futex(this);
++ if (++op_ret >= nr_wake2)
++ break;
++ }
++ }
++ ret += op_ret;
++ }
++
++ spin_unlock(&bh1->lock);
++ if (bh1 != bh2)
++ spin_unlock(&bh2->lock);
++out:
++ up_read(&current->mm->mmap_sem);
++ return ret;
++}
++
++/*
+ * Requeue all waiters hashed on one physical page to another
+ * physical page.
+ */
+@@ -740,6 +842,9 @@
+ case FUTEX_CMP_REQUEUE:
+ ret = futex_requeue(uaddr, uaddr2, val, val2, &val3);
+ break;
++ case FUTEX_WAKE_OP:
++ ret = futex_wake_op(uaddr, uaddr2, val, val2, val3);
++ break;
+ default:
+ ret = -ENOSYS;
+ }
+@@ -755,9 +860,11 @@
+ unsigned long timeout = MAX_SCHEDULE_TIMEOUT;
+ int val2 = 0;
+
+- if ((op == FUTEX_WAIT) && utime) {
++ if (utime && (op == FUTEX_WAIT)) {
+ if (copy_from_user(&t, utime, sizeof(t)) != 0)
+ return -EFAULT;
++ if (!timespec_valid(&t))
++ return -EINVAL;
+ timeout = timespec_to_jiffies(&t) + 1;
+ }
+ /*
diff --git a/packages/linux/linux-dm8000/linuxmips-2.6.12-gcc4-compile-fix.patch b/packages/linux/linux-dm8000/linuxmips-2.6.12-gcc4-compile-fix.patch
new file mode 100644
index 0000000000..c1dc961926
--- /dev/null
+++ b/packages/linux/linux-dm8000/linuxmips-2.6.12-gcc4-compile-fix.patch
@@ -0,0 +1,91 @@
+diff -Naur 2.6.12-5.0-org/include/asm-mips/uaccess.h 2.6.12-5.0-patched/include/asm-mips/uaccess.h
+--- 2.6.12-5.0-org/include/asm-mips/uaccess.h 2007-07-26 00:56:08.000000000 +0200
++++ 2.6.12-5.0-patched/include/asm-mips/uaccess.h 2007-12-11 12:34:52.000000000 +0100
+@@ -234,39 +234,72 @@
+
+ #define __get_user_nocheck(x,ptr,size) \
+ ({ \
+- __typeof(*(ptr)) __gu_val = (__typeof(*(ptr))) 0; \
+ long __gu_err = 0; \
+- \
+ might_sleep(); \
+ switch (size) { \
+- case 1: __get_user_asm("lb", ptr); break; \
+- case 2: __get_user_asm("lh", ptr); break; \
+- case 4: __get_user_asm("lw", ptr); break; \
+- case 8: __GET_USER_DW(ptr); break; \
++ case 1: { \
++ s8 __gu_val = (s8) 0; \
++ __get_user_asm("lb", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 2: { \
++ s16 __gu_val = (s16) 0; \
++ __get_user_asm("lh", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 4: { \
++ s32 __gu_val = (s32) 0; \
++ __get_user_asm("lw", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 8: { \
++ s64 __gu_val = (s64) 0; \
++ __GET_USER_DW(ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
+ default: __get_user_unknown(); break; \
+ } \
+- (x) = (__typeof__(*(ptr))) __gu_val; \
+ __gu_err; \
+ })
+
+ #define __get_user_check(x,ptr,size) \
+ ({ \
+ const __typeof__(*(ptr)) __user * __gu_addr = (ptr); \
+- __typeof__(*(ptr)) __gu_val = 0; \
+ long __gu_err = -EFAULT; \
+- \
+ might_sleep(); \
+- \
+ if (likely(access_ok(VERIFY_READ, __gu_addr, size))) { \
+ switch (size) { \
+- case 1: __get_user_asm("lb", __gu_addr); break; \
+- case 2: __get_user_asm("lh", __gu_addr); break; \
+- case 4: __get_user_asm("lw", __gu_addr); break; \
+- case 8: __GET_USER_DW(__gu_addr); break; \
++ case 1: { \
++ s8 __gu_val = (s8) 0; \
++ __get_user_asm("lb", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 2: { \
++ s16 __gu_val = (s16) 0; \
++ __get_user_asm("lh", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 4: { \
++ s32 __gu_val = (s32) 0; \
++ __get_user_asm("lw", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 8: { \
++ s64 __gu_val = (s64) 0; \
++ __GET_USER_DW(ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
+ default: __get_user_unknown(); break; \
+ } \
+ } \
+- (x) = (__typeof__(*(ptr))) __gu_val; \
+ __gu_err; \
+ })
+
diff --git a/packages/linux/linux-dm8000/linuxmips-2.6.12-gdb-fix.patch b/packages/linux/linux-dm8000/linuxmips-2.6.12-gdb-fix.patch
new file mode 100644
index 0000000000..d70e2dea41
--- /dev/null
+++ b/packages/linux/linux-dm8000/linuxmips-2.6.12-gdb-fix.patch
@@ -0,0 +1,22 @@
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/gdb-low.S 2.6.12-5.0-patched/arch/mips/kernel/gdb-low.S
+--- 2.6.12-5.0-org/arch/mips/kernel/gdb-low.S 2007-07-26 00:51:07.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/gdb-low.S 2007-12-11 12:34:52.000000000 +0100
+@@ -52,12 +52,14 @@
+ /*
+ * Called from user mode, go somewhere else.
+ */
+- lui k1, %hi(saved_vectors)
+ mfc0 k0, CP0_CAUSE
+ andi k0, k0, 0x7c
+- add k1, k1, k0
+- lw k0, %lo(saved_vectors)(k1)
+- jr k0
++
++#ifdef CONFIG_MIPS64
++ dsll k0, k0, 1
++#endif
++ lw k1, %lo(saved_vectors)(k0)
++ jr k1
+ nop
+ 1:
+ move k0, sp