Linux mainlining effort
The purpose of this page is to try and define sub-goals and milestones for mainlining effort, containing goals and sub-goals with milestones for adding Allwinner support in the upstream mainline Linux Kernel.
It is very important to note that this is intended as a rough set of minimal goals - it is not meant to collide with the huge effort of rewriting major drivers!
Contents |
Overview
The idea is to submit break the code needed to run the Linux kernel on Allwinner SoCs upstream to the official Linux kernel, also checkout Linux-tree-diff.
This can be achieved by following the concept outlined in the Your new ARM SoC Linux support check-list! published by Thomas Petazzoni from Free Electrons.[1][2]
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.
Status
Merged into 3.8
- Timer
- UART
- Device Tree
- Interrupt controller
Added board support: Cubieboard, A13-OLinuXino
Merged into 3.9
- PINCTRL driver
- GPIO-lib based driver
Related merges: [3]
Added Board Support: Hackberry
Merged into 3.10
- LED support
- Clock driver
- Complete UART support
Added Board Support: Mini X-Plus
Planned for 3.11
Work In Progress
Major drivers
- DMAengine driver (WiP: Matt Porter (mdp))
-
- DMAengine driver handles slave dma clients including SPI, EMAC, USB, I2S, HDMI audio, and NAND
- Implementing slave SG transfers is the priority (for SPI to start), with cyclic transfers (for audio clients) following that
- SPI driver (WiP: Matt Porter (mdp))
-
- PIO mode only to start then DMA support via the dmaengine API
- USB driver (WiP: Felipe Balbi (felipebalbi))
Minor drivers
- Security ID driver (WiP: Oliver Schinagl (oliv3r))
- Watchdog driver (WiP: Carlo Caione (n01))
Left to be done
Achievable
- PMU driver
- MMC driver
-
- MMC appears to have its own DMA access to the memory, reported by wingrime
- IIO LRADC driver
- PWM Driver
- IR driver
- RTC driver
DMA dependent drivers
- NAND MTD driver
-
- We can take as a good base the MTD Driver from Quiang Yu
- Sound driver
Needing major rework
These drivers need major rework AND lack documentation other than existing source pile.
- USB Driver
- USB Gadget driver
- Display driver (libv)
Unlikely
These are too far off the track third party drivers making it unlikely they will ever get accepted mainline.
- Mali driver (will not happen unless libv gets a proper lima driver out)
Related but separate
- Device-specific drivers
References
- ↑ http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf
- ↑ http://www.cnx-software.com/2013/01/16/your-new-arm-soc-linux-support-check-list-elce-2012/ Your New ARM SoC Linux Support Check-List – ELCE 2012
See also
Linux-tree-diff - list of kernel files modified or added ('+' sign) for allwinner SOCs.
External Links
- Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Free Electrons
- kernel.org - Official website for the Linux Kernel
- http://github.com/torvalds/linux - Linus Torvalds' GitHub account with the upstream Linux kernel
- Linux Kernel documentation index
- Linux Kernel man pages
- Kernel Newbies Site - Excellent source of information for people new to kernel
- Linus' kernel tree for 2.6
- Kernel bugzilla - Regressions for each of recent versions
- Linux-libre project - Maintains and distributes fully free kernel
- LinGrok, Linux kernel source code cross-reference
- Free Electrons LXR (Linux Cross Reference)
- linux-arm-kernel - Mailing list archive