You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
4.9 KiB
122 lines
4.9 KiB
From 0713aadd2a4e543b69022aa40bdec3e1dc5bc1e5 Mon Sep 17 00:00:00 2001
|
|
From: Maxime Bizon <mbizon@freebox.fr>
|
|
Date: Mon, 18 Aug 2008 13:56:57 +0200
|
|
Subject: [PATCH] [MIPS] BCM63XX: Add support for Broadcom 63xx CPUs.
|
|
|
|
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
|
|
---
|
|
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 ++++++
|
|
arch/mips/include/asm/fixmap.h | 4 +
|
|
arch/mips/include/asm/mach-bcm63xx/bcm63xx_clk.h | 11 +
|
|
arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h | 314 +++++++++
|
|
arch/mips/include/asm/mach-bcm63xx/bcm63xx_cs.h | 10 +
|
|
arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h | 14 +
|
|
arch/mips/include/asm/mach-bcm63xx/bcm63xx_io.h | 93 +++
|
|
arch/mips/include/asm/mach-bcm63xx/bcm63xx_irq.h | 15 +
|
|
arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h | 728 ++++++++++++++++++++
|
|
arch/mips/include/asm/mach-bcm63xx/bcm63xx_timer.h | 11 +
|
|
.../asm-mips/mach-bcm63xx/cpu-feature-overrides.h | 51 ++
|
|
arch/mips/include/asm/mach-bcm63xx/gpio.h | 52 ++
|
|
arch/mips/include/asm/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 arch/mips/include/asm/mach-bcm63xx/bcm63xx_clk.h
|
|
create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
|
|
create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_cs.h
|
|
create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h
|
|
create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_io.h
|
|
create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_irq.h
|
|
create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
|
|
create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_timer.h
|
|
create mode 100644 arch/mips/include/asm/mach-bcm63xx/cpu-feature-overrides.h
|
|
create mode 100644 arch/mips/include/asm/mach-bcm63xx/gpio.h
|
|
create mode 100644 arch/mips/include/asm/mach-bcm63xx/war.h
|
|
|
|
--- a/arch/mips/Kconfig
|
|
+++ b/arch/mips/Kconfig
|
|
@@ -60,6 +60,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
|
|
@@ -635,6 +650,7 @@ endchoice
|
|
|
|
source "arch/mips/alchemy/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
|
|
@@ -551,6 +551,13 @@ cflags-$(CONFIG_BCM47XX) += -I$(srctree)
|
|
load-$(CONFIG_BCM47XX) := 0xffffffff80001000
|
|
|
|
#
|
|
+# Broadcom BCM63XX boards
|
|
+#
|
|
+core-$(CONFIG_BCM63XX) += arch/mips/bcm63xx/
|
|
+cflags-$(CONFIG_BCM63XX) += -Iarch/mips/include/asm/mach-bcm63xx/
|
|
+load-$(CONFIG_BCM63XX) := 0xffffffff80010000
|
|
+
|
|
+#
|
|
# SNI RM
|
|
#
|
|
core-$(CONFIG_SNI_RM) += arch/mips/sni/
|
|
--- a/arch/mips/include/asm/fixmap.h
|
|
+++ b/arch/mips/include/asm/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)
|
|
|
|
|