summaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
Diffstat (limited to 'target')
-rw-r--r--target/linux/config/Config.in.netdevice8
-rw-r--r--target/linux/patches/mips-gcc-44.patch215
-rw-r--r--target/qemu-mips/device.mk2
-rw-r--r--target/qemu-mips/kernel.config61
4 files changed, 264 insertions, 22 deletions
diff --git a/target/linux/config/Config.in.netdevice b/target/linux/config/Config.in.netdevice
index 49e772238..dad10f2d8 100644
--- a/target/linux/config/Config.in.netdevice
+++ b/target/linux/config/Config.in.netdevice
@@ -1,6 +1,10 @@
menu "Network devices support"
depends on !ADK_LINUX_CRIS_FOXBOARD
+config ADK_KERNEL_NETDEVICES
+ boolean
+ default n
+
config ADK_KERNEL_NET_ETHERNET
boolean
default n
@@ -21,6 +25,7 @@ menu "Ethernet card support"
config ADK_KPACKAGE_KMOD_NE2K_PCI
prompt "kmod-net-ne2k-pci............. NE2000 PCI driver"
+ select ADK_KERNEL_NETDEVICES
select ADK_KERNEL_NET_ETHERNET
select ADK_KERNEL_NET_PCI
select ADK_KERNEL_MII
@@ -31,7 +36,7 @@ config ADK_KPACKAGE_KMOD_NE2K_PCI
config ADK_KPACKAGE_KMOD_E100
prompt "kmod-net-e100................. Intel(R) PRO/100+ driver"
- select ADK_KERNEL_NET_ETHERNET
+ select ADK_KERNEL_NETDEVICES
select ADK_KERNEL_NET_PCI
select ADK_KERNEL_MII
tristate
@@ -41,6 +46,7 @@ config ADK_KPACKAGE_KMOD_E100
config ADK_KPACKAGE_KMOD_E1000
prompt "kmod-net-e1000................ Intel(R) PRO/1000 Gigabit Ethernet driver"
+ select ADK_KERNEL_NETDEVICES
select ADK_KERNEL_NET_ETHERNET
select ADK_KERNEL_NETDEV_1000
tristate
diff --git a/target/linux/patches/mips-gcc-44.patch b/target/linux/patches/mips-gcc-44.patch
new file mode 100644
index 000000000..ccee68b9b
--- /dev/null
+++ b/target/linux/patches/mips-gcc-44.patch
@@ -0,0 +1,215 @@
+diff -Nur linux-2.6.29.4.orig/arch/mips/include/asm/compiler.h linux-2.6.29.4/arch/mips/include/asm/compiler.h
+--- linux-2.6.29.4.orig/arch/mips/include/asm/compiler.h 2009-05-19 01:52:34.000000000 +0200
++++ linux-2.6.29.4/arch/mips/include/asm/compiler.h 2009-05-24 19:32:14.000000000 +0200
+@@ -16,4 +16,11 @@
+ #define GCC_REG_ACCUM "accum"
+ #endif
+
++#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
++#define GCC_NO_H_CONSTRAINT
++#ifdef CONFIG_64BIT
++typedef unsigned int uint128_t __attribute__((mode(TI)));
++#endif
++#endif
++
+ #endif /* _ASM_COMPILER_H */
+diff -Nur linux-2.6.29.4.orig/arch/mips/include/asm/delay.h linux-2.6.29.4/arch/mips/include/asm/delay.h
+--- linux-2.6.29.4.orig/arch/mips/include/asm/delay.h 2009-05-19 01:52:34.000000000 +0200
++++ linux-2.6.29.4/arch/mips/include/asm/delay.h 2009-05-24 19:32:14.000000000 +0200
+@@ -62,8 +62,9 @@
+
+ static inline void __udelay(unsigned long usecs, unsigned long lpj)
+ {
++#ifndef GCC_NO_H_CONSTRAINT
+ unsigned long hi, lo;
+-
++#endif
+ /*
+ * The rates of 128 is rounded wrongly by the catchall case
+ * for 64-bit. Excessive precission? Probably ...
+@@ -77,6 +78,17 @@
+ 0x80000000ULL) >> 32);
+ #endif
+
++#ifdef GCC_NO_H_CONSTRAINT
++#ifdef CONFIG_64BIT
++ usecs = ((uint128_t)usecs * lpj) >> 64;
++#else
++#define SZHALF (sizeof(long)*4)
++#define LOWERHALF ((0x1ul<<SZHALF) - 1)
++ usecs = (usecs >> SZHALF) * (lpj >> SZHALF) + ( ((usecs & LOWERHALF) * (lpj >> SZHALF) + (usecs >> SZHALF) * (lpj & LOWERHALF)) >> SZHALF );
++#undef SZHALF
++#undef LOWERHALF
++#endif
++#else
+ if (sizeof(long) == 4)
+ __asm__("multu\t%2, %3"
+ : "=h" (usecs), "=l" (lo)
+@@ -92,7 +104,7 @@
+ : "=r" (usecs), "=h" (hi), "=l" (lo)
+ : "r" (usecs), "r" (lpj)
+ : GCC_REG_ACCUM);
+-
++#endif
+ __delay(usecs);
+ }
+
+diff -Nur linux-2.6.29.4.orig/arch/mips/include/asm/div64.h linux-2.6.29.4/arch/mips/include/asm/div64.h
+--- linux-2.6.29.4.orig/arch/mips/include/asm/div64.h 2009-05-19 01:52:34.000000000 +0200
++++ linux-2.6.29.4/arch/mips/include/asm/div64.h 2009-05-22 13:38:14.000000000 +0200
+@@ -6,105 +6,63 @@
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+-#ifndef _ASM_DIV64_H
+-#define _ASM_DIV64_H
++#ifndef __ASM_DIV64_H
++#define __ASM_DIV64_H
+
+-#include <linux/types.h>
++#include <asm-generic/div64.h>
+
+-#if (_MIPS_SZLONG == 32)
++#if BITS_PER_LONG == 64
+
+-#include <asm/compiler.h>
++#include <linux/types.h>
+
+ /*
+ * No traps on overflows for any of these...
+ */
+
+-#define do_div64_32(res, high, low, base) ({ \
+- unsigned long __quot32, __mod32; \
+- unsigned long __cf, __tmp, __tmp2, __i; \
+- \
+- __asm__(".set push\n\t" \
+- ".set noat\n\t" \
+- ".set noreorder\n\t" \
+- "move %2, $0\n\t" \
+- "move %3, $0\n\t" \
+- "b 1f\n\t" \
+- " li %4, 0x21\n" \
+- "0:\n\t" \
+- "sll $1, %0, 0x1\n\t" \
+- "srl %3, %0, 0x1f\n\t" \
+- "or %0, $1, %5\n\t" \
+- "sll %1, %1, 0x1\n\t" \
+- "sll %2, %2, 0x1\n" \
+- "1:\n\t" \
+- "bnez %3, 2f\n\t" \
+- " sltu %5, %0, %z6\n\t" \
+- "bnez %5, 3f\n" \
+- "2:\n\t" \
+- " addiu %4, %4, -1\n\t" \
+- "subu %0, %0, %z6\n\t" \
+- "addiu %2, %2, 1\n" \
+- "3:\n\t" \
+- "bnez %4, 0b\n\t" \
+- " srl %5, %1, 0x1f\n\t" \
+- ".set pop" \
+- : "=&r" (__mod32), "=&r" (__tmp), \
+- "=&r" (__quot32), "=&r" (__cf), \
+- "=&r" (__i), "=&r" (__tmp2) \
+- : "Jr" (base), "0" (high), "1" (low)); \
+- \
+- (res) = __quot32; \
+- __mod32; })
+-
+-#define do_div(n, base) ({ \
+- unsigned long long __quot; \
+- unsigned long __mod; \
+- unsigned long long __div; \
+- unsigned long __upper, __low, __high, __base; \
+- \
+- __div = (n); \
+- __base = (base); \
+- \
+- __high = __div >> 32; \
+- __low = __div; \
+- __upper = __high; \
+- \
+- if (__high) \
+- __asm__("divu $0, %z2, %z3" \
+- : "=h" (__upper), "=l" (__high) \
+- : "Jr" (__high), "Jr" (__base) \
+- : GCC_REG_ACCUM); \
+- \
+- __mod = do_div64_32(__low, __upper, __low, __base); \
+- \
+- __quot = __high; \
+- __quot = __quot << 32 | __low; \
+- (n) = __quot; \
+- __mod; })
+-
+-#endif /* (_MIPS_SZLONG == 32) */
+-
+-#if (_MIPS_SZLONG == 64)
+-
+-/*
+- * Hey, we're already 64-bit, no
+- * need to play games..
+- */
+-#define do_div(n, base) ({ \
+- unsigned long __quot; \
+- unsigned int __mod; \
+- unsigned long __div; \
+- unsigned int __base; \
+- \
+- __div = (n); \
+- __base = (base); \
+- \
+- __mod = __div % __base; \
+- __quot = __div / __base; \
+- \
+- (n) = __quot; \
+- __mod; })
++#define __div64_32(n, base) \
++({ \
++ unsigned long __cf, __tmp, __tmp2, __i; \
++ unsigned long __quot32, __mod32; \
++ unsigned long __high, __low; \
++ unsigned long long __n; \
++ \
++ __high = *__n >> 32; \
++ __low = __n; \
++ __asm__( \
++ " .set push \n" \
++ " .set noat \n" \
++ " .set noreorder \n" \
++ " move %2, $0 \n" \
++ " move %3, $0 \n" \
++ " b 1f \n" \
++ " li %4, 0x21 \n" \
++ "0: \n" \
++ " sll $1, %0, 0x1 \n" \
++ " srl %3, %0, 0x1f \n" \
++ " or %0, $1, %5 \n" \
++ " sll %1, %1, 0x1 \n" \
++ " sll %2, %2, 0x1 \n" \
++ "1: \n" \
++ " bnez %3, 2f \n" \
++ " sltu %5, %0, %z6 \n" \
++ " bnez %5, 3f \n" \
++ "2: \n" \
++ " addiu %4, %4, -1 \n" \
++ " subu %0, %0, %z6 \n" \
++ " addiu %2, %2, 1 \n" \
++ "3: \n" \
++ " bnez %4, 0b\n\t" \
++ " srl %5, %1, 0x1f\n\t" \
++ " .set pop" \
++ : "=&r" (__mod32), "=&r" (__tmp), \
++ "=&r" (__quot32), "=&r" (__cf), \
++ "=&r" (__i), "=&r" (__tmp2) \
++ : "Jr" (base), "0" (__high), "1" (__low)); \
++ \
++ (__n) = __quot32; \
++ __mod32; \
++})
+
+-#endif /* (_MIPS_SZLONG == 64) */
++#endif /* BITS_PER_LONG == 64 */
+
+-#endif /* _ASM_DIV64_H */
++#endif /* __ASM_DIV64_H */
diff --git a/target/qemu-mips/device.mk b/target/qemu-mips/device.mk
index df956ae5e..9f912f207 100644
--- a/target/qemu-mips/device.mk
+++ b/target/qemu-mips/device.mk
@@ -1,6 +1,6 @@
ARCH:= mips
CPU_ARCH:= mipsel
-KERNEL_VERSION:= 2.6.29.1
+KERNEL_VERSION:= 2.6.29.4
KERNEL_RELEASE:= 1
KERNEL_MD5SUM:= 4ada43caecb08fe2af71b416b6f586d8
TARGET_OPTIMIZATION:= -Os -pipe
diff --git a/target/qemu-mips/kernel.config b/target/qemu-mips/kernel.config
index e2f59e81c..8a78fd922 100644
--- a/target/qemu-mips/kernel.config
+++ b/target/qemu-mips/kernel.config
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.28
-# Fri Jan 9 22:42:20 2009
+# Linux kernel version: 2.6.29.4
+# Fri May 22 13:23:36 2009
#
CONFIG_MIPS=y
@@ -19,7 +19,7 @@ CONFIG_ZONE_DMA=y
# CONFIG_LEMOTE_FULONG is not set
CONFIG_MIPS_MALTA=y
# CONFIG_MIPS_SIM is not set
-# CONFIG_MACH_EMMA is not set
+# CONFIG_NEC_MARKEINS is not set
# CONFIG_MACH_VR41XX is not set
# CONFIG_NXP_STB220 is not set
# CONFIG_NXP_STB225 is not set
@@ -44,6 +44,8 @@ CONFIG_MIPS_MALTA=y
# CONFIG_MACH_TX49XX is not set
# CONFIG_MIKROTIK_RB532 is not set
# CONFIG_WR_PPMC is not set
+# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
+# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
CONFIG_RWSEM_GENERIC_SPINLOCK=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
@@ -54,11 +56,13 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_BOOT_RAW=y
+CONFIG_CEVT_R4K_LIB=y
CONFIG_CEVT_R4K=y
+CONFIG_CSRC_R4K_LIB=y
CONFIG_CSRC_R4K=y
CONFIG_DMA_NONCOHERENT=y
CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -106,6 +110,7 @@ CONFIG_CPU_MIPS32_R1=y
# CONFIG_CPU_RM7000 is not set
# CONFIG_CPU_RM9000 is not set
# CONFIG_CPU_SB1 is not set
+# CONFIG_CPU_CAVIUM_OCTEON is not set
CONFIG_SYS_HAS_CPU_MIPS32_R1=y
CONFIG_SYS_HAS_CPU_MIPS32_R2=y
CONFIG_SYS_HAS_CPU_MIPS64_R1=y
@@ -152,7 +157,6 @@ CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
-# CONFIG_RESOURCES_64BIT is not set
# CONFIG_PHYS_ADDR_T_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
@@ -173,7 +177,6 @@ CONFIG_HZ=100
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
-# CONFIG_PREEMPT_RCU is not set
# CONFIG_KEXEC is not set
# CONFIG_SECCOMP is not set
CONFIG_LOCKDEP_SUPPORT=y
@@ -196,10 +199,19 @@ CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_CLASSIC_RCU=y
+# CONFIG_TREE_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_PREEMPT_RCU_TRACE is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_CGROUPS is not set
# CONFIG_GROUP_SCHED is not set
+# CONFIG_CGROUPS is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
# CONFIG_RELAY is not set
# CONFIG_NAMESPACES is not set
@@ -207,6 +219,7 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
CONFIG_EMBEDDED=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
@@ -216,10 +229,8 @@ CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
-# CONFIG_COMPAT_BRK is not set
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
-CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
@@ -228,16 +239,15 @@ CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_PCI_QUIRKS=y
+# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
-# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not set
@@ -245,11 +255,9 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_LSF is not set
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_INTEGRITY is not set
@@ -265,7 +273,6 @@ CONFIG_IOSCHED_NOOP=y
# CONFIG_DEFAULT_CFQ is not set
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"
-CONFIG_CLASSIC_RCU=y
# CONFIG_PROBE_INITRD_HEADER is not set
# CONFIG_FREEZER is not set
@@ -277,6 +284,7 @@ CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCI_LEGACY is not set
+# CONFIG_PCI_STUB is not set
CONFIG_MMU=y
CONFIG_I8253=y
# CONFIG_PCCARD is not set
@@ -301,6 +309,7 @@ CONFIG_NET=y
#
# Networking options
#
+CONFIG_COMPAT_NET_DEV_OPS=y
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
@@ -354,6 +363,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
#
# Network testing
@@ -367,6 +377,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_PHONET is not set
CONFIG_FIB_RULES=y
# CONFIG_WIRELESS is not set
+# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
@@ -412,7 +423,6 @@ CONFIG_IDE_GD_ATA=y
# CONFIG_IDE_GD_ATAPI is not set
# CONFIG_BLK_DEV_IDECD is not set
# CONFIG_BLK_DEV_IDETAPE is not set
-# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_PROC_FS is not set
@@ -443,6 +453,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_JMICRON is not set
# CONFIG_BLK_DEV_SC1200 is not set
CONFIG_BLK_DEV_PIIX=y
+# CONFIG_BLK_DEV_IT8172 is not set
# CONFIG_BLK_DEV_IT8213 is not set
# CONFIG_BLK_DEV_IT821X is not set
# CONFIG_BLK_DEV_NS87415 is not set
@@ -587,6 +598,7 @@ CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
@@ -739,6 +751,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
#
# CONFIG_USB_GADGET is not set
+
+#
+# OTG and related infrastructure
+#
# CONFIG_UWB is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
@@ -765,6 +781,7 @@ CONFIG_EXT2_FS=y
CONFIG_FILE_LOCKING=y
# CONFIG_XFS_FS is not set
# CONFIG_OCFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
CONFIG_DNOTIFY=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
@@ -798,10 +815,7 @@ CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_CONFIGFS_FS is not set
-
-#
-# Miscellaneous filesystems
-#
+CONFIG_MISC_FILESYSTEMS=y
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
@@ -810,6 +824,7 @@ CONFIG_TMPFS=y
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
+# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_OMFS_FS is not set
@@ -858,7 +873,7 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_PRINTK_TIME=y
# CONFIG_ENABLE_WARN_DEPRECATED is not set
# CONFIG_ENABLE_MUST_CHECK is not set
-CONFIG_FRAME_WARN=0
+CONFIG_FRAME_WARN=1024
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
@@ -886,9 +901,15 @@ CONFIG_CMDLINE="init=/init console=ttyS0,115200 console=tty0"
# CONFIG_CRYPTO is not set
#
+# OCF Configuration
+#
+# CONFIG_OCF_OCF is not set
+
+#
# Library routines
#
CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
# CONFIG_CRC_T10DIF is not set