Linux Kernel
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:
- Getting started information:
- Platform devices and device trees introduction article on LWN
- A Tutorial on the Device Tree (part 1, 2, 3, 4 and 5)
- Device Tree support on ARM Linux slides
- References
- Grant Likely article on LWN
- Device Tree main website
https://www.devicetree.org/specifications
http://devicetree.org/Device_Tree_Usage - Linux kernel documentation: https://github.com/torvalds/linux/tree/master/Documentation/devicetree/usage-model.rst[Documentation/devicetree/usage-model.rst]
- Linux kernel documentation: https://github.com/torvalds/linux/tree/master/Documentation/driver-api/driver-model[Documentation/driver-api/driver-model]
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
| NAME | BOARD SUPPORTED | COMMENT | RELATED 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 EK, SAMA5D27 SOM1 EK, SAMA5D2 ICP, SAMA7G5 EK, SAM9X60 Curiosity, SAMA5D29 Curiosity, SAM9X75 Curiosity, SAMA7D65 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 EK, SAMA5D27 SOM1 EK, SAMA5D2 ICP, SAMA7G5 EK, SAM9X60 Curiosity, SAMA5D29 Curiosity, SAM9X75 Curiosity, SAMA7D65 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
- Using ASRC (Asynchronous Sample Rate Converter)
- Boot Logo for SAM SOC's
- Compiling Linux Kernel fails looking at OpenSSL header files
- Connect Module From PDA
- Console no longer receives characters
- Crypto Hardware Acceleration
- Use of the AT91 ADC driver
- Image Sensor Controller White balance features
- Using ISC (Image Sensor Controller)
- Using ISI (Image Sensor Interface) in Linux4SAM 6.0 and later
- Media Controller Pipeline For Image Acquisition and SAM MPU Products
- How to patch Device Tree Blob in U-boot using Overlays
- Using PTC (Peripheral Touch Controller)
- How to use Pulse Width Modulation driver
- Real Time solutions on AT91SAM SoC
- Using the SAMA5D2-compatible ADC device
- Using the SAMA5D2-Compatible Resistive Touchscreen
- SAMA7G5 and Sony IMX274 examples
- Interfacing SAMA7G5 With Parallel OMNIVISION® OV7740 Sensor
- SAMA7G5 Image Acquisition Pipeline
- eMMC support for SAMA5D27 SOM1 EK board
- Using systemd
- Thermal management support on SAMA7G5
- Using Ultra Low Power mode 1 (ULP1) on SAMA5D2
- USB Gadget Configuration
- How to use the Atmel KMS/DRM LCD driver
- Using MaxTouch
- How to use U-boot with FIT image to load overlays
- Using I2SC (Inter-IC Sound Controller)
- How to use WILC on SAM development boards
- External Component on External Bus Interface
- SAM9X60-EK Evaluation Kit - Attaching the TM5000 WVGA Display