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.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, | Maintained, stable | linux4microchip-2025.04 |
| github sources: linux-6.6-mchp wiki page: LinuxKernel-6.6 | 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, | Maintained, stable | linux4microchip-2024.10 |
| github sources: linux-6.6-mchp wiki page: LinuxKernel - 6.6 | 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, | Maintained, stable | linux4microchip-2024.04 |
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 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 WIFi / BLE driver.
- Add support for DRM atomic operations.
- Enhanced DRM/HLCDC, LVDS, and DSI controller support for SAMA7D65 and SAM9X7.
- Fix UART and SPI FIFO size for SAMA5D2, SAMA7G5 and SAMA7D65.
- Use CLASSD conservative timings for SAMA5D2, SAM9x60 and SAM9x75.
- Use 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 tunning 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 ISC driver by exporting histogram statistics to users pace, add hue and saturation as v4l2 controls and improve Grey World 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 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.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 WiFi / BLE driver.
- Add initial support for GFX2D GPU
- Add support for 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
inux4microchip+sama7d65-2025.02 tag
Enhancements are added on top of the official v6.6 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 Long Term Support (LTS) kernel revision. This means that each v6.6.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.6.64
- Add support for SAMA7D65 Curiosity board
- Basic Support
- Timers:
- TCB and PIT64
- PWM and TC PWM supported
- DMA: for peripherals and memory to memory usage
- PMC:
- Marked MCK3 as critical for proper low power mode operation.
- Adjusted max frequencies and allowed MCK3 and MCK5 to be referenced in DT.
- PIO:
- Added support for GPIO wakeup in low power modes.
- Serial:
- Support for USART and console.
- Added debug UART for DEBUG_LL.
- I2C / SPI / USART (Flexcom):
- Added support for I2C, SPI, and USART on flexcoms.
- Add recovery GPIOs for I2C for SAMA7D65 Curiosity board.
- Button and LED:
- Added user button support on GPIOs.
- Added multi-color LED.
- Timers:
- ADC: Cover All Linux-Related Features + Triggers
- Adapted the ADC driver for SAMA7D65, including support for temperature calibration data and triggers.
- Thermal Supervision Functions
- Added thermal zones and temperature sensor ADC features.
- Thermal Support with OTP Data Retrieval: thermal zones, temperature sensor, and calibration support.
- New OTPC driver also supports Thermal management features in emulation mode.
- Power Management
- ULP0 / ULP1 / Backup with Self-Refresh (BSR) Modes.
- DVFS Support with Maximum CPU Clock (1 GHz) and added configuration for CPU frequency operating points.
- Crypto Engines: TDES, SHA, AES
- SD-Card Support:
- Added support for SD-Card and MMC / eMMC in basic modes.
- SDIO Mode Tested with WILC1000 / WILC3000.
- Ethernet Support:
- Added support for Ethernet GMAC0 and GMAC1.
- Display Sub-System
- Added support for XLCDC on SAMA7D65.
- Added support for LCD backlight.
- Added support for SAMA7D65 XLCDC's PWM used for backlight.
- MIPI-DSI Controller:
- Added support for the Microchip DSI controller on SAMA7D65.
- Microchip MIPI Screen Portrait Mode: support for Microchip AC40T08A MIPI Display.
- LVDS Controller:
- Enabled LVDS serializer support for display pipeline.
- Microchip LVDS Screen Landscape Mode: support for AC69T88A LVDS Display WVGA Rev 1.
- MaXTouch Touchscreen Controller: Enabled touchscreen using the atmel_mxt_ts driver on I2C.
- Screen Identification from U-Boot: support for identifying the screen to be used and loading the right Device Tree Overlay.
- CAN / CAN-FD
- Added support for CAN interfaces on SAMA7D65 Curiosity board.
- USB Host on All Ports (USBA (J3), USBB (J23) and USBC (J24))
- Added OHCI, and EHCI support to SAMA7D65 curiosity board.
- Added support for USB serial devices.
- USB Gadget (No USB-C Features)
- Added support for USB gadget on port USBA (J3).
linux4microchip-2024.10 tag
Enhancements are added on top of the official v6.6 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 Long Term Support (LTS) kernel revision. This means that each v6.6.x version is merged in our branch.
Here is a little summary of the new Linux4Microchip release:
- Integration of stable Long Term Support (LTS) kernel updates up to v6.6.51
- Added suspend/resume support to the KSZ DSA driver.
- Added preliminary support for unified WILC S02 V3 and WILC V16.3 WiFi / BLE driver.
- Added support for SCMI clock, secure calls, secure suspend for SAMA7G5 to support OP-TEE.
- Added the number of channels for the DMA controller in the device tree for SAMA7G5, documented dma-channels property.
- Added PMC PLL Analog Control Register (ACR) in all PLL settings.
- Enabled DRM_PANEL_LVDS in the at91_dt_defconfig.
- Enabled WM8731 codec as a module for sama7, sama5 and at91 defconfigs
- Enhancements for Microchip LVDS:
- Fixed realbits value for SAMA7G5 in the at91-sama5d2_adc driver.
- Configured MMC_SPI as a loadable module for sama5_defconfig
- Added RMII Ethernet support for SAM9x75
- Add no-1-8-v property to sdmmc0 dts node to fix USB VBUS voltage on SAMA5D29 Curiosity and SAMA5D27 WLSoM1-EK.
- Configure Backup Unit Power Switch to automatic mode for SAMA7G5 (used when entering Backup Self-Refresh).
- Skip ALSA restoration if sub-stream runtime is uninitialized for PDMC on SAMA7G5.
- Add all Flexcom nodes in SAMA7G5 dtsi.
- QSPI: switch to generic flags in the driver caps.
- Add initial support for the upcoming SAMA7G5 Curiosity board.
linux4microchip+sama7d65-2024.10 tag
Enhancements are added on top of the official v6.6 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 Long Term Support (LTS) kernel revision. This means that each v6.6.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.6.23
- Add support for SAMA7D65 Curiosity board
- Basic Support
- Timers:
- TCB and PIT64
- PWM and TC PWM supported
- DMA: for peripherals and memory to memory usage
- PMC:
- Marked MCK3 as critical for proper low power mode operation.
- Adjusted max frequencies and allowed MCK3 and MCK5 to be referenced in DT.
- PIO:
- Added support for GPIO wakeup in low power modes.
- Serial:
- Support for USART and console.
- Added debug UART for DEBUG_LL.
- I2C / SPI / USART (Flexcom):
- Added support for I2C, SPI, and USART on flexcoms.
- Add recovery GPIOs for I2C for SAMA7D65 Curiosity board.
- Button and LED:
- Added user button support on GPIOs.
- Added multi-color LED.
- Timers:
- ADC: Cover All Linux-Related Features + Triggers
- Adapted the ADC driver for SAMA7D65, including support for temperature calibration data and triggers.
- Thermal Supervision Functions
- Added thermal zones and temperature sensor ADC features.
- Thermal Support with OTP Data Retrieval: thermal zones, temperature sensor, and calibration support.
- Power Management
- ULP0 / ULP1 / Backup with Self-Refresh (BSR) Modes.
- DVFS Support with Maximum CPU Clock (1 GHz) and added configuration for CPU frequency operating points.
- Crypto Engines: TDES, SHA, AES
- SD-Card Support:
- Added support for SD-Card and MMC / eMMC in basic modes.
- SDIO Mode Tested with WILC1000 / WILC3000.
- Ethernet Support:
- Added support for Ethernet GMAC0 and GMAC1.
- Display Sub-System
- Added support for XLCDC on SAMA7D65.
- Added support for LCD backlight.
- Added support for SAMA7D65 XLCDC's PWM used for backlight.
- MIPI-DSI Controller:
- Added support for the Microchip DSI controller on SAMA7D65.
- Microchip MIPI Screen Portrait Mode: support for Microchip AC40T08A MIPI Display.
- LVDS Controller:
- Enabled LVDS serializer support for display pipeline.
- Microchip LVDS Screen Landscape Mode: support for AC69T88A LVDS Display WVGA Rev 1.
- MaXTouch Touchscreen Controller: Enabled touchscreen using the atmel_mxt_ts driver on I2C.
- Screen Identification from U-Boot: support for identifying the screen to be used and loading the right Device Tree Overlay.
- CAN / CAN-FD
- Added support for CAN interfaces on SAMA7D65 Curiosity board.
- USB Host on All Ports (USBA (J3), USBB (J23) and USBC (J24))
- Added OHCI, and EHCI support to SAMA7D65 curiosity board.
- Added support for USB serial devices.
- USB Gadget (No USB-C Features)
- Added support for USB gadget on port USBA (J3).
linux4microchip-2024.04 tag
Enhancements are added on top of the official v6.6 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 Long Term Support (LTS) kernel revision. This means that each v6.6.x version is merged in our branch.
Here is a little summary of the main additional enhancements:
- Integration of stable kernel updates up to v6.6.23
- Add support for SAM9x75 Curiosity board
- Add support for LAN8840 EDS2 Daughter Card
- Fix suspend / resume for LAN8840 Gigabit Ethernet PHY
- Add support for AC69T88A LVDS Display WVGA Rev 1
- Fix DDR self-refresh impedance calibration for SAMA7G5
- Add ADC hardware trigger support for SAM9x75
- Fix ASOC: CLASSD platform driver initialization
- Add support for MIPI DSI controller for SAM9x75
- Add support for Microchip AC40T08A MIPI Display
- Update WILC firmware and driver for Linux 6.6
- Fix VDEC driver for Linux 6.6
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