From 0713aadd2a4e543b69022aa40bdec3e1dc5bc1e5 Mon Sep 17 00:00:00 2001 From: Maxime Bizon Date: Mon, 18 Aug 2008 13:56:57 +0200 Subject: [PATCH] [MIPS] BCM63XX: Add support for Broadcom 63xx CPUs. Signed-off-by: Maxime Bizon --- arch/mips/Kconfig | 16 + arch/mips/Makefile | 7 + arch/mips/bcm63xx/Kconfig | 9 + arch/mips/bcm63xx/Makefile | 2 + arch/mips/bcm63xx/clk.c | 220 ++++++ arch/mips/bcm63xx/cpu.c | 245 +++++++ arch/mips/bcm63xx/cs.c | 144 ++++ arch/mips/bcm63xx/early_printk.c | 30 + arch/mips/bcm63xx/gpio.c | 98 +++ arch/mips/bcm63xx/irq.c | 253 +++++++ arch/mips/bcm63xx/prom.c | 43 ++ arch/mips/bcm63xx/setup.c | 108 +++ arch/mips/bcm63xx/timer.c | 205 ++++++ include/asm-mips/fixmap.h | 4 + include/asm-mips/mach-bcm63xx/bcm63xx_clk.h | 11 + include/asm-mips/mach-bcm63xx/bcm63xx_cpu.h | 314 +++++++++ include/asm-mips/mach-bcm63xx/bcm63xx_cs.h | 10 + include/asm-mips/mach-bcm63xx/bcm63xx_gpio.h | 14 + include/asm-mips/mach-bcm63xx/bcm63xx_io.h | 93 +++ include/asm-mips/mach-bcm63xx/bcm63xx_irq.h | 15 + include/asm-mips/mach-bcm63xx/bcm63xx_regs.h | 728 ++++++++++++++++++++ include/asm-mips/mach-bcm63xx/bcm63xx_timer.h | 11 + .../asm-mips/mach-bcm63xx/cpu-feature-overrides.h | 51 ++ include/asm-mips/mach-bcm63xx/gpio.h | 52 ++ include/asm-mips/mach-bcm63xx/war.h | 25 + 25 files changed, 2708 insertions(+), 0 deletions(-) create mode 100644 arch/mips/bcm63xx/Kconfig create mode 100644 arch/mips/bcm63xx/Makefile create mode 100644 arch/mips/bcm63xx/clk.c create mode 100644 arch/mips/bcm63xx/cpu.c create mode 100644 arch/mips/bcm63xx/cs.c create mode 100644 arch/mips/bcm63xx/early_printk.c create mode 100644 arch/mips/bcm63xx/gpio.c create mode 100644 arch/mips/bcm63xx/irq.c create mode 100644 arch/mips/bcm63xx/prom.c create mode 100644 arch/mips/bcm63xx/setup.c create mode 100644 arch/mips/bcm63xx/timer.c create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_clk.h create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_cpu.h create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_cs.h create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_gpio.h create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_io.h create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_irq.h create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_regs.h create mode 100644 include/asm-mips/mach-bcm63xx/bcm63xx_timer.h create mode 100644 include/asm-mips/mach-bcm63xx/cpu-feature-overrides.h create mode 100644 include/asm-mips/mach-bcm63xx/gpio.h create mode 100644 include/asm-mips/mach-bcm63xx/war.h --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -59,6 +59,21 @@ config BCM47XX help Support for BCM47XX based boards +config BCM63XX + bool "Broadcom 63xx based boards" + select CEVT_R4K + select CSRC_R4K + select DMA_NONCOHERENT + select IRQ_CPU + select SYS_HAS_CPU_MIPS32_R1 + select SYS_SUPPORTS_32BIT_KERNEL + select SYS_SUPPORTS_BIG_ENDIAN + select SYS_HAS_EARLY_PRINTK + select SWAP_IO_SPACE + select ARCH_REQUIRE_GPIOLIB + help + Support for BCM63XX based boards + config MIPS_COBALT bool "Cobalt Server" select CEVT_R4K @@ -600,6 +615,7 @@ endchoice source "arch/mips/au1000/Kconfig" source "arch/mips/basler/excite/Kconfig" +source "arch/mips/bcm63xx/Kconfig" source "arch/mips/jazz/Kconfig" source "arch/mips/lasat/Kconfig" source "arch/mips/pmc-sierra/Kconfig" --- a/arch/mips/Makefile +++ b/arch/mips/Makefile @@ -533,6 +533,13 @@ cflags-$(CONFIG_BCM47XX) += -Iinclude/as load-$(CONFIG_BCM47XX) := 0xffffffff80001000 # +# Broadcom BCM63XX boards +# +core-$(CONFIG_BCM63XX) += arch/mips/bcm63xx/ +cflags-$(CONFIG_BCM63XX) += -Iinclude/asm-mips/mach-bcm63xx/ +load-$(CONFIG_BCM63XX) := 0xffffffff80010000 + +# # SNI RM # core-$(CONFIG_SNI_RM) += arch/mips/sni/ --- a/include/asm-mips/fixmap.h +++ b/include/asm-mips/fixmap.h @@ -67,11 +67,15 @@ enum fixed_addresses { * the start of the fixmap, and leave one page empty * at the top of mem.. */ +#ifdef CONFIG_BCM63XX +#define FIXADDR_TOP ((unsigned long)(long)(int)0xff000000) +#else #if defined(CONFIG_CPU_TX39XX) || defined(CONFIG_CPU_TX49XX) #define FIXADDR_TOP ((unsigned long)(long)(int)(0xff000000 - 0x20000)) #else #define FIXADDR_TOP ((unsigned long)(long)(int)0xfffe0000) #endif +#endif #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)