diff options
author | Deepak Saxena <dsaxena@plexity.net> | 2006-03-20 12:10:08 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-03-21 17:06:06 -0500 |
commit | 0328ad23cfd8a0501f44a1b83e49d5b0e47e2b3c (patch) | |
tree | 6cf4b72c6a243a1848c26bd548370ed794bfe065 | |
parent | 3fc3e1c0640887f883c28330e9d35145d23b2696 (diff) |
[ARM] 3334/1: Add support for IXDP28x5 platforms
Patch from Deepak Saxena
This patch adds support for Intel's IXDP28x5 platform. This
is just and IXDP2801 with a new CPU rev but the bootloader
has been updated to reflect a new machine ID so we just build
support for it by default when we build IXDP2801.
Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | arch/arm/mach-ixp2000/Kconfig | 9 | ||||
-rw-r--r-- | arch/arm/mach-ixp2000/ixdp2x01.c | 20 | ||||
-rw-r--r-- | include/asm-arm/arch-ixp2000/system.h | 2 |
3 files changed, 26 insertions, 5 deletions
diff --git a/arch/arm/mach-ixp2000/Kconfig b/arch/arm/mach-ixp2000/Kconfig index ecb58d83478e..86f53f8ccbf5 100644 --- a/arch/arm/mach-ixp2000/Kconfig +++ b/arch/arm/mach-ixp2000/Kconfig | |||
@@ -43,12 +43,17 @@ config ARCH_IXDP2401 | |||
43 | this platform, see <file:Documentation/arm/IXP2000>. | 43 | this platform, see <file:Documentation/arm/IXP2000>. |
44 | 44 | ||
45 | config ARCH_IXDP2801 | 45 | config ARCH_IXDP2801 |
46 | bool "Support Intel IXDP2801" | 46 | bool "Support Intel IXDP2801 and IXDP28x5" |
47 | help | 47 | help |
48 | Say 'Y' here if you want your kernel to support the Intel | 48 | Say 'Y' here if you want your kernel to support the Intel |
49 | IXDP2801 reference platform. For more information on | 49 | IXDP2801/2805/2855 reference platforms. For more information on |
50 | this platform, see <file:Documentation/arm/IXP2000>. | 50 | this platform, see <file:Documentation/arm/IXP2000>. |
51 | 51 | ||
52 | config MACH_IXDP28X5 | ||
53 | bool | ||
54 | depends on ARCH_IXDP2801 | ||
55 | default y | ||
56 | |||
52 | config ARCH_IXDP2X01 | 57 | config ARCH_IXDP2X01 |
53 | bool | 58 | bool |
54 | depends on ARCH_IXDP2401 || ARCH_IXDP2801 | 59 | depends on ARCH_IXDP2401 || ARCH_IXDP2801 |
diff --git a/arch/arm/mach-ixp2000/ixdp2x01.c b/arch/arm/mach-ixp2000/ixdp2x01.c index 150519fb38ec..f9d4968c1d66 100644 --- a/arch/arm/mach-ixp2000/ixdp2x01.c +++ b/arch/arm/mach-ixp2000/ixdp2x01.c | |||
@@ -284,7 +284,7 @@ static int ixdp2x01_pci_setup(int nr, struct pci_sys_data *sys) | |||
284 | { | 284 | { |
285 | sys->mem_offset = 0xe0000000; | 285 | sys->mem_offset = 0xe0000000; |
286 | 286 | ||
287 | if (machine_is_ixdp2801()) | 287 | if (machine_is_ixdp2801() || machine_is_ixdp28x5()) |
288 | sys->mem_offset -= ((*IXP2000_PCI_ADDR_EXT & 0xE000) << 16); | 288 | sys->mem_offset -= ((*IXP2000_PCI_ADDR_EXT & 0xE000) << 16); |
289 | 289 | ||
290 | return ixp2000_pci_setup(nr, sys); | 290 | return ixp2000_pci_setup(nr, sys); |
@@ -300,7 +300,8 @@ struct hw_pci ixdp2x01_pci __initdata = { | |||
300 | 300 | ||
301 | int __init ixdp2x01_pci_init(void) | 301 | int __init ixdp2x01_pci_init(void) |
302 | { | 302 | { |
303 | if (machine_is_ixdp2401() || machine_is_ixdp2801()) | 303 | if (machine_is_ixdp2401() || machine_is_ixdp2801() ||\ |
304 | machine_is_ixdp28x5()) | ||
304 | pci_common_init(&ixdp2x01_pci); | 305 | pci_common_init(&ixdp2x01_pci); |
305 | 306 | ||
306 | return 0; | 307 | return 0; |
@@ -400,6 +401,21 @@ MACHINE_START(IXDP2801, "Intel IXDP2801 Development Platform") | |||
400 | .timer = &ixdp2x01_timer, | 401 | .timer = &ixdp2x01_timer, |
401 | .init_machine = ixdp2x01_init_machine, | 402 | .init_machine = ixdp2x01_init_machine, |
402 | MACHINE_END | 403 | MACHINE_END |
404 | |||
405 | /* | ||
406 | * IXDP28x5 is basically an IXDP2801 with a different CPU but Intel | ||
407 | * changed the machine ID in the bootloader | ||
408 | */ | ||
409 | MACHINE_START(IXDP28X5, "Intel IXDP2805/2855 Development Platform") | ||
410 | /* Maintainer: MontaVista Software, Inc. */ | ||
411 | .phys_io = IXP2000_UART_PHYS_BASE, | ||
412 | .io_pg_offst = ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc, | ||
413 | .boot_params = 0x00000100, | ||
414 | .map_io = ixdp2x01_map_io, | ||
415 | .init_irq = ixdp2x01_init_irq, | ||
416 | .timer = &ixdp2x01_timer, | ||
417 | .init_machine = ixdp2x01_init_machine, | ||
418 | MACHINE_END | ||
403 | #endif | 419 | #endif |
404 | 420 | ||
405 | 421 | ||
diff --git a/include/asm-arm/arch-ixp2000/system.h b/include/asm-arm/arch-ixp2000/system.h index ddbbb34b5f95..3cc9a04f68cb 100644 --- a/include/asm-arm/arch-ixp2000/system.h +++ b/include/asm-arm/arch-ixp2000/system.h | |||
@@ -37,7 +37,7 @@ static inline void arch_reset(char mode) | |||
37 | * to cause a complete reset of the CPU and all external devices | 37 | * to cause a complete reset of the CPU and all external devices |
38 | * and move the flash bank register back to 0. | 38 | * and move the flash bank register back to 0. |
39 | */ | 39 | */ |
40 | if (machine_is_ixdp2801()) { | 40 | if (machine_is_ixdp2801() || machine_is_ixdp28x5()) { |
41 | unsigned long reset_reg = *IXDP2X01_CPLD_RESET_REG; | 41 | unsigned long reset_reg = *IXDP2X01_CPLD_RESET_REG; |
42 | 42 | ||
43 | reset_reg = 0x55AA0000 | (reset_reg & 0x0000FFFF); | 43 | reset_reg = 0x55AA0000 | (reset_reg & 0x0000FFFF); |