lkml.org 
[lkml]   [2022]   [Apr]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 12/12] ARM: ixp4xx: enable multiplatform support
    Date
    From: Arnd Bergmann <arnd@arndb.de>

    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.

    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    ---
    arch/arm/Kconfig | 16 ------
    arch/arm/mach-ixp4xx/Kconfig | 22 +++++---
    arch/arm/mach-ixp4xx/Makefile.boot | 4 --
    .../arm/mach-ixp4xx/include/mach/uncompress.h | 54 -------------------
    4 files changed, 15 insertions(+), 81 deletions(-)
    delete mode 100644 arch/arm/mach-ixp4xx/Makefile.boot
    delete mode 100644 arch/arm/mach-ixp4xx/include/mach/uncompress.h

    diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
    index 4d98de155e20..db9b9ed5d7c7 100644
    --- a/arch/arm/Kconfig
    +++ b/arch/arm/Kconfig
    @@ -357,22 +357,6 @@ config ARCH_FOOTBRIDGE
    Support for systems based on the DC21285 companion chip
    ("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
    bool "PXA2xx/PXA3xx-based"
    depends on CPU_LITTLE_ENDIAN
    diff --git a/arch/arm/mach-ixp4xx/Kconfig b/arch/arm/mach-ixp4xx/Kconfig
    index f41ba3f42fc8..dc6ea3c2e3ed 100644
    --- a/arch/arm/mach-ixp4xx/Kconfig
    +++ b/arch/arm/mach-ixp4xx/Kconfig
    @@ -1,9 +1,20 @@
    # SPDX-License-Identifier: GPL-2.0-only
    -if ARCH_IXP4XX
    -
    -menu "Intel IXP4xx Implementation Options"
    +menuconfig ARCH_IXP4XX
    + bool "IXP4xx-based platforms"
    + 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
    bool
    @@ -12,11 +23,8 @@ config MACH_IXP4XX_OF
    select ARM_APPENDED_DTB # Old Redboot bootloaders deployed
    select I2C
    select I2C_IOP3XX
    - select PCI
    select USE_OF
    help
    Say 'Y' here to support Device Tree-based IXP4xx platforms.

    -endmenu
    -
    endif
    diff --git a/arch/arm/mach-ixp4xx/Makefile.boot b/arch/arm/mach-ixp4xx/Makefile.boot
    deleted file mode 100644
    index 9b015bd1ef27..000000000000
    --- a/arch/arm/mach-ixp4xx/Makefile.boot
    +++ /dev/null
    @@ -1,4 +0,0 @@
    -# SPDX-License-Identifier: GPL-2.0-only
    - zreladdr-y += 0x00008000
    -params_phys-y := 0x00000100
    -
    diff --git a/arch/arm/mach-ixp4xx/include/mach/uncompress.h b/arch/arm/mach-ixp4xx/include/mach/uncompress.h
    deleted file mode 100644
    index 09e7663e6a55..000000000000
    --- a/arch/arm/mach-ixp4xx/include/mach/uncompress.h
    +++ /dev/null
    @@ -1,54 +0,0 @@
    -/* 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
    --
    2.29.2
    \
     
     \ /
      Last update: 2022-04-05 16:20    [W:2.314 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site