Skip to content

Commit

Permalink
[ARM] 3334/1: Add support for IXDP28x5 platforms
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Deepak Saxena authored and Russell King committed Mar 21, 2006
1 parent 3fc3e1c commit 0328ad2
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 5 deletions.
9 changes: 7 additions & 2 deletions arch/arm/mach-ixp2000/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,17 @@ config ARCH_IXDP2401
this platform, see <file:Documentation/arm/IXP2000>.

config ARCH_IXDP2801
bool "Support Intel IXDP2801"
bool "Support Intel IXDP2801 and IXDP28x5"
help
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>.

config MACH_IXDP28X5
bool
depends on ARCH_IXDP2801
default y

config ARCH_IXDP2X01
bool
depends on ARCH_IXDP2401 || ARCH_IXDP2801
Expand Down
20 changes: 18 additions & 2 deletions arch/arm/mach-ixp2000/ixdp2x01.c
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@ static int ixdp2x01_pci_setup(int nr, struct pci_sys_data *sys)
{
sys->mem_offset = 0xe0000000;

if (machine_is_ixdp2801())
if (machine_is_ixdp2801() || machine_is_ixdp28x5())
sys->mem_offset -= ((*IXP2000_PCI_ADDR_EXT & 0xE000) << 16);

return ixp2000_pci_setup(nr, sys);
Expand All @@ -300,7 +300,8 @@ struct hw_pci ixdp2x01_pci __initdata = {

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);

return 0;
Expand Down Expand Up @@ -400,6 +401,21 @@ MACHINE_START(IXDP2801, "Intel IXDP2801 Development Platform")
.timer = &ixdp2x01_timer,
.init_machine = ixdp2x01_init_machine,
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


2 changes: 1 addition & 1 deletion include/asm-arm/arch-ixp2000/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ static inline void arch_reset(char mode)
* to cause a complete reset of the CPU and all external devices
* 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;

reset_reg = 0x55AA0000 | (reset_reg & 0x0000FFFF);
Expand Down

0 comments on commit 0328ad2

Please sign in to comment.