aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/44x
diff options
context:
space:
mode:
authorJohn Linn <john.linn@xilinx.com>2008-07-03 10:05:04 -0400
committerGrant Likely <grant.likely@secretlab.ca>2008-07-04 02:59:02 -0400
commit39fd0e92b3dc864f36c1253006b8b831844d36f1 (patch)
treedc3e2a38a74148d1aab130adeb8ba1843cc1c542 /arch/powerpc/platforms/44x
parentd58577d8f36f66dbb5dec30fc01dfddda0cfd1fa (diff)
powerpc/virtex: add Xilinx Virtex 5 ppc440 platform support
Support for the Xilinx Virtex5 FXT 440 is being added. Signed-off-by: John Linn <john.linn@xilinx.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'arch/powerpc/platforms/44x')
-rw-r--r--arch/powerpc/platforms/44x/Kconfig26
-rw-r--r--arch/powerpc/platforms/44x/Makefile1
-rw-r--r--arch/powerpc/platforms/44x/virtex.c60
3 files changed, 87 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig
index bee49ca704e..249ba01c667 100644
--- a/arch/powerpc/platforms/44x/Kconfig
+++ b/arch/powerpc/platforms/44x/Kconfig
@@ -111,6 +111,22 @@ config YOSEMITE
111# help 111# help
112# This option enables support for the IBM PPC440GX evaluation board. 112# This option enables support for the IBM PPC440GX evaluation board.
113 113
114config XILINX_VIRTEX440_GENERIC_BOARD
115 bool "Generic Xilinx Virtex 440 board"
116 depends on 44x
117 default n
118 select XILINX_VIRTEX_5_FXT
119 help
120 This option enables generic support for Xilinx Virtex based boards
121 that use a 440 based processor in the Virtex 5 FXT FPGA architecture.
122
123 The generic virtex board support matches any device tree which
124 specifies 'xlnx,virtex440' in its compatible field. This includes
125 the Xilinx ML5xx reference designs using the powerpc core.
126
127 Most Virtex 5 designs should use this unless it needs to do some
128 special configuration at board probe time.
129
114# 44x specific CPU modules, selected based on the board above. 130# 44x specific CPU modules, selected based on the board above.
115config 440EP 131config 440EP
116 bool 132 bool
@@ -161,3 +177,13 @@ config 460EX
161# 44x errata/workaround config symbols, selected by the CPU models above 177# 44x errata/workaround config symbols, selected by the CPU models above
162config IBM440EP_ERR42 178config IBM440EP_ERR42
163 bool 179 bool
180
181# Xilinx specific config options.
182config XILINX_VIRTEX
183 bool
184
185# Xilinx Virtex 5 FXT FPGA architecture, selected by a Xilinx board above
186config XILINX_VIRTEX_5_FXT
187 bool
188 select XILINX_VIRTEX
189
diff --git a/arch/powerpc/platforms/44x/Makefile b/arch/powerpc/platforms/44x/Makefile
index 4e71e77f9a2..8d0b1a192d6 100644
--- a/arch/powerpc/platforms/44x/Makefile
+++ b/arch/powerpc/platforms/44x/Makefile
@@ -10,3 +10,4 @@ obj-$(CONFIG_RAINIER) += rainier.o
10obj-$(CONFIG_WARP) += warp.o 10obj-$(CONFIG_WARP) += warp.o
11obj-$(CONFIG_WARP) += warp-nand.o 11obj-$(CONFIG_WARP) += warp-nand.o
12obj-$(CONFIG_CANYONLANDS) += canyonlands.o 12obj-$(CONFIG_CANYONLANDS) += canyonlands.o
13obj-$(CONFIG_XILINX_VIRTEX_5_FXT) += virtex.o
diff --git a/arch/powerpc/platforms/44x/virtex.c b/arch/powerpc/platforms/44x/virtex.c
new file mode 100644
index 00000000000..68637faf70a
--- /dev/null
+++ b/arch/powerpc/platforms/44x/virtex.c
@@ -0,0 +1,60 @@
1/*
2 * Xilinx Virtex 5FXT based board support, derived from
3 * the Xilinx Virtex (IIpro & 4FX) based board support
4 *
5 * Copyright 2007 Secret Lab Technologies Ltd.
6 * Copyright 2008 Xilinx, Inc.
7 *
8 * This file is licensed under the terms of the GNU General Public License
9 * version 2. This program is licensed "as is" without any warranty of any
10 * kind, whether express or implied.
11 */
12
13#include <linux/init.h>
14#include <linux/of_platform.h>
15#include <asm/machdep.h>
16#include <asm/prom.h>
17#include <asm/time.h>
18#include <asm/xilinx_intc.h>
19#include <asm/reg.h>
20#include <asm/ppc4xx.h>
21#include "44x.h"
22
23static struct of_device_id xilinx_of_bus_ids[] __initdata = {
24 { .compatible = "simple-bus", },
25 { .compatible = "xlnx,plb-v46-1.00.a", },
26 { .compatible = "xlnx,plb-v46-1.02.a", },
27 { .compatible = "xlnx,plb-v34-1.01.a", },
28 { .compatible = "xlnx,plb-v34-1.02.a", },
29 { .compatible = "xlnx,opb-v20-1.10.c", },
30 { .compatible = "xlnx,dcr-v29-1.00.a", },
31 { .compatible = "xlnx,compound", },
32 {}
33};
34
35static int __init virtex_device_probe(void)
36{
37 of_platform_bus_probe(NULL, xilinx_of_bus_ids, NULL);
38
39 return 0;
40}
41machine_device_initcall(virtex, virtex_device_probe);
42
43static int __init virtex_probe(void)
44{
45 unsigned long root = of_get_flat_dt_root();
46
47 if (!of_flat_dt_is_compatible(root, "xlnx,virtex440"))
48 return 0;
49
50 return 1;
51}
52
53define_machine(virtex) {
54 .name = "Xilinx Virtex440",
55 .probe = virtex_probe,
56 .init_IRQ = xilinx_intc_init_tree,
57 .get_irq = xilinx_intc_get_irq,
58 .calibrate_decr = generic_calibrate_decr,
59 .restart = ppc4xx_reset_system,
60};