diff options
| author | Grant Likely <grant.likely@secretlab.ca> | 2007-04-27 15:50:02 -0400 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2007-04-29 21:02:04 -0400 |
| commit | 8c38fc2b7429b26105fe244890c8d5ab3043f099 (patch) | |
| tree | f06a18bfd829b25b78e002216053c2f0be0011a5 | |
| parent | d26cd57071b4358bcf3a9140a90b38514c7f345e (diff) | |
[POWERPC] Stop using ppc_sys for Xilinx Virtex boards
The arch/ppc/syslib/ppc_sys.c infrastructure does not work well for the
virtex ports. Move the ml300 and ml403 board ports over to use the new
virtex_devices infrastructure.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Paul Mackerras <paulus@samba.org>
| -rw-r--r-- | arch/ppc/platforms/4xx/Makefile | 1 | ||||
| -rw-r--r-- | arch/ppc/platforms/4xx/virtex.c | 56 | ||||
| -rw-r--r-- | arch/ppc/platforms/4xx/virtex.h | 7 | ||||
| -rw-r--r-- | arch/ppc/platforms/4xx/xilinx_ml300.c | 64 | ||||
| -rw-r--r-- | arch/ppc/platforms/4xx/xilinx_ml403.c | 65 | ||||
| -rw-r--r-- | arch/ppc/syslib/Makefile | 3 | ||||
| -rw-r--r-- | include/asm-ppc/ppc_sys.h | 2 |
7 files changed, 11 insertions, 187 deletions
diff --git a/arch/ppc/platforms/4xx/Makefile b/arch/ppc/platforms/4xx/Makefile index fa6610bccaf9..723ad7985cc6 100644 --- a/arch/ppc/platforms/4xx/Makefile +++ b/arch/ppc/platforms/4xx/Makefile | |||
| @@ -28,5 +28,4 @@ obj-$(CONFIG_440SP) += ibm440sp.o | |||
| 28 | obj-$(CONFIG_440SPE) += ppc440spe.o | 28 | obj-$(CONFIG_440SPE) += ppc440spe.o |
| 29 | obj-$(CONFIG_405EP) += ibm405ep.o | 29 | obj-$(CONFIG_405EP) += ibm405ep.o |
| 30 | obj-$(CONFIG_405GPR) += ibm405gpr.o | 30 | obj-$(CONFIG_405GPR) += ibm405gpr.o |
| 31 | obj-$(CONFIG_XILINX_VIRTEX) += virtex.o | ||
| 32 | 31 | ||
diff --git a/arch/ppc/platforms/4xx/virtex.c b/arch/ppc/platforms/4xx/virtex.c deleted file mode 100644 index 133a83147199..000000000000 --- a/arch/ppc/platforms/4xx/virtex.c +++ /dev/null | |||
| @@ -1,56 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Virtex-II Pro & Virtex-4 FX common infrastructure | ||
| 3 | * | ||
| 4 | * Maintainer: Grant Likely <grant.likely@secretlab.ca> | ||
| 5 | * | ||
| 6 | * Copyright 2005 Secret Lab Technologies Ltd. | ||
| 7 | * Copyright 2005 General Dynamics Canada Ltd. | ||
| 8 | * Copyright 2005 Freescale Semiconductor Inc. | ||
| 9 | * | ||
| 10 | * This program is free software; you can redistribute it and/or modify it | ||
| 11 | * under the terms of the GNU General Public License as published by the | ||
| 12 | * Free Software Foundation; either version 2 of the License, or (at your | ||
| 13 | * option) any later version. | ||
| 14 | */ | ||
| 15 | |||
| 16 | #include <linux/init.h> | ||
| 17 | #include <linux/module.h> | ||
| 18 | #include <linux/device.h> | ||
| 19 | #include <linux/serial_8250.h> | ||
| 20 | #include <asm/ppc_sys.h> | ||
| 21 | #include <platforms/4xx/virtex.h> | ||
| 22 | #include <platforms/4xx/xparameters/xparameters.h> | ||
| 23 | |||
| 24 | #define XPAR_UART(num) { \ | ||
| 25 | .mapbase = XPAR_UARTNS550_##num##_BASEADDR + 3, \ | ||
| 26 | .irq = XPAR_INTC_0_UARTNS550_##num##_VEC_ID, \ | ||
| 27 | .iotype = UPIO_MEM, \ | ||
| 28 | .uartclk = XPAR_UARTNS550_##num##_CLOCK_FREQ_HZ, \ | ||
| 29 | .flags = UPF_BOOT_AUTOCONF, \ | ||
| 30 | .regshift = 2, \ | ||
| 31 | } | ||
| 32 | |||
| 33 | struct plat_serial8250_port serial_platform_data[] = { | ||
| 34 | #ifdef XPAR_UARTNS550_0_BASEADDR | ||
| 35 | XPAR_UART(0), | ||
| 36 | #endif | ||
| 37 | #ifdef XPAR_UARTNS550_1_BASEADDR | ||
| 38 | XPAR_UART(1), | ||
| 39 | #endif | ||
| 40 | #ifdef XPAR_UARTNS550_2_BASEADDR | ||
| 41 | XPAR_UART(2), | ||
| 42 | #endif | ||
| 43 | #ifdef XPAR_UARTNS550_3_BASEADDR | ||
| 44 | XPAR_UART(3), | ||
| 45 | #endif | ||
| 46 | { }, /* terminated by empty record */ | ||
| 47 | }; | ||
| 48 | |||
| 49 | struct platform_device ppc_sys_platform_devices[] = { | ||
| 50 | [VIRTEX_UART] = { | ||
| 51 | .name = "serial8250", | ||
| 52 | .id = 0, | ||
| 53 | .dev.platform_data = serial_platform_data, | ||
| 54 | }, | ||
| 55 | }; | ||
| 56 | |||
diff --git a/arch/ppc/platforms/4xx/virtex.h b/arch/ppc/platforms/4xx/virtex.h index e9f58a784314..4fc76da2a4ba 100644 --- a/arch/ppc/platforms/4xx/virtex.h +++ b/arch/ppc/platforms/4xx/virtex.h | |||
| @@ -19,13 +19,8 @@ | |||
| 19 | #if !defined(BASE_BAUD) | 19 | #if !defined(BASE_BAUD) |
| 20 | #define BASE_BAUD (0) /* dummy value; not used */ | 20 | #define BASE_BAUD (0) /* dummy value; not used */ |
| 21 | #endif | 21 | #endif |
| 22 | 22 | ||
| 23 | /* Device type enumeration for platform bus definitions */ | ||
| 24 | #ifndef __ASSEMBLY__ | 23 | #ifndef __ASSEMBLY__ |
| 25 | enum ppc_sys_devices { | ||
| 26 | VIRTEX_UART, NUM_PPC_SYS_DEVS, | ||
| 27 | }; | ||
| 28 | |||
| 29 | typedef struct board_info { | 24 | typedef struct board_info { |
| 30 | unsigned int bi_memsize; /* DRAM installed, in bytes */ | 25 | unsigned int bi_memsize; /* DRAM installed, in bytes */ |
| 31 | unsigned char bi_enetaddr[6]; /* Local Ethernet MAC address */ | 26 | unsigned char bi_enetaddr[6]; /* Local Ethernet MAC address */ |
diff --git a/arch/ppc/platforms/4xx/xilinx_ml300.c b/arch/ppc/platforms/4xx/xilinx_ml300.c index 4e4aca43c890..6e522fefc26f 100644 --- a/arch/ppc/platforms/4xx/xilinx_ml300.c +++ b/arch/ppc/platforms/4xx/xilinx_ml300.c | |||
| @@ -18,9 +18,9 @@ | |||
| 18 | #include <linux/serialP.h> | 18 | #include <linux/serialP.h> |
| 19 | #include <asm/io.h> | 19 | #include <asm/io.h> |
| 20 | #include <asm/machdep.h> | 20 | #include <asm/machdep.h> |
| 21 | #include <asm/ppc_sys.h> | ||
| 22 | 21 | ||
| 23 | #include <syslib/gen550.h> | 22 | #include <syslib/gen550.h> |
| 23 | #include <syslib/virtex_devices.h> | ||
| 24 | #include <platforms/4xx/xparameters/xparameters.h> | 24 | #include <platforms/4xx/xparameters/xparameters.h> |
| 25 | 25 | ||
| 26 | /* | 26 | /* |
| @@ -53,25 +53,9 @@ | |||
| 53 | * ppc4xx_pic_init arch/ppc/syslib/xilinx_pic.c | 53 | * ppc4xx_pic_init arch/ppc/syslib/xilinx_pic.c |
| 54 | */ | 54 | */ |
| 55 | 55 | ||
| 56 | /* Board specifications structures */ | ||
| 57 | struct ppc_sys_spec *cur_ppc_sys_spec; | ||
| 58 | struct ppc_sys_spec ppc_sys_specs[] = { | ||
| 59 | { | ||
| 60 | /* Only one entry, always assume the same design */ | ||
| 61 | .ppc_sys_name = "Xilinx ML300 Reference Design", | ||
| 62 | .mask = 0x00000000, | ||
| 63 | .value = 0x00000000, | ||
| 64 | .num_devices = 1, | ||
| 65 | .device_list = (enum ppc_sys_devices[]) | ||
| 66 | { | ||
| 67 | VIRTEX_UART, | ||
| 68 | }, | ||
| 69 | }, | ||
| 70 | }; | ||
| 71 | const char* virtex_machine_name = "ML300 Reference Design"; | 56 | const char* virtex_machine_name = "ML300 Reference Design"; |
| 72 | 57 | ||
| 73 | #if defined(XPAR_POWER_0_POWERDOWN_BASEADDR) | 58 | #if defined(XPAR_POWER_0_POWERDOWN_BASEADDR) |
| 74 | |||
| 75 | static volatile unsigned *powerdown_base = | 59 | static volatile unsigned *powerdown_base = |
| 76 | (volatile unsigned *) XPAR_POWER_0_POWERDOWN_BASEADDR; | 60 | (volatile unsigned *) XPAR_POWER_0_POWERDOWN_BASEADDR; |
| 77 | 61 | ||
| @@ -96,52 +80,14 @@ ml300_map_io(void) | |||
| 96 | #endif | 80 | #endif |
| 97 | } | 81 | } |
| 98 | 82 | ||
| 99 | /* Early serial support functions */ | ||
| 100 | static void __init | ||
| 101 | ml300_early_serial_init(int num, struct plat_serial8250_port *pdata) | ||
| 102 | { | ||
| 103 | #if defined(CONFIG_SERIAL_TEXT_DEBUG) || defined(CONFIG_KGDB) | ||
| 104 | struct uart_port serial_req; | ||
| 105 | |||
| 106 | memset(&serial_req, 0, sizeof(serial_req)); | ||
| 107 | serial_req.mapbase = pdata->mapbase; | ||
| 108 | serial_req.membase = pdata->membase; | ||
| 109 | serial_req.irq = pdata->irq; | ||
| 110 | serial_req.uartclk = pdata->uartclk; | ||
| 111 | serial_req.regshift = pdata->regshift; | ||
| 112 | serial_req.iotype = pdata->iotype; | ||
| 113 | serial_req.flags = pdata->flags; | ||
| 114 | gen550_init(num, &serial_req); | ||
| 115 | #endif | ||
| 116 | } | ||
| 117 | |||
| 118 | void __init | ||
| 119 | ml300_early_serial_map(void) | ||
| 120 | { | ||
| 121 | #ifdef CONFIG_SERIAL_8250 | ||
| 122 | struct plat_serial8250_port *pdata; | ||
| 123 | int i = 0; | ||
| 124 | |||
| 125 | pdata = (struct plat_serial8250_port *) ppc_sys_get_pdata(VIRTEX_UART); | ||
| 126 | while(pdata && pdata->flags) | ||
| 127 | { | ||
| 128 | pdata->membase = ioremap(pdata->mapbase, 0x100); | ||
| 129 | ml300_early_serial_init(i, pdata); | ||
| 130 | pdata++; | ||
| 131 | i++; | ||
| 132 | } | ||
| 133 | #endif /* CONFIG_SERIAL_8250 */ | ||
| 134 | } | ||
| 135 | |||
| 136 | void __init | 83 | void __init |
| 137 | ml300_setup_arch(void) | 84 | ml300_setup_arch(void) |
| 138 | { | 85 | { |
| 139 | ml300_early_serial_map(); | 86 | virtex_early_serial_map(); |
| 140 | ppc4xx_setup_arch(); /* calls ppc4xx_find_bridges() */ | 87 | ppc4xx_setup_arch(); /* calls ppc4xx_find_bridges() */ |
| 141 | 88 | ||
| 142 | /* Identify the system */ | 89 | /* Identify the system */ |
| 143 | printk(KERN_INFO "Xilinx Virtex-II Pro port\n"); | 90 | printk(KERN_INFO "Xilinx ML300 Reference System (Virtex-II Pro)\n"); |
| 144 | printk(KERN_INFO "Port by MontaVista Software, Inc. (source@mvista.com)\n"); | ||
| 145 | } | 91 | } |
| 146 | 92 | ||
| 147 | /* Called after board_setup_irq from ppc4xx_init_IRQ(). */ | 93 | /* Called after board_setup_irq from ppc4xx_init_IRQ(). */ |
| @@ -157,8 +103,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | |||
| 157 | { | 103 | { |
| 158 | ppc4xx_init(r3, r4, r5, r6, r7); | 104 | ppc4xx_init(r3, r4, r5, r6, r7); |
| 159 | 105 | ||
| 160 | identify_ppc_sys_by_id(mfspr(SPRN_PVR)); | ||
| 161 | |||
| 162 | ppc_md.setup_arch = ml300_setup_arch; | 106 | ppc_md.setup_arch = ml300_setup_arch; |
| 163 | ppc_md.setup_io_mappings = ml300_map_io; | 107 | ppc_md.setup_io_mappings = ml300_map_io; |
| 164 | ppc_md.init_IRQ = ml300_init_irq; | 108 | ppc_md.init_IRQ = ml300_init_irq; |
| @@ -168,7 +112,7 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | |||
| 168 | #endif | 112 | #endif |
| 169 | 113 | ||
| 170 | #ifdef CONFIG_KGDB | 114 | #ifdef CONFIG_KGDB |
| 171 | ppc_md.early_serial_map = ml300_early_serial_map; | 115 | ppc_md.early_serial_map = virtex_early_serial_map; |
| 172 | #endif | 116 | #endif |
| 173 | } | 117 | } |
| 174 | 118 | ||
diff --git a/arch/ppc/platforms/4xx/xilinx_ml403.c b/arch/ppc/platforms/4xx/xilinx_ml403.c index c98e40a8799f..bc3ace3762e7 100644 --- a/arch/ppc/platforms/4xx/xilinx_ml403.c +++ b/arch/ppc/platforms/4xx/xilinx_ml403.c | |||
| @@ -1,11 +1,9 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * arch/ppc/platforms/4xx/xilinx_ml403.c | ||
| 3 | * | ||
| 4 | * Xilinx ML403 evaluation board initialization | 2 | * Xilinx ML403 evaluation board initialization |
| 5 | * | 3 | * |
| 6 | * Author: Grant Likely <grant.likely@secretlab.ca> | 4 | * Author: Grant Likely <grant.likely@secretlab.ca> |
| 7 | * | 5 | * |
| 8 | * 2005 (c) Secret Lab Technologies Ltd. | 6 | * 2005-2007 (c) Secret Lab Technologies Ltd. |
| 9 | * 2002-2004 (c) MontaVista Software, Inc. | 7 | * 2002-2004 (c) MontaVista Software, Inc. |
| 10 | * | 8 | * |
| 11 | * This file is licensed under the terms of the GNU General Public License | 9 | * This file is licensed under the terms of the GNU General Public License |
| @@ -22,9 +20,9 @@ | |||
| 22 | #include <linux/serialP.h> | 20 | #include <linux/serialP.h> |
| 23 | #include <asm/io.h> | 21 | #include <asm/io.h> |
| 24 | #include <asm/machdep.h> | 22 | #include <asm/machdep.h> |
| 25 | #include <asm/ppc_sys.h> | ||
| 26 | 23 | ||
| 27 | #include <syslib/gen550.h> | 24 | #include <syslib/gen550.h> |
| 25 | #include <syslib/virtex_devices.h> | ||
| 28 | #include <platforms/4xx/xparameters/xparameters.h> | 26 | #include <platforms/4xx/xparameters/xparameters.h> |
| 29 | 27 | ||
| 30 | /* | 28 | /* |
| @@ -57,25 +55,9 @@ | |||
| 57 | * ppc4xx_pic_init arch/ppc/syslib/xilinx_pic.c | 55 | * ppc4xx_pic_init arch/ppc/syslib/xilinx_pic.c |
| 58 | */ | 56 | */ |
| 59 | 57 | ||
| 60 | /* Board specifications structures */ | ||
| 61 | struct ppc_sys_spec *cur_ppc_sys_spec; | ||
| 62 | struct ppc_sys_spec ppc_sys_specs[] = { | ||
| 63 | { | ||
| 64 | /* Only one entry, always assume the same design */ | ||
| 65 | .ppc_sys_name = "Xilinx ML403 Reference Design", | ||
| 66 | .mask = 0x00000000, | ||
| 67 | .value = 0x00000000, | ||
| 68 | .num_devices = 1, | ||
| 69 | .device_list = (enum ppc_sys_devices[]) | ||
| 70 | { | ||
| 71 | VIRTEX_UART, | ||
| 72 | }, | ||
| 73 | }, | ||
| 74 | }; | ||
| 75 | const char* virtex_machine_name = "ML403 Reference Design"; | 58 | const char* virtex_machine_name = "ML403 Reference Design"; |
| 76 | 59 | ||
| 77 | #if defined(XPAR_POWER_0_POWERDOWN_BASEADDR) | 60 | #if defined(XPAR_POWER_0_POWERDOWN_BASEADDR) |
| 78 | |||
| 79 | static volatile unsigned *powerdown_base = | 61 | static volatile unsigned *powerdown_base = |
| 80 | (volatile unsigned *) XPAR_POWER_0_POWERDOWN_BASEADDR; | 62 | (volatile unsigned *) XPAR_POWER_0_POWERDOWN_BASEADDR; |
| 81 | 63 | ||
| @@ -100,47 +82,10 @@ ml403_map_io(void) | |||
| 100 | #endif | 82 | #endif |
| 101 | } | 83 | } |
| 102 | 84 | ||
| 103 | /* Early serial support functions */ | ||
| 104 | static void __init | ||
| 105 | ml403_early_serial_init(int num, struct plat_serial8250_port *pdata) | ||
| 106 | { | ||
| 107 | #if defined(CONFIG_SERIAL_TEXT_DEBUG) || defined(CONFIG_KGDB) | ||
| 108 | struct uart_port serial_req; | ||
| 109 | |||
| 110 | memset(&serial_req, 0, sizeof(serial_req)); | ||
| 111 | serial_req.mapbase = pdata->mapbase; | ||
| 112 | serial_req.membase = pdata->membase; | ||
| 113 | serial_req.irq = pdata->irq; | ||
| 114 | serial_req.uartclk = pdata->uartclk; | ||
| 115 | serial_req.regshift = pdata->regshift; | ||
| 116 | serial_req.iotype = pdata->iotype; | ||
| 117 | serial_req.flags = pdata->flags; | ||
| 118 | gen550_init(num, &serial_req); | ||
| 119 | #endif | ||
| 120 | } | ||
| 121 | |||
| 122 | void __init | ||
| 123 | ml403_early_serial_map(void) | ||
| 124 | { | ||
| 125 | #ifdef CONFIG_SERIAL_8250 | ||
| 126 | struct plat_serial8250_port *pdata; | ||
| 127 | int i = 0; | ||
| 128 | |||
| 129 | pdata = (struct plat_serial8250_port *) ppc_sys_get_pdata(VIRTEX_UART); | ||
| 130 | while(pdata && pdata->flags) | ||
| 131 | { | ||
| 132 | pdata->membase = ioremap(pdata->mapbase, 0x100); | ||
| 133 | ml403_early_serial_init(i, pdata); | ||
| 134 | pdata++; | ||
| 135 | i++; | ||
| 136 | } | ||
| 137 | #endif /* CONFIG_SERIAL_8250 */ | ||
| 138 | } | ||
| 139 | |||
| 140 | void __init | 85 | void __init |
| 141 | ml403_setup_arch(void) | 86 | ml403_setup_arch(void) |
| 142 | { | 87 | { |
| 143 | ml403_early_serial_map(); | 88 | virtex_early_serial_map(); |
| 144 | ppc4xx_setup_arch(); /* calls ppc4xx_find_bridges() */ | 89 | ppc4xx_setup_arch(); /* calls ppc4xx_find_bridges() */ |
| 145 | 90 | ||
| 146 | /* Identify the system */ | 91 | /* Identify the system */ |
| @@ -160,8 +105,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | |||
| 160 | { | 105 | { |
| 161 | ppc4xx_init(r3, r4, r5, r6, r7); | 106 | ppc4xx_init(r3, r4, r5, r6, r7); |
| 162 | 107 | ||
| 163 | identify_ppc_sys_by_id(mfspr(SPRN_PVR)); | ||
| 164 | |||
| 165 | ppc_md.setup_arch = ml403_setup_arch; | 108 | ppc_md.setup_arch = ml403_setup_arch; |
| 166 | ppc_md.setup_io_mappings = ml403_map_io; | 109 | ppc_md.setup_io_mappings = ml403_map_io; |
| 167 | ppc_md.init_IRQ = ml403_init_irq; | 110 | ppc_md.init_IRQ = ml403_init_irq; |
| @@ -171,7 +114,7 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | |||
| 171 | #endif | 114 | #endif |
| 172 | 115 | ||
| 173 | #ifdef CONFIG_KGDB | 116 | #ifdef CONFIG_KGDB |
| 174 | ppc_md.early_serial_map = ml403_early_serial_map; | 117 | ppc_md.early_serial_map = virtex_early_serial_map; |
| 175 | #endif | 118 | #endif |
| 176 | } | 119 | } |
| 177 | 120 | ||
diff --git a/arch/ppc/syslib/Makefile b/arch/ppc/syslib/Makefile index 09911118c675..95694159b226 100644 --- a/arch/ppc/syslib/Makefile +++ b/arch/ppc/syslib/Makefile | |||
| @@ -18,7 +18,8 @@ obj-$(CONFIG_440SP) += ibm440gx_common.o ibm440sp_common.o | |||
| 18 | obj-$(CONFIG_440SPE) += ibm440gx_common.o ibm440sp_common.o ppc440spe_pcie.o | 18 | obj-$(CONFIG_440SPE) += ibm440gx_common.o ibm440sp_common.o ppc440spe_pcie.o |
| 19 | ifeq ($(CONFIG_4xx),y) | 19 | ifeq ($(CONFIG_4xx),y) |
| 20 | ifeq ($(CONFIG_XILINX_VIRTEX),y) | 20 | ifeq ($(CONFIG_XILINX_VIRTEX),y) |
| 21 | obj-$(CONFIG_40x) += xilinx_pic.o ppc_sys.o | 21 | obj-$(CONFIG_40x) += xilinx_pic.o |
| 22 | obj-y += virtex_devices.o | ||
| 22 | else | 23 | else |
| 23 | ifeq ($(CONFIG_403),y) | 24 | ifeq ($(CONFIG_403),y) |
| 24 | obj-$(CONFIG_40x) += ppc403_pic.o | 25 | obj-$(CONFIG_40x) += ppc403_pic.o |
diff --git a/include/asm-ppc/ppc_sys.h b/include/asm-ppc/ppc_sys.h index 40f197af6508..de99e92d627b 100644 --- a/include/asm-ppc/ppc_sys.h +++ b/include/asm-ppc/ppc_sys.h | |||
| @@ -33,8 +33,6 @@ | |||
| 33 | #include <asm/mpc52xx.h> | 33 | #include <asm/mpc52xx.h> |
| 34 | #elif defined(CONFIG_MPC10X_BRIDGE) | 34 | #elif defined(CONFIG_MPC10X_BRIDGE) |
| 35 | #include <asm/mpc10x.h> | 35 | #include <asm/mpc10x.h> |
| 36 | #elif defined(CONFIG_XILINX_VIRTEX) | ||
| 37 | #include <platforms/4xx/virtex.h> | ||
| 38 | #else | 36 | #else |
| 39 | #error "need definition of ppc_sys_devices" | 37 | #error "need definition of ppc_sys_devices" |
| 40 | #endif | 38 | #endif |
