Linux® Kernel - 4.4
Linux 4.4 for AT91 source code
The Linux® kernel for Atmel | SMART processor-based PMUs (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 Atmel 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/tree/linux-4.4-at91
Tags
linux4sam_5.5 tag
Enhancements are added on top of the official v4.4 Linux kernel tag. 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 v4.4.x version is merged in our branch. Here is a little summary of the main enhancements:
- Integration of stable kernel updates up to v4.4.26
- SAMA5D2: ISC and camera sensors enhancements (ov7740) to be compatible with V4L2
- SAMA5D2: ADC driver backport from Linux Mainline
- SAMA5D2: add FIFO configuration for I2C
- WILC1000 WIFI driver backport from a recent Linux "staging" directory content
- HDMI on SAMA5D4 Xplained: verified functioning sii902x driver
- maXTouch driver: stabilize and integrate driver enhancements from atmel-maxtouch github repository
- fixes: LCD driver vertical scaling, OHCI power consumption, SDHCI non-removable devices handling
linux4sam_5.4 tag
- SAMA5D2: chipID, LED, push button, shutdown controller, TRNG
- SAMA5D2: NAND driver enhancements (32-bit ECC)
- SAMA5D2: new I2S driver
- ISI and camera sensors enhancements
- adaptation and use of the Bosch® M_CAN device driver
- audio PLL clock driver
- PMIC and charger ACT8945A driver
- crypto engines enhancement
- quad-SPI support: QSPI
- power management: support for ULP1 mode
- support for PDA 4.3", 7" screens
- HDMI on sama5d4 Xplained: add sii902x driver
- USART fractional baud rate support
- Fixes: DMA residue computation, HSMCI regulator, I2C hold time
Getting Kernel sources
To get the source code, you have to clone the repository:
Cloning into 'linux-sama9x5-github'...
remote: Counting objects: 4524288, done.
remote: Compressing objects: 100% (721/721), done.
remote: Total 4524288 (delta 385), reused 1 (delta 1), pack-reused 4523564
Receiving objects: 100% (4524288/4524288), 1.22 GiB | 1.35 MiB/s, done.
Resolving deltas: 100% (3777338/3777338), done.
Checking connectivity... done.
Checking out files: 100% (49565/49565), done.
The source code has been taken from the master branch, which is pointing to the latest branch we use.
Note that you can also add this Linux4SAM repository as a remote GIT repository to your usual Linux git tree. It will save you a lot of bandwidth and download time:
$ git remote update linux4sam
Fetching linux4sam
From git://github.com/linux4sam/linux-at91
* [new branch] linux-2.6.39-at91 -> linux4sam/linux-2.6.39-at91
* [new branch] linux-3.10-at91 -> linux4sam/linux-3.10-at91
* [new branch] linux-3.15-at91 -> linux4sam/linux-3.15-at91
* [new branch] linux-3.18-at91 -> linux4sam/linux-3.18-at91
* [new branch] linux-3.4.9-at91 -> linux4sam/linux-3.4.9-at91
* [new branch] linux-3.6.9-at91 -> linux4sam/linux-3.6.9-at91
* [new branch] linux-4.1-at91 -> linux4sam/linux-4.1-at91
* [new branch] linux-4.4-at91 -> linux4sam/linux-4.4-at91
* [new branch] master -> linux4sam/master
If you want to use another branch, you can list them and use one of them by doing this:
origin/HEAD -> origin/master
origin/linux-2.6.39-at91
origin/linux-3.10-at91
origin/linux-3.15-at91
origin/linux-3.18-at91
origin/linux-3.4.9-at91
origin/linux-3.6.9-at91
origin/linux-4.1-at91
origin/linux-4.4-at91
origin/master
$ git checkout origin/linux-4.4-at91 -b linux-4.4-at91
Branch linux-4.1-at91 set up to track remote branch linux-4.4-at91 from origin.
Switched to a new branch 'linux-4.4-at91'
Configure and Build the Linux kernel
Now you have to configure the Linux kernel according to your hardware. We have two default configurations for the AT91 SoC in arch/arm/configs
arch/arm/configs/sama5_defconfig
- at91_dt_defconfig: for at91sam ARM926 series chips
- sama5_defconfig: for SAMA5 series chips
Build the Linux kernel image. Before you build, you need to set up the cross-compile toolchain; check this section.
[..]
Kernel: arch/arm/boot/Image is ready
Kernel: arch/arm/boot/zImage is ready
Now you have an usable compressed kernel image zImage.
If you need an uImage you can run this additional step:
[..]
Kernel: arch/arm/boot/zImage is ready
UIMAGE arch/arm/boot/uImage
Image Name: Linux-4.1.0-linux4sam_5.3+
Created: Fri Sep 9 17:02:45 2016
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3441072 Bytes = 3360.42 kB = 3.28 MB
Load Address: 20008000
Entry Point: 20008000
Image arch/arm/boot/uImage is ready
[..]
DTC arch/arm/boot/dts/at91rm9200ek.dtb
DTC arch/arm/boot/dts/mpa1600.dtb
DTC arch/arm/boot/dts/animeo_ip.dtb
DTC arch/arm/boot/dts/at91-qil_a9260.dtb
DTC arch/arm/boot/dts/aks-cdu.dtb
DTC arch/arm/boot/dts/ethernut5.dtb
DTC arch/arm/boot/dts/evk-pro3.dtb
DTC arch/arm/boot/dts/tny_a9260.dtb
DTC arch/arm/boot/dts/usb_a9260.dtb
DTC arch/arm/boot/dts/at91sam9261ek.dtb
DTC arch/arm/boot/dts/at91sam9263ek.dtb
DTC arch/arm/boot/dts/tny_a9263.dtb
DTC arch/arm/boot/dts/usb_a9263.dtb
DTC arch/arm/boot/dts/at91-foxg20.dtb
DTC arch/arm/boot/dts/at91-kizbox.dtb
DTC arch/arm/boot/dts/at91sam9g20ek.dtb
DTC arch/arm/boot/dts/at91sam9g20ek_2mmc.dtb
DTC arch/arm/boot/dts/tny_a9g20.dtb
DTC arch/arm/boot/dts/usb_a9g20.dtb
DTC arch/arm/boot/dts/usb_a9g20_lpw.dtb
DTC arch/arm/boot/dts/at91sam9m10g45ek.dtb
DTC arch/arm/boot/dts/pm9g45.dtb
DTC arch/arm/boot/dts/at91sam9n12ek.dtb
DTC arch/arm/boot/dts/at91sam9rlek.dtb
DTC arch/arm/boot/dts/at91-ariag25.dtb
DTC arch/arm/boot/dts/at91-ariettag25.dtb
DTC arch/arm/boot/dts/at91-cosino_mega2560.dtb
DTC arch/arm/boot/dts/at91-kizboxmini.dtb
DTC arch/arm/boot/dts/at91sam9g15ek.dtb
DTC arch/arm/boot/dts/at91sam9g25ek.dtb
DTC arch/arm/boot/dts/at91sam9g35ek.dtb
DTC arch/arm/boot/dts/at91sam9x25ek.dtb
DTC arch/arm/boot/dts/at91sam9x35ek.dtb
If the building process is successful, the final images can be found under _arch/arm/boot/_ directory.
Recent FAQ
- Crypto Hardware Acceleration
- Use of the AT91 ADC driver
- Using ISI (Image Sensor Interface) in Linux4SAM 6.0 and later
- How to use record audio stream with PDMIC
- How to use Pulse Width Modulation driver
- Shutdown/Wake Up FAQ
- Using Ultra Low Power mode 1 (ULP1) on SAMA5D2
- USB Gadget Configuration
- How to use the Atmel KMS/DRM LCD driver
- Using MaxTouch