Linux Mainlining Effort - Linux
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.2.1 Core Stuff
- 2.2.2 Major drivers
- 2.2.3 Minor drivers
- 2.2.4 Drivers that can still be improved/added
- 2.3 Planned for next
- 2.4 Merged into 6.19(-rc1)
- 2.5 Merged into 6.18
- 2.6 Merged into 6.17
- 2.7 Merged into 6.16
- 2.8 Merged into 6.15
- 2.9 Merged into 6.14
- 2.10 Merged into 6.13
- 2.11 Merged into 6.12
- 2.12 Merged into 6.11
- 2.13 Merged into 6.10
- 2.14 Merged into 6.9
- 2.15 Merged into 6.8
- 2.16 Merged into 6.7
- 2.17 Merged into 6.6 (LTS)
- 2.18 Merged into 6.5
- 2.19 Merged into 6.4
- 2.20 Merged into 6.3
- 2.21 Merged into 6.2
- 2.22 Merged into 6.1 (LTS)
- 2.23 Merged into 6.0
- 2.24 Merged into 5.19
- 2.25 Merged into 5.18
- 2.26 Merged into 5.17
- 2.27 Merged into 5.16
- 2.28 Merged into 5.15 (LTS)
- 2.29 Merged into 5.14
- 2.30 Merged into 5.13
- 2.31 Merged into 5.12
- 2.32 Merged into 5.11
- 2.33 Merged into 5.10 (LTS)
- 2.34 Merged into 5.9
- 2.35 Merged into 5.8
- 2.36 Merged into 5.7
- 2.37 Merged into 5.6
- 2.38 Merged into 5.5
- 2.39 Merged into 5.4 (LTS)
- 2.40 Merged into 5.3
- 2.41 Merged into 5.2
- 2.42 Merged into 5.1
- 2.43 Merged into 5.0
- 2.44 Merged into 4.20
- 2.45 Merged into 4.19 (LTS)
- 2.46 Changes merged up to 4.18
- 3 References
- 4 See also
- 5 External Links
- 5.1 How to upstream
- 6 Notes
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.
StatusThe 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-100s200s | A10 | A10s | A13R8 | GR8 | A20T2 | R40V40T3A40i | A80 | A31 | A23 | A33R16 | A83T | H3H2+ | S3S3LV3V3s | A64H64 | H5 | H6 | A50 | V831V833 | H313H616H618H700T507 | A100A133 | R329 | D1D1sT113 | A523A527MR527T527H728 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 | WIP | |
| 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 | 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 | N/A |
| Analog Codec | 6.14 | 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 | 6.19 | |
| 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 | 6.19 | |
| 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 | 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 | 6.15 | |
| 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 | 6.15 | ? | WIP | WIP | |
| 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 | NO | ? | 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 | ? | ? | WIP | ? | ? | WIP | 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 | ? | ? | WIP | ? | ? | 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 | 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 | 6.14 | 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 | 6.19 | |
| 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 | ? | ? | ? | 6.17 | ? | 5.15 | 6.16 |
| 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 | ? | N/A | 6.0 | N/A | ? | N/A | 6.19 | |
| 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 | ? | ? | 6.15 | N/A | ? | N/A | 6.17 |
| 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 | 6.15 | |
| 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 | 6.15 | |
| PMU (perf, DT only) | N/A | 5.1 | ? | ? | ? | 3.16 | 5.6 | ? | 3.16 | ? | ? | ? | 5.6 | ? | 5.5 | 5.6 | 5.6 | ? | ? | 6.0 | 6.13 | ? | WIP | 6.16 | |
| 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 | WIP | 6.0 | 6.15 | |
| SID (eFuse) | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | 6.7 | 5.10 | ? | 5.18 | 6.17 | |
| 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 | PSCI | N/A | PSCI | |
| 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 | WIP | 6.5 | WIP | |
| 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.14 | ? | 6.1 | WIP | |
| 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 | ? | ? | WIP | ? | ? | 6.19 | 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 | 6.15 | |
| 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 | 6.16 |
| 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 | 6.13 | ? | 5.18 | 6.15 |
| 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 | 6.13 | ? | 5.18 | 6.15 | |
| USB3.0 | 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 | WIP | |
| 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 | 6.13 | 5.16 | 5.16 | 6.15 | |
| Model | F1C-100s200s | A10 | A10s | A13R8 | GR8 | A20T2 | R40V40T3A40i | A80 | A31 | A23 | A33R16 | A83T | H3H2+ | S3S3LV3V3s | A64H64 | H5 | H6 | A50 | V831V833 | H313H616H618H700T507 | A100A133 | R329 | D1D1sT113 | A523A527MR527T527H728 | |
| 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
- A523 Chen-Yu Tsai A523 audio codec
- A733 Andre Przywara pinctrl: sunxi: Allwinner A733 support
- V853 / V851s / V851s3 Andras Szemzo Support for Allwinner V853 SoC
- 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
- A13 PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) patch-v1
Major drivers
- 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
- H313,H616,H618,H700,T507 Richard Genoud Introduce Allwinner H616 PWM controller
- A523 / H728 / A527 / T527 Mikhail Kalashnikov arm64: allwinner: a523: add USB3.0 support
- H313,H616,H618,H700,T507 Ryan Walklin allwinner: h616: add LCD timing controller and display engine support
- A523 / H728 / A527 / T527 Mikhail Kalashnikov Add support for A523 Thermal system
- D1s / T113 Kuba Szczodrzyński drm/sun4i: Support LVDS on D1s/T113 combo D-PHY
- A64 Ondrej Jirman A64 audio jack detection
- 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
- 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
- A523 / H728 / A527 / T527 Chen-Yu Tsai arm64: allwinner: a523: Support SPI controllers
Merged into 6.19(-rc1)
- A523 / H728 / A527 / T527
- GMAC200 Ethernet controller
- DMA controllers
- I2S
- SPDIF TX
- H6, H313,H616,H618,H700,T507
- NAND controller support
Merged into 6.18
- A523 / H728 / A527 / T527
- MCU PRCM clocks and reset
- NPU
New devices supported:
- T113-s3: NetCube Systems Nagami SoM and carrier boards
- Orange Pi Zero add-on board
- H313: Amediatech X96Q
Merged into 6.17
- A523
- Mali GPU support
- power domain controller support
- SID support
- A100/A133
- EMAC Ethernet support
New devices supported:
- A523: Xunlong Orange Pi 4A
Merged into 6.16
- A523
- Basic DT support
- First Ethernet port support
- H616
- Mali GPU support
New devices supported
- A133: Liontron H-A133L
- H616: YuzukiHD Chameleon
- A523: Radxa Cubie A5E
- A523: X96QPro+
- A523: YuzukiHD Avaota A1
Merged into 6.15
- A100/A133
- enable DVFS support
- A523
- main and PRCM clock support
- pinctrl/GPIO support
- watchdog support
- NMI support
New devices supported
- V3s: NetCube Systems Kumquat
Merged into 6.14
- A100/A133
- syscon support
- F1C100s
- DMA support
- audio codec support
Merged into 6.13
- A100/A133
- PMU support (for perf tool)
- watchdog support
- USB support
- MMC support
- H616
- audio codec support
New devices supported
- A33: RerVision A33-Vstar board
Merged into 6.12
New devices supported
- H616: Anbernic RG35XX-SP
Merged into 6.11
- H616
- LRADC support
- IOMMU support
- crypto engine
Merged into 6.10
- D1/T113-s3
- LDO driver
- H616
- enable DVFS support
- sun4i-i2s: Support 32-bit audio formats
New devices supported
- A13: PocketBook 614 Plus
- H616: Tanix TX1
- H616: Anbernic RG35XX Plus
- H616: Anbernic RG35XX H
- H616: Anbernic RG35XX 2024
Merged into 6.9
- H616
- SPDIF
- DMA
- Thermal
New Devices supported
- H616: Sipeed LonganPi 3H
- A64: Remix Mini PC
Merged into 6.8
- D1/T113-s3
- Thermal
New Devices supported
- H616: OrangePi Zero 2W
- H616: Transpeed 8K618-T
Merged into 6.7
- H616
- SID
New Devices supported
- H616: Bigtreetech CB1 Manta
- H616: Bigtreetech Pi
- V3s: Anbernic RG-Nano
Merged into 6.6 (LTS)
- D1/T113-s3
- CAN
- GPADC
New Devices supported
- H616: OrangePi Zero 3
Merged into 6.5
- D1/T113-s3
- SPI
Merged into 6.4
- F1C100s
- Enable LicheePi Nano USB support
New Devices supported
- F1C100s
- Popcorn Computer PopStick
- Lctech Pi F1C200s
- T113-s3
- MangoPi MQ-R-T113
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
- A100
- MIPI-DSI
- D1
- MIPI-DSI
Merged into 6.1 (LTS)
- A100
- DMA
- D1
- SRAM
- H6
- DMIC
- GPU Devfreq
Merged into 6.0
- D1
- RGB LCD
- I2C
- Pinctrl
- RTC
- H616 Orange Pi Zero 2
- H616 X96 Mate
- R40/T3/A40i
- CPUFreq (DVFS)
Merged into 5.19
- D1
- DMA
- LRADC
- F1C100s
- SD/MMC
- SPI
- Watchdog
- V3s
- MIPI-CSI2
Merged into 5.18
- D1
- I2S
- MMC
- SID
- USB
Merged into 5.17
- A64/H5
- DRAM frequency scaling (DEVFREQ)
- D1
- Clocks
- PLIC
- R40/T3/A40i
- CAN (series)
Merged into 5.16
- R329/D1
- Watchdog
Merged into 5.15 (LTS)
Merged into 5.14
- H616
- PMIC - AXP305
New Devices Supported
- H616
- Tanix TX6s
- X96 Mate
- Xunlong Orange Pi Zero2
Merged into 5.13
New Devices Supported
- A10
- Topwise A721 Tablet
Merged into 5.12
- H616
- Clocks
- Pinctrl
- MMC
- H6
- RSB
- A100
- MMC
Merged into 5.11
- H6
- I2S
- multiple SoCs
- Cedrus VP8 decoding
New Devices Supported
- H3
- FriendlyArm NanoPi R1
- FriendlyArm ZeroPi
- S3
- Elimo Impetus
- Elimo Initium
Merged into 5.10 (LTS)
- A100
- Clocks
- Pinctrl
- I2C
- Thermal (THS)
- R40
- DMA
- GPU Mali
- IR
- SRAM
- Video_Engine | Sunxi-Cedrus
- V3s
- Crypto
- Ethernet
- SimpleFB
- SRAM
- sun8i-ce/sun8i-ss
- support for PRNG
- support for hashs
- support for TRNG (H6 only)
New Devices Supported
- A100
- Perf1 board
- S3l
- PineCube
Merged into 5.9
- H5
- DVFS
New Devices Supported
- A64
- PinePhone v1.2
Merged into 5.8
- H6
- DVFS
- IOMMU
- A64 / A83T / H3 / H5 / H6
- Message Box
New Devices Supported
- A20
- OLinuXino Lime (A20) eMMC
Merged into 5.7
- A20
- LVDS
- A83T and A64
- Rotate driver
- H6
- SPI
- R40
- Thermal
New Devices Supported
- A13
- PocketBook Touch Lux 3
- A64
- PineTab
- PinePhone v1.0 & v1.1
- A20
- Linutronix Testbox v2
Merged into 5.6
- A10
- CSI (BT656 and Parallel)
- A64
- MIPI DSI
- DVFS
- A64 / A83T / H3 / H5 / H6
- Thermal
- H6
- PWM
- H3 / H5 / H6 / R40
- PMU
- R40
- CSI (BT656 and Parallel)
- SPI
New Devices Supported
- H5
- ALL-H3-IT H5 board
- ALL-H5-CC H5 board
- H6
- PineH64 Model B
Merged into 5.5
- H3
- Deinterlace driver
- H6
- Crypto
- GPU(3D) Mali
- USB3 PHY (for boards not needing vbus switching)
- A64 / A80 / A83T / H3 / H5 / R40
- Crypto
- multiple SoCs
- Cedrus HEVC/H.265
- Broadcom-based (AMPAK modules) Bluetooth support on
- Emlid Neutis
New Devices Supported
- H3
- FriendlyARM_NanoPi_Duo2
Merged into 5.4 (LTS)
- A20
- CSI (BT656 and Parallel)
- A64
- IR
- H6
- IR
- RTC
- SPDIF
New Devices Supported
- A64
- Olimex A64-OLinuXino eMMC
- H6
- Tanix TX6
- S3
- Lichee Zero Plus
Merged into 5.3
- A64
- LRADC
- RGB LCD
- A83T
- CSI (BT656 and Parallel)
- H6
- DMA
- Watchdog
- multiple SoCs
- Cedrus h264
Merged into 5.2
- A83T
- LRADC
- USB OTG
- H6
- Cedrus
- multiple SoCs
- Lima
- Panfrost
- Broadcom-based (AMPAK modules) Bluetooth support on
- Banana-Pi-M2-Zero
New Devices Supported
- H6
- Beelink GS1
- Xunlong Orange Pi 3
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
- Broadcom-based (AMPAK modules) Bluetooth support on
- Banana Pi M2+
- Banana Pi M2 Ultra
- LCD enabled on A13 Q8 tablets
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
- Banana Pi M2 Magic
- Banana Pi M3
- Banana Pi M64
- Cubietruck
- Cubietruck Plus
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
- Mainline Kernel Howto
- Possible setups for hacking on mainline
- Linux Kernel
- Toolchain
- 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)
- Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)
- Matt Porter's presentation slides for “Upstreaming 101" (LCA14-111)
- Matt Porter's YouTube video talk on “Upstreaming 201" (LCA14-112)
- Matt Porter's presentation slides for “Upstreaming 201" (LCA14-112)
- Matt Porter's YouTube video talk on “Upstreaming 101" (LCA14-111)
- How to Write and Submit a Linux Kernel Patch (CNXSoft - Embedded Software Development)
- YouTube Video- Write and Submit your first Linux kernel Patch
- Greg Kroah-Hartman Kernel Tutorial Write and Submit your first Linux Kernel Patch
- Linaro resources page from LCA (Linaro Connect Asia) 2014
Từ khóa » Sunxi H616
-
H616 - Linux
-
[PATCH V9 00/11] Arm64: Sunxi: Initial Allwinner H616 SoC Support
-
[PATCH V2 00/21] Arm64: Sunxi: Initial Allwinner H616 SoC Support
-
[PATCH V8 00/11] Arm64: Sunxi: Initial Allwinner H616 SoC Support
-
U-boot-misc/readme.h616 At Master - GitHub
-
Drivers/clk/sunxi-ng/ccu-sun50i-h616.h - Linux Source Code (v5.18.1)
-
InstallingDebianOn/Allwinner - Debian Wiki
-
Sunxi: H616: Enable Full 4GB Of DRAM - Patchwork - OzLabs
-
[PATCH 00/17] Sunxi: Introduce H616 Support
-
[linux-sunxi] Re: Allwinner H616 FEL Mode Times Out
-
Linux V5.18.1 - Drivers/clk/sunxi-ng/ccu-sun50i-h616.h
-
CONFIG_PINCTRL_SUN50I_H6...