From: Richard Earnshaw <Richard.Earnshaw@arm.com>
To: Arnd Bergmann <arnd@arndb.de>, <linux-arm-kernel@lists.infradead.org>
Cc: <linux-kernel@vger.kernel.org>,
Russell King <linux@armlinux.org.uk>,
Linus Walleij <linus.walleij@linaro.org>,
Richard Sandiford <richard.sandiford@arm.com>,
Ramana Radhakrishnan <ramanara@nvidia.com>,
Nicolas Pitre <nico@fluxnic.net>,
Krzysztof Kozlowski <krzk@kernel.org>,
Mark Brown <broonie@kernel.org>,
Kristoffer Ericson <kristoffer.ericson@gmail.com>,
Robert Jarzmik <robert.jarzmik@free.fr>,
Aaro Koskinen <aaro.koskinen@iki.fi>,
Janusz Krzysztofik <jmkrzyszt@gmail.com>,
Tony Lindgren <tony@atomide.com>,
Linux-OMAP <linux-omap@vger.kernel.org>,
Nikita Shubin <nikita.shubin@maquefel.me>,
<linux-samsung-soc@vger.kernel.org>, Andrew Lunn <andrew@lunn.ch>,
"Sebastian Hesselbarth" <sebastian.hesselbarth@gmail.com>,
Gregory Clement <gregory.clement@bootlin.com>,
"Jeremy J. Peper" <jeremy@jeremypeper.com>,
<debian-arm@lists.debian.org>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Alexandre Torgue <alexandre.torgue@foss.st.com>
Subject: Re: [RFC} arm architecture board/feature deprecation timeline
Date: Tue, 20 Aug 2024 15:58:51 +0100 [thread overview]
Message-ID: <5c7f9469-78ad-4092-8e93-bfb41028ca34@arm.com> (raw)
In-Reply-To: <8f8c07c6-d138-491c-9ca0-72f82779b2d2@app.fastmail.com>
On 02/08/2024 16:12, Arnd Bergmann wrote:
> On Thu, Aug 1, 2024, at 16:15, Richard Earnshaw wrote:
>> On 31/07/2024 18:29, Arnd Bergmann wrote:
>>> This is used for both StrongARM and FA526 CPUs, which are still
>>> used on a small number of boards. Even the newest chips (moxa
>>> art, ) are close to 20 years olds but were still in use a few years
>>> ago. The last Debian release for these was Lenny (5.0).
>>>
>>> Dropping compiler support now would be appropriate IMHO, and
>>> we can drop kernel support in a few years.
>>
>> This is good to know. The lack of Thumb (particularly the lack of BX) on these
>> CPUs is a major wart we still have to handle in the compiler.
>
> See also my (too long) reply to Linus Walleij. He thinks we may
> want to support ARMv4 a little longer, but hopefully we can reach
> a consensus about how long exactly.
>
>>> === iWMMXt ===
>>>
>>> I'm not aware of any remaining users for iWMMXt, and we dropped
>>> support for ARMv7 PJ4 CPUs (MMP2, Berlin) already, so the
>>> only supported hardware that even has this is Intel/Marvell
>>> PXA and MMP1.
>>>
>>> Dropping support from gcc is probably a good idea now,
>>> it is already unsupported in clang.
>>
>> We marked iWMMXt as deprecated in gcc-14 and will likely remove support
>> in GCC-15. We expect to continue supporting these as Armv5T cores, but
>> not the iwmmxt (or other XScale) extensions.
>
> Ok, good to know. The kernel doesn't actually have a build
> time dependency on gcc's xscale or iwmmxt support aside from the
> one assembly file we build with gcc -march=xscale.
I think you mean -mcpu=xscale (-march=xscale isn't recognized), or perhaps you mean -march=iwmmxt? Either way, if this is an assembly file, then you can just add the appropriate '.arch' (and/or .cpu) directives to the source file and then the command line options can be dropped.
>
>>> === big-endian ARMv7 (BE8) kernel ===
>>>
>>> This is very different from BE32 mode in making more sense
>>> from a kernel point of view. In theory any ARMv7 hardware
>>> should work, though a lot of drivers are buggy. I am not
>>> aware of any actual use cases, though in theory it can be
>>> helpful for testing big-endian userspace when one has
>>> access to Arm hardware but no other big-endian machine.
>>>
>>> We should probably keep this a few more years in both
>>> toolchain and kernel, unless it starts causing actual
>>> problems. I don't think anyone is testing it any more
>>> though.
>>>
>>> Side-note: netbsd has a armv7+be8 variant, so clang will
>>> likely keep supporting be8 even if gcc ends up dropping it
>>> in the future.
>
> Do you have any comments on BE8 support? I would imagine
> that having two (mostly) unused big-endian targets in
> the compiler still complicates things a bit.
The compiler/assembler largely treat BE8 and BE32 the same; the linker then byte-swaps the BE8 instructions during linking to generate BE8 images (this is mostly why we need mapping symbols). That won't really change if we drop BE32 support. So I don't think we gain much from this.
>
>>> I would propose to leave the feature in the kernel but
>>> make it harder to enable by accident, changing the default
>>> for all targets to EABI and adding a dependency on
>>> 'CPU_32v4 || EXPERT'.
>>>
>>> For the compiler, I think removing support for -mabi=apcs
>>> makes sense, unless there are non-Linux targets that still
>>> use this.
>>
>> Gas 2.43 (finally) drops support for the FPA and Maverick. gas 2.44
>> may well drop support for OABI binaries (arm-none-elf, as opposed to
>> arm-none-eabi). Support for these is probably buggy now and it is
>> certainly making maintenance more difficult.
>
> Ok. I can certainly confirm that we regularly run into
> build problems with -mabi=apcs in the kernel, usually
> because of the incompatible structure alignment rules.
> If binutils are dropping support, that also means we will
> eventually stop supporting it in the kernel.
This is primarily about the arm-elf (as opposed to arm-eabi) object file format, -mabi=apcs doesn't change that. There are some options in gcc relating to the old APCS that I'd really like to get rid of (in particular -mapcs-frame (aka -mapcs)), but that's a separate issue.
>
>>> === NWFPE ===
>>>
>>> Russell had a patch set to remove this 11 years ago,
>>> but ended up keeping it. This is fundamentally tied
>>> to OABI userland, so we'll likely need to keep it for
>>> as long as either OABI or OABI_COMPAT remains.
>>
>> See above re FPA removal from GAS. GCC removed FPA support in 2012!
>
> Right, for us this is clearly only done for legacy user
> binaries. It is still possible to run an OABI Debian-5.0
> or older rootfs with a new kernel, but there are not a lot
> of reasons to do so, other than ARMv4 (StrongARM)
> hardware. The only times I ever tried using it were
> to test kernel changes that impact OABI syscall handling.
>
That's what I'd expect by this point. The main difficulty would come in reconstructing test-cases for this (if you have any), since the tools will no-longer be able to do that.
R.
next prev parent reply other threads:[~2024-08-20 15:14 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-31 17:29 [RFC} arm architecture board/feature deprecation timeline Arnd Bergmann
2024-07-31 19:13 ` Aaro Koskinen
2024-08-01 8:59 ` Arnd Bergmann
2024-08-01 18:23 ` Aaro Koskinen
2024-08-02 12:53 ` Arnd Bergmann
2024-08-05 7:58 ` Arnd Bergmann
2024-08-05 12:30 ` Tony Lindgren
2024-08-05 13:37 ` Arnd Bergmann
2024-08-01 8:04 ` Krzysztof Kozlowski
2024-08-01 14:15 ` Richard Earnshaw
2024-08-02 15:12 ` Arnd Bergmann
2024-08-02 23:04 ` Linus Walleij
2024-08-20 14:58 ` Richard Earnshaw [this message]
2024-08-20 16:33 ` Arnd Bergmann
2024-08-01 19:53 ` Linus Walleij
2024-08-02 14:52 ` Arnd Bergmann
2024-08-15 18:24 ` Matt Turner
2024-08-19 7:37 ` Arnd Bergmann
2024-08-15 19:53 ` jeremy
2024-08-19 9:17 ` Arnd Bergmann
2024-08-19 14:12 ` Arnd Bergmann
2024-08-19 14:23 ` Andrew Lunn
2024-08-19 14:34 ` Arnd Bergmann
2024-08-19 17:08 ` jeremy
2024-08-21 6:15 ` Alexander Dahl
2024-08-21 7:51 ` Arnd Bergmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5c7f9469-78ad-4092-8e93-bfb41028ca34@arm.com \
--to=richard.earnshaw@arm.com \
--cc=aaro.koskinen@iki.fi \
--cc=alexandre.torgue@foss.st.com \
--cc=andrew@lunn.ch \
--cc=arnd@arndb.de \
--cc=broonie@kernel.org \
--cc=debian-arm@lists.debian.org \
--cc=dmitry.torokhov@gmail.com \
--cc=gregory.clement@bootlin.com \
--cc=jeremy@jeremypeper.com \
--cc=jmkrzyszt@gmail.com \
--cc=kristoffer.ericson@gmail.com \
--cc=krzk@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=nico@fluxnic.net \
--cc=nikita.shubin@maquefel.me \
--cc=ramanara@nvidia.com \
--cc=richard.sandiford@arm.com \
--cc=robert.jarzmik@free.fr \
--cc=sebastian.hesselbarth@gmail.com \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).