Index: linux-2.6.25.7/arch/mips/Kconfig =================================================================== --- linux-2.6.25.7.orig/arch/mips/Kconfig 2008-06-26 10:42:44.000000000 +0200 +++ linux-2.6.25.7/arch/mips/Kconfig 2008-06-26 22:05:19.000000000 +0200 @@ -78,6 +78,21 @@ select SYS_SUPPORTS_LITTLE_ENDIAN select GENERIC_HARDIRQS_NO__DO_IRQ +config IFXMIPS + bool "Infineon Twinpass, Danube, Amazon-SE" + select DMA_NONCOHERENT + select IRQ_CPU + select CEVT_R4K + select CSRC_R4K + select SYS_HAS_CPU_MIPS32_R1 + select HAVE_STD_PC_SERIAL_PORT + select SYS_SUPPORTS_BIG_ENDIAN + select SYS_SUPPORTS_32BIT_KERNEL + select SYS_HAS_EARLY_PRINTK + select HW_HAS_PCI + select GENERIC_GPIO + select SWAP_IO_SPACE + config MACH_DECSTATION bool "DECstations" select BOOT_ELF32 @@ -693,6 +708,7 @@ source "arch/mips/tx4927/Kconfig" source "arch/mips/tx4938/Kconfig" source "arch/mips/vr41xx/Kconfig" +source "arch/mips/ifxmips/Kconfig" endmenu Index: linux-2.6.25.7/arch/mips/Makefile =================================================================== --- linux-2.6.25.7.orig/arch/mips/Makefile 2008-06-26 10:42:55.000000000 +0200 +++ linux-2.6.25.7/arch/mips/Makefile 2008-06-26 10:42:56.000000000 +0200 @@ -283,6 +283,13 @@ load-$(CONFIG_MIPS_COBALT) += 0xffffffff80080000 # +# Infineon IFXMIPS +# +core-$(CONFIG_IFXMIPS) += arch/mips/ifxmips/ +cflags-$(CONFIG_IFXMIPS) += -Iinclude/asm-mips/mach-ifxmips +load-$(CONFIG_IFXMIPS) += 0xffffffff80002000 + +# # DECstation family # core-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/ Index: linux-2.6.25.7/include/asm-mips/bootinfo.h =================================================================== --- linux-2.6.25.7.orig/include/asm-mips/bootinfo.h 2008-06-26 10:42:44.000000000 +0200 +++ linux-2.6.25.7/include/asm-mips/bootinfo.h 2008-06-26 10:42:56.000000000 +0200 @@ -94,6 +94,12 @@ #define MACH_MSP7120_FPGA 5 /* PMC-Sierra MSP7120 Emulation */ #define MACH_MSP_OTHER 255 /* PMC-Sierra unknown board type */ +/* + * Valid machtype for group IFXMIPS + */ +#define MACH_GROUP_IFXMIPS 29 +#define MACH_INFINEON_IFXMIPS 0 + #define CL_SIZE COMMAND_LINE_SIZE extern char *system_type; Index: linux-2.6.25.7/arch/mips/kernel/traps.c =================================================================== --- linux-2.6.25.7.orig/arch/mips/kernel/traps.c 2008-06-26 10:42:44.000000000 +0200 +++ linux-2.6.25.7/arch/mips/kernel/traps.c 2008-06-26 10:42:56.000000000 +0200 @@ -1379,6 +1379,7 @@ */ if (cpu_has_mips_r2) { cp0_compare_irq = (read_c0_intctl() >> 29) & 7; + cp0_compare_irq = CP0_LEGACY_COMPARE_IRQ; cp0_perfcount_irq = (read_c0_intctl() >> 26) & 7; if (cp0_perfcount_irq == cp0_compare_irq) cp0_perfcount_irq = -1; Index: linux-2.6.25.7/arch/mips/pci/Makefile =================================================================== --- linux-2.6.25.7.orig/arch/mips/pci/Makefile 2008-06-26 10:42:44.000000000 +0200 +++ linux-2.6.25.7/arch/mips/pci/Makefile 2008-06-26 10:42:56.000000000 +0200 @@ -48,3 +48,4 @@ obj-$(CONFIG_VICTOR_MPC30X) += fixup-mpc30x.o obj-$(CONFIG_ZAO_CAPCELLA) += fixup-capcella.o obj-$(CONFIG_WR_PPMC) += fixup-wrppmc.o +obj-$(CONFIG_IFXMIPS) += pci-ifxmips.o ops-ifxmips.o