Image Release Map
View source for Linux mainlining effort ← Linux mainlining effort You do not have permission to edit this page, for the following reasons:
The action you have requested is limited to users in the group: Users. You must confirm your email address before editing pages. Please set and validate your email address through your user preferences. You can view and copy the source of this page:
The purpose of this page is to try and define sub-goals and milestones for the mainlining effort, containing goals and sub-goals with milestones for adding Allwinner support in the upstream mainline Linux Kernel.
Contents
- 1 Overview
- 2 Status
- 2.1 Status Matrix
- 2.2 Work In Progress
- 2.3 Planned for 4.18
- 2.4 Merged into 4.17
- 2.5 Merged into 4.16
- 2.6 Merged into 4.15
- 2.7 Merged into 4.14
- 2.8 Merged into 4.13
- 2.9 Merged into 4.12
- 2.10 Merged into 4.11
- 2.11 Merged into 4.10
- 2.12 Merged into 4.9
- 2.13 Merged into 4.8
- 2.14 Merged into 4.7
- 2.15 Merged into 4.6
- 2.16 Merged into 4.5
- 2.17 Changes merged up to 4.4
- 3 References
- 4 See also
- 5 External Links
- 6 Notes
Overview
The idea is to submit the code needed to run the Linux kernel on Allwinner SoCs upstream, ie. to the official Linux kernel.
This can be achieved by following the concept outlined in the Your new ARM SoC Linux support check-list! article published by Thomas Petazzoni from Free Electrons.<ref>http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf</ref><ref>Your New ARM SoC Linux Support Check-List – ELCE 2012</ref>
Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.
Status
The Mainline Kernel howto contains the currently used repositories for the mainlining process. The U-Boot repository and toolchain is described in the Mainline U-Boot howto.
The Mainline Kernel category gives an overview of currently supported devices.
Status Matrix
The goal of this matrix is to give an easy view of work on each SoC worked on by linux-sunxi.
Model | A10 | A10s | A13 | A20 | A23 | A31 | A33 | A64 | A80 | A83T | GR8 | H3 | H5 | H6 | R40 | V3s | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AC97 | NO | N/A | N/A | NO | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | NO | N/A | |
Audio Codec | 4.4 | 4.4 | 4.4 | 4.4 | 4.10 | 4.10 | 4.11 | NO | N/A | N/A | 4.9 | 4.10 | 4.12 | NO | NO | 4.13 | |
ADC | GPADC | 4.12 | 4.12 | 4.12 | 4.12 | N/A | WIP | N/A | N/A | NO | N/A | 4.12 | N/A | N/A | N/A | NO | N/A |
Thermal | 3.16 | 3.14 | 3.14 | 3.16 | ? | WIP | 4.12 | WIP | WIP | WIP | 4.9 | WIP | WIP | NO | NO | N/A | |
Touch | 3.16 | 3.14 | 3.14 | 3.16 | N/A | WIP | N/A | N/A | NO | N/A | 4.9 | N/A | N/A | N/A | NO | N/A | |
Clocks | 3.10 | 3.11 | 3.10 | 3.12 | 3.17 | 3.12 | 4.2 | 4.10 | 3.19 | 4.13 | 4.9 | 4.8 | 4.12 | 4.17 | 4.14 | 4.11 | |
CPUFreq | 4.0 | 4.0 | 4.0 | 4.0 | NO | 4.2 | 4.11 | NO | NO | 4.17 | NO | 4.18 | 4.18 | NO | NO | NO | |
Crypto | 4.3 | 4.13 | 4.13 | 4.3 | ? | 4.3 | 4.3 | WIP | WIP | WIP | 4.13 | WIP | WIP | WIP | ? | ? | |
Camera | BT656 | NO | NO | NO | NO | NO | NO | NO | NO | NO | WIP | NO | WIP | WIP | NO | NO | WIP |
ISP | NO | N/A | N/A | NO | N/A | NO | N/A | N/A | NO | NO | N/A | N/A | N/A | N/A | N/A | NO | |
MIPI-CSI | N/A | N/A | N/A | N/A | N/A | NO | N/A | N/A | NO | NO | N/A | N/A | N/A | N/A | N/A | NO | |
Parallel | NO | NO | NO | NO | NO | NO | NO | NO | NO | WIP | NO | WIP | WIP | NO | NO | WIP | |
Display (SimpleFB) | 3.19 | 3.19 | 4.0 | 3.19 | 3.19 | 3.19 | 3.19 | 4.17 | NO | NO | 4.9 | 4.16 | 4.16 | NO | NO | NO | |
Display
(DRM) |
CVBS | NO | 4.9 ? | 4.7 | NO | N/A | N/A | N/A | N/A | N/A | N/A | 4.9 | NO | NO | NO | NO | N/A |
HDMI | 4.15 | 4.13 | N/A | 4.15 | N/A | 4.15 | N/A | NO | NO | 4.17 | N/A | 4.17 | 4.17 | WIP | WIP | N/A | |
HDMI Audio | NO | NO | N/A | NO | N/A | NO | N/A | NO | NO | NO | N/A | NO | NO | NO | NO | N/A | |
HDMI CEC | 4.15 | 4.14 | N/A | 4.15 | N/A | 4.15 | N/A | NO | NO | 4.17 | N/A | 4.17 | 4.17 | NO | WIP | N/A | |
LVDS | ? | N/A | N/A | ? | ? | ? | ? | ? | ? | 4.16 | N/A | N/A | N/A | N/A | ? | N/A | |
MIPI DSI | N/A | N/A | N/A | N/A | ? | NO | 4.18 | NO | NO | NO | N/A | N/A | N/A | N/A | NO | N/A | |
RGB | 4.15 | ? | 4.7 | 4.15 | ? | 4.10 | 4.9 | NO | WIP | 4.16 | 4.9 | N/A | N/A | NO | NO | 4.13 | |
VGA | NO | N/A | N/A | NO | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | NO | N/A | |
DMA | 4.3 | 4.3 | 4.3 | 4.3 | 3.18 | 3.17 | 4.2 | 4.15 | ? | 4.9 | 4.9 | 4.2 | 4.12 | ? | NO | 4.13 | |
Ethernet | EMAC | 3.11 | 3.11 | N/A | 3.11 | N/A | N/A | N/A | 4.15 | NO | 4.16 | N/A | 4.15 | 4.15 | WIP | 4.18 | 4.13 |
GMAC | N/A | N/A | 3.15 | 3.17 | |||||||||||||
HW Spinlocks | N/A | N/A | N/A | N/A | N/A | N/A | N/A | NO | NO | NO | N/A | NO | NO | NO | N/A | N/A | |
I2C | 3.11 | 3.12 | 3.11 | 3.13 | 3.18 | 3.15 | 4.2 | 4.10 | 3.19 | 4.16 | 4.9 | 4.9 | 4.12 | NO | 4.15 | 4.11 | |
I2S | 4.8 | ? | N/A | 4.8 | ? | NO | 4.11 | 4.17 | NO | 4.16 | 4.9 | 4.14 | NO | NO | NO | N/A | |
IOMMU | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | NO | N/A | N/A | |
IR | 3.17 | 4.0 | 4.0 | 3.17 | N/A | 4.0 | N/A | ? | 4.5 | WIP | 4.9 | 4.6 | 4.12 | NO | ? | N/A | |
Keypad | WIP | N/A | N/A | WIP | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | NO | N/A | |
LRADC | 4.0 | 4.0 | 4.0 | 4.0 | 4.0 | 4.0 | 4.2 | ? | ? | ? | 4.9 | ? | ? | N/A | ? | 4.13 | |
MsgBox | N/A | N/A | N/A | N/A | N/A | N/A | N/A | NO | NO | NO | N/A | NO | NO | NO | N/A | N/A | |
NAND | ? | ? | 4.12 <ref name="mlc">While the NAND controller itself is supported, the NAND technology found on the vast majority of boards isn't. See this page </ref> | ? | 4.9 <ref name="mlc"/> | ? | 4.9 <ref name="mlc" /> | ? | ? | ? | 4.9 <ref name="mlc" /> | ? | ? | NO | ? | N/A | |
PCIe | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | NO <ref name="h6-pcie">Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly to CPU,
and accessing the PCIe config space, IO space or memory space will need to be wrapped. As Linux doesn't wrap PCIe memory space access, it's not possible to do a proper PCIe controller driver for H6. The BSP kernel modifies the driver to wrap the access, so it's also not generic, and only devices with modified driver will work.</ref> |
N/A | N/A | |
Pinctrl | 3.9 | 3.9 | 3.9 | 3.12 | 3.18 | 3.12 | 4.2 | 4.6 | 3.19 | 4.4 | 4.9 | 4.5 | 4.12 | 4.17 | 4.14 | 4.11 | |
PWM | 4.0 | 4.4 | 4.4 | 4.0 | 4.4 | WIP | 4.4 | 4.17 | NO | 4.16 | 4.9 | 4.9 | 4.12 | ? | WIP | ? | |
RSB | N/A | N/A | N/A | N/A | 4.4 | N/A | 4.4 | 4.13 | 4.3 | 4.14 | N/A | ? | ? | ? | N/A | N/A | |
RTC | 3.14 | N/A | N/A | 3.14 | 3.18 | 3.18 | 4.2 | 4.10 | N/A | N/A | N/A | 4.5 | 4.12 | ? | ? | 4.11 | |
SATA | 3.15 | N/A | N/A | 3.15 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | NO | N/A | |
SD/ MMC | 3.16 | 3.16 | 3.16 | 3.16 | 3.18 | 3.16 | 4.2 | 4.11 | 4.0 | 4.14 | 4.9 | 4.5 | 4.12 | WIP | 4.14 | 4.11 | |
SMP | N/A | N/A | N/A | PSCI | PSCI | PSCI | PSCI | PSCI | 4.17 | 4.18 | N/A | PSCI | PSCI | NO | PSCI | N/A | |
SPDIF | 4.7 | N/A | N/A | 4.7 | N/A | 4.9 | N/A | 4.17 | ? | 4.13 | 4.9 | 4.11 | 4.12 | NO | ? | N/A | |
SPI | 3.16 | 3.15 | 3.15 | 3.15 | ? | 3.15 | ? | 4.15 | ? | ? | 4.9 | 4.10 | 4.12 | NO | ? | 4.13 | |
SRAM | 4.2 | 4.2 | 4.2 | 4.2 | NO | NO | NO | NO | N/A | N/A | 4.2 | N/A | N/A | N/A | NO | N/A | |
USB | 3.15 | 3.15 | 3.15 | 3.15 | 4.3 | 3.16 | 4.3 | 4.11 | 4.2 | 4.14 | 4.9 | 4.8 | 4.12 | WIP | 4.15 | 4.11 | |
USB OTG | 4.3 | 4.3 | 4.3 | 4.3 | 4.8 | 4.3 | 4.8 | 4.11 | NO | 4.15 | 4.9 | 4.12 | 4.12 | NO | NO | 4.11 | |
USB3 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | NO | N/A | N/A | N/A | N/A | WIP | N/A | N/A | |
VE | Sunxi-Cedrus | WIP | NO | WIP | WIP | NO | NO | WIP | WIP | NO | NO | NO | WIP | WIP | NO | NO | NO | |
Watchdog | 3.12 | 3.12 | 3.12 | 3.12 | 3.18 | 3.18 | 4.2 | 4.17 | 3.19 | 4.6 | 4.9 | 4.5 | 4.12 | ? | ? | 4.11 | |
Model | A10 | A10s | A13 | A20 | A23 | A31 | A33 | A64 | A80 | A83T | GR8 | H3 | H5 | H6 | R40 | V3s |
Legend |
---|
In Linux mainline since version x |
Nobody works on it, but it should be compatible with already done drivers |
Somebody works on it |
No support, nobody works on it |
support impossible |
Status is unknown/to be completed |
Work In Progress
Core Stuff
- Message box (WiP: Samuel Holland) patch
Major drivers
- Audio codec support:
- A20 Audio Codec improvements (WiP: Danny Milosavljevic) patch-v9
- AC100 Audio codec support (WiP: Ondrej Jirma (megi)) WIP branch
- Display Engine driver
- CSI (camera sensor interface)
- Security System/Crypto Engine
- sun8i-ss/sun9i-ss/sun5i-ss (WIP: LABBE Corentin more info at http://sunxi.montjoie.ovh/)
- ARM Mali400
- Lima DRM driver patch RFC (WiP: Qiang Yu (yuq)), mesa-lima (open source) (WiP: Qiang Yu (yuq))
Minor drivers
- H6
- A64 PWM (WiP: Andre Przywara [2])
- R40 PWM (WIP Hao Zhang patch-v2)
- A31/A31s PWM support (WiP: Siarhei Volkau patch-v1)
- A20 Keypad (WiP: Yassin Jaffer (ddc) patch)
- A83T IR driver (WIP: Philipp Rossak (embed-3d) patch-v5)
- A83T H3 H5 A80 A64 Thermal driver (WIP: Philipp Rossak (embed-3d) wipbranch: sunxi-ths patch v2: contains only a83t and h3)
Planned for 4.18
- A33
- MIPI DSI
- A83t
- SMP Support
- H3
- CPUFreq
- R40
- EMAC support
- Nintendo NES Classic Edition
- Libre Computer Board ALL-H3-CC ver. H2+ / H5
Merged into 4.17
Driver changes
- A80
- SMP
- A83T
- HDMI support
- PMIC ADC and Battery power supply support
- H3 / H5
- HDMI support
- H6
- Basic support
- PIO pinctrl support (R_PIO not supported)
- CCU clock/reset support (R_CCU/PRCM not supported)
Device tree changes
- A64
- SimpleFB
- I2S
- SPDIF
- Watchdog
- SPI enabled for Orange Pi R1
- SDIO WiFi enabled for FriendlyARM NanoPi NEO Air
- eMMC enabled for FriendlyARM NanoPi M1 Plus, FriendlyARM NanoPi NEO Air
- HDMI video output enabled for MK802, MK808C, Mele I7, Banana Pi M3, Banana Pi, Orange Pi Mini, Banana Pi M2+, Beelink X2, Libre Computer ALL-H3-CC, FriendlyARM NanoPi M1, Orange Pi 2, Xunlong Orange Pi Lite, Xunlong Orange Pi One, Orange Pi PC, Orange Pi PC 2, Orange Pi Prime, Orange Pi Zero Plus 2
- LEDs enabled for Banana Pi M3
- VGA output enabled for Cubieboard 4
- Audio codec enabled for Olimex A33-OlinuXino
- Power supplies enabled for Olimex A33-OlinuXino, A23/A33 reference tablet design, TBS A711 (battery only)
New devices supported
Merged into 4.16
Drivers:
- Display
- LVDS support
- DE2 (multi-plane support, HW scaling)
- A83T
- Display (LCD) support
- I2S support
- H3/H5
- SimpleFB support
Device tree changes:
- SoC specific
- Board specific
- Audio codec enabled for Olimex A13-Olinuxino
- WiFi/BT enabled for Xunlong Orangepi Zero Plus2
- AXP803 regulators added for Xunlong Orangepi Win
- EMAC enabled for FriendlyARM NanoPi NEO Plus2, Cubietech Cubietruck Plus, Sinovoip Banana Pi M3, FriendlyARM NanoPi M1
- USB OTG enabled for FriendlyARM NanoPi NEO
- LEDs enabled for Sinovoip Banana Pi M64
- HDMI enabled for LinkSprite pcDuino3 Nano
New boards supported:
Merged into 4.15
Drivers:
- A10/A20/A31
- display
- HDMI controller
- sunxi-ng clocks
- audio PLL sigma-delta modulation support for accurate audio playback
- A33
- Audio codec fixes
- A64
- DMA controller
Device tree changes:
- SoC specific
- Board specific
- IR receiver for FriendlyARM NanoPi M1
- WiFi, BT and IR receiver for FriendlyARM Nanopi M1 Plus
- HDMI enabled on Merrii Hummingbird A31, Sinlinx SinA31s, MSI Primo81, Cubietech Cubieboard, Cubietech Cubieboard2, Cubietech Cubietruck, Banana Pi M1+, Olimex A10-OLinuXino-Lime, Olimex A20-OLinuXino-Lime, Olimex A20-OLinuXino-Lime2, Olimex A20-OLinuXino-Micro
- ACIN and Battery power supplies enabled on Lamobo R1 and A13 reference design tablets
- AXP803 PMIC regulators and WiFi enabled for Allwinner A83TDevBoard, Banana Pi M3, Cubietech Cubietruck Plus
- AXP803 PMIC regulators and USB OTG enabled for TBS A711
- EMAC re-enabled for various A64/H3/H5 boards
New boards supported:
- TBS A711
- FriendlyARM NanoPi NEO Plus2
- Olimex A20-OLinuXino-Micro eMMC variant
- Banana Pi M2 Ultra
- Banana Pi M2 Berry
Merged into 4.14
Drivers:
- A10s
- HDMI DDC I2C Adapter
- HDMI CEC support
- most of Allwinner SoC
- sun4i-ss SecuritySystem PRNG driver
- A10/A20
- CCU Clock-ng support
- A10/A20/A31/A33/H3
- A64
- SRAM controller driver
- A83T
- SD/MMC support
- AXP813 PMIC
- USB support
- H3
- I2S support
- R40
- CCU sunxi-ng style clock driver support
- pinctrl support
- AXP PMICs
- PEK time fix for AXP22x
Device tree changes:
- SoC specific
- Board specific
- AXP803 basic support and regulators for Pine64 and SoPine
- USB and WiFi enabled for Sinovoip Banana Pi M64
-
Ethernet for Beelink X2 - USB OTG for Beelink X2
- SD/MMC for Cubietech Cubietruck Plus and Allwinner A83TDevBoard
- AXP813 PMIC for Cubietech Cubietruck Plus and Allwinner A83TDevBoard
- AC100 chip for Cubietech Cubietruck Plus and Allwinner A83TDevBoard
- USB hosts for Cubietech Cubietruck Plus and Allwinner A83TDevBoard
New boards supported:
Merged into 4.13
Drivers:
- A10s
- HDMI support
- V3s
- Clock driver for Display Engine 2.0
- DRM/KMS display driver support for Display Engine 2.0
- codec support
- A83T
- Clock driver
Device tree changes:
- SoC Specific
- LRADC, MMC1, SPI, Display Engine 2.0 for V3s
- Board Specific
- Enable AXP PMIC battery support on NextThingCo CHIP, Sinlinx SinA33
- Enable USB OTG on Banana Pi M2+, Orange Pi PC, Orange Pi PC Plus, Orange Pi Plus 2E
- Enable dedicated USB hosts for USB OTG on Pine64
-
Enable dwmac-sun8i for Ethernet on various boardsRemoved due to unstable DT binding
Added board support: FriendlyARM NanoPi NEO2, Xunlong Orange Pi Prime, LicheePi Zero dock board
Merged into 4.12
- H3
- USB OTG support
- H5
- New SoC variant, similar to H3, but ARM64 with Cortex-A53 cores.
- pinctrl driver
- CCU (sunxi-ng) driver
- USB OTG support
- AXP PMICs
- AXP803 basic support
- ACIN Power Supply driver
- ADC IIO driver
- Battery Power Supply driver
Added board support: FriendlyARM NanoPi NEO Air, Xunlong Orange Pi PC 2
Merged into 4.11
- A23
- Audio codec device tree changes
- A31
- SPDIF output support
- A33
- cpufreq support
- Audio codec support
- A64
- MMC Support
- USB support
- A80
- sunxi-ng style clock support
- H3
- Audio codec device tree changes
- SPDIF output support
- V3s
- New SoC support
- USB PHY driver
- pinctrl driver
- CCU driver
Added board support: LicheePi One, Xunlong Orange Pi Zero, LicheePi Zero, Sinovoip Banana Pi M64
Merged into 4.10
- A23
- Audio Codec driver
- A64
- Clock driver
- A80
- External SDIO WiFi
- H3
- Audio Codec driver
- SPI
Added board support: NextThingCo CHIP Pro, Pine64, FriendlyARM NanoPi M1
Merged into 4.9
- GR8
- SoC Support
- AXP209
- GPIO support
- A31
- SPDIF support
- A33
- Display Driver
- A64
- USB PHY support
- H3
- PWM support
- I2C support
- AXP806 PMIC
- regulator support
- AC100 RTC / codec IC
- mfd driver
- RTC driver
Added board support: Orange Pi PC Plus, Olimex A33-OLinuXino, Xunlong Orange Pi Lite, Inet q972, Empire Electronix M712, Xunlong Orange Pi Plus 2, Xunlong Orange Pi Plus 2E, FriendlyARM NanoPi NEO,
Merged into 4.8
- H3
- Clocks (through sunxi-ng)
- USB multi-reset lines support
- AXP2xx driver:
- External drivebus support
- AXP223 USB power supply support
- AXP809 PMIC support
- BCM53125 support
- This switch is used in Lamobo / Banana Pi R1
Merged into 4.7
- H3
- USB support (multi-reset line support delayed til 4.8)
Added board support: Dserve DSRV9703C, Polaroid MID2809PXE4, colorfly e708 q1, Difrence DIT4350
Merged into 4.6
- Allwinner A83T support
- Initial bringup
- timer, watchdog and reboot
- H3
- R_PIO support
- A64
- pinctrl driver
- generic arm64 Allwinner platform (ARCH_SUNXI) support
- NAND
- ECC layout definition rework (partially) and randomizer support
- A10/A20 SPDIF driver
- AXP223 PMIC support
- eMMC HS-DDR support for all currently supported SoCs except A80
Added board support: Allwinner A83TDevBoard, Cubietech Cubietruck Plus
Merged into 4.5
- Allwinner A80 support
- IR receiver driver
- NMI controller
- PRCM driver
- R_PIO support
- RSB driver
- Allwinner H3 SoC support
- H3 USB PHY clocks
- A10/A20 Video Engine clocks
- MIC1 capture for sun4i codec
- Audio codec enabled on various boards
Added board support: Xunlong Orange Pi Plus
Template:KnownProblems
A quick fix is to revert commit 88f8b1b which introduced the regression. See http://lists.infradead.org/pipermail/linux-arm-kernel/2016-March/415939.html, https://www.mail-archive.com/[email protected]/msg104119.html, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=823493.
Version v4.5-rc7 is known to be still okay, v4.6-rc2 fixes stmmac again.
Changes merged up to 4.4
Changes up to 4.4 can be found on Linux mainlining history page.
References
<references />
See also
External Links
- 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
How to upstream
- Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Free Electrons
- Linux Kernel Upstreaming How-To (CNXSoft - Embedded Software Development)
- How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)
- Linaro resources page from LCA (Linaro Connect Asia) 2014
Notes
<references group=note />
Templates used on this page:
Template:KnownProblems (view source) Template:Note (view source) Template:Red (view source) Return to Linux mainlining effort.
Create accountLog inPageDiscussionReadView sourceView history
Search
Navigation Main page Community portal Recent changes Random page Help Tools What links here Related changes Special pages Privacy policyAbout linux-sunxi.orgDisclaimersCreative Commons Attribution Powered by MediaWiki