Linux 2.6 status for Samsung SoC devices

With the ARM kernel port now integrated into the main-line kernel, and kept up-to-date by Russell King it was time to get the ARM9 range of SoCs from Samsung supported. The port started out early in the 2.6 development as a project for Ben Dooks, and has grown as number of developers have joined in to improve the support.

Note, unfortunately to time constrains and merging a number of patches from my work tree, some of these updates may only be sumamries of what happened.

The following developers are actively working on drivers:

And contributions from the following:

And thanks to Samsung for providing development boards for their latest silicon to allow testing on multiple platforms.

Current core state

The current state of the Samsung ARM9 SoC port is as follows:

Useful documentation


Kernel timeline

The following kernel updates start from the release of the 2.6.17 kernel on www.kernel.org and will be updated for each major release that there are any patches for. The list is in ordered with the latest kernels first.

Linux 2.6.25-rc1

This release contained a number of updates, an overview of which is as so:

Linux 2.6.24

The following is an overview of updates merged before 2.6.24:

Linux 2.6.22-rc2

The following patches are bug or compile fixes:

Minor addiitons:

Linux 2.6.21-rc6

The following patches are bugfixes:

Cleanups for problems reported by sparse:

These patches are for the 2.6.21 release:

Linux 2.6.20-rc6

This is the patch:

Linux 2.6.20-rc5

These are fixes sent for this kernel version:

Linux 2.6.20-rc1

These patches fix sparse warnings:

Patches for kernel gardening:

The following are updates from previous work:

Linux 2.6.19

These patches are additions for new features:

SPI updates:

The following patches fix the copyright:

These patches are build fixes for sparse warnings:

And finally some kernel tidying:

Linux 2.6.18-rc7

The following patches have been merged into the main kernel:

The following patches have been re-based against this kernel:

The following patches are for inclusion:

The whole set of patches is available as 2618-rc7-all1.patch (a list of all patches in this is in patch-rc7-all1.list).

Linux 2.6.18-rc6

The following patches have been merged into the main kernel:

These patches are being prepared or are being submitted:

Linux 2.6.18-rc5

The following patches have been merged into the main kernel:

Linux 2.6.18-rc4

The following updates are being planned for inclusion into 2.6.19:

Please read s3c-rtc-core.html for more information on updates to the RTC.

The following are updates for the DMA system:

The complete set of DMA patches is 2618-rc4-dma1.patch.

Please reffer to 2618-dma-updates.html for full details on these patches and their consequences.

There is experimental support for the S3C2412 DMA source selection at 2618-rc4-dma-map-s3c2412.patch.

The full set of patches can be found here:

Linux 2.6.17

The following merges have happened:

The following patches are being prepared for submission:

The following set is for the s3c2412 release:

2617-s3c2412-release1.patch contains a merge of the above patches with a config. It is designed to be applied to kernels 2.6.17-git6 or later. It contains support for the s3c2412 core, uarts, clock, usb-host and base irqs. It should support the I2C, RTC and watchdog driver. It does not yet support DMA, PM, SPI, ATA, cpu-freq, usb-gadget or arch reset.

The following are for post 2.6.17-git8

Linux 2.6.17-rc6

The following patches have been cleaned for submission:

Minor bugs have been found and fixed by the following patches:

Applied patches:

Linux 2.6.17-rc5

The spi drivers are merged in this kernel version, but require a small fix to compile with CONFIG_PM.

Linux 2.6.17-rc3

Updates include spi drivers, smdk keyboard driver, and some bug fixes.

The 2617-s3c24xx-spi-hw.patch patch requires the following patch 2617-mm3-spi.patch which brings in the necessary SPI updates from the -mm tree.

Please note, since both the 2617-s3c24xx-spi-gpio.patch and 2617-s3c24xx-spi-hw.patch both touch drivers/spi, they cannot be applied together without fixing up the rejects afterwards.

Thanks to Steven Ryu at samsung for providing a keyboard to test with.

Linux 2.6.17-rc2

S3C2442 core support is ready, and is available from the following two patches:

The following drivers and updates are queued ready for submission:

Support for stopping the clocks on peripherals not being used is also being merged, to allow power to be saved (at the slight cost of the extra instructions used to enable and disable the clock sources during this time).

There is a bug in the NAND driver which currently requires an update from the MTD tree, if the NAND controller has not been enabled at boot time (ie, booting an SMDK2440 from NOR). This has been fixed, and will hopefully merged before 2.6.18.

Machine Status

(c) 2006 Ben Dooks