Linux Kernel Patches
Table of Contents
General notes
- The most up-to-date AVR32 arch code can always be found in the 'avr32-arch' branch of the git repository at kernel.org: git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6.git
- The "master" branch of the same repository usually contains additional drivers and updates. This branch follows Linus' git tree closely, so it should be considered a development branch. Note that the "master" branch has now taken the role that the "devel" branch used to have.
- For most stable releases, there's a corresponding "atmel" branch with additional drivers, bugfixes and backports. For example, the "atmel-2.6.22" branch contains most of the same avr32-specific stuff as the "master" branch, but it's based on a recent 2.6.22.y stable release (usually the latest one.) The patches and tarballs below are generated from these branches.
- Andrew Morton pulls the avr32-arch branch regularly, so the latest will usually have the latest AVR32 changes.
- The most recent patches on this page are meant to be applied as a whole, and are probably not easily ported to other releases except newer stable releases in the same series. For individual driver patches, please see the driver pages under the main LinuxKernel page.
Getting the latest kernel using git
If you want a kernel that "just works" it is recommended that you use one of the "atmel" branches instead of "master". Here's how you can grab the latest "atmel" kernel using git:
- Clone the avr32 repository from kernel.org:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6.git linux-avr32
The last parameter is the name of the local directory to put everything in and can be anything you want.
- Enter the new directory created by this command:
cd linux-avr32
- If you use git 1.5 or newer, create a new branch from one of the upstream branches:
git checkout -b atmel-2.6.23 origin/atmel-2.6.23
To see all the available upstream branches:
git branch -r
- If you use an older version of git, you should have a branch called atmel-2.6.23 already, so you just have to switch to it:
git checkout atmel-2.6.23
- You should now have a working copy reflecting the latest "atmel" kernel (which may not even have been released yet.)
If you already have a working repository, you can update it to the latest version by switching to the local branch you created above and pulling from the upstream branch:
git checkout atmel-2.6.23
git fetch origin
git merge origin/atmel-2.6.23
The same procedure can be used if you want to sync with the Linux "stable" tree as well. First, add the "stable" repository as a new remote (you only need to do this once for each stable branch):
git remote add stable-2.6.23 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.23.y.git
Then you can fetch the latest updates and merge them into your working tree:
git fetch stable-2.6.23
git merge stable-2.6.23/master
Upgrading from 2.6.18 (BSP 2.0)
The MMC card scanning was moved to a separate thread in 2.6.20. This means that the kernel may fail to mount the root filesystem because the MMC devices haven't shown up before the init thread tries to mount the root filesystem. A "rootwait" command-line parameter was added during the 2.6.23 release cycle which, if present, makes the init thread wait until the root device is actually present before attempting to mount it. This patch has been backported to the 2.6.22.atmel.y kernels below, so in order to use an MMC or SD card as a root filesystem, you need to add "rootwait" to the kernel command line (kernels older than 2.6.22.atmel.6 need "rootwait=1", but this isn't supported by the kernels from kernel.org.)
Version 2.6.25
The following patches are based on the official
Linux 2.6.23 kernel from kernel.org with the latest "stable" patch applied.
2.6.25.6.atmel.1
Highlights in this release:
- New upstream version: 2.6.25.6
- NAND flash support (through some minor modifications to the at91_nand driver)
- Power management (standby and suspend-to-ram) support
- UBI/UBIFS support (experimental)
- Another good round of bugfixes
- atmel_spi DMA chaining support reverted since it's suspected to cause problems.
To try it out, download one of the following files. Please report problems to the mailing list.
- linux-2.6.25.6.atmel.1.tar.bz2: Linux 2.6.25.6.atmel.1 complete source
- linux-2.6.25.6.atmel.1.patch.bz2: Linux 2.6.25.6.atmel.1 patch against v2.6.25.6
Version 2.6.24
The following patches are based on the official
Linux 2.6.23 kernel from kernel.org with the latest "stable" patch applied.
2.6.24.3.atmel.3
Highlights in this release:
- Based on 2.6.24.3
- New-style i2c driver support
- Support for tickless kernel and high-resolution timers
- PSIF serio input driver
- Lots of bugfixes
To try it out, download one of the following files. Please report problems to the _email1 mailing list.
- linux-2.6.24.3.atmel.3.tar.bz2: Linux 2.6.24.3.atmel.3 complete source
- linux-2.6.24.3.atmel.3.patch.bz2: Linux 2.6.24.3.atmel.3 patch against v2.6.23.3
2.6.24.atmel.1
Highlights in this release:
- New upstream version: 2.6.24
- PWM driver
- atmel_serial improvements, including DMA support
- atmel_lcdfb backlight support
Other than that, it's pretty much the same as 2.6.23.atmel.5, apart from the gazillions of commits that went into mainline between 2.6.23 and 2.6.24 of course.
To try it out, download one of the following files. Please report problems to the _email2 mailing list.
- linux-2.6.24.atmel.1.tar.bz2: Linux 2.6.24.atmel.1 complete source
- linux-2.6.24.atmel.1.patch.bz2: Linux 2.6.24.atmel.1 patch against v2.6.24
Version 2.6.23
The following patches are based on the official
Linux 2.6.23 kernel from kernel.org. Each release contains the latest 2.6.23.y stable release at the time. To upgrade to a later stable release, you can either apply an
incremental patch or reverse-apply the stable patch included in the release and then apply the new stable patch. Note that you will usually get a reject on the top-level Makefile because the version number is different, but this should be trivial to fix.
2.6.23.atmel.5
Highlights in this release:
- Merge with latest stable kernel, v2.6.23.14.
- PWM driver
- Misc bugfixes for the PHY layer, atmel-twi driver and other things.
To try it out, download one of the following files. Please report problems to the _email3 mailing list.
- linux-2.6.23.atmel.5.tar.bz2: Linux 2.6.23.atmel.5 complete source
- linux-2.6.23.atmel.5.patch.bz2: Linux 2.6.23.atmel.5 patch against v2.6.23
2.6.23.atmel.4
Highlights in this release:
- Fix broken debugging behaviour with avr32-linux-gdb/gdbserver (including a soft lockup, missed breakpoints, etc.)
- Turn off debugging when not needed (improves performance after a debug session is done and when Kprobes is enabled.)
- Merge with latest stable kernel, v2.6.23.9.
- Another GPIO fix for the CompactFlash driver.
- Fix wrong clock index for USART0.
- A few other fixes and cleanups.
To try it out, download one of the following files. Please report problems to the _email4 mailing list.
- linux-2.6.23.atmel.4.tar.bz2: Linux 2.6.23.atmel.4 complete source
- linux-2.6.23.atmel.4.patch.bz2: Linux 2.6.23.atmel.4 patch against v2.6.23
2.6.23.atmel.3
This fixes a faulty include in the NGW100 board code and a gpio/platform_data bug in the CompactFlash driver.
To try it out, download one of the following files. Please report problems to the _email5 mailing list.
- linux-2.6.23.atmel.3.tar.bz2: Linux 2.6.23.atmel.3 complete source
- linux-2.6.23.atmel.3.patch.bz2: Linux 2.6.23.atmel.3 patch against v2.6.23
2.6.23.atmel.2
Highlights in this release:
-
CompactFlash support
- Another mmc fix
- Accepts both "rootwait" and "rootwait=1". The previous release only accepted the former.
- Support for the AP7001 and AP7002 chips along with STK1003 and STK1004
- Watchdog errata workaround
Since ATNGW100 support is broken in this release, please don't use it. Use version 2.6.23.atmel.3 instead, which is almost identical apart from this issue.
2.6.23.atmel.1
This is basically the 2.6.22.atmel.5 release rebased onto the 2.6.23 upstream release, with the avr32-related changes that are scheduled for 2.6.24 included as well.
Note that in order to use root filesystem on MMC or SD card, you need to specify "rootwait" on the command line instead of "rootwait=1". Unfortunately, there's currently no common parameter that works on both 2.6.22.atmel.x and 2.6.23. This will be fixed in the next release.
For more details, please see the announcement. To try it out, download one of the following files. Please report problems to the _email6 mailing list.
- linux-2.6.23.atmel.1.tar.bz2: Linux 2.6.23.atmel.1 complete source
- linux-2.6.23.atmel.1.patch.bz2: Linux 2.6.23.atmel.1 patch against v2.6.23
Version 2.6.22
The following patches are based on the official Linux 2.6.22 kernel from kernel.org. Each release contains the latest 2.6.22.y stable release at the time. To upgrade to a later stable release, you can either apply an incremental patch or reverse-apply the stable patch included in the release and then apply the new stable patch. Note that you will usually get a reject on the top-level Makefile because the version number is different, but this should be trivial to fix.
2.6.22.atmel.6
Highlights for this release:
-
CompactFlash support
- Another mmc fix
- Support for the "rootwait" parameter without "=1" following it. 2.6.23 and later from kernel.org won't accept the "rootwait=1" form, so you should probably update your environment.
To try it out, download one of the following files. Please report problems to the _email7 mailing list.
- linux-2.6.22.atmel.6.tar.bz2: Linux 2.6.22.atmel.6 complete source
- linux-2.6.22.atmel.6.patch.bz2: Linux 2.6.22.atmel.6 patch against v2.6.22
2.6.22.atmel.5
Highlights for this release:
- Update to latest stable release, v2.6.22.10
- The longstanding "kernel hangs forever waiting for my SD card to show up" bug should hopefully be fixed.
- Turning on kernel preemption should not cause programs to crash randomly anymore.
- Various Atmel TWI fixes.
For more details, please see the announcement. To try it out, download one of the following files. Please report problems to the _email8 mailing list.
- linux-2.6.22.atmel.5.tar.bz2: Linux 2.6.22.atmel.5 complete source
- linux-2.6.22.atmel.5.patch.bz2: Linux 2.6.22.atmel.5 patch against v2.6.22
2.6.22.atmel.4
Highlights for this release:
- Includes everything from the 2.6.22.5 stable release.
- ALSA driver for the AC97 controller.
- OSS driver for the ABDAC.
- pte_page() bugfix. This bug was causing problems for drivers relying on vmalloc_to_page, e.g. the scullv example from LDD3.
- Bugfix for the fbmem= command-line parser.
To try it out, download one of the following files. Please report problems to the _email9 mailing list.
- linux-2.6.22.atmel.4.tar.bz2: Linux 2.6.22.atmel.4 complete source
- linux-2.6.22.atmel.4.patch.bz2: Linux 2.6.22.atmel.4 patch against v2.6.22
2.6.22.atmel.3
This release is still based on v2.6.22.1. Highlights:
- Atomic ops bugfix (post-2.6.22 sunrpc is known to trigger this bug, but it may cause more subtle breakage too.)
- AT73C213 ALSA driver
- A few minor bug fixes, like wiring up the RTC properly, fixing typos and deprecated stuff.
To try it out, download one of the following files. Please report problems to the _email10 mailing list.
- linux-2.6.22.atmel.3.tar.bz2: Linux 2.6.22.atmel.3 complete source
- linux-2.6.22.atmel.3.patch.bz2: Linux 2.6.22.atmel.3 patch against v2.6.22
2.6.22.atmel.2
This is a relatively minor update compared to 2.6.22.atmel.1. There are still a couple of highlights:
- v2.6.22.1 security fix included.
- New gpio-mouse driver.
- GPIO /dev interface now enabled by default, along with several other drivers. The LEDs on NGW100 are still wired up to gpio-leds, however.
- Atmel TWI driver fixes. The driver seems to work a lot better now.
- MACB multicast support
To try it out, download one of the following files. Please report problems to the _email11 mailing list.
- linux-2.6.22.atmel.2.tar.bz2: Linux 2.6.22.atmel.2 complete source
- linux-2.6.22.atmel.2.patch.bz2: Linux 2.6.22.atmel.2 patch against v2.6.22
2.6.22.atmel.1
It's been a long time since the previous release, so there are lots of updates in this one. Highlights include:
- New LCDC driver, atmel_lcdfb, replacing the old sidsafb driver.
- STK1000 switch settings can be configured through Kconfig (for example to enable two macbs instead of the lcdc.)
- New UDC driver, atmel_usba_udc, replacing the old husb2_udc driver.
- leds-gpio driver which can control the leds on NGW100 and (optionally) STK1000.
- i2c-gpio driver for bitbanging i2c (currently not hooked up.)
- The kernel will wait for the root device to show up if the rootwait=1 option is set on the command line.
- CPU frequency scaling.
- Watchdog driver.
- RTC driver.
- Fixed break handling in the atmel_serial driver, so magic SysRq? should work again.
There are still a few things missing, most notably the sound drivers. They are currently being worked on, and will hopefully be ready soon -- check out the AVR32 linux kernel archives for a preview. CompactFlash and NAND flash support are also not ready for inclusion yet.
To try it out, download one of these or check out the 'master' branch of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32.git.
- linux-2.6.22.atmel.1.tar.bz2: Linux 2.6.22.atmel.1 complete source
- linux-2.6.22.atmel.1.patch.bz2: Linux 2.6.22.atmel.1 patch against v2.6.22
Version 2.6.18
- unified-2.6.18.patch.tar.bz2: Updated Linux 2.6.18-avr1 as a single patch contains GCC 4.1, NGW PIOE, AC'97, and LCDC fixes.