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
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-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
  1. http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf
  2. Your New ARM SoC Linux Support Check-List – ELCE 2012
  3. 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. ↑ 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
  5. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7badd1d7aa61087010803affa19bb83fb5a0af1
See also
  • Mainline Kernel Howto
  • Possible setups for hacking on mainline
  • Linux Kernel
    • Toolchain
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)
    • 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)
  • 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
Notes

Từ khóa » Sunxi H616