summaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx/patches-2.6.28/002-add_support_for_broadcom_63xx_cpus.patch
blob: 56717763bdb7aa1960f413e219d21f420168d836 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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
@@ -599,6 +614,7 @@ endchoice
 
 source "arch/mips/alchemy/Kconfig"
 source "arch/mips/basler/excite/Kconfig"
+source "arch/mips/bcm63xx/Kconfig"
 source "arch/mips/emma/Kconfig"
 source "arch/mips/jazz/Kconfig"
 source "arch/mips/lasat/Kconfig"
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -553,6 +553,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)