No description
  • C 96.8%
  • Assembly 0.9%
  • Rust 0.7%
  • Shell 0.6%
  • Python 0.5%
  • Other 0.3%
Find a file
Alexandre Belloni 809177dbf3 ARM: platform and feature deprecation for 7.3
This is attempt to bring the source code to the state that we discussed
 back in 2024, regarding a timeline for deprecating and removing features,
 in particular platforms and ABIs that are basically unused and are
 also getting in the way of maintenance.
 
 The earlier consensus was to remove these features in 2025 or 2026
 after the corresponding LTS kernel release. I would suggest pushing
 these to early 2027 now, see the patch description for details on
 each one:
 
  - all board files that are still not converted to DT
    (except for OMAP1 and S3C)
 
  - iWMMXt FPU support
 
  - ARMv6/ARM1136r0 (not ARMv6K/ARM1136r1/ARM1176) along with the
    OMAP24xx and i.MX31 SoCs using it
 
  - Cortex-M3/M4/M7 based microcontroller support
    (stm32, imxrt, lpc18xx, samv7)
 
  - LSI Axxia platform
 
  - OABI, OABI-compat and NWFPE are confined to StrongARM based
    builds and scheduled for removal once StrongARM is gone.
 
  - DEPRECATED_PARAM_STRUCT, which was originally scheduled for
    removal in 2006 (!)
 
 The ARCH_S3C64XX platform was scheduled for removal in 2024, but is
 still actively used and will get removed once Mark Brown stops using
 it. The OMAP1 platform has some remaining boardfiles and is expected to
 get converted to DT.
 
 Big-endian ARMv7 CPU support is not scheduled for removal but marked
 as broken the same way as ARM64 has, to reduce the need for testing
 unused configurations. This may be removed in the future if arm64 does
 it as well. Note that big-endian ARMv5 support is can still be
 enabled since the patches to revive little-endianm mode are still
 fresh.
 
 Regarding actually removing the code, I would suggest linux-7.4 (January
 2027), removing both the board files and any drivers that have either
 become newly unused or were missed in a previous machine removal series,
 followed by removing support for then unused CPUs a release later.
 
 Links to previous discussion:
 
   https://lore.kernel.org/linux-arm-kernel/20210109174357.GB1551@shell.armlinux.org.uk/
   https://lore.kernel.org/linux-arm-kernel/2831c5a6-cfbf-4fe0-b51c-0396e5b0aeb7@app.fastmail.com/
   https://lore.kernel.org/all/20241204102904.1863796-1-arnd@kernel.org/
   https://lore.kernel.org/all/20260701212353.2196041-1-arnd@kernel.org/
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmpRZJoACgkQmmx57+YA
 GNm16w/+P/5PMEKEiPtw06p+nX8uyc+WdZ4ZTdHcZoh1dJeHrAYESrfYyxG27AmQ
 4dmLouZXLVmldi1HVX9oNDRh8NaXOJhVfJdsjlgBCXMJhceIlebS0YJetwO+I8Qa
 0nIGyNNIcpYOpchPIl7VX0a1xq6VJhWpqYkvgO7UeKuJczYgSF2LezMqK6a0hQ2o
 N/Azg8XCJRZ2qAeq2hRFFf2Ss6YB3awMw3CVk/Xii+iPpF/xSt7rF+SzavXuko2n
 f4qWNN9qKmWw7m1pXZN1G/YD6Qf/GmR5FfWC6Tby9/BhsACGsqjom9yVYfHbYd7I
 kKRKhY5QXleIKHW9Q5/3c8ksBqJoPTF2+GH4MOnLc7RdmFBJtCfdPvszaLDEeZxe
 mW5PCcbwqUaUq85Pq1mmwrRjQhz3tBoQFW9rQ/NKExxryc5fwSxFpLP9UwpW0ThU
 WVxVny3pPclL3/8i5h7Raz+rMkrOmVY80sdsLJC9DIJ2QlEereqw1crEXcf3l99U
 5l3HqMb8AkwavT5Zh3iAUdTpxUHBo4lrey5t4Er78MY0k90ZQojBjANArEIo52L4
 yFdThLDUoVvyWMZjDM9gpV4JNsWL0HOTlHiEhQbN3cGuDPlMv9KhA3iwDKrMKZp5
 UtfBu5g4ttx4XjgpaHvWW02yrSGpFb7RFU4nEkrUqUG2WnzOMn4=
 =AKt1
 -----END PGP SIGNATURE-----

Merge tag 'arm-feature-deprecation-for-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc into soc/arm

ARM: platform and feature deprecation for 7.3

This is an attempt to bring the source code to the state that we discussed
back in 2024, regarding a timeline for deprecating and removing features,
in particular platforms and ABIs that are basically unused and are
also getting in the way of maintenance.

The earlier consensus was to remove these features in 2025 or 2026
after the corresponding LTS kernel release. I would suggest pushing
these to early 2027 now, see the patch description for details on
each one:

 - all board files that are still not converted to DT
   (except for OMAP1 and S3C)

 - iWMMXt FPU support

 - ARMv6/ARM1136r0 (not ARMv6K/ARM1136r1/ARM1176) along with the
   OMAP24xx and i.MX31 SoCs using it

 - Cortex-M3/M4/M7 based microcontroller support
   (stm32, imxrt, lpc18xx, samv7)

 - LSI Axxia platform

 - OABI, OABI-compat and NWFPE are confined to StrongARM based
   builds and scheduled for removal once StrongARM is gone.

 - DEPRECATED_PARAM_STRUCT, which was originally scheduled for
   removal in 2006 (!)

The ARCH_S3C64XX platform was scheduled for removal in 2024, but is
still actively used and will get removed once Mark Brown stops using
it. The OMAP1 platform has some remaining boardfiles and is expected to
get converted to DT.

Big-endian ARMv7 CPU support is not scheduled for removal but marked
as broken the same way as ARM64 has, to reduce the need for testing
unused configurations. This may be removed in the future if arm64 does
it as well. Note that big-endian ARMv5 support is can still be
enabled since the patches to revive little-endianm mode are still
fresh.

Regarding actually removing the code, I would suggest linux-7.4 (January
2027), removing both the board files and any drivers that have either
become newly unused or were missed in a previous machine removal series,
followed by removing support for then unused CPUs a release later.

Links to previous discussion:

  https://lore.kernel.org/linux-arm-kernel/20210109174357.GB1551@shell.armlinux.org.uk/
  https://lore.kernel.org/linux-arm-kernel/2831c5a6-cfbf-4fe0-b51c-0396e5b0aeb7@app.fastmail.com/
  https://lore.kernel.org/all/20241204102904.1863796-1-arnd@kernel.org/
  https://lore.kernel.org/all/20260701212353.2196041-1-arnd@kernel.org/

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
History 2026-07-15 13:40:42 +02:00
arch ARM: platform and feature deprecation for 7.3 2026-07-15 13:40:42 +02:00
block block: remove redundant GD_NEED_PART_SCAN in add_disk_final() 2026-07-10 09:08:50 -06:00
certs treewide: fix indentation and whitespace in Kconfig files 2026-05-28 21:24:42 -07:00
crypto mm.git review status for mm-hotfixes-stable..mm-nonmm-stable 2026-06-21 13:20:19 -07:00
Documentation USB fixes for 7.2-rc3 2026-07-12 12:12:41 -07:00
drivers tpm: Make the TPM character devices non-seekable 2026-07-12 12:52:34 -07:00
fs Misc x86 fixes: 2026-07-11 10:09:23 -07:00
include Android/IIO bugfixes for 7.2-rc3 2026-07-12 12:37:28 -07:00
init mm.git review status for mm-hotfixes-stable..mm-nonmm-stable 2026-06-21 13:20:19 -07:00
io_uring io_uring-7.2-20260710 2026-07-11 09:24:38 -07:00
ipc kernel-7.2-rc1.misc 2026-06-15 03:05:50 +05:30
kernel tracing fixes for 7.2: 2026-07-12 09:46:37 -07:00
lib tracing: Prevent out-of-bounds read in glob matching 2026-07-07 10:42:28 -04:00
LICENSES LICENSES: Add modern form of the LGPL-2.1 tags to the usage guide section 2025-10-22 07:58:19 +02:00
mm mm: do file ownership checks with the proper mount idmap 2026-07-01 19:02:56 -07:00
net NFS Client Bugfixes for Linux 7.2-rc3 2026-07-10 18:15:26 -07:00
rust Rust changes for v7.2 (addendum) 2026-06-24 15:11:08 -07:00
samples tracing fixes for 7.2: 2026-07-12 09:46:37 -07:00
scripts scripts/sorttable: Handle RISC-V patchable ftrace entries 2026-06-25 13:15:03 -06:00
security selinux/stable-7.2 PR 20260710 2026-07-10 18:59:29 -07:00
sound sound fixes for 7.2-rc2 2026-07-05 05:26:45 -10:00
tools USB fixes for 7.2-rc3 2026-07-12 12:12:41 -07:00
usr kbuild: uapi: also test UAPI headers against C++ compilers 2026-03-25 13:24:42 +01:00
virt s390: 2026-06-25 10:21:13 -07:00
.clang-format clang-format: fix formatting of guard() and scoped_guard() statements 2026-05-28 21:24:41 -07:00
.clippy.toml rust: bump Clippy's MSRV and clean incompatible_msrv allows 2026-04-07 09:51:39 +02:00
.cocciconfig scripts: add Linux .cocciconfig for coccinelle 2016-07-22 12:13:39 +02:00
.editorconfig editorconfig: add rst extension 2026-01-26 19:07:09 -08:00
.get_maintainer.ignore .get_maintainer.ignore: add myself 2026-04-02 16:48:25 +02:00
.gitattributes .gitattributes: set diff driver for Rust source code files 2023-05-31 17:48:25 +02:00
.gitignore SPDX patches for 7.2-rc1 2026-06-22 12:06:22 -07:00
.mailmap 20 hotfixes. 17 are for MM. 12 are cc:stable and the remaining 8 2026-07-06 18:51:36 -07:00
.pylintrc docs: Move the python libraries to tools/lib/python 2025-11-18 09:22:40 -07:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS mm.git review status for mm-hotfixes-stable..mm-nonmm-stable 2026-06-21 13:20:19 -07:00
Kbuild checksyscalls: move instance functionality into generic code 2026-04-05 09:21:32 +02:00
Kconfig io_uring: Rename KConfig to Kconfig 2025-02-19 14:53:27 -07:00
MAINTAINERS USB fixes for 7.2-rc3 2026-07-12 12:12:41 -07:00
Makefile Linux 7.2-rc3 2026-07-12 14:16:39 -07:00
README docs: add AI Coding Assistants documentation 2026-01-06 14:55:06 -07:00

Linux kernel
============

The Linux kernel is the core of any Linux operating system. It manages hardware,
system resources, and provides the fundamental services for all other software.

Quick Start
-----------

* Report a bug: See Documentation/admin-guide/reporting-issues.rst
* Get the latest kernel: https://kernel.org
* Build the kernel: See Documentation/admin-guide/quickly-build-trimmed-linux.rst
* Join the community: https://lore.kernel.org/

Essential Documentation
-----------------------

All users should be familiar with:

* Building requirements: Documentation/process/changes.rst
* Code of Conduct: Documentation/process/code-of-conduct.rst
* License: See COPYING

Documentation can be built with make htmldocs or viewed online at:
https://www.kernel.org/doc/html/latest/


Who Are You?
============

Find your role below:

* New Kernel Developer - Getting started with kernel development
* Academic Researcher - Studying kernel internals and architecture
* Security Expert - Hardening and vulnerability analysis
* Backport/Maintenance Engineer - Maintaining stable kernels
* System Administrator - Configuring and troubleshooting
* Maintainer - Leading subsystems and reviewing patches
* Hardware Vendor - Writing drivers for new hardware
* Distribution Maintainer - Packaging kernels for distros
* AI Coding Assistant - LLMs and AI-powered development tools


For Specific Users
==================

New Kernel Developer
--------------------

Welcome! Start your kernel development journey here:

* Getting Started: Documentation/process/development-process.rst
* Your First Patch: Documentation/process/submitting-patches.rst
* Coding Style: Documentation/process/coding-style.rst
* Build System: Documentation/kbuild/index.rst
* Development Tools: Documentation/dev-tools/index.rst
* Kernel Hacking Guide: Documentation/kernel-hacking/hacking.rst
* Core APIs: Documentation/core-api/index.rst

Academic Researcher
-------------------

Explore the kernel's architecture and internals:

* Researcher Guidelines: Documentation/process/researcher-guidelines.rst
* Memory Management: Documentation/mm/index.rst
* Scheduler: Documentation/scheduler/index.rst
* Networking Stack: Documentation/networking/index.rst
* Filesystems: Documentation/filesystems/index.rst
* RCU (Read-Copy Update): Documentation/RCU/index.rst
* Locking Primitives: Documentation/locking/index.rst
* Power Management: Documentation/power/index.rst

Security Expert
---------------

Security documentation and hardening guides:

* Security Documentation: Documentation/security/index.rst
* LSM Development: Documentation/security/lsm-development.rst
* Self Protection: Documentation/security/self-protection.rst
* Reporting Vulnerabilities: Documentation/process/security-bugs.rst
* CVE Procedures: Documentation/process/cve.rst
* Embargoed Hardware Issues: Documentation/process/embargoed-hardware-issues.rst
* Security Features: Documentation/userspace-api/seccomp_filter.rst

Backport/Maintenance Engineer
-----------------------------

Maintain and stabilize kernel versions:

* Stable Kernel Rules: Documentation/process/stable-kernel-rules.rst
* Backporting Guide: Documentation/process/backporting.rst
* Applying Patches: Documentation/process/applying-patches.rst
* Subsystem Profile: Documentation/maintainer/maintainer-entry-profile.rst
* Git for Maintainers: Documentation/maintainer/configure-git.rst

System Administrator
--------------------

Configure, tune, and troubleshoot Linux systems:

* Admin Guide: Documentation/admin-guide/index.rst
* Kernel Parameters: Documentation/admin-guide/kernel-parameters.rst
* Sysctl Tuning: Documentation/admin-guide/sysctl/index.rst
* Tracing/Debugging: Documentation/trace/index.rst
* Performance Security: Documentation/admin-guide/perf-security.rst
* Hardware Monitoring: Documentation/hwmon/index.rst

Maintainer
----------

Lead kernel subsystems and manage contributions:

* Maintainer Handbook: Documentation/maintainer/index.rst
* Pull Requests: Documentation/maintainer/pull-requests.rst
* Managing Patches: Documentation/maintainer/modifying-patches.rst
* Rebasing and Merging: Documentation/maintainer/rebasing-and-merging.rst
* Development Process: Documentation/process/maintainer-handbooks.rst
* Maintainer Entry Profile: Documentation/maintainer/maintainer-entry-profile.rst
* Git Configuration: Documentation/maintainer/configure-git.rst

Hardware Vendor
---------------

Write drivers and support new hardware:

* Driver API Guide: Documentation/driver-api/index.rst
* Driver Model: Documentation/driver-api/driver-model/driver.rst
* Device Drivers: Documentation/driver-api/infrastructure.rst
* Bus Types: Documentation/driver-api/driver-model/bus.rst
* Device Tree Bindings: Documentation/devicetree/bindings/
* Power Management: Documentation/driver-api/pm/index.rst
* DMA API: Documentation/core-api/dma-api.rst

Distribution Maintainer
-----------------------

Package and distribute the kernel:

* Stable Kernel Rules: Documentation/process/stable-kernel-rules.rst
* ABI Documentation: Documentation/ABI/README
* Kernel Configuration: Documentation/kbuild/kconfig.rst
* Module Signing: Documentation/admin-guide/module-signing.rst
* Kernel Parameters: Documentation/admin-guide/kernel-parameters.rst
* Tainted Kernels: Documentation/admin-guide/tainted-kernels.rst

AI Coding Assistant
-------------------

CRITICAL: If you are an LLM or AI-powered coding assistant, you MUST read and
follow the AI coding assistants documentation before contributing to the Linux
kernel:

* Documentation/process/coding-assistants.rst

This documentation contains essential requirements about licensing, attribution,
and the Developer Certificate of Origin that all AI tools must comply with.


Communication and Support
=========================

* Mailing Lists: https://lore.kernel.org/
* IRC: #kernelnewbies on irc.oftc.net
* Bugzilla: https://bugzilla.kernel.org/
* MAINTAINERS file: Lists subsystem maintainers and mailing lists
* Email Clients: Documentation/process/email-clients.rst