Re: Future of armv7

From: Milan Obuch <freebsd-arch_at_dino.sk>
Date: Sat, 15 Nov 2025 07:33:44 UTC
On Fri, 14 Nov 2025 20:38:45 +0100
Robert Clausecker <fuz@freebsd.org> wrote:

> Hello John,
> 
> Am Fri, Nov 14, 2025 at 12:09:07PM -0500 schrieb John Baldwin:
> > Two and a half years ago when we first began talking about
> > deprecating 32-bit architectures in 15.0, we decided to keep armv7
> > for at least the stable/15 branch but did not commit to anything
> > beyond that.  Now that 15.0 is close to shipping and we are turning
> > our development focus to 16.0, we should figure out what we want to
> > say about armv7 for 16.x in the 15.0 release notes so that users
> > have suitable notice.
> > 
> > In particular, do we want to deprecate armv7 in 16.0 (similar to the
> > state of 32-bit powerpc in 15.0), or do we want to keep it?
> > 
> > My initial suggestion is that we announce that we plan to deprecate
> > it in 16.0.  In that case, I would also suggest that we follow a
> > similar process of keeping armv7 for most of the lifetime of 16.0
> > so that we can reneg if need be during the 16.0 cycle.
> > 
> > What do other folks think?  
> 
> I do think armv7 is valuable to have in the kernel for two reasons:
> 
>  - there are quite a few embedded boards without aarch64 support that
>    enjoy use in contexts where FreeBSD is of use, such as in IoT
>    devices.

I support this view as well. I see great value of FreeBSD being able
run on Zynq devices, which being armv7 + fpga combo has basically
endless possibilities. Its use could be even expanded, but we need
clearly communicate support for the platform for foreseeable future in
order to gain more traction here. As a side note, there are other armv7
devices which could be used similarly, and, in my view, removing armv7
support does bad PR for FreeBSD.

>  - the presence of at least one 32 bit platform ensures our kernel is
>    compatible with 32 bit platforms, which is in particular useful for
>    downstream consumers such as RTEMS that build upon our kernel or
>    parts of it and might still want to support 32 bit platforms.  For
>    the same reason, we should strive to support at least one BE
> platform.
> 
> That said, I strongly recommend that armv7 world be supported
> indefinitely via freebsd32 support on aarch64 (that is, through lib32
> or through an armv7 jail on an aarch64 host).  My main use case is
> taking embedded microcontroller code and testing it on hosted
> platforms by stubbing out the HW access bits with system calls.  This
> is a very convenient development process that works through armv7-a
> being largely a superset of armv7-m.
> 
> As for personal commitment, I plan to continue my effort on QA for
> ports on armv7 and to fix any kernel or userland bugs encountered
> through this effort.

When possible, I plan to enhance hardware support for Zynq devices,
even if it is sometimes not easy to arrange for work on this.

Regards,
Milan