2022-03-09 16:16:27

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH 2/2] ARM: remove support for NOMMU ARMv4/v5

From: Arnd Bergmann <[email protected]>

It is possible to build MMU-less kernels for Cortex-M base
microcrontrollers as well as a couple of older platforms that
have not been converted to CONFIG_ARCH_MULTIPLATFORM,
specifically ep93xx, footbridge, dove, sa1100 and s3c24xx.

It seems unlikely that anybody has tested those configurations
in recent years, as even building them is frequently broken.
A patch I submitted caused another build time regression
in this configuration. I sent a patch for that, but it seems
better to also remove the option entirely, leaving ARMv7-M
as the only supported Arm NOMMU target for simplicity.

This addresses several build failures in randconfig builds that
have accumulated over the years.

Cc: Vladimir Murzin <[email protected]>
Cc: Russell King <[email protected]>
Signed-off-by: Arnd Bergmann <[email protected]>
---
If there are no objections, I'd apply this patch to the soc
tree for 5.18 as a cleanup.
---
arch/arm/Kconfig | 34 +++++++------------
.../mach-footbridge/include/mach/hardware.h | 20 ++++-------
arch/arm/mach-footbridge/include/mach/io.h | 20 -----------
arch/arm/mach-integrator/hardware.h | 5 ---
4 files changed, 20 insertions(+), 59 deletions(-)
delete mode 100644 arch/arm/mach-footbridge/include/mach/io.h

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 5f0b40bab4fb..d184377ce2ae 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -304,6 +304,17 @@ config MMU
Select if you want MMU-based virtualised addressing space
support by paged memory management. If unsure, say 'Y'.

+config ARM_SINGLE_ARMV7M
+ def_bool !MMU
+ select ARM_NVIC
+ select AUTO_ZRELADDR
+ select TIMER_OF
+ select COMMON_CLK
+ select CPU_V7M
+ select NO_IOPORT_MAP
+ select SPARSE_IRQ
+ select USE_OF
+
config ARCH_MMAP_RND_BITS_MIN
default 8

@@ -318,12 +329,11 @@ config ARCH_MMAP_RND_BITS_MAX
#
choice
prompt "ARM system type"
- default ARM_SINGLE_ARMV7M if !MMU
- default ARCH_MULTIPLATFORM if MMU
+ depends on MMU
+ default ARCH_MULTIPLATFORM

config ARCH_MULTIPLATFORM
bool "Allow multiple platforms to be selected"
- depends on MMU
select ARCH_FLATMEM_ENABLE
select ARCH_SPARSEMEM_ENABLE
select ARCH_SELECT_MEMORY_MODEL
@@ -337,18 +347,6 @@ config ARCH_MULTIPLATFORM
select SPARSE_IRQ
select USE_OF

-config ARM_SINGLE_ARMV7M
- bool "ARMv7-M based platforms (Cortex-M0/M3/M4)"
- depends on !MMU
- select ARM_NVIC
- select AUTO_ZRELADDR
- select TIMER_OF
- select COMMON_CLK
- select CPU_V7M
- select NO_IOPORT_MAP
- select SPARSE_IRQ
- select USE_OF
-
config ARCH_EP93XX
bool "EP93xx-based"
select ARCH_SPARSEMEM_ENABLE
@@ -367,7 +365,6 @@ config ARCH_FOOTBRIDGE
bool "FootBridge"
select CPU_SA110
select FOOTBRIDGE
- select NEED_MACH_IO_H if !MMU
select NEED_MACH_MEMORY_H
help
Support for systems based on the DC21285 companion chip
@@ -375,7 +372,6 @@ config ARCH_FOOTBRIDGE

config ARCH_IOP32X
bool "IOP32x-based"
- depends on MMU
select CPU_XSCALE
select GPIO_IOP
select GPIOLIB
@@ -387,7 +383,6 @@ config ARCH_IOP32X

config ARCH_IXP4XX
bool "IXP4xx-based"
- depends on MMU
select ARCH_SUPPORTS_BIG_ENDIAN
select ARM_PATCH_PHYS_VIRT
select CPU_XSCALE
@@ -418,7 +413,6 @@ config ARCH_DOVE

config ARCH_PXA
bool "PXA2xx/PXA3xx-based"
- depends on MMU
select ARCH_MTD_XIP
select ARM_CPU_SUSPEND if PM
select AUTO_ZRELADDR
@@ -437,7 +431,6 @@ config ARCH_PXA

config ARCH_RPC
bool "RiscPC"
- depends on MMU
depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000
select ARCH_ACORN
select ARCH_MAY_HAVE_PC_FDC
@@ -493,7 +486,6 @@ config ARCH_S3C24XX

config ARCH_OMAP1
bool "TI OMAP1"
- depends on MMU
select ARCH_OMAP
select CLKSRC_MMIO
select GENERIC_IRQ_CHIP
diff --git a/arch/arm/mach-footbridge/include/mach/hardware.h b/arch/arm/mach-footbridge/include/mach/hardware.h
index ecaf6e7388d9..985ad3a95671 100644
--- a/arch/arm/mach-footbridge/include/mach/hardware.h
+++ b/arch/arm/mach-footbridge/include/mach/hardware.h
@@ -21,32 +21,26 @@
* 0xf0000000 0x80000000 16MB ISA memory
*/

-#ifdef CONFIG_MMU
-#define MMU_IO(a, b) (a)
-#else
-#define MMU_IO(a, b) (b)
-#endif
-
#define XBUS_SIZE 0x00100000
-#define XBUS_BASE MMU_IO(0xff800000, 0x40000000)
+#define XBUS_BASE 0xff800000

#define ARMCSR_SIZE 0x00100000
-#define ARMCSR_BASE MMU_IO(0xfe000000, 0x42000000)
+#define ARMCSR_BASE 0xfe000000

#define WFLUSH_SIZE 0x00100000
-#define WFLUSH_BASE MMU_IO(0xfd000000, 0x78000000)
+#define WFLUSH_BASE 0xfd000000

#define PCIIACK_SIZE 0x00100000
-#define PCIIACK_BASE MMU_IO(0xfc000000, 0x79000000)
+#define PCIIACK_BASE 0xfc000000

#define PCICFG1_SIZE 0x01000000
-#define PCICFG1_BASE MMU_IO(0xfb000000, 0x7a000000)
+#define PCICFG1_BASE 0xfb000000

#define PCICFG0_SIZE 0x01000000
-#define PCICFG0_BASE MMU_IO(0xfa000000, 0x7b000000)
+#define PCICFG0_BASE 0xfa000000

#define PCIMEM_SIZE 0x01000000
-#define PCIMEM_BASE MMU_IO(0xf0000000, 0x80000000)
+#define PCIMEM_BASE 0xf0000000

#define XBUS_CS2 0x40012000

diff --git a/arch/arm/mach-footbridge/include/mach/io.h b/arch/arm/mach-footbridge/include/mach/io.h
deleted file mode 100644
index 4e18b921373f..000000000000
--- a/arch/arm/mach-footbridge/include/mach/io.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * arch/arm/mach-footbridge/include/mach/io.h
- *
- * Copyright (C) 1997-1999 Russell King
- *
- * Modifications:
- * 06-12-1997 RMK Created.
- * 07-04-1999 RMK Major cleanup
- */
-#ifndef __ASM_ARM_ARCH_IO_H
-#define __ASM_ARM_ARCH_IO_H
-
-/*
- * Translation of various i/o addresses to host addresses for !CONFIG_MMU
- */
-#define PCIO_BASE 0x7c000000
-#define __io(a) ((void __iomem *)(PCIO_BASE + (a)))
-
-#endif
diff --git a/arch/arm/mach-integrator/hardware.h b/arch/arm/mach-integrator/hardware.h
index 4d6ade3dd4ee..81ce09e3ad45 100644
--- a/arch/arm/mach-integrator/hardware.h
+++ b/arch/arm/mach-integrator/hardware.h
@@ -16,12 +16,7 @@
#define IO_START INTEGRATOR_HDR_BASE // PA of IO

/* macro to get at IO space when running virtually */
-#ifdef CONFIG_MMU
#define IO_ADDRESS(x) (((x) & 0x000fffff) | (((x) >> 4) & 0x0ff00000) | IO_BASE)
-#else
-#define IO_ADDRESS(x) (x)
-#endif
-
#define __io_address(n) ((void __iomem *)IO_ADDRESS(n))

/*
--
2.29.2


2022-03-09 16:23:59

by Robin Murphy

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: remove support for NOMMU ARMv4/v5

On 2022-03-09 14:40, Arnd Bergmann wrote:
> From: Arnd Bergmann <[email protected]>
>
> It is possible to build MMU-less kernels for Cortex-M base
> microcrontrollers as well as a couple of older platforms that
> have not been converted to CONFIG_ARCH_MULTIPLATFORM,
> specifically ep93xx, footbridge, dove, sa1100 and s3c24xx.
>
> It seems unlikely that anybody has tested those configurations
> in recent years, as even building them is frequently broken.
> A patch I submitted caused another build time regression
> in this configuration. I sent a patch for that, but it seems
> better to also remove the option entirely, leaving ARMv7-M
> as the only supported Arm NOMMU target for simplicity.

In that case, it would probably make sense to garbage-collect all the
configs, setup code and other stuff relating to older MMU-less CPU cores
like ARM1156, ARM940, etc. at the same time.

Robin.

> This addresses several build failures in randconfig builds that
> have accumulated over the years.
>
> Cc: Vladimir Murzin <[email protected]>
> Cc: Russell King <[email protected]>
> Signed-off-by: Arnd Bergmann <[email protected]>
> ---
> If there are no objections, I'd apply this patch to the soc
> tree for 5.18 as a cleanup.
> ---
> arch/arm/Kconfig | 34 +++++++------------
> .../mach-footbridge/include/mach/hardware.h | 20 ++++-------
> arch/arm/mach-footbridge/include/mach/io.h | 20 -----------
> arch/arm/mach-integrator/hardware.h | 5 ---
> 4 files changed, 20 insertions(+), 59 deletions(-)
> delete mode 100644 arch/arm/mach-footbridge/include/mach/io.h
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 5f0b40bab4fb..d184377ce2ae 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -304,6 +304,17 @@ config MMU
> Select if you want MMU-based virtualised addressing space
> support by paged memory management. If unsure, say 'Y'.
>
> +config ARM_SINGLE_ARMV7M
> + def_bool !MMU
> + select ARM_NVIC
> + select AUTO_ZRELADDR
> + select TIMER_OF
> + select COMMON_CLK
> + select CPU_V7M
> + select NO_IOPORT_MAP
> + select SPARSE_IRQ
> + select USE_OF
> +
> config ARCH_MMAP_RND_BITS_MIN
> default 8
>
> @@ -318,12 +329,11 @@ config ARCH_MMAP_RND_BITS_MAX
> #
> choice
> prompt "ARM system type"
> - default ARM_SINGLE_ARMV7M if !MMU
> - default ARCH_MULTIPLATFORM if MMU
> + depends on MMU
> + default ARCH_MULTIPLATFORM
>
> config ARCH_MULTIPLATFORM
> bool "Allow multiple platforms to be selected"
> - depends on MMU
> select ARCH_FLATMEM_ENABLE
> select ARCH_SPARSEMEM_ENABLE
> select ARCH_SELECT_MEMORY_MODEL
> @@ -337,18 +347,6 @@ config ARCH_MULTIPLATFORM
> select SPARSE_IRQ
> select USE_OF
>
> -config ARM_SINGLE_ARMV7M
> - bool "ARMv7-M based platforms (Cortex-M0/M3/M4)"
> - depends on !MMU
> - select ARM_NVIC
> - select AUTO_ZRELADDR
> - select TIMER_OF
> - select COMMON_CLK
> - select CPU_V7M
> - select NO_IOPORT_MAP
> - select SPARSE_IRQ
> - select USE_OF
> -
> config ARCH_EP93XX
> bool "EP93xx-based"
> select ARCH_SPARSEMEM_ENABLE
> @@ -367,7 +365,6 @@ config ARCH_FOOTBRIDGE
> bool "FootBridge"
> select CPU_SA110
> select FOOTBRIDGE
> - select NEED_MACH_IO_H if !MMU
> select NEED_MACH_MEMORY_H
> help
> Support for systems based on the DC21285 companion chip
> @@ -375,7 +372,6 @@ config ARCH_FOOTBRIDGE
>
> config ARCH_IOP32X
> bool "IOP32x-based"
> - depends on MMU
> select CPU_XSCALE
> select GPIO_IOP
> select GPIOLIB
> @@ -387,7 +383,6 @@ config ARCH_IOP32X
>
> config ARCH_IXP4XX
> bool "IXP4xx-based"
> - depends on MMU
> select ARCH_SUPPORTS_BIG_ENDIAN
> select ARM_PATCH_PHYS_VIRT
> select CPU_XSCALE
> @@ -418,7 +413,6 @@ config ARCH_DOVE
>
> config ARCH_PXA
> bool "PXA2xx/PXA3xx-based"
> - depends on MMU
> select ARCH_MTD_XIP
> select ARM_CPU_SUSPEND if PM
> select AUTO_ZRELADDR
> @@ -437,7 +431,6 @@ config ARCH_PXA
>
> config ARCH_RPC
> bool "RiscPC"
> - depends on MMU
> depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000
> select ARCH_ACORN
> select ARCH_MAY_HAVE_PC_FDC
> @@ -493,7 +486,6 @@ config ARCH_S3C24XX
>
> config ARCH_OMAP1
> bool "TI OMAP1"
> - depends on MMU
> select ARCH_OMAP
> select CLKSRC_MMIO
> select GENERIC_IRQ_CHIP
> diff --git a/arch/arm/mach-footbridge/include/mach/hardware.h b/arch/arm/mach-footbridge/include/mach/hardware.h
> index ecaf6e7388d9..985ad3a95671 100644
> --- a/arch/arm/mach-footbridge/include/mach/hardware.h
> +++ b/arch/arm/mach-footbridge/include/mach/hardware.h
> @@ -21,32 +21,26 @@
> * 0xf0000000 0x80000000 16MB ISA memory
> */
>
> -#ifdef CONFIG_MMU
> -#define MMU_IO(a, b) (a)
> -#else
> -#define MMU_IO(a, b) (b)
> -#endif
> -
> #define XBUS_SIZE 0x00100000
> -#define XBUS_BASE MMU_IO(0xff800000, 0x40000000)
> +#define XBUS_BASE 0xff800000
>
> #define ARMCSR_SIZE 0x00100000
> -#define ARMCSR_BASE MMU_IO(0xfe000000, 0x42000000)
> +#define ARMCSR_BASE 0xfe000000
>
> #define WFLUSH_SIZE 0x00100000
> -#define WFLUSH_BASE MMU_IO(0xfd000000, 0x78000000)
> +#define WFLUSH_BASE 0xfd000000
>
> #define PCIIACK_SIZE 0x00100000
> -#define PCIIACK_BASE MMU_IO(0xfc000000, 0x79000000)
> +#define PCIIACK_BASE 0xfc000000
>
> #define PCICFG1_SIZE 0x01000000
> -#define PCICFG1_BASE MMU_IO(0xfb000000, 0x7a000000)
> +#define PCICFG1_BASE 0xfb000000
>
> #define PCICFG0_SIZE 0x01000000
> -#define PCICFG0_BASE MMU_IO(0xfa000000, 0x7b000000)
> +#define PCICFG0_BASE 0xfa000000
>
> #define PCIMEM_SIZE 0x01000000
> -#define PCIMEM_BASE MMU_IO(0xf0000000, 0x80000000)
> +#define PCIMEM_BASE 0xf0000000
>
> #define XBUS_CS2 0x40012000
>
> diff --git a/arch/arm/mach-footbridge/include/mach/io.h b/arch/arm/mach-footbridge/include/mach/io.h
> deleted file mode 100644
> index 4e18b921373f..000000000000
> --- a/arch/arm/mach-footbridge/include/mach/io.h
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-only */
> -/*
> - * arch/arm/mach-footbridge/include/mach/io.h
> - *
> - * Copyright (C) 1997-1999 Russell King
> - *
> - * Modifications:
> - * 06-12-1997 RMK Created.
> - * 07-04-1999 RMK Major cleanup
> - */
> -#ifndef __ASM_ARM_ARCH_IO_H
> -#define __ASM_ARM_ARCH_IO_H
> -
> -/*
> - * Translation of various i/o addresses to host addresses for !CONFIG_MMU
> - */
> -#define PCIO_BASE 0x7c000000
> -#define __io(a) ((void __iomem *)(PCIO_BASE + (a)))
> -
> -#endif
> diff --git a/arch/arm/mach-integrator/hardware.h b/arch/arm/mach-integrator/hardware.h
> index 4d6ade3dd4ee..81ce09e3ad45 100644
> --- a/arch/arm/mach-integrator/hardware.h
> +++ b/arch/arm/mach-integrator/hardware.h
> @@ -16,12 +16,7 @@
> #define IO_START INTEGRATOR_HDR_BASE // PA of IO
>
> /* macro to get at IO space when running virtually */
> -#ifdef CONFIG_MMU
> #define IO_ADDRESS(x) (((x) & 0x000fffff) | (((x) >> 4) & 0x0ff00000) | IO_BASE)
> -#else
> -#define IO_ADDRESS(x) (x)
> -#endif
> -
> #define __io_address(n) ((void __iomem *)IO_ADDRESS(n))
>
> /*

2022-03-09 16:46:33

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: remove support for NOMMU ARMv4/v5

On Wed, Mar 9, 2022 at 4:48 PM Robin Murphy <[email protected]> wrote:
>
> On 2022-03-09 14:40, Arnd Bergmann wrote:
> > From: Arnd Bergmann <[email protected]>
> >
> > It is possible to build MMU-less kernels for Cortex-M base
> > microcrontrollers as well as a couple of older platforms that
> > have not been converted to CONFIG_ARCH_MULTIPLATFORM,
> > specifically ep93xx, footbridge, dove, sa1100 and s3c24xx.
> >
> > It seems unlikely that anybody has tested those configurations
> > in recent years, as even building them is frequently broken.
> > A patch I submitted caused another build time regression
> > in this configuration. I sent a patch for that, but it seems
> > better to also remove the option entirely, leaving ARMv7-M
> > as the only supported Arm NOMMU target for simplicity.
>
> In that case, it would probably make sense to garbage-collect all the
> configs, setup code and other stuff relating to older MMU-less CPU cores
> like ARM1156, ARM940, etc. at the same time.

Right, good idea. These are only selected by CONFIG_ARCH_INTEGRATOR,
but that in turn doesn't build for CONFIG_MMU=n because it depends on
ARCH_MULTIPLATFORM. I'll send a patch for these.

I also went back and forth between removing the #ifdefs in
arch/arm/mm/proc-*.S for this patch, though I did not do that in the end.
We may still want them at least for proc-v7.S because that is a small
chance that someone will want to support Cortex-R.

Arnd

2022-03-09 16:51:03

by Vladimir Murzin

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: remove support for NOMMU ARMv4/v5

On 3/9/22 4:17 PM, Arnd Bergmann wrote:
> On Wed, Mar 9, 2022 at 4:48 PM Robin Murphy <[email protected]> wrote:
>>
>> On 2022-03-09 14:40, Arnd Bergmann wrote:
>>> From: Arnd Bergmann <[email protected]>
>>>
>>> It is possible to build MMU-less kernels for Cortex-M base
>>> microcrontrollers as well as a couple of older platforms that
>>> have not been converted to CONFIG_ARCH_MULTIPLATFORM,
>>> specifically ep93xx, footbridge, dove, sa1100 and s3c24xx.
>>>
>>> It seems unlikely that anybody has tested those configurations
>>> in recent years, as even building them is frequently broken.
>>> A patch I submitted caused another build time regression
>>> in this configuration. I sent a patch for that, but it seems
>>> better to also remove the option entirely, leaving ARMv7-M
>>> as the only supported Arm NOMMU target for simplicity.
>>
>> In that case, it would probably make sense to garbage-collect all the
>> configs, setup code and other stuff relating to older MMU-less CPU cores
>> like ARM1156, ARM940, etc. at the same time.
>
> Right, good idea. These are only selected by CONFIG_ARCH_INTEGRATOR,
> but that in turn doesn't build for CONFIG_MMU=n because it depends on
> ARCH_MULTIPLATFORM. I'll send a patch for these.
>
> I also went back and forth between removing the #ifdefs in
> arch/arm/mm/proc-*.S for this patch, though I did not do that in the end.
> We may still want them at least for proc-v7.S because that is a small
> chance that someone will want to support Cortex-R.
>

I'd appreciate if you keep them since I run Cortex-R52...

Cheers
Vladimir

> Arnd
>

2022-03-09 17:15:27

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: remove support for NOMMU ARMv4/v5

On Wed, Mar 9, 2022 at 5:21 PM Vladimir Murzin <[email protected]> wrote:
> On 3/9/22 4:17 PM, Arnd Bergmann wrote:
> > On Wed, Mar 9, 2022 at 4:48 PM Robin Murphy <[email protected]> wrote:
> >>
> >> On 2022-03-09 14:40, Arnd Bergmann wrote:
> >>> From: Arnd Bergmann <[email protected]>
> >>>
> >>> It is possible to build MMU-less kernels for Cortex-M base
> >>> microcrontrollers as well as a couple of older platforms that
> >>> have not been converted to CONFIG_ARCH_MULTIPLATFORM,
> >>> specifically ep93xx, footbridge, dove, sa1100 and s3c24xx.
> >>>
> >>> It seems unlikely that anybody has tested those configurations
> >>> in recent years, as even building them is frequently broken.
> >>> A patch I submitted caused another build time regression
> >>> in this configuration. I sent a patch for that, but it seems
> >>> better to also remove the option entirely, leaving ARMv7-M
> >>> as the only supported Arm NOMMU target for simplicity.
> >>
> >> In that case, it would probably make sense to garbage-collect all the
> >> configs, setup code and other stuff relating to older MMU-less CPU cores
> >> like ARM1156, ARM940, etc. at the same time.
> >
> > Right, good idea. These are only selected by CONFIG_ARCH_INTEGRATOR,
> > but that in turn doesn't build for CONFIG_MMU=n because it depends on
> > ARCH_MULTIPLATFORM. I'll send a patch for these.
> >
> > I also went back and forth between removing the #ifdefs in
> > arch/arm/mm/proc-*.S for this patch, though I did not do that in the end.
> > We may still want them at least for proc-v7.S because that is a small
> > chance that someone will want to support Cortex-R.
> >
>
> I'd appreciate if you keep them since I run Cortex-R52...

Ok, no problem.

Any opinion on removing CPU_ARM{7TDMI,740T,940T,946E}?

Arnd

2022-03-10 08:20:37

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: remove support for NOMMU ARMv4/v5

On Wed, Mar 9, 2022 at 5:17 PM Arnd Bergmann <[email protected]> wrote:
> Robin
> > In that case, it would probably make sense to garbage-collect all the
> > configs, setup code and other stuff relating to older MMU-less CPU cores
> > like ARM1156, ARM940, etc. at the same time.
>
> Right, good idea. These are only selected by CONFIG_ARCH_INTEGRATOR,
> but that in turn doesn't build for CONFIG_MMU=n because it depends on
> ARCH_MULTIPLATFORM. I'll send a patch for these.

Just delete these, I do have these CPU tiles around but they are so obscure
and I never got around to even testing to boot them.

Yours,
Linus Walleij

2022-03-10 08:32:06

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: remove support for NOMMU ARMv4/v5

On Wed, Mar 9, 2022 at 5:38 PM Arnd Bergmann <[email protected]> wrote:

> Any opinion on removing CPU_ARM{7TDMI,740T,940T,946E}?

7TDMI was/is extremely prolific, it is everywhere (such as in CSR/SiRF
GPS chips, SD cards, hard disks, a lot of sensors and what not).

That said I have never seen one of these systems with enough memory
to boot a recent Linux kernel. I think with the failure to push the kernel
footprint down (due to lack of interest) they don't really have a future as
Linux targets. They all run $small_os.

Yours,
Linus Walleij

2022-03-10 14:14:30

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: remove support for NOMMU ARMv4/v5

On Thu, Mar 10, 2022 at 2:22 AM Linus Walleij <[email protected]> wrote:
>
> On Wed, Mar 9, 2022 at 5:17 PM Arnd Bergmann <[email protected]> wrote:
> > Robin
> > > In that case, it would probably make sense to garbage-collect all the
> > > configs, setup code and other stuff relating to older MMU-less CPU cores
> > > like ARM1156, ARM940, etc. at the same time.
> >
> > Right, good idea. These are only selected by CONFIG_ARCH_INTEGRATOR,
> > but that in turn doesn't build for CONFIG_MMU=n because it depends on
> > ARCH_MULTIPLATFORM. I'll send a patch for these.
>
> Just delete these, I do have these CPU tiles around but they are so obscure
> and I never got around to even testing to boot them.

Right, of course you couldn't boot test them because it has been
impossible to even select them in Kconfig for years. I've added
a patch to completely remove the five v4/v5 NOMMU cores now,
will send that later.

There are five more cores that are only referenced by mach-integrator
that are supposed to work (922T, 1020, 1020E, 1022, 1026). Have you
ever tested those, or should we consider removing them as well?

At some point, there was a proposal to add an arm10 based SoC
to mainline, but that never happened and I'm fairly sure it won't
come back now.

Arnd

2022-03-10 16:28:56

by Robin Murphy

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: remove support for NOMMU ARMv4/v5

On 2022-03-10 09:23, Arnd Bergmann wrote:
> On Thu, Mar 10, 2022 at 2:22 AM Linus Walleij <[email protected]> wrote:
>>
>> On Wed, Mar 9, 2022 at 5:17 PM Arnd Bergmann <[email protected]> wrote:
>>> Robin
>>>> In that case, it would probably make sense to garbage-collect all the
>>>> configs, setup code and other stuff relating to older MMU-less CPU cores
>>>> like ARM1156, ARM940, etc. at the same time.
>>>
>>> Right, good idea. These are only selected by CONFIG_ARCH_INTEGRATOR,
>>> but that in turn doesn't build for CONFIG_MMU=n because it depends on
>>> ARCH_MULTIPLATFORM. I'll send a patch for these.
>>
>> Just delete these, I do have these CPU tiles around but they are so obscure
>> and I never got around to even testing to boot them.
>
> Right, of course you couldn't boot test them because it has been
> impossible to even select them in Kconfig for years. I've added
> a patch to completely remove the five v4/v5 NOMMU cores now,
> will send that later.
>
> There are five more cores that are only referenced by mach-integrator
> that are supposed to work (922T, 1020, 1020E, 1022, 1026). Have you
> ever tested those, or should we consider removing them as well?
>
> At some point, there was a proposal to add an arm10 based SoC
> to mainline, but that never happened and I'm fairly sure it won't
> come back now.

FWIW I have an Integrator/CM1026 that I'd love to play with purely for
giggles, but it needs some serious archaeology to find and flash some
firmware for it first.

I also have a couple of "real" ARM1026s in the form of Conexant
Solos-based routers[1] which I've done a little hacking on, but don't
see myself ever realistically having enough time or motivation to
actually upstream anything. And at this point I don't see OpenWRT having
any more interest in boards with only 15MB of RAM (yes, they really do
boot with "mem=15M" to reserve 1MB for the modem...)

Cheers,
Robin.

[1] https://openwrt.org/toh/linksys/wag54g2

2022-03-16 18:54:33

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: remove support for NOMMU ARMv4/v5

On Thu, Mar 10, 2022 at 10:23 AM Arnd Bergmann <[email protected]> wrote:
> On Thu, Mar 10, 2022 at 2:22 AM Linus Walleij <[email protected]> wrote:

> > Just delete these, I do have these CPU tiles around but they are so obscure
> > and I never got around to even testing to boot them.
>
> Right, of course you couldn't boot test them because it has been
> impossible to even select them in Kconfig for years.

Correct, I mean never got around to the whole cycle of "let's make this
thing boot" and then stumbling over things like that :D

> I've added
> a patch to completely remove the five v4/v5 NOMMU cores now,
> will send that later.

Excellent.

> There are five more cores that are only referenced by mach-integrator
> that are supposed to work (922T, 1020, 1020E, 1022, 1026). Have you
> ever tested those, or should we consider removing them as well?

Not the 10xx variants, but 920T and 922T I have tested and I
still have the tiles, while my favourite tile that is usually fitted is
ARM926EJ-S.

Yours,
Linus Walleij

2022-03-16 21:49:36

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: remove support for NOMMU ARMv4/v5

On Tue, Mar 15, 2022 at 12:00 AM Linus Walleij <[email protected]> wrote:
> On Thu, Mar 10, 2022 at 10:23 AM Arnd Bergmann <[email protected]> wrote:
> > On Thu, Mar 10, 2022 at 2:22 AM Linus Walleij <[email protected]> wrote:
>
> > > Just delete these, I do have these CPU tiles around but they are so obscure
> > > and I never got around to even testing to boot them.
> >
> > Right, of course you couldn't boot test them because it has been
> > impossible to even select them in Kconfig for years.
>
> Correct, I mean never got around to the whole cycle of "let's make this
> thing boot" and then stumbling over things like that :D
>
> > I've added
> > a patch to completely remove the five v4/v5 NOMMU cores now,
> > will send that later.
>
> Excellent.
>
> > There are five more cores that are only referenced by mach-integrator
> > that are supposed to work (922T, 1020, 1020E, 1022, 1026). Have you
> > ever tested those, or should we consider removing them as well?
>
> Not the 10xx variants, but 920T and 922T I have tested and I
> still have the tiles, while my favourite tile that is usually fitted is
> ARM926EJ-S.

Ok, then I would suggest we keep 922t and 1026 (which Robin mentioned)
but remove the others (1020,1020e, 1022).

Arnd