Index: linux-2.6.23.17/arch/mips/Kconfig =================================================================== --- linux-2.6.23.17.orig/arch/mips/Kconfig +++ linux-2.6.23.17/arch/mips/Kconfig @@ -44,6 +44,16 @@ config BASLER_EXCITE_PROTOTYPE note that a kernel built with this option selected will not be able to run on normal units. +config ATHEROS + bool "Atheros SoC support (EXPERIMENTAL)" + depends on EXPERIMENTAL + select DMA_NONCOHERENT + select IRQ_CPU + select SYS_HAS_CPU_MIPS32_R1 + select SYS_SUPPORTS_BIG_ENDIAN + select SYS_SUPPORTS_32BIT_KERNEL + select GENERIC_GPIO + config MIPS_COBALT bool "Cobalt Server" select DMA_NONCOHERENT @@ -597,6 +607,7 @@ config WR_PPMC endchoice +source "arch/mips/atheros/Kconfig" source "arch/mips/au1000/Kconfig" source "arch/mips/jazz/Kconfig" source "arch/mips/pmc-sierra/Kconfig" Index: linux-2.6.23.17/arch/mips/Makefile =================================================================== --- linux-2.6.23.17.orig/arch/mips/Makefile +++ linux-2.6.23.17/arch/mips/Makefile @@ -270,6 +270,13 @@ libs-$(CONFIG_MIPS_XXS1500) += arch/mips load-$(CONFIG_MIPS_XXS1500) += 0xffffffff80100000 # +# Atheros AR5312/AR2312 WiSoC +# +core-$(CONFIG_ATHEROS) += arch/mips/atheros/ +cflags-$(CONFIG_ATHEROS) += -Iinclude/asm-mips/mach-atheros +load-$(CONFIG_ATHEROS) += 0xffffffff80041000 + +# # Cobalt Server # core-$(CONFIG_MIPS_COBALT) += arch/mips/cobalt/ Index: linux-2.6.23.17/include/asm-mips/bootinfo.h =================================================================== --- linux-2.6.23.17.orig/include/asm-mips/bootinfo.h +++ linux-2.6.23.17/include/asm-mips/bootinfo.h @@ -208,6 +208,18 @@ #define MACH_GROUP_WINDRIVER 28 /* Windriver boards */ #define MACH_WRPPMC 1 +/* + * Valid machtype for group ATHEROS + */ +#define MACH_GROUP_ATHEROS 26 +#define MACH_ATHEROS_AR5312 0 +#define MACH_ATHEROS_AR2312 1 +#define MACH_ATHEROS_AR2313 2 +#define MACH_ATHEROS_AR2315 3 +#define MACH_ATHEROS_AR2316 4 +#define MACH_ATHEROS_AR2317 5 +#define MACH_ATHEROS_AR2318 6 + #define CL_SIZE COMMAND_LINE_SIZE const char *get_system_type(void);