Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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
+18 −2
Original line number Diff line number Diff line
@@ -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);
@@ -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;
@@ -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

+1 −1
Original line number Diff line number Diff line
@@ -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);