Linux mainlining effort

From linux-sunxi.org
(Redirected from Mainlining Effort)
Jump to: navigation, search

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

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
A10 A10s A13
R8
A20 A23 A31 A33
R16
A64 A80 A83T GR8 H3 H5 H6 R40
T3
V3
V3s
S3L
AC97 N/A 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 NO 4.4 4.4 4.4 4.4 4.10 4.10 4.11 5.0 N/A N/A 4.9 4.10 4.12 NO NO 4.13
ADC GPADC NO 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 NO 3.16 3.14 3.14 3.16  ? WIP 4.12 WIP WIP WIP 4.9 WIP WIP WIP WIP N/A
Touch NO 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
Camera BT656 NO WIP WIP WIP WIP  ? 5.0  ? 5.1  ? 5.3 WIP 5.0 5.0  ?  ? 5.0
ISP N/A 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 N/A NO N/A N/A NO NO N/A N/A N/A N/A N/A NO
Parallel NO WIP WIP WIP WIP  ? 5.0  ? 5.1  ? 5.3 WIP 5.0 5.0  ?  ? 5.0
Clocks 5.0 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 (DVFS) NO 4.0 4.0 4.0 4.0 NO 4.2 4.11 NO NO 4.17 NO 4.18 WIP WIP NO NO
Crypto N/A 4.3 4.13 4.13 4.3  ? 4.3 4.3 WIP WIP WIP 4.13 WIP WIP WIP WIP  ?
Display (SimpleFB) NO 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 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 Audio N/A NO NO N/A NO N/A NO N/A WIP NO NO N/A WIP WIP WIP NO N/A
HDMI CEC N/A 4.15 4.14 N/A 4.15 N/A 4.15 N/A 4.20 NO 4.17 N/A 4.17 4.17 5.2 WIP N/A
HDMI Video N/A 4.15 4.13 N/A 4.15 N/A 4.15 N/A 4.20 NO 4.17 N/A 4.17 4.17 5.0 4.19 N/A
LVDS N/A  ? 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 N/A  ? NO 4.18 WIP NO NO N/A N/A N/A N/A WIP N/A
RGB NO 4.15  ? 4.7 4.15 5.1 4.10 4.9 5.3 4.17 4.16 4.9 N/A N/A NO NO 4.13
VGA N/A 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 NO 4.3 4.3 4.3 4.3 3.18 3.17 4.2 4.15  ? 4.9 4.9 4.2 4.12 5.3 NO 4.13
Ethernet EMAC N/A 3.11 3.11 N/A 3.11 N/A N/A N/A 4.15 5.1 4.16 N/A 4.15 4.15 5.0 4.18 4.13
GMAC N/A N/A 3.15 3.17
GPU(3D) Mali  ?  ?  ?  ?  ?  ? N/A  ?  ? N/A N/A  ? 5.2 5.2  ?  ? N/A
PowerVR  ? 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 N/A
HW Spinlocks N/A 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 4.19 4.15 4.11
I2S NO 4.8  ? N/A 4.8  ? 4.13 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 N/A NO N/A N/A
IR NO 3.17 4.0 4.0 3.17 N/A 4.0 N/A 5.4 4.5 4.20 4.9 4.6 4.12 5.4  ? N/A
Keypad N/A 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 5.3  ? 5.2 4.9  ?  ? N/A  ? 4.13
MsgBox N/A N/A N/A N/A N/A WIP WIP WIP WIP WIP WIP N/A WIP WIP WIP N/A N/A
NAND N/A  ?  ? 4.12 [3]  ? 4.9 [3]  ? 4.9 [3]  ?  ?  ? 4.9 [3]  ?  ? 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 N/A NO [4] N/A N/A
Pinctrl 5.0 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 NO 4.0 4.4 4.4 4.0 4.4 WIP 4.4 4.19 NO 4.16 4.9 4.9 4.12 WIP WIP 4.12
RSB NO 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 N/A 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 WIP 5.0 4.11
SATA N/A 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 4.20 N/A
SD/ MMC NO 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 4.19 4.14 4.11
SMP N/A N/A N/A N/A PSCI PSCI PSCI PSCI PSCI 4.17 4.18 N/A PSCI PSCI PSCI PSCI N/A
SPDIF NO 4.7 N/A N/A 4.7 N/A 4.9 N/A 4.17  ? 4.13 4.9 4.11 4.12 WIP  ? N/A
SPI NO 3.16 3.15 3.15 3.15  ? 3.15  ? 4.15  ?  ? 4.9 4.10 4.12 NO  ? 4.13
SRAM 5.0 4.2 4.2 4.2 4.2 4.19 NO 4.19 4.19 N/A N/A 4.2 4.19 5.0 5.1 NO NO
USB NO 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 5.0 4.15 4.11
USB OTG NO 4.3 4.3 4.3 4.3 4.8 4.3 4.8 4.11 NO 5.2 4.9 4.12 4.12 5.0 NO 4.11
USB3 N/A 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 NO 5.1  ? 4.20 4.20  ?  ? 4.20 5.0 NO NO  ? 4.20 5.0 5.2 NO  ?
Watchdog 5.0 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 5.3 4.15 4.11
Model F1C-
100s
A10 A10s A13

R8

A20 A23 A31 A33

R16

A64 A80 A83T GR8 H3 H5 H6 R40

T3

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

  • A13 PSCI Suspend / Resume / CPUIdle (WiP: Antoine Tenart) patch-v1

Major drivers

  • HDMI Audio A64 / H3 / H5 / H6 WIP Jernej Škrabec (jernej) / LibreELEC

Minor drivers

Boards

Merged for 5.4

Merged for 5.3

Merged into 5.2

  • A83T
    • LRADC
    • USB OTG

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
  • 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 Support
  • H5
    • Cedrus
  • R40
    • RTC
  • T3
    • initial T3 support[5]
  • V3s
    • CSI Support

New Devices Supported

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

Merged into 4.19

  • 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

New Devices

Changes merged up to 4.18

Changes up to 4.18 can be found on Linux mainlining history page.

References

  1. http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf
  2. Your New ARM SoC Linux Support Check-List – ELCE 2012
  3. 3.0 3.1 3.2 3.3 While the NAND controller itself is supported, the NAND technology found on the vast majority of boards isn't. See this page
  4. 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.
  5. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1

See also

External Links

How to upstream

Notes

Personal tools
Namespaces

Variants
Actions
Navigation
Tools