mbox series

[00/12] ARM: ARMv5 multiplatform conversions

Message ID 20220405091750.3076973-1-arnd@kernel.org
Headers show
Series ARM: ARMv5 multiplatform conversions | expand

Message

Arnd Bergmann April 5, 2022, 9:17 a.m. UTC
From: Arnd Bergmann <arnd@arndb.de>

I revisited some patches from a few years back, to see what
is needed forsome of the remaining platforms to become part of
CONFIG_ARCH_MULTIPLATFORM.

A few things happened since I last looked at this, which helps to make
this easier:

 - The ixp4xx platform saw a large scale cleanup

 - The ep93xx platform lost support for MaverickCrunch FPUs and
   gained support for the common clock subsystem

 - The OMAP1 platform has a proposed patch for the common
   clock subsystem.

 - The generic IRQ entry code is now used everywhere, including
   on IOP32x.

 - The s3c24xx platform is scheduled for removal next year

It appears that we can now convert almost all the remaining platforms
(ep93xx, dove, s3c24xx, iop32x and ixp4xx), leaving only:

 - OMAP1 has a separate series, since the conversion is non- trivial,
   and depends on the clk conversion from Janusz Krzysztofik. I'll
   post that separately.

 - PXA needs an even longer series, which I've also sent in the past,
   but I'll keep that for later.

 - The three StrongARM based platforms remain quite different from
   the rest, and I expect that to stay this way, until they are
   eventually removed from the tree.

For simplicity I'd want to merge the series directly through the
soc tree, provided there are no regressions or other concerns
with the patches.

       Arnd

Arnd Bergmann (12):
  ARM: versatile: move integrator/realview/vexpress to versatile
  ARM: ep93xx: renumber interrupts
  ARM: ep93xx: enable SPARSE_IRQ
  ARM: ep93xx: make mach/ep93xx-regs.h local
  ARM: ep93xx: multiplatform support
  ARM: dove: multiplatform support
  ARM: s3c24xx: remove support for ISA drivers on BAST PC/104
  ARM: s3c24xx: convert to sparse-irq
  ARM: s3c: enable s3c24xx multiplatform support
  ARM: iop32x: enable multiplatform support
  ARM: rework endianess selection
  ARM: ixp4xx: enable multiplatform support

 MAINTAINERS                                   |   3 -
 arch/arm/Kconfig                              |  87 +----
 arch/arm/Makefile                             |   7 +-
 .../compressed/misc-ep93xx.h}                 |  70 ++--
 arch/arm/boot/compressed/misc.c               |   4 +
 arch/arm/configs/dove_defconfig               |   2 +
 arch/arm/configs/ep93xx_defconfig             |   2 +
 arch/arm/mach-asm9260/Kconfig                 |   1 +
 arch/arm/mach-aspeed/Kconfig                  |   2 +-
 arch/arm/mach-at91/Kconfig                    |   3 +-
 arch/arm/mach-clps711x/Kconfig                |   1 +
 arch/arm/mach-davinci/Kconfig                 |   1 +
 arch/arm/mach-dove/Kconfig                    |  16 +-
 arch/arm/mach-dove/Makefile                   |   2 +
 arch/arm/mach-dove/include/mach/uncompress.h  |  34 --
 arch/arm/mach-ep93xx/Kconfig                  |  13 +
 arch/arm/mach-ep93xx/adssphere.c              |   1 +
 arch/arm/mach-ep93xx/core.c                   |   5 +-
 arch/arm/mach-ep93xx/edb93xx.c                |   8 +
 .../{include/mach => }/ep93xx-regs.h          |   4 -
 arch/arm/mach-ep93xx/gesbc9312.c              |   1 +
 arch/arm/mach-ep93xx/gpio-ep93xx.h            |   2 +-
 arch/arm/mach-ep93xx/include/mach/irqs.h      |  79 -----
 arch/arm/mach-ep93xx/irqs.h                   |  76 +++++
 arch/arm/mach-ep93xx/micro9.c                 |   4 +
 arch/arm/mach-ep93xx/simone.c                 |   1 +
 arch/arm/mach-ep93xx/snappercl15.c            |   1 +
 arch/arm/mach-ep93xx/soc.h                    |   3 +-
 arch/arm/mach-ep93xx/ts72xx.c                 |   3 +-
 arch/arm/mach-ep93xx/vision_ep9307.c          |   1 +
 arch/arm/mach-exynos/Kconfig                  |   1 -
 arch/arm/mach-gemini/Kconfig                  |   1 +
 arch/arm/mach-highbank/Kconfig                |   1 -
 arch/arm/mach-hisi/Kconfig                    |   2 +-
 arch/arm/mach-imx/Kconfig                     |   4 +-
 arch/arm/mach-integrator/Kconfig              | 125 -------
 arch/arm/mach-integrator/Makefile             |  10 -
 arch/arm/mach-iop32x/Kconfig                  |  18 +-
 arch/arm/mach-iop32x/em7210.c                 |   1 +
 arch/arm/mach-iop32x/glantank.c               |   1 +
 arch/arm/mach-iop32x/include/mach/irqs.h      |  14 -
 .../arm/mach-iop32x/include/mach/uncompress.h |  25 --
 arch/arm/mach-iop32x/iq31244.c                |   1 +
 arch/arm/mach-iop32x/iq80321.c                |   1 +
 arch/arm/mach-iop32x/irqs.h                   |   2 +
 arch/arm/mach-iop32x/n2100.c                  |   1 +
 arch/arm/mach-ixp4xx/Kconfig                  |  22 +-
 arch/arm/mach-ixp4xx/Makefile.boot            |   4 -
 .../arm/mach-ixp4xx/include/mach/uncompress.h |  54 ---
 arch/arm/mach-keystone/Kconfig                |   1 -
 arch/arm/mach-lpc32xx/Kconfig                 |   1 +
 arch/arm/mach-mmp/Kconfig                     |   2 +-
 arch/arm/mach-moxart/Kconfig                  |   1 +
 arch/arm/mach-mv78xx0/Kconfig                 |   1 +
 arch/arm/mach-mvebu/Kconfig                   |   3 +-
 arch/arm/mach-mxs/Kconfig                     |   1 +
 arch/arm/mach-nomadik/Kconfig                 |   1 +
 arch/arm/mach-npcm/Kconfig                    |   2 +-
 arch/arm/mach-nspire/Kconfig                  |   1 +
 arch/arm/mach-orion5x/Kconfig                 |   1 +
 arch/arm/mach-oxnas/Kconfig                   |   2 +-
 arch/arm/mach-qcom/Kconfig                    |   1 -
 arch/arm/mach-realview/Kconfig                | 103 ------
 arch/arm/mach-realview/Makefile               |   8 -
 arch/arm/mach-s3c/Kconfig.s3c24xx             |  25 +-
 arch/arm/mach-s3c/bast-ide.c                  |   2 +-
 arch/arm/mach-s3c/bast-irq.c                  |   2 +-
 arch/arm/mach-s3c/cpu.c                       |   2 +-
 arch/arm/mach-s3c/dev-audio-s3c64xx.c         |   2 +-
 arch/arm/mach-s3c/dev-uart-s3c64xx.c          |   2 +-
 arch/arm/mach-s3c/devs.c                      |   2 +-
 arch/arm/mach-s3c/gpio-samsung.c              |   2 +-
 arch/arm/mach-s3c/include/mach/io-s3c24xx.h   |  50 ---
 arch/arm/mach-s3c/include/mach/io.h           |   8 -
 arch/arm/mach-s3c/irq-pm-s3c24xx.c            |   2 +-
 arch/arm/mach-s3c/irq-s3c24xx.c               |   2 +-
 .../{include/mach => }/irqs-s3c24xx.h         |  18 +-
 .../{include/mach => }/irqs-s3c64xx.h         |   0
 arch/arm/mach-s3c/{include/mach => }/irqs.h   |   0
 arch/arm/mach-s3c/mach-amlm5900.c             |   2 +
 arch/arm/mach-s3c/mach-anubis.c               |   6 +-
 arch/arm/mach-s3c/mach-anw6410.c              |   2 +-
 arch/arm/mach-s3c/mach-at2440evb.c            |   1 +
 arch/arm/mach-s3c/mach-bast.c                 |   6 +-
 arch/arm/mach-s3c/mach-crag6410-module.c      |   2 +-
 arch/arm/mach-s3c/mach-crag6410.c             |   2 +-
 arch/arm/mach-s3c/mach-gta02.c                |   1 +
 arch/arm/mach-s3c/mach-h1940.c                |   1 +
 arch/arm/mach-s3c/mach-hmt.c                  |   2 +-
 arch/arm/mach-s3c/mach-jive.c                 |   2 +-
 arch/arm/mach-s3c/mach-mini2440.c             |   3 +-
 arch/arm/mach-s3c/mach-mini6410.c             |   2 +-
 arch/arm/mach-s3c/mach-n30.c                  |   2 +
 arch/arm/mach-s3c/mach-ncp.c                  |   2 +-
 arch/arm/mach-s3c/mach-nexcoder.c             |   1 +
 arch/arm/mach-s3c/mach-osiris.c               |   6 +-
 arch/arm/mach-s3c/mach-otom.c                 |   1 +
 arch/arm/mach-s3c/mach-qt2410.c               |   1 +
 arch/arm/mach-s3c/mach-real6410.c             |   2 +-
 arch/arm/mach-s3c/mach-rx1950.c               |   1 +
 arch/arm/mach-s3c/mach-rx3715.c               |   7 +-
 arch/arm/mach-s3c/mach-smartq5.c              |   2 +-
 arch/arm/mach-s3c/mach-smartq7.c              |   2 +-
 arch/arm/mach-s3c/mach-smdk2410.c             |   1 +
 arch/arm/mach-s3c/mach-smdk2413.c             |   3 +
 arch/arm/mach-s3c/mach-smdk2416.c             |  11 +-
 arch/arm/mach-s3c/mach-smdk2440.c             |  11 +-
 arch/arm/mach-s3c/mach-smdk2443.c             |  12 +-
 arch/arm/mach-s3c/mach-smdk6400.c             |   2 +-
 arch/arm/mach-s3c/mach-smdk6410.c             |   2 +-
 arch/arm/mach-s3c/mach-tct_hammer.c           |   1 +
 arch/arm/mach-s3c/mach-vr1000.c               |   6 +-
 arch/arm/mach-s3c/mach-vstms.c                |   1 +
 .../mach-s3c/{include/mach => }/map-base.h    |   6 +
 arch/arm/mach-s3c/map-s3c24xx.h               |   2 +-
 arch/arm/mach-s3c/map-s3c64xx.h               |   2 +-
 arch/arm/mach-s3c/pl080.c                     |   2 +-
 arch/arm/mach-s3c/pm-core-s3c24xx.h           |   2 +-
 arch/arm/mach-s3c/pm-s3c2412.c                |   2 +-
 arch/arm/mach-s3c/pm-s3c64xx.c                |   2 +-
 arch/arm/mach-s3c/pm.c                        |   2 +-
 arch/arm/mach-s3c/s3c2443.c                   |   2 +-
 arch/arm/mach-s3c/s3c24xx.h                   |   2 +-
 arch/arm/mach-s3c/s3c64xx.c                   |   2 +-
 arch/arm/mach-s3c/simtec-usb.c                |   2 +-
 arch/arm/mach-socfpga/Kconfig                 |   1 -
 arch/arm/mach-spear/Kconfig                   |   2 +-
 arch/arm/mach-sunxi/Kconfig                   |   3 +-
 arch/arm/mach-versatile/Kconfig               | 309 ++++++++++++++++++
 arch/arm/mach-versatile/Makefile              |  32 +-
 .../Makefile.boot                             |   0
 .../{mach-vexpress => mach-versatile}/dcscb.c |   4 +-
 .../dcscb_setup.S                             |   2 -
 .../headsmp.S                                 |   2 -
 .../hotplug.c                                 |   2 +-
 .../cm.h => mach-versatile/integrator-cm.h}   |   0
 .../integrator-hardware.h}                    |   0
 .../core.c => mach-versatile/integrator.c}    |   8 +-
 .../common.h => mach-versatile/integrator.h}  |   0
 .../integrator_ap.c                           |   8 +-
 .../integrator_cp.c                           |   8 +-
 .../platsmp-realview.c}                       |   2 +-
 .../platsmp-vexpress.c}                       |   7 +-
 .../platsmp.c                                 |   4 +-
 .../include/plat => mach-versatile}/platsmp.h |   2 -
 .../realview.c}                               |   0
 .../{mach-vexpress => mach-versatile}/spc.c   |   0
 .../{mach-vexpress => mach-versatile}/spc.h   |   0
 .../tc2_pm.c                                  |   2 -
 .../v2m-mps2.c                                |   0
 .../{mach-vexpress => mach-versatile}/v2m.c   |   2 +-
 .../{versatile_dt.c => versatile.c}           |   0
 .../core.h => mach-versatile/vexpress.h}      |   0
 arch/arm/mach-vexpress/Kconfig                |  81 -----
 arch/arm/mach-vexpress/Makefile               |  19 --
 arch/arm/mach-vt8500/Kconfig                  |   1 +
 arch/arm/mach-zynq/Kconfig                    |   1 -
 arch/arm/mm/Kconfig                           |  28 +-
 arch/arm/plat-versatile/Makefile              |   5 -
 159 files changed, 708 insertions(+), 937 deletions(-)
 rename arch/arm/{mach-ep93xx/include/mach/uncompress.h => boot/compressed/misc-ep93xx.h} (51%)
 delete mode 100644 arch/arm/mach-dove/include/mach/uncompress.h
 rename arch/arm/mach-ep93xx/{include/mach => }/ep93xx-regs.h (94%)
 delete mode 100644 arch/arm/mach-ep93xx/include/mach/irqs.h
 create mode 100644 arch/arm/mach-ep93xx/irqs.h
 delete mode 100644 arch/arm/mach-integrator/Kconfig
 delete mode 100644 arch/arm/mach-integrator/Makefile
 delete mode 100644 arch/arm/mach-iop32x/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-iop32x/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-ixp4xx/Makefile.boot
 delete mode 100644 arch/arm/mach-ixp4xx/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-realview/Kconfig
 delete mode 100644 arch/arm/mach-realview/Makefile
 delete mode 100644 arch/arm/mach-s3c/include/mach/io-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/include/mach/io.h
 rename arch/arm/mach-s3c/{include/mach => }/irqs-s3c24xx.h (95%)
 rename arch/arm/mach-s3c/{include/mach => }/irqs-s3c64xx.h (100%)
 rename arch/arm/mach-s3c/{include/mach => }/irqs.h (100%)
 rename arch/arm/mach-s3c/{include/mach => }/map-base.h (87%)
 rename arch/arm/{mach-vexpress => mach-versatile}/Makefile.boot (100%)
 rename arch/arm/{mach-vexpress => mach-versatile}/dcscb.c (97%)
 rename arch/arm/{mach-vexpress => mach-versatile}/dcscb_setup.S (95%)
 rename arch/arm/{plat-versatile => mach-versatile}/headsmp.S (94%)
 rename arch/arm/{plat-versatile => mach-versatile}/hotplug.c (98%)
 rename arch/arm/{mach-integrator/cm.h => mach-versatile/integrator-cm.h} (100%)
 rename arch/arm/{mach-integrator/hardware.h => mach-versatile/integrator-hardware.h} (100%)
 rename arch/arm/{mach-integrator/core.c => mach-versatile/integrator.c} (95%)
 rename arch/arm/{mach-integrator/common.h => mach-versatile/integrator.h} (100%)
 rename arch/arm/{mach-integrator => mach-versatile}/integrator_ap.c (97%)
 rename arch/arm/{mach-integrator => mach-versatile}/integrator_cp.c (96%)
 rename arch/arm/{mach-realview/platsmp-dt.c => mach-versatile/platsmp-realview.c} (98%)
 rename arch/arm/{mach-vexpress/platsmp.c => mach-versatile/platsmp-vexpress.c} (96%)
 rename arch/arm/{plat-versatile => mach-versatile}/platsmp.c (97%)
 rename arch/arm/{plat-versatile/include/plat => mach-versatile}/platsmp.h (87%)
 rename arch/arm/{mach-realview/realview-dt.c => mach-versatile/realview.c} (100%)
 rename arch/arm/{mach-vexpress => mach-versatile}/spc.c (100%)
 rename arch/arm/{mach-vexpress => mach-versatile}/spc.h (100%)
 rename arch/arm/{mach-vexpress => mach-versatile}/tc2_pm.c (99%)
 rename arch/arm/{mach-vexpress => mach-versatile}/v2m-mps2.c (100%)
 rename arch/arm/{mach-vexpress => mach-versatile}/v2m.c (97%)
 rename arch/arm/mach-versatile/{versatile_dt.c => versatile.c} (100%)
 rename arch/arm/{mach-vexpress/core.h => mach-versatile/vexpress.h} (100%)
 delete mode 100644 arch/arm/mach-vexpress/Kconfig
 delete mode 100644 arch/arm/mach-vexpress/Makefile
 delete mode 100644 arch/arm/plat-versatile/Makefile

Comments

Lukasz Majewski April 5, 2022, 9:42 a.m. UTC | #1
On Tue,  5 Apr 2022 11:17:41 +0200
Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
> 
> Without CONFIG_SPARSE_IRQ, we rely on mach/irqs.h to define NR_IRQS
> globally. Do the minimal conversion by setting .nr_irqs in each
> machine descriptor.
> 
> Only the vision_ep9307 machine has extra IRQs for GPIOs, so make
> .nr_irqs the original value there, while using the plain
> NR_EP93XX_IRQS everywhere else.
> 
> Cc: Hartley Sweeten <hsweeten@visionengravers.com>
> Cc: Hubert Feurstein <hubert.feurstein@contec.at>
> Cc: Lukasz Majewski <lukma@denx.de>
> Tested-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  arch/arm/Kconfig                               | 2 ++
>  arch/arm/mach-ep93xx/adssphere.c               | 1 +
>  arch/arm/mach-ep93xx/core.c                    | 1 +
>  arch/arm/mach-ep93xx/edb93xx.c                 | 8 ++++++++
>  arch/arm/mach-ep93xx/gesbc9312.c               | 1 +
>  arch/arm/mach-ep93xx/{include/mach => }/irqs.h | 7 -------
>  arch/arm/mach-ep93xx/micro9.c                  | 4 ++++
>  arch/arm/mach-ep93xx/simone.c                  | 1 +
>  arch/arm/mach-ep93xx/snappercl15.c             | 1 +
>  arch/arm/mach-ep93xx/soc.h                     | 1 +
>  arch/arm/mach-ep93xx/ts72xx.c                  | 3 ++-
>  arch/arm/mach-ep93xx/vision_ep9307.c           | 1 +
>  12 files changed, 23 insertions(+), 8 deletions(-)
>  rename arch/arm/mach-ep93xx/{include/mach => }/irqs.h (96%)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 31f024e6e925..5177e54cc14c 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -358,6 +358,8 @@ config ARCH_EP93XX
>  	select CPU_ARM920T
>  	select GPIOLIB
>  	select COMMON_CLK
> +	select IRQ_DOMAIN
> +	select SPARSE_IRQ
>  	help
>  	  This enables support for the Cirrus EP93xx series of CPUs.
>  
> diff --git a/arch/arm/mach-ep93xx/adssphere.c
> b/arch/arm/mach-ep93xx/adssphere.c index 8d5e349a7a6d..0c48d3c5b8e7
> 100644 --- a/arch/arm/mach-ep93xx/adssphere.c
> +++ b/arch/arm/mach-ep93xx/adssphere.c
> @@ -32,6 +32,7 @@ static void __init adssphere_init_machine(void)
>  MACHINE_START(ADSSPHERE, "ADS Sphere board")
>  	/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
>  	.atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
> index e4569a5acc3f..2d58e273c96d 100644
> --- a/arch/arm/mach-ep93xx/core.c
> +++ b/arch/arm/mach-ep93xx/core.c
> @@ -47,6 +47,7 @@
>  #include <asm/mach/map.h>
>  
>  #include "soc.h"
> +#include "irqs.h"
>  
>  /*************************************************************************
>   * Static I/O mappings that are needed for all EP93xx platforms
> diff --git a/arch/arm/mach-ep93xx/edb93xx.c
> b/arch/arm/mach-ep93xx/edb93xx.c index af0e22471ebd..4b90899a66e9
> 100644 --- a/arch/arm/mach-ep93xx/edb93xx.c
> +++ b/arch/arm/mach-ep93xx/edb93xx.c
> @@ -243,6 +243,7 @@ static void __init edb93xx_init_machine(void)
>  MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board")
>  	/* Maintainer: H Hartley Sweeten
> <hsweeten@visionengravers.com> */ .atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> @@ -255,6 +256,7 @@ MACHINE_END
>  MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board")
>  	/* Maintainer: George Kashperko <george@chas.com.ua> */
>  	.atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> @@ -267,6 +269,7 @@ MACHINE_END
>  MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board")
>  	/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
>  	.atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> @@ -279,6 +282,7 @@ MACHINE_END
>  MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board")
>  	/* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */
>  	.atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> @@ -291,6 +295,7 @@ MACHINE_END
>  MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board")
>  	/* Maintainer: H Hartley Sweeten
> <hsweeten@visionengravers.com> */ .atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> @@ -303,6 +308,7 @@ MACHINE_END
>  MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board")
>  	/* Maintainer: Toufeeq Hussain <toufeeq_hussain@infosys.com>
> */ .atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> @@ -315,6 +321,7 @@ MACHINE_END
>  MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board")
>  	/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
>  	.atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> @@ -327,6 +334,7 @@ MACHINE_END
>  MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board")
>  	/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
>  	.atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> diff --git a/arch/arm/mach-ep93xx/gesbc9312.c
> b/arch/arm/mach-ep93xx/gesbc9312.c index d7f9890321eb..0b7043e3e178
> 100644 --- a/arch/arm/mach-ep93xx/gesbc9312.c
> +++ b/arch/arm/mach-ep93xx/gesbc9312.c
> @@ -32,6 +32,7 @@ static void __init gesbc9312_init_machine(void)
>  MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx")
>  	/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
>  	.atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> diff --git a/arch/arm/mach-ep93xx/include/mach/irqs.h
> b/arch/arm/mach-ep93xx/irqs.h similarity index 96%
> rename from arch/arm/mach-ep93xx/include/mach/irqs.h
> rename to arch/arm/mach-ep93xx/irqs.h
> index 60c69c4ed7e1..353201b90c66 100644
> --- a/arch/arm/mach-ep93xx/include/mach/irqs.h
> +++ b/arch/arm/mach-ep93xx/irqs.h
> @@ -1,8 +1,4 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -/*
> - * arch/arm/mach-ep93xx/include/mach/irqs.h
> - */
> -
>  #ifndef __ASM_ARCH_IRQS_H
>  #define __ASM_ARCH_IRQS_H
>  
> @@ -77,7 +73,4 @@
>  #define EP93XX_BOARD_IRQ(x)		(NR_EP93XX_IRQS + (x))
>  #define EP93XX_BOARD_IRQS		32
>  
> -#define NR_IRQS				(NR_EP93XX_IRQS +
> EP93XX_BOARD_IRQS) -
> -
>  #endif
> diff --git a/arch/arm/mach-ep93xx/micro9.c
> b/arch/arm/mach-ep93xx/micro9.c index e6ead8ded6ee..c121c459aa17
> 100644 --- a/arch/arm/mach-ep93xx/micro9.c
> +++ b/arch/arm/mach-ep93xx/micro9.c
> @@ -76,6 +76,7 @@ static void __init micro9_init_machine(void)
>  MACHINE_START(MICRO9, "Contec Micro9-High")
>  	/* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at>
> */ .atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> @@ -88,6 +89,7 @@ MACHINE_END
>  MACHINE_START(MICRO9M, "Contec Micro9-Mid")
>  	/* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at>
> */ .atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> @@ -100,6 +102,7 @@ MACHINE_END
>  MACHINE_START(MICRO9L, "Contec Micro9-Lite")
>  	/* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at>
> */ .atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> @@ -112,6 +115,7 @@ MACHINE_END
>  MACHINE_START(MICRO9S, "Contec Micro9-Slim")
>  	/* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at>
> */ .atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> diff --git a/arch/arm/mach-ep93xx/simone.c
> b/arch/arm/mach-ep93xx/simone.c index 5291053023b2..569e72413561
> 100644 --- a/arch/arm/mach-ep93xx/simone.c
> +++ b/arch/arm/mach-ep93xx/simone.c
> @@ -119,6 +119,7 @@ static void __init simone_init_machine(void)
>  MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board")
>  	/* Maintainer: Ryan Mallon */
>  	.atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> diff --git a/arch/arm/mach-ep93xx/snappercl15.c
> b/arch/arm/mach-ep93xx/snappercl15.c index e200d69471e9..1dfb725671b1
> 100644 --- a/arch/arm/mach-ep93xx/snappercl15.c
> +++ b/arch/arm/mach-ep93xx/snappercl15.c
> @@ -153,6 +153,7 @@ static void __init snappercl15_init_machine(void)
>  MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15")
>  	/* Maintainer: Ryan Mallon */
>  	.atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ep93xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> diff --git a/arch/arm/mach-ep93xx/soc.h b/arch/arm/mach-ep93xx/soc.h
> index 94ef7f275f94..f0986e288d19 100644
> --- a/arch/arm/mach-ep93xx/soc.h
> +++ b/arch/arm/mach-ep93xx/soc.h
> @@ -10,6 +10,7 @@
>  #define _EP93XX_SOC_H
>  
>  #include <mach/ep93xx-regs.h>
> +#include "irqs.h"
>  
>  /*
>   * EP93xx Physical Memory Map:
> diff --git a/arch/arm/mach-ep93xx/ts72xx.c
> b/arch/arm/mach-ep93xx/ts72xx.c index 12eff8c8074d..e70bac011407
> 100644 --- a/arch/arm/mach-ep93xx/ts72xx.c
> +++ b/arch/arm/mach-ep93xx/ts72xx.c
> @@ -22,7 +22,6 @@
>  
>  #include "gpio-ep93xx.h"
>  #include "hardware.h"
> -#include <mach/irqs.h>
>  
>  #include <asm/mach-types.h>
>  #include <asm/mach/map.h>
> @@ -350,6 +349,7 @@ static void __init ts72xx_init_machine(void)
>  MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC")
>  	/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
>  	.atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ts72xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> @@ -413,6 +413,7 @@ static void __init bk3_init_machine(void)
>  MACHINE_START(BK3, "Liebherr controller BK3.1")
>  	/* Maintainer: Lukasz Majewski <lukma@denx.de> */
>  	.atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS,
>  	.map_io		= ts72xx_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,
> diff --git a/arch/arm/mach-ep93xx/vision_ep9307.c
> b/arch/arm/mach-ep93xx/vision_ep9307.c index
> e46281e60bf7..30d9cf3791eb 100644 ---
> a/arch/arm/mach-ep93xx/vision_ep9307.c +++
> b/arch/arm/mach-ep93xx/vision_ep9307.c @@ -302,6 +302,7 @@ static
> void __init vision_init_machine(void) MACHINE_START(VISION_EP9307,
> "Vision Engraving Systems EP9307") /* Maintainer: H Hartley Sweeten
> <hsweeten@visionengravers.com> */ .atag_offset	= 0x100,
> +	.nr_irqs	= NR_EP93XX_IRQS + EP93XX_BOARD_IRQS,
>  	.map_io		= vision_map_io,
>  	.init_irq	= ep93xx_init_irq,
>  	.init_time	= ep93xx_timer_init,

Reviewed-by: Lukasz Majewski <lukma@denx.de>


Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
Linus Walleij April 5, 2022, 4:30 p.m. UTC | #2
On Tue, Apr 5, 2022 at 11:18 AM Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
>
> These are all fairly small platforms by now, and they are
> closely related. Just move them all into a single directory.
>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> Tested-by: Sudeep Holla <sudeep.holla@arm.com>
> Acked-by: Sudeep Holla <sudeep.holla@arm.com>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Linus Walleij <linus.walleij@linaro.org>

I can't test much right now, but I sure trust you with this!

Yours,
Linus Walleij
Arnd Bergmann April 5, 2022, 6:33 p.m. UTC | #3
On Tue, Apr 5, 2022 at 4:15 PM Sudeep Holla <sudeep.holla@arm.com> wrote:
>
> On Tue, Apr 05, 2022 at 11:17:39AM +0200, Arnd Bergmann wrote:
> > From: Arnd Bergmann <arnd@arndb.de>
> >
> > These are all fairly small platforms by now, and they are
> > closely related. Just move them all into a single directory.
> >
>
> I had forgotten about this. When do you plan to merge this ? I guess for
> v5.19. The reason I ask is that one of the branch triggered loads of
> kernel-doc warning[1] and I was bit confused with the file path. I did post
> the fix[2] for kernel-doc and was planning to send it as fix for v5.18, but
> let me know what do you prefer as it conflicts with this patch.

I originally wanted to merge this back in 2019, hoping we can do it
all for 5.19 now. The problem with the warnings is that moving a file
makes lkp think it's a regression when it otherwise ignores existing
warnings that seem harmless.

I can probably apply the warning fixes on top here, and I think it would
also work to have them in a separate branch, since git usually figures
out the merges across renames.

       Arnd
Krzysztof Kozlowski April 7, 2022, 7:07 a.m. UTC | #4
On 05/04/2022 11:17, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> I revisited some patches from a few years back, to see what
> is needed forsome of the remaining platforms to become part of
> CONFIG_ARCH_MULTIPLATFORM.
> 
> A few things happened since I last looked at this, which helps to make
> this easier:
> 
>  - The ixp4xx platform saw a large scale cleanup
> 
>  - The ep93xx platform lost support for MaverickCrunch FPUs and
>    gained support for the common clock subsystem
> 
>  - The OMAP1 platform has a proposed patch for the common
>    clock subsystem.
> 
>  - The generic IRQ entry code is now used everywhere, including
>    on IOP32x.
> 
>  - The s3c24xx platform is scheduled for removal next year

Discussion [1] actually did not end with conclusion, but through all the
time there were no other votes for the platform to stay.

I will resend my above [1] patch to mention the coming removal.

[1]
https://lore.kernel.org/linux-samsung-soc/CAK8P3a2Pg8CkXgN8YNhp2U5Kgwf08kQGpLeTsyWKgNpGChC4uQ@mail.gmail.com/


Best regards,
Krzysztof
Arnd Bergmann April 7, 2022, 7:31 a.m. UTC | #5
On Thu, Apr 7, 2022 at 9:07 AM Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 05/04/2022 11:17, Arnd Bergmann wrote:
> > From: Arnd Bergmann <arnd@arndb.de>
> >
> > I revisited some patches from a few years back, to see what
> > is needed forsome of the remaining platforms to become part of
> > CONFIG_ARCH_MULTIPLATFORM.
> >
> > A few things happened since I last looked at this, which helps to make
> > this easier:
> >
> >  - The ixp4xx platform saw a large scale cleanup
> >
> >  - The ep93xx platform lost support for MaverickCrunch FPUs and
> >    gained support for the common clock subsystem
> >
> >  - The OMAP1 platform has a proposed patch for the common
> >    clock subsystem.
> >
> >  - The generic IRQ entry code is now used everywhere, including
> >    on IOP32x.
> >
> >  - The s3c24xx platform is scheduled for removal next year
>
> Discussion [1] actually did not end with conclusion, but through all the
> time there were no other votes for the platform to stay.

Ok, thanks for the clarification, I misremembered the outcome
of the discussion. I've updated the reference in the mach/io.h
to no longer refer to that, but I still think it's safe to break
readw/writew on BAST ISA devices.

If we finish the multiplatform conversion for all ARMv5, I care
less about dropping s3c24xx entirely as an intermediate step,
but I definitely still like to see any board files and SoCs dropped
that have no users and are just a maintenance burden.

> I will resend my above [1] patch to mention the coming removal.

Ok, thanks!

          Arnd
Alexander Sverdlin April 7, 2022, 9:23 a.m. UTC | #6
Hello Arnd,

On Tue, 2022-04-05 at 11:17 +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> I revisited some patches from a few years back, to see what
> is needed forsome of the remaining platforms to become part of
> CONFIG_ARCH_MULTIPLATFORM.
> 
> A few things happened since I last looked at this, which helps to make
> this easier:
> 
>  - The ixp4xx platform saw a large scale cleanup
> 
>  - The ep93xx platform lost support for MaverickCrunch FPUs and
>    gained support for the common clock subsystem

would you like to consider a couple of fixups from the common clock
rework of ep93xx?

https://lore.kernel.org/linux-arm-kernel/20220120133739.4170298-2-alexander.sverdlin@gmail.com/
https://lore.kernel.org/lkml/20220130152502.236531-1-alexander.sverdlin@gmail.com/t/

Thanks!
Arnd Bergmann April 7, 2022, 10:08 a.m. UTC | #7
On Thu, Apr 7, 2022 at 11:23 AM Alexander Sverdlin
<alexander.sverdlin@gmail.com> wrote:
>
> Hello Arnd,
>
> On Tue, 2022-04-05 at 11:17 +0200, Arnd Bergmann wrote:
> > From: Arnd Bergmann <arnd@arndb.de>
> >
> > I revisited some patches from a few years back, to see what
> > is needed forsome of the remaining platforms to become part of
> > CONFIG_ARCH_MULTIPLATFORM.
> >
> > A few things happened since I last looked at this, which helps to make
> > this easier:
> >
> >  - The ixp4xx platform saw a large scale cleanup
> >
> >  - The ep93xx platform lost support for MaverickCrunch FPUs and
> >    gained support for the common clock subsystem
>
> would you like to consider a couple of fixups from the common clock
> rework of ep93xx?
>
> https://lore.kernel.org/linux-arm-kernel/20220120133739.4170298-2-alexander.sverdlin@gmail.com/
> https://lore.kernel.org/lkml/20220130152502.236531-1-alexander.sverdlin@gmail.com/t/

Sure, both look like obvious bugfixes. Shall I apply them to the
fixes branch for 5.18, or as part of the multiplatform series?

Either way, if you have any obvious bugfixes for code you maintain,
and you'd like
to get merged through the soc tree, please send them to soc@kernel.org, which
puts them into the patchwork tracker.

       Arnd
Alexander Sverdlin April 7, 2022, 10:37 a.m. UTC | #8
Thanks Arnd!

On Thu, 2022-04-07 at 12:08 +0200, Arnd Bergmann wrote:
> Sure, both look like obvious bugfixes. Shall I apply them to the
> fixes branch for 5.18, or as part of the multiplatform series?

I'm fine with either option if they land not in the recycled bin ;)

> Either way, if you have any obvious bugfixes for code you maintain,
> and you'd like
> to get merged through the soc tree, please send them to soc@kernel.org, which
> puts them into the patchwork tracker.

Sounds great, thanks, I'll note this!
Linus Walleij April 7, 2022, 8:42 p.m. UTC | #9
On Tue, Apr 5, 2022 at 11:18 AM Arnd Bergmann <arnd@kernel.org> wrote:

These two:

> Arnd Bergmann (12):
>   ARM: rework endianess selection
>   ARM: ixp4xx: enable multiplatform support

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Tested-by: Linus Walleij <linus.walleij@linaro.org>

I booted on the Gateway GW-2348 which has some ethernet,
PCI and compact flash, LED and a button, so I could test a
whole lot of stuff.

However when switching over to multiplatform I needed to severely
overhaul the ixp4xx_defconfig for it to bring the same drivers in as
before, I will send my patch for that which I think need to go in in
tandem with this rework for a smooth transition.

Yours,
Linus Walleij