Commit 3d427228 authored by Arnd Bergmann's avatar Arnd Bergmann

ARM: ixp4xx: enable multiplatform support

After all the work that Linus Walleij did on this platform, it can be
part of a generic kernel build as well.

Note that there are known bugs in little-endian mode on ixp4xx, and
no other ARMv5 platform at this point supports big-endian mode, or is
likely to in the future, so there is limited practical value in this,
but it helps with build testing and ixp4xx little-endian support may
get fixed in the future.
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Tested-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent 5d6f5267
...@@ -357,22 +357,6 @@ config ARCH_FOOTBRIDGE ...@@ -357,22 +357,6 @@ config ARCH_FOOTBRIDGE
Support for systems based on the DC21285 companion chip Support for systems based on the DC21285 companion chip
("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
config ARCH_IXP4XX
bool "IXP4xx-based"
depends on CPU_BIG_ENDIAN
select ARM_PATCH_PHYS_VIRT
select CPU_XSCALE
select GPIO_IXP4XX
select GPIOLIB
select HAVE_PCI
select IXP4XX_IRQ
select IXP4XX_TIMER
select SPARSE_IRQ
select USB_EHCI_BIG_ENDIAN_DESC
select USB_EHCI_BIG_ENDIAN_MMIO
help
Support for Intel's IXP4XX (XScale) family of processors.
config ARCH_PXA config ARCH_PXA
bool "PXA2xx/PXA3xx-based" bool "PXA2xx/PXA3xx-based"
depends on CPU_LITTLE_ENDIAN depends on CPU_LITTLE_ENDIAN
......
...@@ -6,6 +6,7 @@ CONFIG_EXPERT=y ...@@ -6,6 +6,7 @@ CONFIG_EXPERT=y
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_IXP4XX=y CONFIG_ARCH_IXP4XX=y
CONFIG_MACH_NSLU2=y CONFIG_MACH_NSLU2=y
CONFIG_MACH_AVILA=y CONFIG_MACH_AVILA=y
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
if ARCH_IXP4XX menuconfig ARCH_IXP4XX
bool "IXP4xx-based platforms"
menu "Intel IXP4xx Implementation Options" depends on ARCH_MULTI_V5
depends on CPU_BIG_ENDIAN
select CPU_XSCALE
select GPIO_IXP4XX
select GPIOLIB
select FORCE_PCI
select IXP4XX_IRQ
select IXP4XX_TIMER
select USB_EHCI_BIG_ENDIAN_DESC
select USB_EHCI_BIG_ENDIAN_MMIO
help
Support for Intel's IXP4XX (XScale) family of processors.
comment "IXP4xx Platforms" if ARCH_IXP4XX
config MACH_IXP4XX_OF config MACH_IXP4XX_OF
bool bool
...@@ -12,11 +23,8 @@ config MACH_IXP4XX_OF ...@@ -12,11 +23,8 @@ config MACH_IXP4XX_OF
select ARM_APPENDED_DTB # Old Redboot bootloaders deployed select ARM_APPENDED_DTB # Old Redboot bootloaders deployed
select I2C select I2C
select I2C_IOP3XX select I2C_IOP3XX
select PCI
select USE_OF select USE_OF
help help
Say 'Y' here to support Device Tree-based IXP4xx platforms. Say 'Y' here to support Device Tree-based IXP4xx platforms.
endmenu
endif endif
# SPDX-License-Identifier: GPL-2.0-only
zreladdr-y += 0x00008000
params_phys-y := 0x00000100
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* arch/arm/mach-ixp4xx/include/mach/uncompress.h
*
* Copyright (C) 2002 Intel Corporation.
* Copyright (C) 2003-2004 MontaVista Software, Inc.
*/
#ifndef _ARCH_UNCOMPRESS_H_
#define _ARCH_UNCOMPRESS_H_
#include <asm/mach-types.h>
#include <linux/serial_reg.h>
#define IXP4XX_UART1_BASE_PHYS 0xc8000000
#define IXP4XX_UART2_BASE_PHYS 0xc8001000
#define TX_DONE (UART_LSR_TEMT|UART_LSR_THRE)
volatile u32* uart_base;
static inline void putc(int c)
{
/* Check THRE and TEMT bits before we transmit the character.
*/
while ((uart_base[UART_LSR] & TX_DONE) != TX_DONE)
barrier();
*uart_base = c;
}
static void flush(void)
{
}
static __inline__ void __arch_decomp_setup(unsigned long arch_id)
{
/*
* Some boards are using UART2 as console
*/
if (machine_is_adi_coyote() || machine_is_gtwx5715() ||
machine_is_gateway7001() || machine_is_wg302v2() ||
machine_is_devixp() || machine_is_miccpt() || machine_is_mic256())
uart_base = (volatile u32*) IXP4XX_UART2_BASE_PHYS;
else
uart_base = (volatile u32*) IXP4XX_UART1_BASE_PHYS;
}
/*
* arch_id is a variable in decompress_kernel()
*/
#define arch_decomp_setup() __arch_decomp_setup(arch_id)
#endif
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