Linux mainlining effort
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.
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 Bootlin.[1][2]
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 | F1C- 100s 200s |
A10 | A10s | A13 R8 |
GR8 | A20 T2 |
R40 V40 T3 A40i |
A80 | A31 | A23 | A33 R16 |
A83T | H3 H2+ |
S3 S3L V3 V3s |
A64 H64 |
H5 | H6 | A50 | V831 V833 |
H313 H616 H700 T507 |
A100 A133 |
R329 | D1 D1s T113 |
A523 A527 MR527 T527 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ADC | GPADC | N/A | 4.12 | 4.12 | 4.12 | 4.12 | 4.12 | WIP | NO | WIP | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ? | ? | 6.11 | ? | WIP | 6.6 | NO |
LRADC | 6.2 | 4.0 | 4.0 | 4.0 | 4.9 | 4.0 | ? | ? | 4.0 | 4.0 | 4.2 | 5.2 | ? | 4.13 | 5.3 | ? | N/A | ? | ? | 6.11 | ? | 5.19 | 5.19 | NO | |
Thermal | NO | 3.16 | 3.14 | 3.14 | 4.9 | 3.16 | 5.7 | WIP | WIP | ? | 4.12 | 5.6 | 5.6 | N/A | 5.6 | 5.6 | 5.6 | ? | ? | 6.9 | 5.10 | ? | 6.8 | NO | |
Touch | NO | 3.16 | 3.14 | 3.14 | 4.9 | 3.16 | WIP | NO | 4.0 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ? | ? | N/A | ? | ? | NO | N/A | |
Audio | AC97 | N/A | NO | N/A | N/A | N/A | NO | NO | 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 |
Analog Codec | NO | 4.4 | 4.4 | 4.4 | 4.9 | 4.4 | NO | N/A | 4.10 | 4.10 | 4.11 | N/A | 4.10 | 4.13 | 5.0 | 4.12 | NO | ? | ? | WIP | ? | WIP | WIP | NO | |
Audio Hub | 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 | N/A | N/A | N/A | NO | N/A | N/A | NO | N/A | N/A | N/A | N/A | |
DMIC | 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 | N/A | N/A | N/A | 6.1 | ? | N/A | ? | ? | ? | ? | NO | |
I2S | NO | 4.8 | ? | N/A | 4.9 | 4.8 | NO | NO | 4.13 | ? | 4.11 | 4.16 | 4.14 | WIP | 4.17 | NO | 5.11 | ? | ? | NO | ? | 5.18 | 5.18 | NO | |
SPDIF | NO | 4.7 | N/A | N/A | 4.9 | 4.7 | ? | ? | 4.9 | N/A | N/A | 4.13 | 4.11 | N/A | 4.17 | 4.12 | 5.4 | ? | ? | 6.9 | ? | ? | WIP | NO | |
Camera | BT656 | NO | 5.6 | ? | ? | ? | 5.4 | 5.6 | ? | 5.0 | ? | ? | 5.3 | 5.0 | 5.0 | 5.1 | 5.0 | ? | ? | ? | ? | ? | ? | ? | NO |
ISP | N/A | NO | N/A | N/A | N/A | NO | N/A | NO | NO | N/A | N/A | NO | N/A | WIP | N/A | N/A | N/A | ? | ? | N/A | ? | ? | ? | ? | |
MIPI CSI-2 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | NO | WIP | N/A | N/A | WIP | N/A | 5.19 | N/A | N/A | N/A | ? | ? | N/A | ? | ? | ? | NO | |
Parallel | NO | 5.6 | ? | ? | ? | 5.4 | 5.6 | ? | 5.0 | ? | ? | 5.3 | 5.0 | 5.0 | 5.1 | 5.0 | ? | ? | ? | ? | ? | ? | ? | NO | |
CAN bus | ? | 4.4 | N/A | N/A | N/A | 4.4 | 5.17 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ? | ? | N/A | ? | ? | 6.6 | NO | |
Clocks | 5.0 | 3.10 | 3.11 | 3.10 | 4.9 | 3.12 | 4.14 | 3.19 | 3.12 | 3.17 | 4.2 | 4.13 | 4.8 | 4.11 | 4.10 | 4.12 | 4.17 | ? | WIP | 5.12 | 5.10 | WIP | 5.17 | WIP | |
CPUFreq (DVFS) | NO | 4.0 | 4.0 | 4.0 | NO | 4.0 | 6.0 | NO | 4.2 | NO | 4.11 | 4.17 | 4.18 | NO | 5.6 | 5.9 | 5.8 | ? | ? | 6.10-rc1 | WIP | ? | WIP | NO | |
CPUIdle | NO | NO | NO | NO | NO | NO | NO | NO | NO | NO | NO | NO | Crust | NO | Crust | Crust | Crust | NO | NO | NO | NO | NO | SBI | NO | |
Crypto | N/A | 4.3 | 4.13 | 4.13 | 4.13 | 4.3 | 5.5 | 5.5 | 4.3 | ? | 4.3 | 5.5 | 5.5 | 5.10 | 5.5 | 5.5 | 5.5 | ? | ? | 6.11 | ? | ? | 6.3 | NO | |
Display (DRM) | CVBS | NO | ? | 4.9 ? | 4.7 | 4.9 | ? | NO | N/A | N/A | N/A | N/A | N/A | WIP | N/A | N/A | WIP | NO | ? | ? | ? | ? | ? | NO | ? |
G2D | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | NO | NO | |
HDMI Audio | N/A | WIP | NO | N/A | N/A | WIP | NO | NO | WIP | N/A | N/A | NO | WIP | N/A | WIP | WIP | WIP | ? | ? | ? | ? | ? | NO | NO | |
HDMI CEC | N/A | 4.15 | 4.14 | N/A | N/A | 4.15 | 4.19 | NO | 4.15 | N/A | N/A | 4.17 | 4.17 | N/A | 4.20 | 4.17 | 5.2 | ? | ? | ? | ? | ? | NO | NO | |
HDMI Video | N/A | 4.15 | 4.13 | N/A | N/A | 4.15 | 4.19 | NO | 4.15 | N/A | N/A | 4.17 | 4.17 | N/A | 4.20 | 4.17 | 5.0 | ? | ? | ? | ? | ? | WIP | NO | |
LVDS | N/A | ? | N/A | N/A | N/A | 5.7 | ? | ? | ? | ? | ? | 4.16 | N/A | N/A | ? | N/A | N/A | ? | ? | ? | ? | ? | NO | NO | |
MIPI DSI | N/A | N/A | N/A | N/A | N/A | N/A | WIP | NO | NO | ? | 4.18 | NO | N/A | N/A | 5.6 | N/A | N/A | ? | ? | N/A | 6.2 | ? | 6.2 | NO | |
RGB | NO | 4.15 | ? | 4.7 | 4.9 | 4.15 | NO | 4.17 | 4.10 | 5.1 | 4.9 | 4.16 | N/A | 4.13 | 5.3 | N/A | NO | ? | ? | ? | ? | ? | 6.0 | NO | |
VGA | N/A | NO | N/A | N/A | N/A | NO | NO | 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 | |
Display (SimpleFB) | NO | 3.19 | 3.19 | 4.0 | 4.9 | 3.19 | NO | NO | 3.19 | 3.19 | 3.19 | NO | 4.16 | 5.10 | 4.17 | 4.16 | NO | ? | ? | ? | ? | ? | NO | NO | |
DMA | NO | 4.3 | 4.3 | 4.3 | 4.9 | 4.3 | 5.10 | ? | 3.17 | 3.18 | 4.2 | 4.9 | 4.2 | 4.13 | 4.15 | 4.12 | 5.3 | ? | ? | 6.9 | 6.1 | ? | 5.19 | NO | |
Ethernet | EMAC | N/A | 3.11 | 3.11 | N/A | N/A | 3.11 | WIP | 5.1 | N/A | N/A | N/A | 4.16 | 4.15 | 4.13 | 4.15 | 4.15 | 5.0 | ? | ? | ? | ? | ? | 5.15 | NO |
GMAC | N/A | N/A | N/A | N/A | N/A | 3.15 | 4.18 | 5.1 | 3.17 | N/A | N/A | 4.16 | 4.15 | 4.13 | 4.15 | 4.15 | 5.0 | ? | ? | 6.0 | ? | ? | N/A | N/A | |
GPU (3D) | Mali | N/A | 5.2 | ? | ? | ? | 5.2 | 5.10 | N/A | N/A | ? | ? | N/A | 5.2 | N/A | 5.2 | 5.2 | 5.5 | ? | ? | WIP | N/A | ? | N/A | NO |
PowerVR | N/A | N/A | N/A | N/A | N/A | N/A | N/A | NO | NO | N/A | N/A | NO | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | NO | N/A | N/A | N/A | |
HW Spinlocks | N/A | N/A | N/A | N/A | N/A | N/A | N/A | NO | ? | ? | ? | WIP | WIP | ? | WIP | NO | NO | ? | ? | N/A | ? | ? | NO | NO | |
I2C | 6.2 | 3.11 | 3.12 | 3.11 | 4.9 | 3.13 | 4.15 | 3.19 | 3.15 | 3.18 | 4.2 | 4.16 | 4.9 | 4.11 | 4.10 | 4.12 | 4.19 | ? | ? | 6.0 | 5.10 | ? | 6.0 | ? | |
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 | N/A | N/A | N/A | 5.8 | ? | ? | 6.11 | ? | ? | WIP | NO | |
IR | IR RX | 6.2 | 3.17 | 4.0 | 4.0 | 4.9 | 3.17 | 5.10 | 4.5 | 4.0 | N/A | N/A | 4.20 | 4.6 | N/A | 5.4 | 4.12 | 5.4 | ? | ? | 6.0 | ? | ? | NO | NO |
IR TX | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | N/A | ? | ? | NO | NO | |
Keypad | N/A | WIP | N/A | N/A | N/A | WIP | NO | 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 | N/A | N/A | N/A | N/A | |
LDOs | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | WIP | WIP | ? | |
LEDC | 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 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 6.8 | 6.8 | 6.8 | NO | |
MBUS | ? | ? | ? | ? | ? | ? | ? | ? | NO | NO | ? | ? | ? | NO | 5.17 | 5.17 | NO | NO | NO | NO | NO | NO | NO | ? | |
MsgBox | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ? | ? | ? | ? | 5.8 | 5.8 | N/A | 5.8 | 5.8 | 5.8 | ? | ? | N/A | ? | ? | WIP | NO | |
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 | N/A | N/A | N/A | WIP [3] | N/A | N/A | N/A | N/A | N/A | N/A | NO | |
Pinctrl | 5.0 | 3.9 | 3.9 | 3.9 | 4.9 | 3.12 | 4.14 | 3.19 | 3.12 | 3.18 | 4.2 | 4.4 | 4.5 | 4.11 | 4.6 | 4.12 | 4.17 | ? | WIP | 5.12 | 5.10 | WIP | 6.0 | WIP | |
PMU (perf, DT only) | N/A | 5.1 | ? | ? | ? | 3.16 | 5.6 | ? | 3.16 | ? | ? | ? | 5.6 | ? | 5.5 | 5.6 | 5.6 | ? | ? | 6.0 | WIP | ? | WIP | ? | |
PWM | 6.2 | 4.0 | 4.4 | 4.4 | 4.9 | 4.0 | WIP | NO | NO | 4.4 | 4.4 | 4.16 | 4.9 | 4.12 | 4.19 | 4.12 | 5.6 | ? | ? | WIP | WIP | WIP | WIP | NO | |
Remoteproc | AIPU | 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 | N/A | N/A | N/A | N/A | N/A | NO | N/A | ? | NO | N/A | NO |
DSP | 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 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ? | WIP | WIP | NO | |
RSB | NO | N/A | N/A | N/A | N/A | N/A | N/A | 4.3 | N/A | 4.4 | 4.4 | 4.14 | ? | N/A | 4.13 | ? | 5.12 | ? | ? | 6.0 | ? | ? | N/A | N/A | |
RTC | N/A | 3.14 | N/A | N/A | N/A | 3.14 | 5.0 | N/A | 3.18 | 3.18 | 4.2 | N/A | 4.5 | 4.11 | 4.10 | 4.12 | 5.4 | ? | WIP | 6.0 | ? | WIP | 6.0 | NO | |
SID (eFuse) | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | 6.7 | ? | ? | 5.18 | NO | |
SMP | N/A | N/A | N/A | N/A | N/A | PSCI | PSCI | 4.17 | PSCI | PSCI | PSCI | 4.18 | PSCI | N/A | PSCI | PSCI | PSCI | ? | ? | PSCI | ? | PSCI | N/A | NO | |
SPI | 5.19 | 3.16 | 3.15 | 3.15 | 4.9 | 3.15 | 5.6 | ? | 3.15 | ? | ? | ? | 4.10 | 4.13 | 4.15 | 4.12 | 5.7 | ? | WIP | 6.0 | ? | WIP | 6.5 | NO | |
SRAM | 5.0 | 4.2 | 4.2 | 4.2 | 4.2 | 4.2 | 5.10 | N/A | NO | 4.19 | 4.19 | N/A | 4.19 | 5.10 | 4.19 | 5.0 | 5.1 | ? | ? | 6.0 | ? | ? | 6.1 | NO | |
Storage | EMCE | 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 | N/A | N/A | N/A | WIP | ? | ? | N/A | N/A | ? | N/A | N/A |
NAND | N/A | ? | ? | 4.12 [4] | 4.9 [4] | ? | ? | ? | ? | 4.9 [4] | 4.9 [4] | ? | ? | N/A | ? | ? | NO | ? | ? | NO | ? | ? | NO | NO | |
SATA | N/A | 3.15 | N/A | N/A | N/A | 3.15 | 4.20 | 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 | N/A | N/A | N/A | N/A | |
SD/MMC | 5.19 | 3.16 | 3.16 | 3.16 | 4.9 | 3.16 | 4.14 | 4.0 | 3.16 | 3.18 | 4.2 | 4.14 | 4.5 | 4.11 | 4.11 | 4.12 | 4.19 | ? | WIP | 6.0 | 5.12 | WIP | 5.18 | ? | |
Timer | Arch Timer | N/A | N/A | N/A | N/A | N/A | 3.15 | 4.15 | 4.2 | 4.0 | 4.2 | 4.2 | 4.6 | 4.5 | 4.11 | WIP | 4.12 | 4.17 | ? | ? | 6.0 | 5.10 | ? | WIP | ? |
HSTIMER | ? | ? | 4.2 | 4.2 | 4.2 | 3.14 | ? | ? | 4.2 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | NO | |
TIMER | 5.0 | 3.15 | 4.2 | 4.2 | 4.2 | 3.15 | 5.14 | 3.19 | 3.15 | 5.4 | 5.4 | 5.4 | 5.4 | 5.4 | 5.14 | 5.4 | 5.14 | ? | ? | ? | ? | ? | 6.0 | ? | |
USB | USB | 6.3 | 3.15 | 3.15 | 3.15 | 4.9 | 3.15 | 4.15 | 4.2 | 3.16 | 4.3 | 4.3 | 4.14 | 4.8 | 4.11 | 4.11 | 4.12 | 5.0 | ? | ? | 6.1.3 | WIP | ? | 5.18 | ? |
USB OTG | 6.3 | 4.3 | 4.3 | 4.3 | 4.9 | 4.3 | WIP | NO | 4.3 | 4.8 | 4.8 | 5.2 | 4.12 | 4.11 | 4.11 | 4.12 | 5.0 | ? | ? | 6.1.3 | WIP | ? | 5.18 | ? | |
USB3 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | NO | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 5.5 | N/A | N/A | N/A | N/A | N/A | N/A | NO | |
VE | NO | 5.1 | ? | 4.20 | ? | 4.20 | 5.10 | NO | ? | ? | 4.20 | NO | 4.20 | WIP | 5.0 | 5.0 | 5.2 | ? | ? | ? | ? | ? | 5.17 | NO | |
Watchdog | 5.19 | 3.12 | 3.12 | 3.12 | 4.9 | 3.12 | 4.15 | 3.19 | 3.18 | 3.18 | 4.2 | 4.6 | 4.5 | 4.11 | 4.17 | 4.12 | 5.3 | ? | WIP | 6.0 | WIP | 5.16 | 5.16 | WIP | |
Model | F1C- 100s 200s |
A10 | A10s | A13 R8 |
GR8 | A20 T2 |
R40 V40 T3 A40i |
A80 | A31 | A23 | A33 R16 |
A83T | H3 H2+ |
S3 S3L V3 V3s |
A64 H64 |
H5 | H6 | A50 | V831 V833 |
H313 H616 H700 T507 |
A100 A133 |
R329 | D1 D1s T113 |
A523 A527 MR527 T527 |
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
- R329 Clocks & Pinctrl / RTC / MMC - Icenowy Zheng Initial support for Allwinner R329
- V831 / V833 Clocks & Pinctrl / RTC / MMC / Watchdog / SPI - Icenowy Zheng Support for Allwinner V831 SoC
- AR100 firmware (WiP: Samuel Holland) ARISC firmware for sunxi SoCs
Major drivers
- A100 DMA/PMU/Watchdog/USB2/USB OTG/MMC(eMMC, SD) Frank Lee Second step support for A100
- V3s ISP (Image Signal Processor) Paul Kocialkowski initial-allwinner-v3-isp-support-in-mainline-linux
- H6 Hypervisor for PCIe A try on utilizing H6 PCIe with "Virtualization"
- A64 / H3 / H5 / H6 HDMI Audio - Clément Péron / Marcus Cooper / Jernej Škrabec Add Allwinner H3/H5/A64 HDMI audio
- R40 MIPI-DSI WIP Jagan Teki drm/sun4i: Allwinner R40 MIPI-DSI support v3
- AC100 Audio codec WiP Ondrej Jirman digital part analog part
- V3s SRAM & Video Decoding Engine (Cedrus) WiP Martin Cerveny Enable video decoder (testing with attached LCD)
- H6 VP9 decoder (Hantro G2) WiP jernej branch
Minor drivers
- H616,H618,H700,T507 Ryan Walklin ASoC: add Allwinner H616 audio codec support
- H616 Andre Przywara H616: add GPU power domain driver
- H616 Andre Przywara crypto: sun8i-ce: add Allwinner H616 support
- H616 Andre Przywara iommu: sun50i: Add Allwinner H616 support
- H616 James McGregor arm64: dts: allwinner: H616: Add LRADC
- H616 Chris Morgan Add GPADC for Allwinner H616
- A64 Ondrej Jirman A64 audio jack detection
- H616 Martin Botka cpufreq H616 v1
- D1 Brandon Cheo Fusi cpufreq support for the D1
- D1 Inochi Amaoto riscv: dts: allwinner: d1: Add PMU event node
- D1 / T113 Maksim Kiselev ASoC: sunxi: Add support for D1/T113s internal audio codec
- H6 ethernet on opi3/opi1+ LABBE Corentin arm64: add ethernet to orange pi 3
- D1 / R329 Aleksandr Shubin Add support for Allwinner PWM on D1/T113s/R329 SoCs
- D1 IOMMU Samuel Holland iommu/sun50i: Allwinner D1 support
- D1 System LDOs Samuel Holland regulator: Add support for Allwinner D1 system LDOs
- D1 Video Engine Samuel Holland Allwinner D1 video engine support
- R40/T3/A40i RTP/LRADC Evgeny Boger [1]
- R40/T3/A40i EMAC Evgeny Boger support for two Ethernet ports on Allwinner R40
- R40/T3/A40i USB OTG qianfan Zhao ARM: sun8i-r40: Enable usb otg support
- V3 I2S Tobias Schramm Add missing peripherals to Allwinner V3s/V3 device trees
- H3 / H5 CVBS WIP Jernej Skrabec Add H3/H5 TVE support
- A100 CPUFreq (DVFS) Shuosheng Huang cpufreq: sun50i: add a100 cpufreq support
- A64 hwspinlock WIP Nikolay Borisov Add support for hwspinlock on A64 SoC
- A83T / A64 / H3 hwspinlock WIP Corentin Labbe (montjoie) RFC,1/3RFC,2/3RFC,3/3
- A10 / A20 / A31 HDMI Audio WIP Stefan Mavrodiev Add support for sun4i HDMI audio
- A80 Thermal sensor WIP Philipp Rossak (embed-3d): https://github.com/embed-3d/linux/branches/all
- R40 PWM (WIP Hao Zhang patch-v2)
- A20 Keypad (WiP: Yassin Jaffer (ddc) patch)
- sun8i-ce/sun8i-ss RSA/ECC WIP Corentin LABBE (no public patch yet)
- EMCE WIP Corentin LABBE (no public patch yet) / Mripard https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux.git/log/?h=sunxi/h6-emmc-inline-encryption BUT proably not usable https://lore.kernel.org/linux-mmc/20210317171554.a4vgihqfjq2xa5cb@gilmour/
Drivers that can still be improved/added
Nobody works on these features. If you're interested, you can pick one of these add your name to them and move them to one of the sections above, to indicate you're working on the driver/feature.
- A31/A31s PWM support (patch-v4 abandoned by Siarhei Volkau)
- sunxi-musb driver lacks DMA support (with current driver, USB gadgets are limited to PIO, limiting speed to 10MiB/s and causing large CPU)
- DE2 driver has buggy layer support, see [2]
- DE1/DE2/DE3 writeback support
- H616 (and later) UHS-I SD card support (pinctrl device contains voltage switch for PortF)
Planned for next
Merged into 6.9
- H616
- SPDIF
- DMA
- Thermal
New Devices supported
- H616: Sipeed LonganPi 3H
- A64: Remix Mini PC
Merged into 6.8
New Devices supported
Merged into 6.7
- H616
- SID
New Devices supported
Merged into 6.6 (LTS)
New Devices supported
Merged into 6.5
Merged into 6.4
- F1C100s
- Enable LicheePi Nano USB support
New Devices supported
- F1C100s
- Popcorn Computer PopStick
- Lctech Pi F1C200s
Merged into 6.3
- D1
- Base DT and Kconfig
- Crypto
- Power Domain
- T113-s3
- R528/T113 Clocks support
- F1C100s
- USB PHY support
- USB MUSB support
Merged into 6.2
Merged into 6.1 (LTS)
Merged into 6.0
Merged into 5.19
Merged into 5.18
- D1
- I2S
- MMC
- SID
- USB
Merged into 5.17
Merged into 5.16
Merged into 5.15 (LTS)
Merged into 5.14
- H616
- PMIC - AXP305
New Devices Supported
Merged into 5.13
New Devices Supported
- A10
- Topwise A721 Tablet
Merged into 5.12
Merged into 5.11
New Devices Supported
Merged into 5.10 (LTS)
- R40
- DMA
- GPU Mali
- IR
- SRAM
- Video_Engine | Sunxi-Cedrus
- sun8i-ce/sun8i-ss
- support for PRNG
- support for hashs
- support for TRNG (H6 only)
New Devices Supported
Merged into 5.9
- H5
- DVFS
New Devices Supported
- A64
- PinePhone v1.2
Merged into 5.8
- H6
- DVFS
- IOMMU
New Devices Supported
- A20
- OLinuXino Lime (A20) eMMC
Merged into 5.7
- A20
- LVDS
- R40
- Thermal
New Devices Supported
Merged into 5.6
- A10
- CSI (BT656 and Parallel)
- A64
- MIPI DSI
- DVFS
- H6
- PWM
New Devices Supported
Merged into 5.5
- H3
- Deinterlace driver
- H6
- Crypto
- GPU(3D) Mali
- USB3 PHY (for boards not needing vbus switching)
- multiple SoCs
- Cedrus HEVC/H.265
- Broadcom-based (AMPAK modules) Bluetooth support on
- Emlid Neutis
New Devices Supported
Merged into 5.4 (LTS)
New Devices Supported
Merged into 5.3
Merged into 5.2
- A83T
- LRADC
- USB OTG
- Broadcom-based (AMPAK modules) Bluetooth support on
- Banana-Pi-M2-Zero
New Devices Supported
Merged into 5.1
- A10
- Cedrus
- PMU
- A20
- Audio Codec improvements
- A23
- Display pipeline
- LCD enabled on Q8 A23 tablets
- A64
- ARM Architectural Timer errata workaround
- PMU
- CSI (BT656 and Parallel)
- A80
- GMAC support
- CSI in general
- RGR565 support
- JPEG pass-through support
Merged into 5.0
- A64
- Cedrus
- DTS changes for audio codec
- F1C100s
- initial F1C100s support
- H6
- Ethernet
- DE3/HDMI support
- USB 2.0
- H3 / H5
- CSI (BT656 and Parallel) Support
- H5
- Cedrus
- R40
- RTC
- T3
- initial T3 support[5]
- V3s
- CSI (BT656 and Parallel) Support
- Broadcom-based (AMPAK modules) Bluetooth support on
New Devices Supported
- Xunlong Orange Pi Lite 2
- Mapleboard MP130
- LicheePi Nano
- Emlid Neutis N5
Merged into 4.20
- A13 / A20 / A33 / H3
- Cedrus driver
- A83T
- IR receiver
- A64
- Cleanup for device tree files
- HDMI support
- Audio codec support (DTS changes will be merged in 5.0)
- H3 / H5
- SID
- R40
- SATA
New Devices Supported
- Pine64 LTS
- Xunlong Orange Pi One Plus
- Xunlong Orange Pi Zero Plus 2 (H3 variant)
- Sinovoip Banana Pi M2+ (H5 variant)
Merged into 4.19 (LTS)
- A10 / A13 / A20 / A23 / A33
- SRAM controller / system control
- A64
- SRAM controller / system control
- Display clocks and bus
- RTC clock output
- PWM
- R_I2C
- H3
- SRAM controller / system control
- H6
- MMC
- PMIC
- R40
- HDMI support
Board Changes
- SPI flash node for Orange Pi PC 2 and Pine64 SoPINE
- Use lid switch as wake-up source for A64 based laptops
- LEDs added for PineH64
New Devices
- Pine Pinebook
- Amarula A64-Relic
Changes merged up to 4.18
Changes up to 4.18 can be found on Linux mainlining history page.
References
- ↑ http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf
- ↑ Your New ARM SoC Linux Support Check-List – ELCE 2012
- ↑ 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 needs to be wrapped. As Linux doesn't wrap PCIe memory space access, it's not possible to do a proper PCIe controller without using an hypervisor. The BSP kernel modifies the driver to wrap the access, so it's also not generic, and only devices with modified driver will work. https://forum.armbian.com/topic/13529-a-try-on-utilizing-h6-pcie-with-virtualization/
- ↑ 4.0 4.1 4.2 4.3 While the NAND controller itself is supported, the NAND technology found on the vast majority of boards isn't. See this page
- ↑ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1
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
- Bootlin 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 Bootlin
- 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