Commit 0328ad23 authored by Deepak Saxena's avatar Deepak Saxena Committed by Russell King

[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: default avatarDeepak Saxena <dsaxena@plexity.net>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 3fc3e1c0
...@@ -43,12 +43,17 @@ config ARCH_IXDP2401 ...@@ -43,12 +43,17 @@ config ARCH_IXDP2401
this platform, see <file:Documentation/arm/IXP2000>. this platform, see <file:Documentation/arm/IXP2000>.
config ARCH_IXDP2801 config ARCH_IXDP2801
bool "Support Intel IXDP2801" bool "Support Intel IXDP2801 and IXDP28x5"
help help
Say 'Y' here if you want your kernel to support the Intel Say 'Y' here if you want your kernel to support the Intel
IXDP2801 reference platform. For more information on IXDP2801/2805/2855 reference platforms. For more information on
this platform, see <file:Documentation/arm/IXP2000>. this platform, see <file:Documentation/arm/IXP2000>.
config MACH_IXDP28X5
bool
depends on ARCH_IXDP2801
default y
config ARCH_IXDP2X01 config ARCH_IXDP2X01
bool bool
depends on ARCH_IXDP2401 || ARCH_IXDP2801 depends on ARCH_IXDP2401 || ARCH_IXDP2801
......
...@@ -284,7 +284,7 @@ static int ixdp2x01_pci_setup(int nr, struct pci_sys_data *sys) ...@@ -284,7 +284,7 @@ static int ixdp2x01_pci_setup(int nr, struct pci_sys_data *sys)
{ {
sys->mem_offset = 0xe0000000; sys->mem_offset = 0xe0000000;
if (machine_is_ixdp2801()) if (machine_is_ixdp2801() || machine_is_ixdp28x5())
sys->mem_offset -= ((*IXP2000_PCI_ADDR_EXT & 0xE000) << 16); sys->mem_offset -= ((*IXP2000_PCI_ADDR_EXT & 0xE000) << 16);
return ixp2000_pci_setup(nr, sys); return ixp2000_pci_setup(nr, sys);
...@@ -300,7 +300,8 @@ struct hw_pci ixdp2x01_pci __initdata = { ...@@ -300,7 +300,8 @@ struct hw_pci ixdp2x01_pci __initdata = {
int __init ixdp2x01_pci_init(void) int __init ixdp2x01_pci_init(void)
{ {
if (machine_is_ixdp2401() || machine_is_ixdp2801()) if (machine_is_ixdp2401() || machine_is_ixdp2801() ||\
machine_is_ixdp28x5())
pci_common_init(&ixdp2x01_pci); pci_common_init(&ixdp2x01_pci);
return 0; return 0;
...@@ -400,6 +401,21 @@ MACHINE_START(IXDP2801, "Intel IXDP2801 Development Platform") ...@@ -400,6 +401,21 @@ MACHINE_START(IXDP2801, "Intel IXDP2801 Development Platform")
.timer = &ixdp2x01_timer, .timer = &ixdp2x01_timer,
.init_machine = ixdp2x01_init_machine, .init_machine = ixdp2x01_init_machine,
MACHINE_END MACHINE_END
/*
* IXDP28x5 is basically an IXDP2801 with a different CPU but Intel
* changed the machine ID in the bootloader
*/
MACHINE_START(IXDP28X5, "Intel IXDP2805/2855 Development Platform")
/* Maintainer: MontaVista Software, Inc. */
.phys_io = IXP2000_UART_PHYS_BASE,
.io_pg_offst = ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
.boot_params = 0x00000100,
.map_io = ixdp2x01_map_io,
.init_irq = ixdp2x01_init_irq,
.timer = &ixdp2x01_timer,
.init_machine = ixdp2x01_init_machine,
MACHINE_END
#endif #endif
...@@ -37,7 +37,7 @@ static inline void arch_reset(char mode) ...@@ -37,7 +37,7 @@ static inline void arch_reset(char mode)
* to cause a complete reset of the CPU and all external devices * to cause a complete reset of the CPU and all external devices
* and move the flash bank register back to 0. * and move the flash bank register back to 0.
*/ */
if (machine_is_ixdp2801()) { if (machine_is_ixdp2801() || machine_is_ixdp28x5()) {
unsigned long reset_reg = *IXDP2X01_CPLD_RESET_REG; unsigned long reset_reg = *IXDP2X01_CPLD_RESET_REG;
reset_reg = 0x55AA0000 | (reset_reg & 0x0000FFFF); reset_reg = 0x55AA0000 | (reset_reg & 0x0000FFFF);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment