Linux Kernel

Last modified by Microchip on 2026/05/27 07:22

Ecosystem

Linux Kernel Archives is the primary site for the Linux kernel source. All Linux kernel versions, including latest snapshot or "release candidate" (-rc) can be easily found here.

The ARM Linux Project lead by Russell King. Russell is in charge to ensure the ARM core support in the Kernel mainline.

The SOC git tree lead by Arnd Bergmann. It is the initiative that managed to unify the work being done on System on Chip (SoC) by different vendors. This git tree is the natural way to send AT91-related material upstream.

The Linux-arm-kernel Mailing lists is where the work is actually being done. Discussions, bug reports and patches must be posted there.

Changes introduced by Device Tree support

The Device Tree is a binary file containing the description of your SoC and your board. Before this move to Device Tree, the information was stored in several C files directly in the Linux kernel code. The number of ARM-based SoC growing rapidly it has become clear that the amount of C code could not follow this pace. In addition to consolidating the ARM related kernel code, allowing the common code to be centralized and better maintained, the Device Tree also bring the possibility to run the same kernel binary on several platforms sharing the same ARM instruction set. This single zImage initiative allow the use of the same Linux kernel binary, without having the need for recompiling it, on another SoC, by just providing the proper Device Tree Binary file (.dtb).

Now the boot process has to deal with two Linux files instead of one: the Device Tree Binary file and the kernel image itself. It mainly involves changes for the U-Boot booting command. If you don't want to care about this new file, there is an Linux kernel option to append the Device Tree Binary at the end of the kernel image.

Useful documentation:

Linux for MPU source code

The Linux kernel for Microchip / Atmel ARM-based SoC (aka AT91) is distributed as a GIT tree hosted on GitHub as a fork of the official Linus Torvalds' git tree. The objective of the Microchip Linux team is to integrate all the AT91-related material in the official Linux Kernel.
Before completing this inclusion process, which can take time, this website provides the Linux4SAM Linux Kernel git tree for AT91 devices at:

https://github.com/linux4sam/linux-at91.
and now on:
https://github.com/linux4microchip/linux.

Branches

NAMEBOARD SUPPORTEDCOMMENTRELATED TAGS
github sources: linux-6.18-mchp
wiki page: LinuxKernel-6.18
All Microchip boards supported
All boards using Device Tree
Boards with demo available: SAMA5D27 WLSOM1 EKSAMA5D27 SOM1 EKSAMA5D2 ICPSAMA7G5 EKSAM9X60 CuriositySAMA5D29 CuriositySAM9X75 CuriositySAMA7D65 Curiosity, SAMA7D65 Curiosity Pro, SAM9X75 Curiosity Pro,
Maintained, stable
linux4microchip-2026.04
github sources: linux-6.12-mchp
wiki page: LinuxKernel-6.12
All Microchip boards supported
All boards using Device Tree
Boards with demo available: SAMA5D27 WLSOM1 EKSAMA5D27 SOM1 EKSAMA5D2 ICPSAMA7G5 EKSAM9X60 CuriositySAMA5D29 CuriositySAM9X75 CuriositySAMA7D65 Curiosity, SAMA7D65 Curiosity Pro,
Maintained, stable
linux4microchip-2025.04, linux4microchip-2025.10

Archive of Branches for older releases

Tags

linux4microchip-2025.10 tag

Enhancements are added on top of the official v6.12 Linux® kernel tag where most of the Microchip System on Chip (SoC) features are already supported. Note as well that we re-integrate each and every stable kernel release on top of this Long Term Support (LTS) kernel revision. This means that each v6.12.x version is merged in our branch.

Here is a little summary of the main additional enhancements:

  • Integration of stable Long Term Support (LTS) kernel updates up to v6.12.48
  • Add initial support for SAMA7D65 Curiosity Pro board
  • Add WPA3 support for WILC3000, unified WILC S02 device support, FW 16.5 Wi-Fi® / Bluetooth® Low Energy (BLE) driver
  • Add support for Direct Rendering Manager (DRM) atomic operations
  • Enhanced DRM/High-Level Controller Display Controller (HLCDC), Low-Voltage Differential Signaling (LVDS), and Display Serial Interface (DSI) controller support for SAMA7D65 and SAM9X7
  • Fix Universal Asynchronous Receiver/Transmitter (UART) and Serial Peripheral Interface (SPI) FIFO size for SAMA5D2, SAMA7G5 and SAMA7D65
  • Use  CLASSD conservative timings for SAMA5D2, SAM9x60 and SAM9x75
  • Use General Purpose Input/Output (GPIO) to detect SD Card presence instead of polling for SAMA7D65 Curiosity
  • Support for powering off the SD Card on SAMA7D6
  • Add aliases for SDMMC in boards' device trees
  • Implement SDMMC tuning errata for SAMA5D2 and SAMA7D6
  • Add support for pin polarity for GPIOs used as ULP1 wake-up sources
  • Add support for SPI controller to use the optional GCLK as clock source
  • Add I3C driver for SAMA7D65 and LSM6DSx sensor
  • Improve Image Sensor Controller (ISC) driver by exporting histogram statistics to user's pace, add hue and saturation as v4l2 controls, and improve Grey World Auto White Balance (AWB)
  • Implement USB device disconnect PHY workaround
  • Add external REFCLK support in MACB for RMII / RGMII PHYs. Enable RMII support for SAMA7 GMAC

linux4microchip-2025.04 tag

Enhancements are added on top of the official v6.12 Linux kernel tag where most of the Microchip SoC features are already supported. Note as well that we re-integrate each and every stable kernel release on top of this LTS kernel revision. This means that each v6.12.x version is merged in our branch.

Here is a little summary of the main additional enhancements:

  • Integration of stable LTS kernel updates up to v6.12.22
  • Improve support for SAMA7D65 Curiosity board
  • Add initial support for SAMA7G54 SoM and SAM9x75 SoM
  • Add support for unified WILC S02 FW 3.1 and WILC 1000/3000 FW 16.4 Wi-Fi / BLE driver
  • Add initial support for GFX2D GPU
  • Add support for Asynchronous Sample Rate Converter (ASRC) peripheral-to-peripheral for SAMA7G65
  • Enable WM8731 audio codec as a module
  • Add shutdown controller support for SAM9X7 SoC
  • Improve SoC driver with support for SAMA7D65
  • Crypto: add fallback for unsupported ESP header length (not multiple of 4 words)
  • Clock: configure ACR register in all PLL settings. Update clock API usage for SAMA7G5 and SAMA7D65
  • OP-TEE: Update SCMI for SAMA7G5 to include GCLK for PDMC0 and PDMC1
  • QSPI: add support for SAMA7D65
  • Added support for PAC194X and PAC195X Current and Power Monitors
  • Added support for LAN9646 and updated support for LAN937X, KSZ9896, KSZ9477 gigabit Ethernet switches

Archive of Tags for older releases

Build Linux for AT91

Go to the latest Linux release page to see how to build Linux Kernel for AT91.

Related Topics